diff --git a/.config/lychee.toml b/.config/lychee.toml
index 200521ac41eeb739228d202ac0fb2d80be305464..733b77ec0cff9e616ecc0f851d9a3ed5e8574636 100644
--- a/.config/lychee.toml
+++ b/.config/lychee.toml
@@ -2,9 +2,9 @@
# Run with `lychee -c .config/lychee.toml ./**/*.rs ./**/*.prdoc`
cache = true
-max_cache_age = "1d"
+max_cache_age = "10d"
max_redirects = 10
-max_retries = 6
+max_retries = 3
# Exclude localhost et.al.
exclude_all_private = true
@@ -51,4 +51,7 @@ exclude = [
# Behind a captcha (code 403):
"https://iohk.io/en/blog/posts/2023/11/03/partner-chains-are-coming-to-cardano/",
"https://www.reddit.com/r/rust/comments/3spfh1/does_collect_allocate_more_than_once_while/",
+ # 403 rate limited:
+ "https://etherscan.io/block/11090290",
+ "https://substrate.stackexchange.com/.*",
]
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index fdaa0c8628f766e241ba9043698b611a0bd78811..4fc5b97caae0735058337c8b23e4ca7471761d24 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -13,7 +13,7 @@
# - Multiple owners are supported.
# - Either handle (e.g, @github_user or @github/team) or email can be used. Keep in mind,
# that handles might work better because they are more recognizable on GitHub,
-# eyou can use them for mentioning unlike an email.
+# you can use them for mentioning unlike an email.
# - The latest matching rule, if multiple, takes precedence.
# CI
diff --git a/.github/env b/.github/env
new file mode 100644
index 0000000000000000000000000000000000000000..162ce8af7c0ddbc1534b7d1ffb09cff4be012fc7
--- /dev/null
+++ b/.github/env
@@ -0,0 +1 @@
+IMAGE="docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408"
\ No newline at end of file
diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh
index 29dc269ffd23b1f51e1eb2b87a61544de0cbb57f..f844e962c41def7625fa3d45ae3cbf81ecb57147 100755
--- a/.github/scripts/common/lib.sh
+++ b/.github/scripts/common/lib.sh
@@ -237,7 +237,7 @@ fetch_release_artifacts() {
popd > /dev/null
}
-# Fetch the release artifacts like binary and sigantures from S3. Assumes the ENV are set:
+# Fetch the release artifacts like binary and signatures from S3. Assumes the ENV are set:
# - RELEASE_ID
# - GITHUB_TOKEN
# - REPO in the form paritytech/polkadot
@@ -369,7 +369,7 @@ function relative_parent() {
# used as Github Workflow Matrix. This call is exposed by the `scan` command and can be used as:
# podman run --rm -it -v /.../fellowship-runtimes:/build docker.io/chevdor/srtool:1.70.0-0.11.1 scan
function find_runtimes() {
- libs=($(git grep -I -r --cached --max-depth 20 --files-with-matches 'construct_runtime!' -- '*lib.rs'))
+ libs=($(git grep -I -r --cached --max-depth 20 --files-with-matches '[frame_support::runtime]!' -- '*lib.rs'))
re=".*-runtime$"
JSON=$(jq --null-input '{ "include": [] }')
@@ -434,3 +434,13 @@ check_release_id() {
fi
}
+
+# Get latest release tag
+#
+# input: none
+# output: latest_release_tag
+get_latest_release_tag() {
+ TOKEN="Authorization: Bearer $GITHUB_TOKEN"
+ latest_release_tag=$(curl -s -H "$TOKEN" $api_base/paritytech/polkadot-sdk/releases/latest | jq -r '.tag_name')
+ printf $latest_release_tag
+}
diff --git a/.github/workflows/auto-add-parachain-issues.yml b/.github/workflows/auto-add-parachain-issues.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6b5222b6ff74147b063d913ec0dcdec299a6fcea
--- /dev/null
+++ b/.github/workflows/auto-add-parachain-issues.yml
@@ -0,0 +1,30 @@
+# If there are new issues related to the async backing feature,
+# add it to the parachain team's board and set a custom "meta" field.
+
+name: Add selected issues to Parachain team board
+on:
+ issues:
+ types:
+ - labeled
+
+jobs:
+ add-parachain-issues:
+ if: github.event.label.name == 'T16-async_backing'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Generate token
+ id: generate_token
+ uses: tibdex/github-app-token@v2.1.0
+ with:
+ app_id: ${{ secrets.PROJECT_APP_ID }}
+ private_key: ${{ secrets.PROJECT_APP_KEY }}
+ - name: Sync issues
+ uses: paritytech/github-issue-sync@v0.3.2
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ PROJECT_TOKEN: ${{ steps.generate_token.outputs.token }}
+ project: 119 # Parachain team board
+ project_field: 'meta'
+ project_value: 'async backing'
+ labels: |
+ T16-async_backing
diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml
index 903d7a3fcb3d94bb6913d94627418d9212397bf3..58065f369c9cf160b0b94c233df9df1016426d07 100644
--- a/.github/workflows/check-links.yml
+++ b/.github/workflows/check-links.yml
@@ -3,8 +3,8 @@ name: Check links
on:
pull_request:
paths:
- - "*.rs"
- - "*.prdoc"
+ - "**.rs"
+ - "**.prdoc"
- ".github/workflows/check-links.yml"
- ".config/lychee.toml"
types: [opened, synchronize, reopened, ready_for_review]
diff --git a/.github/workflows/fmt-check.yml b/.github/workflows/fmt-check.yml
index efcf278c46e83630a54fae3de01d0c9e19304dee..324c9bfff7a54cf594726328097f88bb23c9d951 100644
--- a/.github/workflows/fmt-check.yml
+++ b/.github/workflows/fmt-check.yml
@@ -15,7 +15,7 @@ jobs:
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
container:
- image: docker.io/paritytech/ci-unified:bullseye-1.75.0-2024-01-22-v20240109
+ image: docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
diff --git a/.github/workflows/quick-checks.yml b/.github/workflows/quick-checks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7bf1983a1f69c4de2d6611f0023216eaf2f55466
--- /dev/null
+++ b/.github/workflows/quick-checks.yml
@@ -0,0 +1,81 @@
+# Checks that doesn't require heavy lifting, like formatting, linting, etc.
+name: quick-checks
+
+on:
+ 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
+
+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.
+ runs-on: arc-runners-polkadot-sdk-default
+ timeout-minutes: 10
+ outputs:
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - id: set_image
+ run: cat .github/env >> $GITHUB_OUTPUT
+ fmt:
+ runs-on: arc-runners-polkadot-sdk-default
+ timeout-minutes: 10
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - name: Cargo fmt
+ run: cargo +nightly fmt --all -- --check
+ check-dependency-rules:
+ runs-on: arc-runners-polkadot-sdk-default
+ timeout-minutes: 10
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - name: check dependency rules
+ run: |
+ cd substrate/
+ ../.gitlab/ensure-deps.sh
+ check-rust-feature-propagation:
+ runs-on: arc-runners-polkadot-sdk-default
+ # runs-on: ubuntu-latest
+ timeout-minutes: 10
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - name: run zepter
+ run: zepter run check
+ test-rust-features:
+ runs-on: arc-runners-polkadot-sdk-default
+ # runs-on: ubuntu-latest
+ timeout-minutes: 10
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - name: run rust features
+ run: bash .gitlab/rust-features.sh .
+ check-toml-format:
+ runs-on: arc-runners-polkadot-sdk-default
+ timeout-minutes: 10
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - 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"
diff --git a/.github/workflows/release-30_publish_release_draft.yml b/.github/workflows/release-30_publish_release_draft.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a9e521051d04079a49af76c78681af8ae52ae5da
--- /dev/null
+++ b/.github/workflows/release-30_publish_release_draft.yml
@@ -0,0 +1,151 @@
+name: Release - Publish draft
+
+on:
+ push:
+ tags:
+ # Catches v1.2.3 and v1.2.3-rc1
+ - v[0-9]+.[0-9]+.[0-9]+*
+
+ workflow_dispatch:
+ inputs:
+ version:
+ description: Current release/rc version
+
+jobs:
+ get-rust-versions:
+ runs-on: ubuntu-latest
+ outputs:
+ rustc-stable: ${{ steps.get-rust-versions.outputs.stable }}
+ steps:
+ - id: get-rust-versions
+ run: |
+ RUST_STABLE_VERSION=$(curl -sS https://raw.githubusercontent.com/paritytech/scripts/master/dockerfiles/ci-unified/Dockerfile | grep -oP 'ARG RUST_STABLE_VERSION=\K[^ ]+')
+ echo "stable=$RUST_STABLE_VERSION" >> $GITHUB_OUTPUT
+
+ build-runtimes:
+ uses: "./.github/workflows/srtool.yml"
+ with:
+ excluded_runtimes: "substrate-test bp cumulus-test kitchensink minimal-template parachain-template penpal polkadot-test seedling shell frame-try sp solochain-template"
+
+ publish-release-draft:
+ runs-on: ubuntu-latest
+ needs: [get-rust-versions, build-runtimes]
+ outputs:
+ release_url: ${{ steps.create-release.outputs.html_url }}
+ asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+
+ - name: Prepare tooling
+ run: |
+ URL=https://github.com/chevdor/tera-cli/releases/download/v0.2.4/tera-cli_linux_amd64.deb
+ wget $URL -O tera.deb
+ sudo dpkg -i tera.deb
+
+ - name: Download artifacts
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+
+ - name: Prepare draft
+ id: draft
+ env:
+ RUSTC_STABLE: ${{ needs.get-rust-versions.outputs.rustc-stable }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ ASSET_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/asset-hub-rococo-runtime/asset-hub-rococo-srtool-digest.json
+ ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-runtime/asset-hub-westend-srtool-digest.json
+ BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-runtime/bridge-hub-rococo-srtool-digest.json
+ BRIDGE_HUB_WESTEND_DIGEST: ${{ github.workspace}}/bridge-hub-westend-runtime/bridge-hub-westend-srtool-digest.json
+ COLLECTIVES_WESTEND_DIGEST: ${{ github.workspace}}/collectives-westend-runtime/collectives-westend-srtool-digest.json
+ CONTRACTS_ROCOCO_DIGEST: ${{ github.workspace}}/contracts-rococo-runtime/contracts-rococo-srtool-digest.json
+ CORETIME_ROCOCO_DIGEST: ${{ github.workspace}}/coretime-rococo-runtime/coretime-rococo-srtool-digest.json
+ CORETIME_WESTEND_DIGEST: ${{ github.workspace}}/coretime-westend-runtime/coretime-westend-srtool-digest.json
+ GLUTTON_WESTEND_DIGEST: ${{ github.workspace}}/glutton-westend-runtime/glutton-westend-srtool-digest.json
+ PEOPLE_ROCOCO_DIGEST: ${{ github.workspace}}/people-rococo-runtime/people-rococo-srtool-digest.json
+ PEOPLE_WESTEND_DIGEST: ${{ github.workspace}}/people-westend-runtime/people-westend-srtool-digest.json
+ ROCOCO_DIGEST: ${{ github.workspace}}/rococo-runtime/rococo-srtool-digest.json
+ WESTEND_DIGEST: ${{ github.workspace}}/westend-runtime/westend-srtool-digest.json
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ export REF1=$(get_latest_release_tag)
+ if [[ -z "${{ inputs.version }}" ]]; then
+ export REF2="${{ github.ref_name }}"
+ else
+ export REF2="${{ inputs.version }}"
+ fi
+ echo "REL_TAG=$REF2" >> $GITHUB_ENV
+ export VERSION=$(echo "$REF2" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*$/\1/')
+
+ ./scripts/release/build-changelogs.sh
+
+ - name: Archive artifact context.json
+ uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ with:
+ name: release-notes-context
+ path: |
+ scripts/release/context.json
+ **/*-srtool-digest.json
+
+ - name: Create draft release
+ id: create-release
+ uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ env.REL_TAG }}
+ release_name: Polkadot ${{ env.REL_TAG }}
+ body_path: ${{ github.workspace}}/scripts/release/RELEASE_DRAFT.md
+ draft: true
+
+ publish-runtimes:
+ needs: [ build-runtimes, publish-release-draft ]
+ continue-on-error: true
+ runs-on: ubuntu-latest
+ strategy:
+ matrix: ${{ fromJSON(needs.build-runtimes.outputs.published_runtimes) }}
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+
+ - name: Download artifacts
+ uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
+
+ - name: Get runtime info
+ env:
+ JSON: release-notes-context/${{ matrix.chain }}-runtime/${{ matrix.chain }}-srtool-digest.json
+ run: |
+ >>$GITHUB_ENV echo ASSET=$(find ${{ matrix.chain }}-runtime -name '*.compact.compressed.wasm')
+ >>$GITHUB_ENV echo SPEC=$(<${JSON} jq -r .runtimes.compact.subwasm.core_version.specVersion)
+
+ - name: Upload compressed ${{ matrix.chain }} v${{ env.SPEC }} wasm
+ if: ${{ matrix.chain != 'rococo-parachain' }}
+ uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.publish-release-draft.outputs.asset_upload_url }}
+ asset_path: ${{ env.ASSET }}
+ asset_name: ${{ matrix.chain }}_runtime-v${{ env.SPEC }}.compact.compressed.wasm
+ asset_content_type: application/wasm
+
+ post_to_matrix:
+ runs-on: ubuntu-latest
+ needs: publish-release-draft
+ environment: release
+ strategy:
+ matrix:
+ channel:
+ - name: "Team: RelEng Internal"
+ room: '!GvAyzgCDgaVrvibaAF:parity.io'
+
+ steps:
+ - name: Send Matrix message to ${{ matrix.channel.name }}
+ uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
+ with:
+ room_id: ${{ matrix.channel.room }}
+ access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
+ server: m.parity.io
+ message: |
+ **New version of polkadot tagged**: ${{ github.ref_name }}
+ Draft release created: ${{ needs.publish-release-draft.outputs.release_url }}
diff --git a/.github/workflows/release-99_notif-published.yml b/.github/workflows/release-99_notif-published.yml
index 05c9d6a47f551860c51e318b01b495ca662e902e..b5b2ed38e845ea158d1c45c5da0e7d3358e77302 100644
--- a/.github/workflows/release-99_notif-published.yml
+++ b/.github/workflows/release-99_notif-published.yml
@@ -48,5 +48,3 @@ jobs:
Release version: [${{github.event.release.tag_name}}](${{github.event.release.html_url}})
-----
-
- ${{github.event.release.body}}
diff --git a/.github/workflows/review-bot.yml b/.github/workflows/review-bot.yml
index 5b036115b2386c366b2f1e78e9ce1dc7d526eedd..f1401406ae47afd3230cc163f35df0e3bcbac7b7 100644
--- a/.github/workflows/review-bot.yml
+++ b/.github/workflows/review-bot.yml
@@ -5,28 +5,41 @@ on:
- Review-Trigger
types:
- completed
+ workflow_dispatch:
+ inputs:
+ pr-number:
+ description: "Number of the PR to evaluate"
+ required: true
+ type: number
jobs:
review-approvals:
runs-on: ubuntu-latest
environment: master
steps:
+ - name: Generate token
+ id: app_token
+ uses: actions/create-github-app-token@v1.9.3
+ with:
+ app-id: ${{ secrets.REVIEW_APP_ID }}
+ private-key: ${{ secrets.REVIEW_APP_KEY }}
- name: Extract content of artifact
+ if: ${{ !inputs.pr-number }}
id: number
- uses: Bullrich/extract-text-from-artifact@v1.0.0
+ uses: Bullrich/extract-text-from-artifact@v1.0.1
with:
artifact-name: pr_number
- - name: Generate token
- id: app_token
- uses: tibdex/github-app-token@v1
- with:
- app_id: ${{ secrets.REVIEW_APP_ID }}
- private_key: ${{ secrets.REVIEW_APP_KEY }}
- name: "Evaluates PR reviews and assigns reviewers"
uses: paritytech/review-bot@v2.4.0
with:
repo-token: ${{ steps.app_token.outputs.token }}
team-token: ${{ steps.app_token.outputs.token }}
checks-token: ${{ steps.app_token.outputs.token }}
- pr-number: ${{ steps.number.outputs.content }}
+ # This is extracted from the triggering event
+ pr-number: ${{ inputs.pr-number || steps.number.outputs.content }}
request-reviewers: true
+ - name: Log payload
+ if: ${{ failure() || runner.debug }}
+ run: echo "::debug::$payload"
+ env:
+ payload: ${{ toJson(github.event) }}
diff --git a/.github/workflows/review-trigger.yml b/.github/workflows/review-trigger.yml
index 8b23dd30bb29ad7879543c064c3eb711cc87895d..ec4a62afc0c780fcb13e7bc73228bb2e77e6a582 100644
--- a/.github/workflows/review-trigger.yml
+++ b/.github/workflows/review-trigger.yml
@@ -21,6 +21,43 @@ jobs:
- name: Skip merge queue
if: ${{ contains(github.ref, 'gh-readonly-queue') }}
run: exit 0
+ - name: Get PR data
+ id: comments
+ run: |
+ echo "bodies=$(gh pr view ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --json comments --jq '[.comments[].body]')" >> "$GITHUB_OUTPUT"
+ echo "reviews=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews --jq '[.[].state]')" >> "$GITHUB_OUTPUT"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ - name: Fail when author pushes new code
+ # Require new reviews when the author is pushing and he is not a member
+ if: |
+ contains(fromJson(steps.comments.outputs.reviews), 'APPROVED') &&
+ github.event_name == 'pull_request_target' &&
+ github.event.action == 'synchronize' &&
+ github.event.sender.login == github.event.pull_request.user.login &&
+ github.event.pull_request.author_association != 'CONTRIBUTOR' &&
+ github.event.pull_request.author_association != 'MEMBER'
+ run: |
+ echo "User's association is ${{ github.event.pull_request.author_association }}"
+ # We get the list of reviewers who approved the PR
+ REVIEWERS=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews \
+ --jq '{reviewers: [.[] | select(.state == "APPROVED") | .user.login]}')
+
+ # We request them to review again
+ echo $REVIEWERS | gh api --method POST repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/requested_reviewers --input -
+
+ echo "::error::Project needs to be reviewed again"
+ exit 1
+ env:
+ GH_TOKEN: ${{ github.token }}
+ - name: Comment requirements
+ # If the previous step failed and github-actions hasn't commented yet we comment instructions
+ if: failure() && !contains(fromJson(steps.comments.outputs.bodies), 'Review required! Latest push from author must always be reviewed')
+ run: |
+ gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "Review required! Latest push from author must always be reviewed"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ COMMENTS: ${{ steps.comments.outputs.users }}
- name: Get PR number
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
@@ -28,7 +65,7 @@ jobs:
echo "Saving PR number: $PR_NUMBER"
mkdir -p ./pr
echo $PR_NUMBER > ./pr/pr_number
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
name: Save PR number
with:
name: pr_number
diff --git a/.github/workflows/srtool.yml b/.github/workflows/srtool.yml
index eb15538f559d2145700a73fb0e383d4103ce582a..95b1846b98e0c47cc6de2c92cadc16adc0cab487 100644
--- a/.github/workflows/srtool.yml
+++ b/.github/workflows/srtool.yml
@@ -12,6 +12,13 @@ on:
- release-v[0-9]+.[0-9]+.[0-9]+*
- release-cumulus-v[0-9]+*
- release-polkadot-v[0-9]+*
+ workflow_call:
+ inputs:
+ excluded_runtimes:
+ type: string
+ outputs:
+ published_runtimes:
+ value: ${{ jobs.find-runtimes.outputs.runtime }}
schedule:
- cron: "00 02 * * 1" # 2AM weekly on monday
@@ -39,7 +46,7 @@ jobs:
- name: Scan runtimes
env:
- EXCLUDED_RUNTIMES: "substrate-test"
+ EXCLUDED_RUNTIMES: ${{ inputs.excluded_runtimes }}:"substrate-test"
run: |
. ./.github/scripts/common/lib.sh
@@ -85,16 +92,6 @@ jobs:
echo "Compact Runtime: ${{ steps.srtool_build.outputs.wasm }}"
echo "Compressed Runtime: ${{ steps.srtool_build.outputs.wasm_compressed }}"
- # it takes a while to build the runtime, so let's save the artifact as soon as we have it
- - name: Archive Artifacts for ${{ matrix.chain }}
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
- with:
- name: ${{ matrix.chain }}-runtime
- path: |
- ${{ steps.srtool_build.outputs.wasm }}
- ${{ steps.srtool_build.outputs.wasm_compressed }}
- ${{ matrix.chain }}-srtool-digest.json
-
# We now get extra information thanks to subwasm
- name: Install subwasm
run: |
@@ -125,7 +122,7 @@ jobs:
tee ${{ matrix.chain }}-diff.txt
- name: Archive Subwasm results
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
+ uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: ${{ matrix.chain }}-runtime
path: |
@@ -133,3 +130,6 @@ jobs:
${{ matrix.chain }}-compressed-info.json
${{ matrix.chain }}-metadata.json
${{ matrix.chain }}-diff.txt
+ ${{ steps.srtool_build.outputs.wasm }}
+ ${{ steps.srtool_build.outputs.wasm_compressed }}
+ ${{ matrix.chain }}-srtool-digest.json
diff --git a/.github/workflows/subsystem-benchmarks.yml b/.github/workflows/subsystem-benchmarks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1a726b669e9094e8be53ef5a1ddb1b3198210d33
--- /dev/null
+++ b/.github/workflows/subsystem-benchmarks.yml
@@ -0,0 +1,55 @@
+# The actions takes json file as input and runs github-action-benchmark for it.
+
+on:
+ workflow_dispatch:
+ inputs:
+ benchmark-data-dir-path:
+ description: "Path to the benchmark data directory"
+ required: true
+ type: string
+ output-file-path:
+ description: "Path to the benchmark data file"
+ required: true
+ type: string
+
+jobs:
+ subsystem-benchmarks:
+ runs-on: ubuntu-latest
+ environment: subsystem-benchmarks
+ steps:
+ - name: Validate inputs
+ run: |
+ echo "${{ github.event.inputs.benchmark-data-dir-path }}" | grep -P '^[a-z\-]'
+ echo "${{ github.event.inputs.output-file-path }}" | grep -P '^[a-z\-]+\.json'
+
+ - name: Checkout Sources
+ uses: actions/checkout@v4.1.2
+ with:
+ fetch-depth: 0
+ ref: "gh-pages"
+
+ - name: Copy bench results
+ id: step_one
+ run: |
+ cp bench/gitlab/${{ github.event.inputs.output-file-path }} ${{ github.event.inputs.output-file-path }}
+
+ - name: Switch branch
+ id: step_two
+ run: |
+ git checkout master --
+
+ - uses: actions/create-github-app-token@v1
+ id: app-token
+ with:
+ app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
+ private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}
+
+ - name: Store benchmark result
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ github.event.inputs.benchmark-data-dir-path }}
+ output-file-path: ${{ github.event.inputs.output-file-path }}
+ benchmark-data-dir-path: "bench/${{ github.event.inputs.benchmark-data-dir-path }}"
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
diff --git a/.github/workflows/sync-templates.yml b/.github/workflows/sync-templates.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3617d6c34a3e342e1abd52acaffbf3a8c61ec43b
--- /dev/null
+++ b/.github/workflows/sync-templates.yml
@@ -0,0 +1,159 @@
+name: Synchronize templates
+
+
+# This job is used to keep the repository templates up-to-date.
+# The code of the templates exist inside the monorepo, and upon releases we synchronize the repositories:
+# - https://github.com/paritytech/polkadot-sdk-minimal-template
+# - https://github.com/paritytech/polkadot-sdk-parachain-template
+# - https://github.com/paritytech/polkadot-sdk-solochain-template
+#
+# The job moves the template code out of the monorepo,
+# replaces any references to the monorepo workspace using psvm and toml-cli,
+# checks that it builds successfully,
+# and commits and pushes the result to each respective repository.
+# If the build fails, a PR is created instead for manual inspection.
+
+
+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'
+ required: true
+
+
+jobs:
+ sync-templates:
+ runs-on: ubuntu-latest
+ environment: master
+ strategy:
+ fail-fast: false
+ matrix:
+ template: ["minimal", "solochain", "parachain"]
+ env:
+ template-path: "polkadot-sdk-${{ matrix.template }}-template"
+ steps:
+
+ # 1. Prerequisites.
+
+ - name: Configure git identity
+ 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
+ with:
+ path: polkadot-sdk
+ ref: "release-crates-io-v${{ github.event.inputs.crate_release_version }}"
+ - name: Generate a token for the template repository
+ id: app_token
+ uses: actions/create-github-app-token@v1.9.3
+ with:
+ owner: "paritytech"
+ repositories: "polkadot-sdk-${{ matrix.template }}-template"
+ app-id: ${{ secrets.TEMPLATE_APP_ID }}
+ private-key: ${{ secrets.TEMPLATE_APP_KEY }}
+ - uses: actions/checkout@v3
+ with:
+ repository: "paritytech/polkadot-sdk-${{ matrix.template }}-template"
+ path: "${{ env.template-path }}"
+ token: ${{ steps.app_token.outputs.token }}
+ - name: Install toml-cli
+ run: cargo install --git https://github.com/gnprice/toml-cli --rev ea69e9d2ca4f0f858110dc7a5ae28bcb918c07fb # v0.2.3
+ - name: Install Polkadot SDK Version Manager
+ run: cargo install --git https://github.com/paritytech/psvm psvm
+ - name: Rust compilation prerequisites
+ run: |
+ sudo apt update
+ sudo apt install -y \
+ 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 {} \;
+ working-directory: polkadot-sdk/templates/${{ matrix.template }}/
+ - name: Create a new workspace Cargo.toml
+ run: |
+ cat << EOF > Cargo.toml
+ [workspace.package]
+ license = "MIT-0"
+ authors = ["Parity Technologies "]
+ homepage = "https://substrate.io"
+
+ [workspace]
+ members = [
+ "node",
+ "pallets/template",
+ "runtime",
+ ]
+ resolver = "2"
+ EOF
+ shell: bash
+ working-directory: polkadot-sdk/templates/${{ matrix.template }}/
+ - name: Update workspace configuration
+ run: |
+ set -euo pipefail
+ # toml-cli has no overwrite functionality yet, so we use temporary files.
+ # We cannot pipe the output straight to the same file while the CLI still reads and processes it.
+
+ toml set templates/${{ matrix.template }}/Cargo.toml 'workspace.package.repository' "https://github.com/paritytech/polkadot-sdk-${{ matrix.template }}-template.git" > Cargo.temp
+ mv Cargo.temp ./templates/${{ matrix.template }}/Cargo.toml
+
+ toml set templates/${{ matrix.template }}/Cargo.toml 'workspace.package.edition' "$(toml get --raw Cargo.toml 'workspace.package.edition')" > Cargo.temp
+ mv Cargo.temp ./templates/${{ matrix.template }}/Cargo.toml
+
+ toml get Cargo.toml 'workspace.lints' --output-toml >> ./templates/${{ matrix.template }}/Cargo.toml
+
+ toml get Cargo.toml 'workspace.dependencies' --output-toml >> ./templates/${{ matrix.template }}/Cargo.toml
+ working-directory: polkadot-sdk
+ - name: Print the result Cargo.tomls for debugging
+ if: runner.debug == '1'
+ run: find . -type f -name 'Cargo.toml' -exec cat {} \;
+ working-directory: polkadot-sdk/templates/${{ matrix.template }}/
+
+ - name: Clean the destination repository
+ run: rm -rf ./*
+ working-directory: "${{ env.template-path }}"
+ - name: Copy over the new changes
+ run: |
+ cp -r polkadot-sdk/templates/${{ matrix.template }}/* "${{ env.template-path }}/"
+
+ # 3. Verify the build. Push the changes or create a PR.
+
+ # We've run into out-of-disk error when compiling in the next step, so we free up some space this way.
+ - name: Free Disk Space (Ubuntu)
+ uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # 1.3.1
+ with:
+ android: true # This alone is a 12 GB save.
+ # We disable the rest because it caused some problems. (they're enabled by default)
+ # The Android removal is enough.
+ dotnet: false
+ haskell: false
+ large-packages: false
+ swap-storage: false
+
+ - name: Check if it compiles
+ id: check-compilation
+ run: cargo check && cargo test
+ working-directory: "${{ env.template-path }}"
+ timeout-minutes: 90
+ - name: Create PR on failure
+ if: failure() && steps.check-compilation.outcome == 'failure'
+ uses: peter-evans/create-pull-request@5b4a9f6a9e2af26e5f02351490b90d01eb8ec1e5 # v5
+ with:
+ path: "${{ env.template-path }}"
+ token: ${{ steps.app_token.outputs.token }}
+ add-paths: |
+ ./*
+ title: "[Don't merge] Update the ${{ matrix.template }} template"
+ body: "The template has NOT been successfully built and needs to be inspected."
+ branch: "update-template/${{ github.event_name }}"
+ - name: Push changes
+ run: |
+ git add -A .
+ git commit --allow-empty -m "Update template triggered by ${{ github.event_name }}"
+ git push
+ working-directory: "${{ env.template-path }}"
diff --git a/.github/workflows/test-github-actions.yml b/.github/workflows/test-github-actions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e35ee09948634e37d4d601bea262140c87ff6c98
--- /dev/null
+++ b/.github/workflows/test-github-actions.yml
@@ -0,0 +1,57 @@
+name: test-github-actions
+
+on:
+ 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
+
+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.
+ 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-linux-stable-int:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ timeout-minutes: 30
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ RUSTFLAGS: "-C debug-assertions -D warnings"
+ RUST_BACKTRACE: 1
+ WASM_BUILD_NO_COLOR: 1
+ WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
+ # Ensure we run the UI tests.
+ RUN_UI_TESTS: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: WASM_BUILD_NO_COLOR=1 time cargo test -p staging-node-cli --release --locked -- --ignored
+ quick-benchmarks:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ timeout-minutes: 30
+ needs: [set-image]
+ container:
+ image: ${{ needs.set-image.outputs.IMAGE }}
+ env:
+ RUSTFLAGS: "-C debug-assertions -D warnings"
+ RUST_BACKTRACE: "full"
+ WASM_BUILD_NO_COLOR: 1
+ WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: time 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
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7f8796ca51248acb8be92fcb9f76e280b18e605e..5e57dd86f14166e695f1c64b6b5aee56529a4781 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -119,19 +119,26 @@ default:
#
.forklift-cache:
before_script:
- - 'curl --header "PRIVATE-TOKEN: $FL_CI_GROUP_TOKEN" -o forklift -L "${CI_API_V4_URL}/projects/676/packages/generic/forklift/${FL_FORKLIFT_VERSION}/forklift_${FL_FORKLIFT_VERSION}_linux_amd64"'
- - chmod +x forklift
- mkdir ~/.forklift
- cp $FL_FORKLIFT_CONFIG ~/.forklift/config.toml
- - shopt -s expand_aliases
- - export PATH=$PATH:$(pwd)
- - |
+ - >
if [ "$FORKLIFT_BYPASS" != "true" ]; then
- echo "FORKLIFT_BYPASS not set, creating alias cargo='forklift cargo'"
- alias cargo="forklift cargo"
+ echo "FORKLIFT_BYPASS not set";
+ if command -v forklift >/dev/null 2>&1; then
+ echo "forklift already exists";
+ forklift version
+ else
+ echo "forklift does not exist, downloading";
+ curl --header "PRIVATE-TOKEN: $FL_CI_GROUP_TOKEN" -o forklift -L "${CI_API_V4_URL}/projects/676/packages/generic/forklift/${FL_FORKLIFT_VERSION}/forklift_${FL_FORKLIFT_VERSION}_linux_amd64";
+ chmod +x forklift;
+ export PATH=$PATH:$(pwd);
+ echo ${FL_FORKLIFT_VERSION};
+ fi
+ echo "Creating alias cargo='forklift cargo'";
+ shopt -s expand_aliases;
+ alias cargo="forklift cargo";
fi
#
- - echo "FL_FORKLIFT_VERSION ${FL_FORKLIFT_VERSION}"
.common-refs:
rules:
@@ -147,6 +154,13 @@ default:
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- if: $CI_COMMIT_REF_NAME =~ /^gh-readonly-queue.*$/ # merge queues
+.publish-gh-pages-refs:
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "pipeline"
+ when: never
+ - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME == "master"
+
# handle the specific case where benches could store incorrect bench data because of the downstream staging runs
# exclude cargo-check-benches from such runs
.test-refs-check-benches:
diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml
index f8de6135572565d9d16465e68aa3f0bace915cc5..8658e92efc8f9f7ae463a67a52eaf3d3d37df2f7 100644
--- a/.gitlab/pipeline/build.yml
+++ b/.gitlab/pipeline/build.yml
@@ -91,7 +91,7 @@ build-rustdoc:
- .run-immediately
variables:
SKIP_WASM_BUILD: 1
- RUSTDOCFLAGS: "--default-theme=ayu --html-in-header ./docs/sdk/headers/header.html --extend-css ./docs/sdk/headers/theme.css"
+ RUSTDOCFLAGS: "-Dwarnings --default-theme=ayu --html-in-header ./docs/sdk/assets/header.html --extend-css ./docs/sdk/assets/theme.css --html-after-content ./docs/sdk/assets/after-content.html"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
when: on_success
@@ -99,32 +99,31 @@ build-rustdoc:
paths:
- ./crate-docs/
script:
- # FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features`
- - time cargo doc --features try-runtime,experimental --workspace --no-deps
+ - time cargo doc --all-features --workspace --no-deps
- rm -f ./target/doc/.lock
- mv ./target/doc ./crate-docs
# Inject Simple Analytics (https://www.simpleanalytics.com/) privacy preserving tracker into
# all .html files
- - |
+ - >
inject_simple_analytics() {
- local path="$1"
- local script_content=""
+ local path="$1";
+ local script_content="";
# Function that inject script into the head of an html file using sed.
process_file() {
- local file="$1"
- echo "Adding Simple Analytics script to $file"
- sed -i "s||$script_content|" "$file"
- }
- export -f process_file
- # xargs runs process_file in seperate shells without access to outer variables.
- # to make script_content available inside process_file, export it as an env var here.
- export script_content
+ local file="$1";
+ echo "Adding Simple Analytics script to $file";
+ sed -i "s||$script_content|" "$file";
+ };
+ export -f process_file;
+ # xargs runs process_file in separate shells without access to outer variables.
+ # make script_content available inside process_file, export it as an env var here.
+ export script_content;
# Modify .html files in parallel using xargs, otherwise it can take a long time.
- find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {}
- }
- inject_simple_analytics "./crate-docs"
+ find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {};
+ };
+ inject_simple_analytics "./crate-docs";
- echo "" > ./crate-docs/index.html
build-implementers-guide:
@@ -350,7 +349,7 @@ build-runtimes-polkavm:
- .run-immediately
# - .collect-artifact
variables:
- # this variable gets overriden by "rusty-cachier environment inject", use the value as default
+ # this variable gets overridden by "rusty-cachier environment inject", use the value as default
CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target"
before_script:
- mkdir -p ./artifacts/subkey
diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml
index 52da33550508ede16c9577346e6985d869b5e8ae..6fb8a97fe95821886c416d97224fb21fd0f2897b 100644
--- a/.gitlab/pipeline/check.yml
+++ b/.gitlab/pipeline/check.yml
@@ -7,8 +7,8 @@ cargo-clippy:
variables:
RUSTFLAGS: "-D warnings"
script:
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace
+ - SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace --quiet
+ - SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet
check-try-runtime:
stage: check
@@ -104,23 +104,20 @@ check-toml-format:
- .docker-env
- .test-pr-refs
script:
- - |
- export RUST_LOG=remote-ext=debug,runtime=debug
-
- echo "---------- Downloading try-runtime CLI ----------"
- curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.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} ----------"
+ - export RUST_LOG=remote-ext=debug,runtime=debug
+ - echo "---------- Downloading try-runtime CLI ----------"
+ - curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.4/try-runtime-x86_64-unknown-linux-musl -o try-runtime
+ - chmod +x ./try-runtime
+ - echo "Using try-runtime-cli version:"
+ - ./try-runtime --version
+ - echo "---------- Building ${PACKAGE} runtime ----------"
+ - time cargo build --release --locked -p "$PACKAGE" --features try-runtime
+ - echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------"
+ - >
time ./try-runtime ${COMMAND_EXTRA_ARGS} \
- --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \
- on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI}
- sleep 5
+ --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \
+ on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI}
+ - sleep 5
# Check runtime migrations for Parity managed relay chains
check-runtime-migration-westend:
@@ -135,7 +132,6 @@ check-runtime-migration-westend:
WASM: "westend_runtime.compact.compressed.wasm"
URI: "wss://westend-try-runtime-node.parity-chains.parity.io:443"
SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
- allow_failure: true
check-runtime-migration-rococo:
stage: check
diff --git a/.gitlab/pipeline/publish.yml b/.gitlab/pipeline/publish.yml
index b73acb560f67f93e540826b95fcf075374189846..68712610ad2361601af3763485d1ab3e6c158682 100644
--- a/.gitlab/pipeline/publish.yml
+++ b/.gitlab/pipeline/publish.yml
@@ -3,16 +3,13 @@
publish-rustdoc:
stage: publish
- extends: .kubernetes-env
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
variables:
CI_IMAGE: node:18
GIT_DEPTH: 100
RUSTDOCS_DEPLOY_REFS: "master"
- rules:
- - if: $CI_PIPELINE_SOURCE == "pipeline"
- when: never
- - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
- - if: $CI_COMMIT_REF_NAME == "master"
needs:
- job: build-rustdoc
artifacts: true
@@ -60,9 +57,84 @@ publish-rustdoc:
- git commit -m "___Updated docs for ${CI_COMMIT_REF_NAME}___" ||
echo "___Nothing to commit___"
- git push origin gh-pages --force
+ # artificial sleep to publish gh-pages
+ - sleep 300
+ after_script:
+ - rm -rf .git/ ./*
+
+publish-subsystem-benchmarks:
+ stage: publish
+ variables:
+ CI_IMAGE: "paritytech/tools:latest"
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
+ needs:
+ - job: subsystem-benchmark-availability-recovery
+ artifacts: true
+ - job: subsystem-benchmark-availability-distribution
+ artifacts: true
+ - job: subsystem-benchmark-approval-voting
+ artifacts: true
+ - job: publish-rustdoc
+ artifacts: false
+ script:
+ # setup ssh
+ - eval $(ssh-agent)
+ - ssh-add - <<< ${GITHUB_SSH_PRIV_KEY}
+ - mkdir ~/.ssh && touch ~/.ssh/known_hosts
+ - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
+ # Set git config
+ - rm -rf .git/config
+ - git config user.email "devops-team@parity.io"
+ - git config user.name "${GITHUB_USER}"
+ - git config remote.origin.url "git@github.com:/paritytech/${CI_PROJECT_NAME}.git"
+ - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
+ - git fetch origin gh-pages
+ # Push result to github
+ - git checkout gh-pages --force
+ - mkdir -p bench/gitlab/ || echo "Directory exists"
+ - rm -rf bench/gitlab/*.json || echo "No json files"
+ - cp -r charts/*.json bench/gitlab/
+ - git add bench/gitlab/
+ - git commit -m "Add json files with benchmark results for ${CI_COMMIT_REF_NAME}"
+ - git push origin gh-pages
+ # artificial sleep to publish gh-pages
+ - sleep 300
+ allow_failure: true
after_script:
- rm -rf .git/ ./*
+trigger_workflow:
+ stage: deploy
+ extends:
+ - .kubernetes-env
+ - .publish-gh-pages-refs
+ needs:
+ - job: publish-subsystem-benchmarks
+ artifacts: false
+ - job: subsystem-benchmark-availability-recovery
+ artifacts: true
+ - job: subsystem-benchmark-availability-distribution
+ artifacts: true
+ - job: subsystem-benchmark-approval-voting
+ artifacts: true
+ script:
+ - echo "Triggering workflow"
+ - >
+ for benchmark in $(ls charts/*.json); do
+ export benchmark_name=$(basename $benchmark);
+ echo "Benchmark: $benchmark_name";
+ export benchmark_dir=$(echo $benchmark_name | sed 's/\.json//');
+ curl -q -X POST \
+ -H "Accept: application/vnd.github.v3+json" \
+ -H "Authorization: token $GITHUB_TOKEN" \
+ https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/actions/workflows/subsystem-benchmarks.yml/dispatches \
+ -d "{\"ref\":\"refs/heads/master\",\"inputs\":{\"benchmark-data-dir-path\":\"$benchmark_dir\",\"output-file-path\":\"$benchmark_name\"}}";
+ sleep 300;
+ done
+ allow_failure: true
+
# note: images are used not only in zombienet but also in rococo, wococo and versi
.build-push-image:
image: $BUILDAH_IMAGE
diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml
index d244316000aaf152810c396e37e470694be506cc..c17a3ce35eaf54896e7d96e6cfefbb7edf53ced7 100644
--- a/.gitlab/pipeline/test.yml
+++ b/.gitlab/pipeline/test.yml
@@ -23,9 +23,8 @@ test-linux-stable:
- echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
# add experimental to features after https://github.com/paritytech/substrate/pull/14502 is merged
# "upgrade_version_checks_should_work" is currently failing
- - |
+ - >
time cargo nextest run \
- --filter-expr 'not deps(/polkadot-subsystem-bench/)' \
--workspace \
--locked \
--release \
@@ -35,7 +34,7 @@ test-linux-stable:
# Upload tests results to Elasticsearch
- echo "Upload test results to Elasticsearch"
- cat target/nextest/default/junit.xml | xq . > target/nextest/default/junit.json
- - |
+ - >
curl -v -XPOST --http1.1 \
-u ${ELASTIC_USERNAME}:${ELASTIC_PASSWORD} \
https://elasticsearch.parity-build.parity.io/unit-tests/_doc/${CI_JOB_ID} \
@@ -70,7 +69,7 @@ test-linux-stable-runtime-benchmarks:
# but still want to have debug assertions.
RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
script:
- - time cargo nextest run --filter-expr 'not deps(/polkadot-subsystem-bench/)' --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+ - time cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
# can be used to run all tests
# test-linux-stable-all:
@@ -88,7 +87,7 @@ test-linux-stable-runtime-benchmarks:
# script:
# # Build all but only execute 'runtime' tests.
# - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
-# - |
+# - >
# time cargo nextest run \
# --workspace \
# --locked \
@@ -323,7 +322,24 @@ quick-benchmarks:
WASM_BUILD_NO_COLOR: 1
WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
script:
- - time cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --execution wasm --wasm-execution compiled --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1
+ - 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:
+ - .docker-env
+ - .common-refs
+ - .run-immediately
+ variables:
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-C debug-assertions"
+ RUST_BACKTRACE: "full"
+ WASM_BUILD_NO_COLOR: 1
+ WASM_BUILD_RUSTFLAGS: "-C debug-assertions"
+ script:
+ - time cargo build --locked --quiet --release -p asset-hub-westend-runtime --features runtime-benchmarks
+ - time cargo run --locked --release -p frame-omni-bencher --quiet -- v1 benchmark pallet --runtime target/release/wbuild/asset-hub-westend-runtime/asset_hub_westend_runtime.compact.compressed.wasm --all --steps 2 --repeat 1 --quiet
test-frame-examples-compile-to-wasm:
# into one job
@@ -495,14 +511,38 @@ test-syscalls:
fi
allow_failure: false # this rarely triggers in practice
-subsystem-regression-tests:
+.subsystem-benchmark-template:
stage: test
+ artifacts:
+ name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
+ when: always
+ expire_in: 1 hour
+ paths:
+ - charts/
extends:
- .docker-env
- .common-refs
- .run-immediately
- script:
- - cargo bench --profile=testnet -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks
tags:
- benchmark
+
+subsystem-benchmark-availability-recovery:
+ extends:
+ - .subsystem-benchmark-template
+ script:
+ - cargo bench -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks
+ allow_failure: true
+
+subsystem-benchmark-availability-distribution:
+ extends:
+ - .subsystem-benchmark-template
+ script:
+ - cargo bench -p polkadot-availability-distribution --bench availability-distribution-regression-bench --features subsystem-benchmarks
+ allow_failure: true
+
+subsystem-benchmark-approval-voting:
+ extends:
+ - .subsystem-benchmark-template
+ script:
+ - cargo bench -p polkadot-node-core-approval-voting --bench approval-voting-regression-bench --features subsystem-benchmarks
allow_failure: true
diff --git a/.gitlab/pipeline/zombienet.yml b/.gitlab/pipeline/zombienet.yml
index 8d308714fab3cb44827bb202fce0939f52f730ad..52948e1eb719d9f8669523d9762f5662fd1b6e96 100644
--- a/.gitlab/pipeline/zombienet.yml
+++ b/.gitlab/pipeline/zombienet.yml
@@ -1,7 +1,8 @@
.zombienet-refs:
extends: .build-refs
variables:
- ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.95"
+ ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.99"
+ PUSHGATEWAY_URL: "http://zombienet-prometheus-pushgateway.managed-monitoring:9091/metrics/job/zombie-metrics"
include:
# substrate tests
diff --git a/.gitlab/pipeline/zombienet/bridges.yml b/.gitlab/pipeline/zombienet/bridges.yml
index 4278f59b1e9a2e33f32bf255436d6af5d31b30fb..9d7a8b9311934a148e855caf7c4315d8a281aed1 100644
--- a/.gitlab/pipeline/zombienet/bridges.yml
+++ b/.gitlab/pipeline/zombienet/bridges.yml
@@ -55,9 +55,9 @@ zombienet-bridges-0001-asset-transfer-works:
- /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0001-asset-transfer --docker
- echo "Done"
-zombienet-bridges-0002-mandatory-headers-synced-while-idle:
+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-mandatory-headers-synced-while-idle --docker
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0002-free-headers-synced-while-idle --docker
- echo "Done"
diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml
index 97572f029d0020f090a8fd16839028ac9f088cf9..38c5332f309703dab881d1df88709fc4fe95e49c 100644
--- a/.gitlab/pipeline/zombienet/polkadot.yml
+++ b/.gitlab/pipeline/zombienet/polkadot.yml
@@ -158,13 +158,31 @@ zombienet-polkadot-functional-0011-async-backing-6-seconds-rate:
--local-dir="${LOCAL_DIR}/functional"
--test="0011-async-backing-6-seconds-rate.zndsl"
-zombienet-polkadot-functional-0012-elastic-scaling-mvp:
+zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
+ extends:
+ - .zombienet-polkadot-common
+ variables:
+ FORCED_INFRA_INSTANCE: "spot-iops"
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/elastic_scaling"
+ --test="0001-basic-3cores-6s-blocks.zndsl"
+
+zombienet-polkadot-elastic-scaling-0002-elastic-scaling-doesnt-break-parachains:
+ extends:
+ - .zombienet-polkadot-common
+ script:
+ - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+ --local-dir="${LOCAL_DIR}/elastic_scaling"
+ --test="0002-elastic-scaling-doesnt-break-parachains.zndsl"
+
+zombienet-polkadot-functional-0012-spam-statement-distribution-requests:
extends:
- .zombienet-polkadot-common
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
--local-dir="${LOCAL_DIR}/functional"
- --test="0012-elastic-scaling-mvp.zndsl"
+ --test="0012-spam-statement-distribution-requests.zndsl"
zombienet-polkadot-smoke-0001-parachains-smoke-test:
extends:
diff --git a/.gitlab/rust-features.sh b/.gitlab/rust-features.sh
index c0ac192a6ec69ba16abb3bad2ec49de7e9cebb61..c3ec61ab8714768c9a49f2eb2e1e544706a1d875 100755
--- a/.gitlab/rust-features.sh
+++ b/.gitlab/rust-features.sh
@@ -15,7 +15,7 @@
#
# The steps of this script:
# 1. Check that all required dependencies are installed.
-# 2. Check that all rules are fullfilled for the whole workspace. If not:
+# 2. Check that all rules are fulfilled for the whole workspace. If not:
# 4. Check all crates to find the offending ones.
# 5. Print all offending crates and exit with code 1.
#
diff --git a/BRIDGES.md b/BRIDGES.md
deleted file mode 100644
index a6f00aec09283e10d1a697bcef3f523881941663..0000000000000000000000000000000000000000
--- a/BRIDGES.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# Using Parity Bridges Common dependency (`git subtree`)
-
-In `./bridges` sub-directory you can find a `git subtree` imported version of:
-[`parity-bridges-common`](https://github.com/paritytech/parity-bridges-common/) repository.
-
-(For regular Cumulus contributor 1. is relevant) \
-(For Cumulus maintainer 1. and 2. are relevant) \
-(For Bridges team 1. and 2. and 3. are relevant)
-
-## How to fix broken Bridges code?
-
-To fix Bridges code simply create a commit in current (`Cumulus`) repo. Best if
-the commit is isolated to changes in `./bridges` sub-directory, because it makes
-it easier to import that change back to upstream repo.
-
-(Any changes to `bridges` subtree require Bridges team approve and they should manage backport to Bridges repo)
-
-
-## How to pull latest Bridges code to the `bridges` subtree
-(in practice)
-
-The `bridges` repo has a stabilized branch `polkadot-staging` dedicated for releasing.
-
-```
-cd
-
-# this will update new git branches from bridges repo
-# there could be unresolved conflicts, but don't worry,
-# lots of them are caused because of removed unneeded files with patch step,
-BRANCH=polkadot-staging ./scripts/bridges_update_subtree.sh fetch
-
-# so, after fetch and before solving conflicts just run patch,
-# this will remove unneeded files and checks if subtree modules compiles
-./scripts/bridges_update_subtree.sh patch
-
-# if there are conflicts, this could help,
-# this removes locally deleted files at least (move changes to git stash for commit)
-./scripts/bridges_update_subtree.sh merge
-
-# (optional) when conflicts resolved, you can check build again - should pass
-# also important: this updates global Cargo.lock
-./scripts/bridges_update_subtree.sh patch
-
-# add changes to the commit, first command `fetch` starts merge,
-# so after all conflicts are solved and patch passes and compiles,
-# then we need to finish merge with:
-git merge --continue
-```
-
-## How to pull latest Bridges code or contribute back?
-(in theory)
-
-Note that it's totally fine to ping the **Bridges Team** to do that for you. The point
-of adding the code as `git subtree` is to **reduce maintenance cost** for Cumulus/Polkadot
-developers.
-
-If you still would like to either update the code to match latest code from the repo
-or create an upstream PR read below. The following commands should be run in the
-current (`polkadot`) repo.
-
-### Add Bridges repo as a local remote
-```
-git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git
-```
-
-If you plan to contribute back, consider forking the repository on Github and adding
-your personal fork as a remote as well.
-```
-git remote add -f my-bridges git@github.com:tomusdrw/parity-bridges-common.git
-```
-
-### To update Bridges
-```
-git fetch bridges polkadot-staging
-git subtree pull --prefix=bridges bridges polkadot-staging --squash
-```
-
-We use `--squash` to avoid adding individual commits and rather squashing them
-all into one.
-
-### Clean unneeded files here
-```
-./bridges/scripts/verify-pallets-build.sh --ignore-git-state --no-revert
-```
-
-### Contributing back to Bridges (creating upstream PR)
-```
-git subtree push --prefix=bridges my-bridges polkadot-staging
-```
-This command will push changes to your personal fork of Bridges repo, from where
-you can simply create a PR to the main repo.
diff --git a/Cargo.lock b/Cargo.lock
index 087d5ad3cec361ced8dda1339c0135cfbb70da14..983e0b8c401bef8a96b5700546a9069d02274d42 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -42,15 +42,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
-[[package]]
-name = "aead"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
-dependencies = [
- "generic-array 0.14.7",
-]
-
[[package]]
name = "aead"
version = "0.5.2"
@@ -61,18 +52,6 @@ dependencies = [
"generic-array 0.14.7",
]
-[[package]]
-name = "aes"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
-dependencies = [
- "cfg-if",
- "cipher 0.3.0",
- "cpufeatures",
- "opaque-debug 0.3.0",
-]
-
[[package]]
name = "aes"
version = "0.8.3"
@@ -84,31 +63,17 @@ dependencies = [
"cpufeatures",
]
-[[package]]
-name = "aes-gcm"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f"
-dependencies = [
- "aead 0.4.3",
- "aes 0.7.5",
- "cipher 0.3.0",
- "ctr 0.7.0",
- "ghash 0.4.4",
- "subtle 2.5.0",
-]
-
[[package]]
name = "aes-gcm"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
dependencies = [
- "aead 0.5.2",
- "aes 0.8.3",
+ "aead",
+ "aes",
"cipher 0.4.4",
- "ctr 0.9.2",
- "ghash 0.5.0",
+ "ctr",
+ "ghash",
"subtle 2.5.0",
]
@@ -165,7 +130,7 @@ dependencies = [
"hex-literal",
"itoa",
"proptest",
- "rand",
+ "rand 0.8.5",
"ruint",
"serde",
"tiny-keccak",
@@ -177,23 +142,11 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef"
dependencies = [
- "alloy-rlp-derive",
"arrayvec 0.7.4",
"bytes",
"smol_str",
]
-[[package]]
-name = "alloy-rlp-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0391754c09fab4eae3404d19d0d297aa1c670c1775ab51d8a5312afeca23157"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.53",
-]
-
[[package]]
name = "alloy-sol-macro"
version = "0.4.2"
@@ -204,8 +157,8 @@ dependencies = [
"dunce",
"heck 0.4.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
"syn-solidity",
"tiny-keccak",
@@ -275,9 +228,9 @@ dependencies = [
[[package]]
name = "anstyle"
-version = "1.0.2"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
[[package]]
name = "anstyle-parse"
@@ -322,20 +275,6 @@ dependencies = [
"num-traits",
]
-[[package]]
-name = "aquamarine"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760"
-dependencies = [
- "include_dir",
- "itertools 0.10.5",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
[[package]]
name = "aquamarine"
version = "0.5.0"
@@ -345,8 +284,8 @@ dependencies = [
"include_dir",
"itertools 0.10.5",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -542,7 +481,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
dependencies = [
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -552,7 +491,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
dependencies = [
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -564,7 +503,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
dependencies = [
"num-bigint",
"num-traits",
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -576,8 +515,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"
dependencies = [
"num-bigint",
"num-traits",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -678,8 +617,8 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -690,7 +629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -700,7 +639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
"rayon",
]
@@ -719,15 +658,9 @@ dependencies = [
[[package]]
name = "array-bytes"
-version = "4.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6"
-
-[[package]]
-name = "array-bytes"
-version = "6.1.0"
+version = "6.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b1c5a481ec30a5abd8dfbd94ab5cf1bb4e9a66be7f1b3b322f2f1170c200fd"
+checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0"
[[package]]
name = "arrayref"
@@ -772,8 +705,8 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -784,8 +717,8 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -821,6 +754,7 @@ dependencies = [
"parachains-common",
"rococo-emulated-chain",
"sp-core",
+ "staging-xcm",
"testnet-parachains-constants",
]
@@ -838,16 +772,19 @@ dependencies = [
"pallet-assets",
"pallet-balances",
"pallet-message-queue",
+ "pallet-treasury",
+ "pallet-utility",
"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",
- "testnet-parachains-constants",
]
[[package]]
@@ -867,6 +804,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -878,6 +816,7 @@ dependencies = [
"hex-literal",
"log",
"pallet-asset-conversion",
+ "pallet-asset-conversion-ops",
"pallet-asset-conversion-tx-payment",
"pallet-assets",
"pallet-aura",
@@ -928,6 +867,7 @@ dependencies = [
"staging-xcm-executor",
"substrate-wasm-builder",
"testnet-parachains-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -940,6 +880,7 @@ dependencies = [
"frame-support",
"parachains-common",
"sp-core",
+ "staging-xcm",
"testnet-parachains-constants",
"westend-emulated-chain",
]
@@ -968,7 +909,6 @@ dependencies = [
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
- "testnet-parachains-constants",
"westend-runtime",
"westend-system-emulated-network",
]
@@ -990,6 +930,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -1001,6 +942,7 @@ dependencies = [
"hex-literal",
"log",
"pallet-asset-conversion",
+ "pallet-asset-conversion-ops",
"pallet-asset-conversion-tx-payment",
"pallet-assets",
"pallet-aura",
@@ -1014,6 +956,7 @@ dependencies = [
"pallet-nfts-runtime-api",
"pallet-proxy",
"pallet-session",
+ "pallet-state-trie-migration",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
@@ -1048,6 +991,7 @@ dependencies = [
"substrate-wasm-builder",
"testnet-parachains-constants",
"westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -1102,6 +1046,16 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "async-attributes"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+dependencies = [
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
[[package]]
name = "async-channel"
version = "1.9.0"
@@ -1109,7 +1063,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [
"concurrent-queue",
- "event-listener 2.5.3",
+ "event-listener",
"futures-core",
]
@@ -1119,7 +1073,7 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
dependencies = [
- "async-lock 2.8.0",
+ "async-lock",
"async-task",
"concurrent-queue",
"fastrand 1.9.0",
@@ -1133,19 +1087,34 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
dependencies = [
- "async-lock 2.8.0",
+ "async-lock",
"autocfg",
"blocking",
"futures-lite",
]
+[[package]]
+name = "async-global-executor"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "blocking",
+ "futures-lite",
+ "once_cell",
+]
+
[[package]]
name = "async-io"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
- "async-lock 2.8.0",
+ "async-lock",
"autocfg",
"cfg-if",
"concurrent-queue",
@@ -1165,18 +1134,7 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
- "event-listener 2.5.3",
-]
-
-[[package]]
-name = "async-lock"
-version = "3.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
-dependencies = [
- "event-listener 4.0.3",
- "event-listener-strategy",
- "pin-project-lite 0.2.12",
+ "event-listener",
]
[[package]]
@@ -1198,17 +1156,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
dependencies = [
"async-io",
- "async-lock 2.8.0",
+ "async-lock",
"autocfg",
"blocking",
"cfg-if",
- "event-listener 2.5.3",
+ "event-listener",
"futures-lite",
"rustix 0.37.23",
"signal-hook",
"windows-sys 0.48.0",
]
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-attributes",
+ "async-channel",
+ "async-global-executor",
+ "async-io",
+ "async-lock",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite 0.2.12",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
[[package]]
name = "async-stream"
version = "0.3.5"
@@ -1226,8 +1211,8 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -1239,12 +1224,12 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
-version = "0.1.74"
+version = "0.1.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -1291,8 +1276,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
dependencies = [
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -1302,6 +1287,17 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+[[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom 0.2.10",
+ "instant",
+ "rand 0.8.5",
+]
+
[[package]]
name = "backtrace"
version = "0.3.69"
@@ -1334,7 +1330,7 @@ dependencies = [
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"ring 0.1.0",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sp-ark-bls12-381",
"sp-ark-ed-on-bls12-381-bandersnatch",
"zeroize",
@@ -1392,8 +1388,8 @@ dependencies = [
name = "binary-merkle-tree"
version = "13.0.0"
dependencies = [
- "array-bytes 6.1.0",
- "env_logger 0.9.3",
+ "array-bytes",
+ "env_logger 0.11.3",
"hash-db",
"log",
"sp-core",
@@ -1422,8 +1418,8 @@ dependencies = [
"lazycell",
"peeking_take_while",
"prettyplease 0.2.12",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"rustc-hash",
"shlex",
@@ -1594,7 +1590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
dependencies = [
"async-channel",
- "async-lock 2.8.0",
+ "async-lock",
"async-task",
"atomic-waker",
"fastrand 1.9.0",
@@ -1644,6 +1640,23 @@ dependencies = [
"scale-info",
]
+[[package]]
+name = "bp-beefy"
+version = "0.1.0"
+dependencies = [
+ "binary-merkle-tree",
+ "bp-runtime",
+ "frame-support",
+ "pallet-beefy-mmr",
+ "pallet-mmr",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
[[package]]
name = "bp-bridge-hub-cumulus"
version = "0.7.0"
@@ -1878,7 +1891,7 @@ dependencies = [
"bp-parachains",
"bp-polkadot-core",
"bp-runtime",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"finality-grandpa",
"parity-scale-codec",
"sp-application-crypto",
@@ -1920,7 +1933,7 @@ dependencies = [
[[package]]
name = "bridge-hub-common"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1952,7 +1965,6 @@ name = "bridge-hub-rococo-integration-tests"
version = "1.0.0"
dependencies = [
"asset-hub-rococo-runtime",
- "bp-messages",
"bridge-hub-rococo-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
@@ -1970,7 +1982,6 @@ dependencies = [
"rococo-westend-system-emulated-network",
"scale-info",
"snowbridge-core",
- "snowbridge-pallet-inbound-queue",
"snowbridge-pallet-inbound-queue-fixtures",
"snowbridge-pallet-outbound-queue",
"snowbridge-pallet-system",
@@ -2010,6 +2021,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2078,6 +2090,7 @@ dependencies = [
"static_assertions",
"substrate-wasm-builder",
"testnet-parachains-constants",
+ "tuplex",
]
[[package]]
@@ -2136,7 +2149,6 @@ dependencies = [
name = "bridge-hub-westend-integration-tests"
version = "1.0.0"
dependencies = [
- "bp-messages",
"bridge-hub-westend-runtime",
"cumulus-pallet-xcmp-queue",
"emulated-integration-tests-common",
@@ -2180,6 +2192,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2236,6 +2249,7 @@ dependencies = [
"static_assertions",
"substrate-wasm-builder",
"testnet-parachains-constants",
+ "tuplex",
"westend-runtime-constants",
]
@@ -2274,6 +2288,7 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"static_assertions",
+ "tuplex",
]
[[package]]
@@ -2406,6 +2421,12 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+[[package]]
+name = "castaway"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+
[[package]]
name = "cc"
version = "1.0.83"
@@ -2456,18 +2477,6 @@ dependencies = [
"keystream",
]
-[[package]]
-name = "chacha20"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6"
-dependencies = [
- "cfg-if",
- "cipher 0.3.0",
- "cpufeatures",
- "zeroize",
-]
-
[[package]]
name = "chacha20"
version = "0.9.1"
@@ -2481,14 +2490,14 @@ dependencies = [
[[package]]
name = "chacha20poly1305"
-version = "0.9.1"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5"
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
dependencies = [
- "aead 0.4.3",
- "chacha20 0.8.2",
- "cipher 0.3.0",
- "poly1305 0.7.2",
+ "aead",
+ "chacha20",
+ "cipher 0.4.4",
+ "poly1305",
"zeroize",
]
@@ -2547,19 +2556,23 @@ dependencies = [
]
[[package]]
-name = "cipher"
-version = "0.2.5"
+name = "cid"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
+checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3"
dependencies = [
- "generic-array 0.14.7",
+ "core2",
+ "multibase",
+ "multihash 0.18.1",
+ "serde",
+ "unsigned-varint",
]
[[package]]
name = "cipher"
-version = "0.3.0"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
dependencies = [
"generic-array 0.14.7",
]
@@ -2572,6 +2585,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
"crypto-common",
"inout",
+ "zeroize",
]
[[package]]
@@ -2594,6 +2608,21 @@ dependencies = [
"libloading",
]
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
+ "textwrap 0.11.0",
+ "unicode-width",
+ "vec_map",
+]
+
[[package]]
name = "clap"
version = "3.2.25"
@@ -2608,7 +2637,7 @@ dependencies = [
"once_cell",
"strsim 0.10.0",
"termcolor",
- "textwrap",
+ "textwrap 0.16.0",
]
[[package]]
@@ -2623,9 +2652,9 @@ dependencies = [
[[package]]
name = "clap-num"
-version = "1.1.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7"
+checksum = "488557e97528174edaa2ee268b23a809e0c598213a4bbcb4f34575a46fda147e"
dependencies = [
"num-traits",
]
@@ -2660,8 +2689,8 @@ checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
dependencies = [
"heck 0.4.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -2672,8 +2701,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
dependencies = [
"heck 0.5.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -2727,6 +2756,36 @@ dependencies = [
"testnet-parachains-constants",
]
+[[package]]
+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",
+ "frame-support",
+ "pallet-asset-rate",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-treasury",
+ "pallet-utility",
+ "pallet-xcm",
+ "parachains-common",
+ "parity-scale-codec",
+ "polkadot-runtime-common",
+ "sp-runtime",
+ "staging-xcm",
+ "staging-xcm-executor",
+ "testnet-parachains-constants",
+ "westend-runtime",
+ "westend-runtime-constants",
+ "westend-system-emulated-network",
+]
+
[[package]]
name = "collectives-westend-runtime"
version = "3.0.0"
@@ -2738,6 +2797,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -2766,6 +2826,7 @@ dependencies = [
"pallet-salary",
"pallet-scheduler",
"pallet-session",
+ "pallet-state-trie-migration",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
@@ -2830,8 +2891,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b"
dependencies = [
"nom",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -2843,14 +2904,25 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "colored"
-version = "2.1.0"
+version = "2.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
dependencies = [
+ "is-terminal",
"lazy_static",
"windows-sys 0.48.0",
]
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
[[package]]
name = "comfy-table"
version = "7.1.0"
@@ -2992,6 +3064,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3086,6 +3159,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3150,6 +3224,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
@@ -3337,6 +3412,21 @@ dependencies = [
"wasmtime-types",
]
+[[package]]
+name = "crc"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2b432c56615136f8dba245fed7ec3d5518c500a31108661067e61e72fe7e6bc"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
[[package]]
name = "crc32fast"
version = "1.3.2"
@@ -3348,20 +3438,20 @@ dependencies = [
[[package]]
name = "criterion"
-version = "0.4.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
dependencies = [
"anes",
- "atty",
"cast",
"ciborium",
- "clap 3.2.25",
+ "clap 4.5.3",
"criterion-plot",
"futures",
+ "is-terminal",
"itertools 0.10.5",
- "lazy_static",
"num-traits",
+ "once_cell",
"oorandom",
"plotters",
"rayon",
@@ -3375,53 +3465,15 @@ dependencies = [
]
[[package]]
-name = "criterion"
-version = "0.5.1"
+name = "criterion-plot"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
-dependencies = [
- "anes",
- "cast",
- "ciborium",
- "clap 4.5.3",
- "criterion-plot",
- "futures",
- "is-terminal",
- "itertools 0.10.5",
- "num-traits",
- "once_cell",
- "oorandom",
- "plotters",
- "rayon",
- "regex",
- "serde",
- "serde_derive",
- "serde_json",
- "tinytemplate",
- "tokio",
- "walkdir",
-]
-
-[[package]]
-name = "criterion-plot"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
dependencies = [
"cast",
"itertools 0.10.5",
]
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
[[package]]
name = "crossbeam-deque"
version = "0.8.3"
@@ -3514,15 +3566,6 @@ dependencies = [
"subtle 2.5.0",
]
-[[package]]
-name = "ctr"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481"
-dependencies = [
- "cipher 0.3.0",
-]
-
[[package]]
name = "ctr"
version = "0.9.2"
@@ -3759,7 +3802,7 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"portpicker",
- "rand",
+ "rand 0.8.5",
"sc-cli",
"sc-client-api",
"sc-consensus",
@@ -3802,6 +3845,7 @@ dependencies = [
"sp-blockchain",
"sp-consensus",
"sp-core",
+ "sp-io",
"sp-runtime",
"sp-transaction-pool",
]
@@ -3854,6 +3898,7 @@ dependencies = [
"cumulus-primitives-proof-size-hostfunction",
"cumulus-test-client",
"cumulus-test-relay-sproof-builder",
+ "cumulus-test-runtime",
"environmental",
"frame-benchmarking",
"frame-support",
@@ -3868,9 +3913,10 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"polkadot-runtime-parachains",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"scale-info",
+ "sp-consensus-slots",
"sp-core",
"sp-crypto-hashing",
"sp-externalities 0.25.0",
@@ -3893,8 +3939,8 @@ name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.6.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -4047,7 +4093,7 @@ dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-proof-size-hostfunction",
"cumulus-test-runtime",
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -4141,7 +4187,7 @@ dependencies = [
name = "cumulus-relay-chain-minimal-node"
version = "0.7.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-trait",
"cumulus-primitives-core",
"cumulus-relay-chain-interface",
@@ -4192,7 +4238,7 @@ dependencies = [
"parity-scale-codec",
"pin-project",
"polkadot-overseer",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-rpc-api",
"sc-service",
@@ -4235,15 +4281,19 @@ dependencies = [
"polkadot-primitives",
"sc-block-builder",
"sc-consensus",
+ "sc-consensus-aura",
"sc-executor",
"sc-executor-common",
"sc-service",
"sp-api",
+ "sp-application-crypto",
"sp-blockchain",
+ "sp-consensus-aura",
"sp-core",
"sp-inherents",
"sp-io",
"sp-keyring",
+ "sp-keystore",
"sp-runtime",
"sp-timestamp",
"substrate-test-client",
@@ -4266,16 +4316,22 @@ dependencies = [
name = "cumulus-test-runtime"
version = "0.1.0"
dependencies = [
+ "cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
+ "cumulus-primitives-aura",
"cumulus-primitives-core",
"cumulus-primitives-storage-weight-reclaim",
"frame-executive",
"frame-support",
"frame-system",
"frame-system-rpc-runtime-api",
+ "pallet-aura",
+ "pallet-authorship",
"pallet-balances",
+ "pallet-collator-selection",
"pallet-glutton",
"pallet-message-queue",
+ "pallet-session",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -4283,6 +4339,7 @@ dependencies = [
"scale-info",
"sp-api",
"sp-block-builder",
+ "sp-consensus-aura",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
@@ -4302,9 +4359,12 @@ version = "0.1.0"
dependencies = [
"async-trait",
"clap 4.5.3",
- "criterion 0.5.1",
+ "criterion",
"cumulus-client-cli",
+ "cumulus-client-collator",
+ "cumulus-client-consensus-aura",
"cumulus-client-consensus-common",
+ "cumulus-client-consensus-proposer",
"cumulus-client-consensus-relay-chain",
"cumulus-client-parachain-inherent",
"cumulus-client-pov-recovery",
@@ -4322,7 +4382,6 @@ dependencies = [
"frame-system-rpc-runtime-api",
"futures",
"jsonrpsee",
- "pallet-im-online",
"pallet-timestamp",
"pallet-transaction-payment",
"parachains-common",
@@ -4334,7 +4393,7 @@ dependencies = [
"polkadot-service",
"polkadot-test-service",
"portpicker",
- "rand",
+ "rand 0.8.5",
"rococo-parachain-runtime",
"sc-basic-authorship",
"sc-block-builder",
@@ -4342,6 +4401,7 @@ dependencies = [
"sc-cli",
"sc-client-api",
"sc-consensus",
+ "sc-consensus-aura",
"sc-executor",
"sc-executor-common",
"sc-executor-wasmtime",
@@ -4358,6 +4418,7 @@ dependencies = [
"sp-authority-discovery",
"sp-blockchain",
"sp-consensus",
+ "sp-consensus-aura",
"sp-consensus-grandpa",
"sp-core",
"sp-io",
@@ -4374,6 +4435,37 @@ dependencies = [
"url",
]
+[[package]]
+name = "curl"
+version = "0.4.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2 0.5.6",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.72+curl-8.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "windows-sys 0.52.0",
+]
+
[[package]]
name = "curve25519-dalek"
version = "3.2.0"
@@ -4410,8 +4502,8 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -4449,8 +4541,8 @@ dependencies = [
"cc",
"codespan-reporting",
"once_cell",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"scratch",
"syn 2.0.53",
]
@@ -4467,8 +4559,8 @@ version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -4556,8 +4648,8 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -4567,11 +4659,22 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "derive-syn-parse"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
+dependencies = [
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "derive_more"
version = "0.99.17"
@@ -4579,8 +4682,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustc_version 0.4.0",
"syn 1.0.109",
]
@@ -4675,8 +4778,8 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -4719,50 +4822,24 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]]
name = "docify"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4"
-dependencies = [
- "docify_macros 0.1.16",
-]
-
-[[package]]
-name = "docify"
-version = "0.2.7"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2"
+checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce"
dependencies = [
- "docify_macros 0.2.7",
+ "docify_macros",
]
[[package]]
name = "docify_macros"
-version = "0.1.16"
+version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7"
+checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad"
dependencies = [
"common-path",
- "derive-syn-parse",
- "lazy_static",
- "proc-macro2",
- "quote",
- "regex",
- "syn 2.0.53",
- "termcolor",
- "walkdir",
-]
-
-[[package]]
-name = "docify_macros"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460"
-dependencies = [
- "common-path",
- "derive-syn-parse",
+ "derive-syn-parse 0.2.0",
"once_cell",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"syn 2.0.53",
"termcolor",
@@ -4810,8 +4887,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -4832,10 +4909,19 @@ dependencies = [
"elliptic-curve",
"rfc6979",
"serdect",
- "signature",
+ "signature 2.1.0",
"spki",
]
+[[package]]
+name = "ed25519"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
+dependencies = [
+ "signature 1.6.4",
+]
+
[[package]]
name = "ed25519"
version = "2.2.2"
@@ -4843,35 +4929,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
dependencies = [
"pkcs8",
- "signature",
+ "signature 2.1.0",
]
[[package]]
name = "ed25519-dalek"
-version = "2.1.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
- "curve25519-dalek 4.1.2",
- "ed25519",
- "rand_core 0.6.4",
+ "curve25519-dalek 3.2.0",
+ "ed25519 1.5.3",
+ "rand 0.7.3",
"serde",
- "sha2 0.10.7",
- "subtle 2.5.0",
+ "sha2 0.9.9",
"zeroize",
]
[[package]]
-name = "ed25519-zebra"
-version = "3.1.0"
+name = "ed25519-dalek"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6"
+checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
dependencies = [
- "curve25519-dalek 3.2.0",
- "hashbrown 0.12.3",
- "hex",
+ "curve25519-dalek 4.1.2",
+ "ed25519 2.2.2",
"rand_core 0.6.4",
- "sha2 0.9.9",
+ "serde",
+ "sha2 0.10.8",
+ "subtle 2.5.0",
"zeroize",
]
@@ -4882,11 +4968,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"
dependencies = [
"curve25519-dalek 4.1.2",
- "ed25519",
+ "ed25519 2.2.2",
"hashbrown 0.14.3",
"hex",
"rand_core 0.6.4",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"zeroize",
]
@@ -4970,11 +5056,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
dependencies = [
"heck 0.4.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "enumflags2"
version = "0.7.7"
@@ -4990,8 +5088,8 @@ version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -5001,16 +5099,16 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
[[package]]
-name = "env_logger"
-version = "0.8.4"
+name = "env_filter"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
dependencies = [
"log",
"regex",
@@ -5018,15 +5116,12 @@ dependencies = [
[[package]]
name = "env_logger"
-version = "0.9.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
dependencies = [
- "atty",
- "humantime",
"log",
"regex",
- "termcolor",
]
[[package]]
@@ -5042,6 +5137,19 @@ dependencies = [
"termcolor",
]
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
[[package]]
name = "environmental"
version = "1.1.4"
@@ -5054,6 +5162,21 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+[[package]]
+name = "equivocation-detector"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "finality-relay",
+ "frame-support",
+ "futures",
+ "log",
+ "num-traits",
+ "relay-utils",
+]
+
[[package]]
name = "erased-serde"
version = "0.4.4"
@@ -5141,27 +5264,6 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-[[package]]
-name = "event-listener"
-version = "4.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite 0.2.12",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
-dependencies = [
- "event-listener 4.0.3",
- "pin-project-lite 0.2.12",
-]
-
[[package]]
name = "exit-future"
version = "0.2.0"
@@ -5179,8 +5281,8 @@ checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881"
dependencies = [
"blake3",
"fs-err",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -5191,8 +5293,8 @@ checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7"
dependencies = [
"blake2 0.10.6",
"fs-err",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -5263,8 +5365,8 @@ dependencies = [
"expander 0.0.4",
"indexmap 1.9.3",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"thiserror",
]
@@ -5359,10 +5461,25 @@ dependencies = [
"num-traits",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
]
+[[package]]
+name = "finality-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "backoff",
+ "bp-header-chain",
+ "futures",
+ "log",
+ "num-traits",
+ "parking_lot 0.12.1",
+ "relay-utils",
+]
+
[[package]]
name = "findshlibs"
version = "0.10.2"
@@ -5382,7 +5499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534"
dependencies = [
"byteorder",
- "rand",
+ "rand 0.8.5",
"rustc-hex",
"static_assertions",
]
@@ -5419,6 +5536,21 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
[[package]]
name = "fork-tree"
version = "12.0.0"
@@ -5451,40 +5583,11 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
-[[package]]
-name = "frame"
-version = "0.0.1-dev"
-dependencies = [
- "docify 0.2.7",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-rpc-runtime-api",
- "log",
- "pallet-examples",
- "parity-scale-codec",
- "scale-info",
- "sp-api",
- "sp-arithmetic",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-inherents",
- "sp-io",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-transaction-pool",
- "sp-version",
-]
-
[[package]]
name = "frame-benchmarking"
version = "28.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"frame-support",
"frame-support-procedural",
"frame-system",
@@ -5512,7 +5615,7 @@ name = "frame-benchmarking-cli"
version = "32.0.0"
dependencies = [
"Inflector",
- "array-bytes 6.1.0",
+ "array-bytes",
"chrono",
"clap 4.5.3",
"comfy-table",
@@ -5521,14 +5624,15 @@ dependencies = [
"frame-system",
"gethostname",
"handlebars",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"lazy_static",
"linked-hash-map",
"log",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"sc-block-builder",
+ "sc-chain-spec",
"sc-cli",
"sc-client-api",
"sc-client-db",
@@ -5542,6 +5646,7 @@ dependencies = [
"sp-core",
"sp-database",
"sp-externalities 0.25.0",
+ "sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-keystore",
@@ -5576,8 +5681,8 @@ dependencies = [
"frame-support",
"parity-scale-codec",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"scale-info",
"sp-arithmetic",
"syn 2.0.53",
@@ -5592,7 +5697,7 @@ dependencies = [
"frame-support",
"frame-system",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-core",
@@ -5612,7 +5717,7 @@ dependencies = [
"frame-support",
"honggfuzz",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-npos-elections",
@@ -5623,8 +5728,8 @@ dependencies = [
name = "frame-executive"
version = "28.0.0"
dependencies = [
- "aquamarine 0.3.3",
- "array-bytes 6.1.0",
+ "aquamarine",
+ "array-bytes",
"frame-support",
"frame-system",
"frame-try-runtime",
@@ -5654,6 +5759,20 @@ dependencies = [
"serde",
]
+[[package]]
+name = "frame-omni-bencher"
+version = "0.1.0"
+dependencies = [
+ "clap 4.5.3",
+ "cumulus-primitives-proof-size-hostfunction",
+ "env_logger 0.11.3",
+ "frame-benchmarking-cli",
+ "log",
+ "sc-cli",
+ "sp-runtime",
+ "sp-statement-store",
+]
+
[[package]]
name = "frame-remote-externalities"
version = "0.35.0"
@@ -5680,11 +5799,11 @@ dependencies = [
name = "frame-support"
version = "28.0.0"
dependencies = [
- "aquamarine 0.5.0",
- "array-bytes 6.1.0",
+ "aquamarine",
+ "array-bytes",
"assert_matches",
"bitflags 1.3.2",
- "docify 0.2.7",
+ "docify",
"environmental",
"frame-metadata",
"frame-support-procedural",
@@ -5727,14 +5846,14 @@ version = "23.0.0"
dependencies = [
"Inflector",
"cfg-expr",
- "derive-syn-parse",
+ "derive-syn-parse 0.2.0",
"expander 2.0.0",
"frame-support-procedural-tools",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"macro_magic",
"proc-macro-warning",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"sp-crypto-hashing",
"syn 2.0.53",
@@ -5746,8 +5865,8 @@ version = "10.0.0"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -5755,8 +5874,8 @@ dependencies = [
name = "frame-support-procedural-tools-derive"
version = "11.0.0"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -5817,8 +5936,8 @@ dependencies = [
name = "frame-support-test-stg-frame-crate"
version = "0.1.0"
dependencies = [
- "frame",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
]
@@ -5827,8 +5946,8 @@ name = "frame-system"
version = "28.0.0"
dependencies = [
"cfg-if",
- "criterion 0.4.0",
- "docify 0.2.7",
+ "criterion",
+ "docify",
"frame-support",
"log",
"parity-scale-codec",
@@ -5988,8 +6107,8 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -6120,20 +6239,10 @@ version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9"
dependencies = [
- "rand",
+ "rand 0.8.5",
"rand_core 0.6.4",
]
-[[package]]
-name = "ghash"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
-dependencies = [
- "opaque-debug 0.3.0",
- "polyval 0.5.3",
-]
-
[[package]]
name = "ghash"
version = "0.5.0"
@@ -6141,7 +6250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
dependencies = [
"opaque-debug 0.3.0",
- "polyval 0.6.1",
+ "polyval",
]
[[package]]
@@ -6171,6 +6280,18 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+[[package]]
+name = "gloo-timers"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
[[package]]
name = "glutton-westend-runtime"
version = "3.0.0"
@@ -6231,7 +6352,7 @@ dependencies = [
"nonzero_ext",
"parking_lot 0.12.1",
"quanta",
- "rand",
+ "rand 0.8.5",
"smallvec",
]
@@ -6248,9 +6369,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.3.24"
+version = "0.3.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
dependencies = [
"bytes",
"fnv",
@@ -6338,6 +6459,15 @@ dependencies = [
"hashbrown 0.14.3",
]
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
[[package]]
name = "heck"
version = "0.4.1"
@@ -6648,8 +6778,8 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -6668,8 +6798,8 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -6774,7 +6904,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [
- "socket2 0.5.3",
+ "socket2 0.5.6",
"widestring",
"windows-sys 0.48.0",
"winreg",
@@ -6806,6 +6936,33 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "isahc"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+dependencies = [
+ "async-channel",
+ "castaway",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "event-listener",
+ "futures-lite",
+ "http",
+ "log",
+ "mime",
+ "once_cell",
+ "polling",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
[[package]]
name = "itertools"
version = "0.10.5"
@@ -6854,11 +7011,22 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+[[package]]
+name = "jsonpath_lib"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f"
+dependencies = [
+ "log",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "jsonrpsee"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a95f7cc23d5fab0cdeeaf6bad8c8f5e7a3aa7f0d211957ea78232b327ab27b0"
+checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad"
dependencies = [
"jsonrpsee-core",
"jsonrpsee-http-client",
@@ -6872,9 +7040,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-client-transport"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b1736cfa3845fd9f8f43751f2b8e0e83f7b6081e754502f7d63b6587692cc83"
+checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa"
dependencies = [
"futures-util",
"http",
@@ -6893,12 +7061,11 @@ dependencies = [
[[package]]
name = "jsonrpsee-core"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82030d038658974732103e623ba2e0abec03bbbe175b39c0a2fafbada60c5868"
+checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d"
dependencies = [
"anyhow",
- "async-lock 3.3.0",
"async-trait",
"beef",
"futures-timer",
@@ -6907,7 +7074,7 @@ dependencies = [
"jsonrpsee-types",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
"rustc-hash",
"serde",
"serde_json",
@@ -6919,9 +7086,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-http-client"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36a06ef0de060005fddf772d54597bb6a8b0413da47dcffd304b0306147b9678"
+checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5"
dependencies = [
"async-trait",
"hyper",
@@ -6939,22 +7106,22 @@ dependencies = [
[[package]]
name = "jsonrpsee-proc-macros"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69fc56131589f82e57805f7338b87023db4aafef813555708b159787e34ad6bc"
+checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0"
dependencies = [
"heck 0.4.1",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
]
[[package]]
name = "jsonrpsee-server"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d85be77fe5b2a94589e3164fb780017f7aff7d646b49278c0d0346af16975c8e"
+checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41"
dependencies = [
"futures-util",
"http",
@@ -6976,9 +7143,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-types"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a48fdc1202eafc51c63e00406575e59493284ace8b8b61aa16f3a6db5d64f1a"
+checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d"
dependencies = [
"anyhow",
"beef",
@@ -6989,9 +7156,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-ws-client"
-version = "0.22.0"
+version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5ce25d70a8e4d3cc574bbc3cad0137c326ad64b194793d5e7bbdd3fa4504181"
+checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070"
dependencies = [
"http",
"jsonrpsee-client-transport",
@@ -7011,7 +7178,7 @@ dependencies = [
"elliptic-curve",
"once_cell",
"serdect",
- "sha2 0.10.7",
+ "sha2 0.10.8",
]
[[package]]
@@ -7057,6 +7224,7 @@ dependencies = [
"node-primitives",
"pallet-alliance",
"pallet-asset-conversion",
+ "pallet-asset-conversion-ops",
"pallet-asset-conversion-tx-payment",
"pallet-asset-rate",
"pallet-asset-tx-payment",
@@ -7079,6 +7247,7 @@ dependencies = [
"pallet-election-provider-multi-phase",
"pallet-election-provider-support-benchmarking",
"pallet-elections-phragmen",
+ "pallet-example-mbm",
"pallet-example-tasks",
"pallet-fast-unstake",
"pallet-glutton",
@@ -7163,6 +7332,15 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
[[package]]
name = "kvdb"
version = "0.13.0"
@@ -7236,9 +7414,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]]
name = "libc"
-version = "0.2.152"
+version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libflate"
@@ -7287,6 +7465,16 @@ version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.9+1.58.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
+dependencies = [
+ "cc",
+ "libc",
+]
+
[[package]]
name = "libp2p"
version = "0.51.4"
@@ -7364,7 +7552,7 @@ dependencies = [
"parking_lot 0.12.1",
"pin-project",
"quick-protobuf",
- "rand",
+ "rand 0.8.5",
"rw-stream-sink",
"smallvec",
"thiserror",
@@ -7383,7 +7571,7 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"smallvec",
- "trust-dns-resolver",
+ "trust-dns-resolver 0.22.0",
]
[[package]]
@@ -7415,13 +7603,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce"
dependencies = [
"bs58 0.4.0",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"log",
"multiaddr",
"multihash 0.17.0",
"quick-protobuf",
- "rand",
- "sha2 0.10.7",
+ "rand 0.8.5",
+ "sha2 0.10.8",
"thiserror",
"zeroize",
]
@@ -7445,8 +7633,8 @@ dependencies = [
"libp2p-swarm",
"log",
"quick-protobuf",
- "rand",
- "sha2 0.10.7",
+ "rand 0.8.5",
+ "sha2 0.10.8",
"smallvec",
"thiserror",
"uint",
@@ -7467,11 +7655,11 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm",
"log",
- "rand",
+ "rand 0.8.5",
"smallvec",
"socket2 0.4.9",
"tokio",
- "trust-dns-proto",
+ "trust-dns-proto 0.22.0",
"void",
]
@@ -7503,8 +7691,8 @@ dependencies = [
"log",
"once_cell",
"quick-protobuf",
- "rand",
- "sha2 0.10.7",
+ "rand 0.8.5",
+ "sha2 0.10.8",
"snow",
"static_assertions",
"thiserror",
@@ -7525,7 +7713,7 @@ dependencies = [
"libp2p-core",
"libp2p-swarm",
"log",
- "rand",
+ "rand 0.8.5",
"void",
]
@@ -7545,7 +7733,7 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"quinn-proto",
- "rand",
+ "rand 0.8.5",
"rustls 0.20.8",
"thiserror",
"tokio",
@@ -7563,7 +7751,7 @@ dependencies = [
"libp2p-core",
"libp2p-identity",
"libp2p-swarm",
- "rand",
+ "rand 0.8.5",
"smallvec",
]
@@ -7582,7 +7770,7 @@ dependencies = [
"libp2p-identity",
"libp2p-swarm-derive",
"log",
- "rand",
+ "rand 0.8.5",
"smallvec",
"tokio",
"void",
@@ -7595,7 +7783,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f"
dependencies = [
"heck 0.4.1",
- "quote",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -7630,7 +7818,7 @@ dependencies = [
"rustls 0.20.8",
"thiserror",
"webpki",
- "x509-parser",
+ "x509-parser 0.14.0",
"yasna",
]
@@ -7708,7 +7896,7 @@ dependencies = [
"libsecp256k1-core",
"libsecp256k1-gen-ecmult",
"libsecp256k1-gen-genmult",
- "rand",
+ "rand 0.8.5",
"serde",
"sha2 0.9.9",
"typenum",
@@ -7750,6 +7938,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
dependencies = [
"cc",
+ "libc",
"pkg-config",
"vcpkg",
]
@@ -7835,6 +8024,60 @@ dependencies = [
"paste",
]
+[[package]]
+name = "litep2p"
+version = "0.3.0"
+source = "git+https://github.com/paritytech/litep2p?rev=e03a6023882db111beeb24d8c0ceaac0721d3f0f#e03a6023882db111beeb24d8c0ceaac0721d3f0f"
+dependencies = [
+ "async-trait",
+ "bs58 0.4.0",
+ "bytes",
+ "cid 0.10.1",
+ "ed25519-dalek 1.0.1",
+ "futures",
+ "futures-timer",
+ "hex-literal",
+ "indexmap 2.2.3",
+ "libc",
+ "mockall",
+ "multiaddr",
+ "multihash 0.17.0",
+ "network-interface",
+ "nohash-hasher",
+ "parking_lot 0.12.1",
+ "pin-project",
+ "prost 0.11.9",
+ "prost-build 0.11.9",
+ "quinn",
+ "rand 0.8.5",
+ "rcgen",
+ "ring 0.16.20",
+ "rustls 0.20.8",
+ "serde",
+ "sha2 0.10.8",
+ "simple-dns",
+ "smallvec",
+ "snow",
+ "socket2 0.5.6",
+ "static_assertions",
+ "str0m",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tokio-tungstenite",
+ "tokio-util",
+ "tracing",
+ "trust-dns-resolver 0.23.2",
+ "uint",
+ "unsigned-varint",
+ "url",
+ "webpki",
+ "x25519-dalek 2.0.0",
+ "x509-parser 0.15.1",
+ "yasna",
+ "zeroize",
+]
+
[[package]]
name = "lock_api"
version = "0.4.10"
@@ -7934,7 +8177,7 @@ checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d"
dependencies = [
"macro_magic_core",
"macro_magic_macros",
- "quote",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -7945,10 +8188,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d"
dependencies = [
"const-random",
- "derive-syn-parse",
+ "derive-syn-parse 0.1.5",
"macro_magic_core_macros",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -7958,8 +8201,8 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -7970,7 +8213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
dependencies = [
"macro_magic_core",
- "quote",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -8053,15 +8296,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "memoffset"
version = "0.8.0"
@@ -8101,6 +8335,24 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "messages-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-messages",
+ "env_logger 0.11.3",
+ "finality-relay",
+ "futures",
+ "hex",
+ "log",
+ "num-traits",
+ "parking_lot 0.12.1",
+ "relay-utils",
+ "sp-arithmetic",
+]
+
[[package]]
name = "mick-jaeger"
version = "0.1.8"
@@ -8108,7 +8360,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532"
dependencies = [
"futures",
- "rand",
+ "rand 0.8.5",
"thrift",
]
@@ -8124,16 +8376,29 @@ 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",
+]
+
[[package]]
name = "minimal-template-node"
version = "0.0.0"
dependencies = [
"clap 4.5.3",
- "frame",
"futures",
"futures-timer",
"jsonrpsee",
"minimal-template-runtime",
+ "polkadot-sdk-frame",
"sc-basic-authorship",
"sc-cli",
"sc-client-api",
@@ -8163,7 +8428,6 @@ dependencies = [
name = "minimal-template-runtime"
version = "0.0.0"
dependencies = [
- "frame",
"pallet-balances",
"pallet-minimal-template",
"pallet-sudo",
@@ -8171,8 +8435,10 @@ dependencies = [
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
"sp-genesis-builder",
+ "sp-runtime",
"substrate-wasm-builder",
]
@@ -8213,7 +8479,7 @@ dependencies = [
"lioness",
"log",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_distr",
"subtle 2.5.0",
@@ -8281,8 +8547,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
dependencies = [
"cfg-if",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -8328,7 +8594,7 @@ dependencies = [
"core2",
"digest 0.10.7",
"multihash-derive 0.8.0",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sha3",
"unsigned-varint",
]
@@ -8339,10 +8605,14 @@ version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815"
dependencies = [
+ "blake2b_simd",
+ "blake2s_simd",
+ "blake3",
"core2",
"digest 0.10.7",
"multihash-derive 0.8.0",
- "sha2 0.10.7",
+ "sha2 0.10.8",
+ "sha3",
"unsigned-varint",
]
@@ -8371,7 +8641,7 @@ dependencies = [
"ripemd",
"serde",
"sha1",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sha3",
"strobe-rs",
]
@@ -8384,8 +8654,8 @@ checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -8409,8 +8679,8 @@ checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"synstructure",
]
@@ -8457,8 +8727,8 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -8469,7 +8739,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc"
dependencies = [
"clap 3.2.25",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -8544,6 +8814,18 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "network-interface"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae72fd9dbd7f55dda80c00d66acc3b2130436fcba9ea89118fc508eaae48dfb0"
+dependencies = [
+ "cc",
+ "libc",
+ "thiserror",
+ "winapi",
+]
+
[[package]]
name = "nix"
version = "0.24.3"
@@ -8564,8 +8846,6 @@ dependencies = [
"bitflags 1.3.2",
"cfg-if",
"libc",
- "memoffset 0.7.1",
- "pin-utils",
"static_assertions",
]
@@ -8596,7 +8876,7 @@ checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
name = "node-bench"
version = "0.9.0-dev"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"clap 4.5.3",
"derive_more",
"fs_extra",
@@ -8610,7 +8890,7 @@ dependencies = [
"node-primitives",
"node-testing",
"parity-db",
- "rand",
+ "rand 0.8.5",
"sc-basic-authorship",
"sc-client-api",
"sc-transaction-pool",
@@ -8687,7 +8967,7 @@ dependencies = [
"flate2",
"fs_extra",
"glob",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"tar",
"tempfile",
"toml_edit 0.19.15",
@@ -8765,6 +9045,15 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+[[package]]
+name = "ntapi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "nu-ansi-term"
version = "0.46.0"
@@ -8872,6 +9161,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "number_prefix"
version = "0.4.0"
@@ -8932,12 +9230,60 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.0",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 2.0.53",
+]
+
[[package]]
name = "openssl-probe"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+[[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.102"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
[[package]]
name = "option-ext"
version = "0.2.0"
@@ -8972,8 +9318,8 @@ dependencies = [
"itertools 0.11.0",
"petgraph",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -9008,7 +9354,7 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
name = "pallet-alliance"
version = "27.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -9032,6 +9378,7 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log",
"pallet-assets",
"pallet-balances",
"parity-scale-codec",
@@ -9045,6 +9392,27 @@ dependencies = [
"sp-std 14.0.0",
]
+[[package]]
+name = "pallet-asset-conversion-ops"
+version = "0.1.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-asset-conversion",
+ "pallet-assets",
+ "pallet-balances",
+ "parity-scale-codec",
+ "primitive-types",
+ "scale-info",
+ "sp-arithmetic",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
[[package]]
name = "pallet-asset-conversion-tx-payment"
version = "10.0.0"
@@ -9105,7 +9473,7 @@ dependencies = [
[[package]]
name = "pallet-assets"
-version = "29.0.0"
+version = "29.1.0"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9217,8 +9585,8 @@ dependencies = [
name = "pallet-bags-list"
version = "27.0.0"
dependencies = [
- "aquamarine 0.5.0",
- "docify 0.2.7",
+ "aquamarine",
+ "docify",
"frame-benchmarking",
"frame-election-provider-support",
"frame-support",
@@ -9241,7 +9609,7 @@ dependencies = [
"frame-election-provider-support",
"honggfuzz",
"pallet-bags-list",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -9266,7 +9634,7 @@ dependencies = [
name = "pallet-balances"
version = "28.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -9313,7 +9681,7 @@ dependencies = [
name = "pallet-beefy-mmr"
version = "28.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"binary-merkle-tree",
"frame-support",
"frame-system",
@@ -9352,6 +9720,30 @@ dependencies = [
"sp-std 14.0.0",
]
+[[package]]
+name = "pallet-bridge-beefy"
+version = "0.1.0"
+dependencies = [
+ "bp-beefy",
+ "bp-runtime",
+ "bp-test-utils",
+ "ckb-merkle-mountain-range",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-beefy-mmr",
+ "pallet-mmr",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "scale-info",
+ "serde",
+ "sp-consensus-beefy",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+]
+
[[package]]
name = "pallet-bridge-grandpa"
version = "0.7.0"
@@ -9446,8 +9838,11 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log",
"parity-scale-codec",
+ "pretty_assertions",
"scale-info",
+ "sp-api",
"sp-arithmetic",
"sp-core",
"sp-io",
@@ -9488,7 +9883,7 @@ dependencies = [
"pallet-session",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-consensus-aura",
"sp-core",
@@ -9534,10 +9929,10 @@ dependencies = [
name = "pallet-contracts"
version = "27.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"bitflags 1.3.2",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"environmental",
"frame-benchmarking",
"frame-support",
@@ -9555,8 +9950,9 @@ dependencies = [
"pallet-timestamp",
"pallet-utility",
"parity-scale-codec",
+ "paste",
"pretty_assertions",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"scale-info",
"serde",
@@ -9631,8 +10027,8 @@ dependencies = [
name = "pallet-contracts-proc-macro"
version = "18.0.0"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -9774,7 +10170,7 @@ dependencies = [
"pallet-election-provider-support-benchmarking",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-arithmetic",
"sp-core",
@@ -9783,7 +10179,7 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"sp-tracing 16.0.0",
- "strum 0.24.1",
+ "strum 0.26.2",
]
[[package]]
@@ -9841,26 +10237,40 @@ dependencies = [
name = "pallet-example-frame-crate"
version = "0.0.1"
dependencies = [
- "frame",
+ "parity-scale-codec",
+ "polkadot-sdk-frame",
+ "scale-info",
+]
+
+[[package]]
+name = "pallet-example-kitchensink"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "pallet-balances",
"parity-scale-codec",
"scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
]
[[package]]
-name = "pallet-example-kitchensink"
-version = "4.0.0-dev"
+name = "pallet-example-mbm"
+version = "0.1.0"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"log",
- "pallet-balances",
+ "pallet-migrations",
"parity-scale-codec",
"scale-info",
- "sp-core",
"sp-io",
- "sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -9884,7 +10294,7 @@ dependencies = [
name = "pallet-example-single-block-migrations"
version = "0.0.1"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-executive",
"frame-support",
"frame-system",
@@ -9950,7 +10360,7 @@ dependencies = [
name = "pallet-fast-unstake"
version = "27.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-election-provider-support",
"frame-support",
@@ -10133,7 +10543,7 @@ dependencies = [
"frame-system",
"log",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rand_distr",
"scale-info",
"serde",
@@ -10151,7 +10561,7 @@ dependencies = [
name = "pallet-migrations"
version = "1.0.0"
dependencies = [
- "docify 0.1.16",
+ "docify",
"frame-benchmarking",
"frame-executive",
"frame-support",
@@ -10175,8 +10585,8 @@ dependencies = [
name = "pallet-minimal-template"
version = "0.0.0"
dependencies = [
- "frame",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"scale-info",
]
@@ -10203,12 +10613,12 @@ dependencies = [
name = "pallet-mmr"
version = "27.0.0"
dependencies = [
- "array-bytes 6.1.0",
- "env_logger 0.9.3",
+ "array-bytes",
+ "env_logger 0.11.3",
"frame-benchmarking",
"frame-support",
"frame-system",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"log",
"parity-scale-codec",
"scale-info",
@@ -10366,7 +10776,7 @@ dependencies = [
"honggfuzz",
"log",
"pallet-nomination-pools",
- "rand",
+ "rand 0.8.5",
"sp-io",
"sp-runtime",
"sp-tracing 16.0.0",
@@ -10455,7 +10865,7 @@ dependencies = [
name = "pallet-paged-list"
version = "0.6.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10495,9 +10905,9 @@ dependencies = [
[[package]]
name = "pallet-parameters"
-version = "0.0.1"
+version = "0.1.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10658,7 +11068,7 @@ dependencies = [
name = "pallet-safe-mode"
version = "9.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10696,7 +11106,7 @@ dependencies = [
name = "pallet-sassafras"
version = "0.3.5-dev"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10715,7 +11125,7 @@ dependencies = [
name = "pallet-scheduler"
version = "29.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10781,7 +11191,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"sp-core",
"sp-io",
@@ -10813,7 +11223,7 @@ dependencies = [
"log",
"pallet-balances",
"parity-scale-codec",
- "rand_chacha 0.2.2",
+ "rand_chacha 0.3.1",
"scale-info",
"sp-arithmetic",
"sp-core",
@@ -10839,7 +11249,7 @@ dependencies = [
"pallet-staking-reward-curve",
"pallet-timestamp",
"parity-scale-codec",
- "rand_chacha 0.2.2",
+ "rand_chacha 0.3.1",
"scale-info",
"serde",
"sp-application-crypto",
@@ -10858,8 +11268,8 @@ name = "pallet-staking-reward-curve"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"sp-runtime",
"syn 2.0.53",
]
@@ -10928,7 +11338,7 @@ dependencies = [
name = "pallet-sudo"
version = "28.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -10958,7 +11368,7 @@ dependencies = [
name = "pallet-timestamp"
version = "27.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11042,7 +11452,7 @@ dependencies = [
name = "pallet-transaction-storage"
version = "27.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11063,7 +11473,7 @@ dependencies = [
name = "pallet-treasury"
version = "27.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11083,7 +11493,7 @@ dependencies = [
name = "pallet-tx-pause"
version = "9.0.0"
dependencies = [
- "docify 0.2.7",
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -11192,6 +11602,7 @@ dependencies = [
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -11209,7 +11620,6 @@ dependencies = [
"polkadot-primitives",
"polkadot-runtime-common",
"scale-info",
- "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
@@ -11278,6 +11688,7 @@ dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-parachain-inherent",
"cumulus-relay-chain-interface",
+ "docify",
"frame-benchmarking",
"frame-benchmarking-cli",
"futures",
@@ -11330,9 +11741,11 @@ dependencies = [
"cumulus-pallet-session-benchmarking",
"cumulus-pallet-xcm",
"cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
"cumulus-primitives-core",
"cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
+ "docify",
"frame-benchmarking",
"frame-executive",
"frame-support",
@@ -11409,6 +11822,21 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "parachains-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-polkadot-core",
+ "futures",
+ "log",
+ "parity-scale-codec",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-core",
+]
+
[[package]]
name = "parachains-runtimes-test-utils"
version = "7.0.0"
@@ -11447,8 +11875,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9"
dependencies = [
"bitcoin_hashes 0.13.0",
- "rand",
- "rand_core 0.6.4",
+ "rand 0.7.3",
+ "rand_core 0.5.1",
"serde",
"unicode-normalization",
]
@@ -11474,7 +11902,7 @@ dependencies = [
"lz4",
"memmap2 0.5.10",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"siphasher",
"snap",
]
@@ -11501,8 +11929,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260"
dependencies = [
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -11536,7 +11964,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
"syn 1.0.109",
"synstructure",
]
@@ -11769,6 +12197,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"enumflags2",
"frame-benchmarking",
@@ -11868,6 +12297,7 @@ dependencies = [
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-aura",
"cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
"cumulus-primitives-utility",
"enumflags2",
"frame-benchmarking",
@@ -11955,8 +12385,8 @@ checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
dependencies = [
"pest",
"pest_meta",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -11968,7 +12398,7 @@ checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48"
dependencies = [
"once_cell",
"pest",
- "sha2 0.10.7",
+ "sha2 0.10.8",
]
[[package]]
@@ -11996,8 +12426,8 @@ version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -12075,7 +12505,7 @@ version = "6.0.0"
dependencies = [
"assert_cmd",
"color-eyre",
- "nix 0.26.2",
+ "nix 0.27.1",
"polkadot-cli",
"polkadot-core-primitives",
"polkadot-node-core-pvf",
@@ -12096,10 +12526,10 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"log",
"polkadot-node-jaeger",
"polkadot-node-metrics",
@@ -12110,7 +12540,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"schnorrkel 0.11.4",
@@ -12126,7 +12556,7 @@ dependencies = [
"always-assert",
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"log",
@@ -12136,7 +12566,7 @@ dependencies = [
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sp-application-crypto",
"sp-authority-discovery",
@@ -12165,7 +12595,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand",
+ "rand 0.8.5",
"sc-network",
"schnellru",
"sp-core",
@@ -12182,7 +12612,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"async-trait",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-timer",
@@ -12197,7 +12627,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-subsystem-bench",
- "rand",
+ "rand 0.8.5",
"sc-network",
"schnellru",
"sp-application-crypto",
@@ -12235,7 +12665,6 @@ dependencies = [
"sp-runtime",
"substrate-build-script-utils",
"thiserror",
- "try-runtime-cli",
]
[[package]]
@@ -12244,7 +12673,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-timer",
@@ -12316,7 +12745,7 @@ dependencies = [
name = "polkadot-erasure-coding"
version = "7.0.0"
dependencies = [
- "criterion 0.4.0",
+ "criterion",
"parity-scale-codec",
"polkadot-node-primitives",
"polkadot-primitives",
@@ -12342,7 +12771,7 @@ dependencies = [
"polkadot-node-subsystem-util",
"polkadot-primitives",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sc-network",
"sc-network-common",
@@ -12416,10 +12845,10 @@ dependencies = [
"async-trait",
"bitvec",
"derive_more",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"kvdb",
"kvdb-memorydb",
"log",
@@ -12434,7 +12863,8 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
- "rand",
+ "polkadot-subsystem-bench",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"sc-keystore",
@@ -12458,7 +12888,7 @@ version = "7.0.0"
dependencies = [
"assert_matches",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"kvdb",
@@ -12689,11 +13119,11 @@ name = "polkadot-node-core-pvf"
version = "7.0.0"
dependencies = [
"always-assert",
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"blake3",
"cfg-if",
- "criterion 0.4.0",
+ "criterion",
"futures",
"futures-timer",
"hex-literal",
@@ -12712,14 +13142,13 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-primitives",
"procfs",
- "rand",
+ "rand 0.8.5",
"rococo-runtime",
"rusty-fork",
"sc-sysinfo",
"slotmap",
"sp-core",
"sp-maybe-compressed-blob",
- "sp-wasm-interface 20.0.0",
"tempfile",
"test-parachain-adder",
"test-parachain-halt",
@@ -12756,7 +13185,6 @@ name = "polkadot-node-core-pvf-common"
version = "7.0.0"
dependencies = [
"assert_matches",
- "cfg-if",
"cpu-time",
"futures",
"landlock",
@@ -12800,7 +13228,7 @@ version = "7.0.0"
dependencies = [
"blake3",
"cfg-if",
- "criterion 0.4.0",
+ "criterion",
"libc",
"nix 0.27.1",
"parity-scale-codec",
@@ -12850,6 +13278,7 @@ dependencies = [
"polkadot-node-primitives",
"polkadot-primitives",
"sc-network",
+ "sc-network-types",
"sp-core",
"thiserror",
"tokio",
@@ -12896,11 +13325,13 @@ dependencies = [
"polkadot-node-jaeger",
"polkadot-node-primitives",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"sc-authority-discovery",
"sc-network",
- "strum 0.24.1",
+ "sc-network-types",
+ "sp-runtime",
+ "strum 0.26.2",
"thiserror",
"tracing-gum",
]
@@ -12974,6 +13405,7 @@ dependencies = [
"polkadot-statement-table",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sc-transaction-pool-api",
"smallvec",
"sp-api",
@@ -12992,11 +13424,11 @@ dependencies = [
"assert_matches",
"async-trait",
"derive_more",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"fatality",
"futures",
"futures-channel",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"kvdb",
"kvdb-memorydb",
"kvdb-shared-tests",
@@ -13017,7 +13449,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"prioritized-metered-channel",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"schnellru",
"sp-application-crypto",
@@ -13091,7 +13523,7 @@ dependencies = [
"hex-literal",
"jsonrpsee",
"log",
- "nix 0.26.2",
+ "nix 0.27.1",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc",
"pallet-transaction-payment-rpc-runtime-api",
@@ -13198,7 +13630,7 @@ name = "polkadot-primitives-test-helpers"
version = "1.0.0"
dependencies = [
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -13337,7 +13769,7 @@ dependencies = [
"polkadot-primitives",
"polkadot-primitives-test-helpers",
"polkadot-runtime-metrics",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rstest",
"rustc-hex",
@@ -13369,10 +13801,12 @@ dependencies = [
name = "polkadot-sdk-docs"
version = "0.0.1"
dependencies = [
+ "cumulus-client-service",
"cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
- "docify 0.2.7",
- "frame",
+ "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-primitives-storage-weight-reclaim",
+ "docify",
"frame-executive",
"frame-support",
"frame-system",
@@ -13390,13 +13824,17 @@ dependencies = [
"pallet-example-single-block-migrations",
"pallet-examples",
"pallet-multisig",
+ "pallet-nfts",
+ "pallet-preimage",
"pallet-proxy",
"pallet-referenda",
"pallet-scheduler",
"pallet-timestamp",
"pallet-transaction-payment",
+ "pallet-uniques",
"pallet-utility",
"parity-scale-codec",
+ "polkadot-sdk-frame",
"sc-cli",
"sc-client-db",
"sc-consensus-aura",
@@ -13405,9 +13843,11 @@ dependencies = [
"sc-consensus-grandpa",
"sc-consensus-manual-seal",
"sc-consensus-pow",
+ "sc-executor",
"sc-network",
"sc-rpc",
"sc-rpc-api",
+ "sc-service",
"scale-info",
"simple-mermaid",
"sp-api",
@@ -13426,6 +13866,35 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "polkadot-sdk-frame"
+version = "0.1.0"
+dependencies = [
+ "docify",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-rpc-runtime-api",
+ "log",
+ "pallet-examples",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-arithmetic",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 14.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+]
+
[[package]]
name = "polkadot-service"
version = "7.0.0"
@@ -13433,7 +13902,7 @@ dependencies = [
"assert_matches",
"async-trait",
"bitvec",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"frame-benchmarking",
"frame-benchmarking-cli",
"frame-support",
@@ -13447,7 +13916,6 @@ dependencies = [
"log",
"mmr-gadget",
"pallet-babe",
- "pallet-im-online",
"pallet-staking",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
@@ -13544,12 +14012,14 @@ dependencies = [
"sp-transaction-pool",
"sp-version",
"sp-weights",
+ "staging-xcm",
"substrate-prometheus-endpoint",
"tempfile",
"thiserror",
"tracing-gum",
"westend-runtime",
"westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -13608,7 +14078,7 @@ dependencies = [
"clap-num",
"color-eyre",
"colored",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"futures-timer",
"hex",
@@ -13639,15 +14109,17 @@ dependencies = [
"prometheus",
"pyroscope",
"pyroscope_pprofrs",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
"rand_distr",
"sc-keystore",
"sc-network",
+ "sc-network-types",
"sc-service",
"schnorrkel 0.11.4",
"serde",
+ "serde_json",
"serde_yaml",
"sha1",
"sp-application-crypto",
@@ -13710,13 +14182,14 @@ dependencies = [
"polkadot-node-core-pvf-common",
"polkadot-node-core-pvf-execute-worker",
"polkadot-node-core-pvf-prepare-worker",
+ "polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-primitives",
- "rand",
+ "rand 0.8.5",
"sp-core",
"sp-keystore",
"substrate-build-script-utils",
@@ -13727,7 +14200,6 @@ dependencies = [
name = "polkadot-test-runtime"
version = "1.0.0"
dependencies = [
- "bitvec",
"frame-election-provider-support",
"frame-executive",
"frame-support",
@@ -13752,16 +14224,12 @@ dependencies = [
"pallet-vesting",
"pallet-xcm",
"parity-scale-codec",
- "polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-runtime-common",
"polkadot-runtime-parachains",
- "rustc-hex",
"scale-info",
"serde",
- "serde_derive",
"serde_json",
- "smallvec",
"sp-api",
"sp-authority-discovery",
"sp-block-builder",
@@ -13809,7 +14277,7 @@ dependencies = [
"polkadot-runtime-parachains",
"polkadot-service",
"polkadot-test-runtime",
- "rand",
+ "rand 0.8.5",
"sc-authority-discovery",
"sc-chain-spec",
"sc-cli",
@@ -13898,8 +14366,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
dependencies = [
"polkavm-common",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -13950,17 +14418,6 @@ dependencies = [
"windows-sys 0.48.0",
]
-[[package]]
-name = "poly1305"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
-dependencies = [
- "cpufeatures",
- "opaque-debug 0.3.0",
- "universal-hash 0.4.0",
-]
-
[[package]]
name = "poly1305"
version = "0.8.0"
@@ -13969,19 +14426,7 @@ checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
dependencies = [
"cpufeatures",
"opaque-debug 0.3.0",
- "universal-hash 0.5.1",
-]
-
-[[package]]
-name = "polyval"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "opaque-debug 0.3.0",
- "universal-hash 0.4.0",
+ "universal-hash",
]
[[package]]
@@ -13993,7 +14438,7 @@ dependencies = [
"cfg-if",
"cpufeatures",
"opaque-debug 0.3.0",
- "universal-hash 0.5.1",
+ "universal-hash",
]
[[package]]
@@ -14008,7 +14453,7 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9"
dependencies = [
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -14095,7 +14540,7 @@ version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
"syn 1.0.109",
]
@@ -14105,7 +14550,7 @@ version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
"syn 2.0.53",
]
@@ -14166,8 +14611,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
"version_check",
]
@@ -14178,8 +14623,8 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"version_check",
]
@@ -14195,11 +14640,20 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
[[package]]
name = "proc-macro2"
version = "1.0.75"
@@ -14267,8 +14721,8 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -14295,7 +14749,7 @@ dependencies = [
"bitflags 2.4.0",
"lazy_static",
"num-traits",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_xorshift",
"regex-syntax 0.8.2",
@@ -14316,12 +14770,12 @@ dependencies = [
[[package]]
name = "prost"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
+checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
dependencies = [
"bytes",
- "prost-derive 0.12.3",
+ "prost-derive 0.12.4",
]
[[package]]
@@ -14339,13 +14793,34 @@ dependencies = [
"petgraph",
"prettyplease 0.1.25",
"prost 0.11.9",
- "prost-types",
+ "prost-types 0.11.9",
"regex",
"syn 1.0.109",
"tempfile",
"which",
]
+[[package]]
+name = "prost-build"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
+dependencies = [
+ "bytes",
+ "heck 0.5.0",
+ "itertools 0.11.0",
+ "log",
+ "multimap",
+ "once_cell",
+ "petgraph",
+ "prettyplease 0.2.12",
+ "prost 0.12.4",
+ "prost-types 0.12.4",
+ "regex",
+ "syn 2.0.53",
+ "tempfile",
+]
+
[[package]]
name = "prost-derive"
version = "0.11.9"
@@ -14354,21 +14829,21 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
dependencies = [
"anyhow",
"itertools 0.10.5",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
[[package]]
name = "prost-derive"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
+checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
dependencies = [
"anyhow",
"itertools 0.11.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -14381,6 +14856,15 @@ dependencies = [
"prost 0.11.9",
]
+[[package]]
+name = "prost-types"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
+dependencies = [
+ "prost 0.12.4",
+]
+
[[package]]
name = "psm"
version = "0.1.21"
@@ -14472,7 +14956,7 @@ checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [
"env_logger 0.8.4",
"log",
- "rand",
+ "rand 0.8.5",
]
[[package]]
@@ -14486,6 +14970,24 @@ dependencies = [
"pin-project-lite 0.1.12",
]
+[[package]]
+name = "quinn"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e"
+dependencies = [
+ "bytes",
+ "pin-project-lite 0.2.12",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash",
+ "rustls 0.20.8",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "webpki",
+]
+
[[package]]
name = "quinn-proto"
version = "0.9.5"
@@ -14493,7 +14995,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989"
dependencies = [
"bytes",
- "rand",
+ "rand 0.8.5",
"ring 0.16.20",
"rustc-hash",
"rustls 0.20.8",
@@ -14504,13 +15006,35 @@ dependencies = [
"webpki",
]
+[[package]]
+name = "quinn-udp"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4"
+dependencies = [
+ "libc",
+ "quinn-proto",
+ "socket2 0.4.9",
+ "tracing",
+ "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
[[package]]
name = "quote"
version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
- "proc-macro2",
+ "proc-macro2 1.0.75",
]
[[package]]
@@ -14519,6 +15043,19 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom 0.1.16",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc",
+]
+
[[package]]
name = "rand"
version = "0.8.5"
@@ -14575,7 +15112,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
dependencies = [
"num-traits",
- "rand",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
]
[[package]]
@@ -14613,9 +15159,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
[[package]]
name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
@@ -14623,14 +15169,32 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
- "crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
- "num_cpus",
+]
+
+[[package]]
+name = "rbtag"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72c64936fcc0b811890a9d90020f3df5cec9c604efde88af7db6a35d365132a3"
+dependencies = [
+ "rbtag_derive",
+]
+
+[[package]]
+name = "rbtag_derive"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b75511b710ccca8adbb211e04763bd8c78fed585b0ec188a20ed9b0dd95567c4"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "syn 0.15.44",
]
[[package]]
@@ -14710,8 +15274,8 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -14796,6 +15360,72 @@ version = "1.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+[[package]]
+name = "relay-substrate-client"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "finality-relay",
+ "frame-support",
+ "frame-system",
+ "futures",
+ "jsonrpsee",
+ "log",
+ "num-traits",
+ "pallet-balances",
+ "pallet-bridge-messages",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "pallet-utility",
+ "parity-scale-codec",
+ "rand 0.8.5",
+ "relay-utils",
+ "sc-chain-spec",
+ "sc-rpc-api",
+ "sc-transaction-pool-api",
+ "scale-info",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-trie",
+ "sp-version",
+ "staging-xcm",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "relay-utils"
+version = "0.1.0"
+dependencies = [
+ "ansi_term",
+ "anyhow",
+ "async-std",
+ "async-trait",
+ "backoff",
+ "bp-runtime",
+ "env_logger 0.11.3",
+ "futures",
+ "isahc",
+ "jsonpath_lib",
+ "log",
+ "num-traits",
+ "serde_json",
+ "sp-runtime",
+ "substrate-prometheus-endpoint",
+ "sysinfo",
+ "thiserror",
+ "time",
+ "tokio",
+]
+
[[package]]
name = "remote-ext-tests-bags-list"
version = "1.0.0"
@@ -15023,6 +15653,7 @@ name = "rococo-runtime"
version = "7.0.0"
dependencies = [
"binary-merkle-tree",
+ "bitvec",
"frame-benchmarking",
"frame-executive",
"frame-remote-externalities",
@@ -15048,7 +15679,6 @@ dependencies = [
"pallet-elections-phragmen",
"pallet-grandpa",
"pallet-identity",
- "pallet-im-online",
"pallet-indices",
"pallet-membership",
"pallet-message-queue",
@@ -15056,6 +15686,7 @@ dependencies = [
"pallet-multisig",
"pallet-nis",
"pallet-offences",
+ "pallet-parameters",
"pallet-preimage",
"pallet-proxy",
"pallet-ranked-collective",
@@ -15096,6 +15727,7 @@ dependencies = [
"sp-block-builder",
"sp-consensus-babe",
"sp-consensus-beefy",
+ "sp-consensus-grandpa",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
@@ -15119,6 +15751,7 @@ dependencies = [
"substrate-wasm-builder",
"tiny-keccak",
"tokio",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -15199,8 +15832,8 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
dependencies = [
"cfg-if",
"glob",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"regex",
"relative-path",
"rustc_version 0.4.0",
@@ -15249,7 +15882,7 @@ dependencies = [
"parity-scale-codec",
"primitive-types",
"proptest",
- "rand",
+ "rand 0.8.5",
"rlp",
"ruint-macro",
"serde",
@@ -15561,15 +16194,16 @@ dependencies = [
"libp2p",
"linked_hash_set",
"log",
- "multihash 0.18.1",
+ "multihash 0.17.0",
"multihash-codetable",
"parity-scale-codec",
- "prost 0.12.3",
- "prost-build",
+ "prost 0.12.4",
+ "prost-build 0.12.4",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sp-api",
"sp-authority-discovery",
"sp-blockchain",
@@ -15625,10 +16259,10 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
-version = "27.0.0"
+version = "28.0.0"
dependencies = [
- "array-bytes 6.1.0",
- "docify 0.2.7",
+ "array-bytes",
+ "docify",
"log",
"memmap2 0.9.3",
"parity-scale-codec",
@@ -15649,6 +16283,7 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-state-machine",
+ "sp-tracing 16.0.0",
"substrate-test-runtime",
]
@@ -15657,8 +16292,8 @@ name = "sc-chain-spec-derive"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -15666,19 +16301,19 @@ dependencies = [
name = "sc-cli"
version = "0.36.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"chrono",
"clap 4.5.3",
"fdlimit",
"futures",
"futures-timer",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"libp2p-identity",
"log",
"names",
"parity-bip39",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"regex",
"rpassword",
"sc-client-api",
@@ -15738,8 +16373,8 @@ dependencies = [
name = "sc-client-db"
version = "0.35.0"
dependencies = [
- "array-bytes 6.1.0",
- "criterion 0.4.0",
+ "array-bytes",
+ "criterion",
"hash-db",
"kitchensink-runtime",
"kvdb",
@@ -15751,7 +16386,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"quickcheck",
- "rand",
+ "rand 0.8.5",
"sc-client-api",
"sc-state-db",
"schnellru",
@@ -15774,11 +16409,11 @@ dependencies = [
"async-trait",
"futures",
"futures-timer",
- "libp2p-identity",
"log",
"mockall",
"parking_lot 0.12.1",
"sc-client-api",
+ "sc-network-types",
"sc-utils",
"serde",
"sp-api",
@@ -15904,7 +16539,7 @@ dependencies = [
name = "sc-consensus-beefy"
version = "13.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-channel",
"async-trait",
"fnv",
@@ -15919,6 +16554,7 @@ dependencies = [
"sc-network-gossip",
"sc-network-sync",
"sc-network-test",
+ "sc-network-types",
"sc-utils",
"serde",
"sp-api",
@@ -15981,7 +16617,7 @@ name = "sc-consensus-grandpa"
version = "0.19.0"
dependencies = [
"ahash 0.8.8",
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"async-trait",
"dyn-clone",
@@ -15992,7 +16628,7 @@ dependencies = [
"log",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
@@ -16002,6 +16638,7 @@ dependencies = [
"sc-network-gossip",
"sc-network-sync",
"sc-network-test",
+ "sc-network-types",
"sc-telemetry",
"sc-transaction-pool-api",
"sc-utils",
@@ -16138,10 +16775,10 @@ dependencies = [
name = "sc-executor"
version = "0.32.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
- "criterion 0.4.0",
- "env_logger 0.9.3",
+ "criterion",
+ "env_logger 0.11.3",
"num_cpus",
"parity-scale-codec",
"parking_lot 0.12.1",
@@ -16170,7 +16807,7 @@ dependencies = [
"substrate-test-runtime",
"tempfile",
"tracing",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
"wat",
]
@@ -16240,7 +16877,7 @@ dependencies = [
name = "sc-keystore"
version = "25.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"parking_lot 0.12.1",
"serde_json",
"sp-application-crypto",
@@ -16254,13 +16891,12 @@ dependencies = [
name = "sc-mixnet"
version = "0.4.0"
dependencies = [
- "array-bytes 4.2.0",
+ "array-bytes",
"arrayvec 0.7.4",
"blake2 0.10.6",
"bytes",
"futures",
"futures-timer",
- "libp2p-identity",
"log",
"mixnet",
"multiaddr",
@@ -16268,6 +16904,7 @@ dependencies = [
"parking_lot 0.12.1",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sc-transaction-pool-api",
"sp-api",
"sp-consensus",
@@ -16282,12 +16919,13 @@ dependencies = [
name = "sc-network"
version = "0.34.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"async-channel",
"async-trait",
"asynchronous-codec",
"bytes",
+ "cid 0.9.0",
"either",
"fnv",
"futures",
@@ -16295,25 +16933,34 @@ dependencies = [
"ip_network",
"libp2p",
"linked_hash_set",
+ "litep2p",
"log",
"mockall",
"multistream-select",
+ "once_cell",
"parity-scale-codec",
"parking_lot 0.12.1",
"partial_sort",
"pin-project",
- "rand",
+ "prost 0.12.4",
+ "prost-build 0.12.4",
+ "rand 0.8.5",
+ "sc-block-builder",
"sc-client-api",
"sc-network-common",
"sc-network-light",
"sc-network-sync",
+ "sc-network-types",
"sc-utils",
+ "schnellru",
"serde",
"serde_json",
"smallvec",
"sp-arithmetic",
"sp-blockchain",
+ "sp-consensus",
"sp-core",
+ "sp-crypto-hashing",
"sp-runtime",
"sp-test-primitives",
"sp-tracing 16.0.0",
@@ -16327,36 +16974,11 @@ dependencies = [
"tokio-test",
"tokio-util",
"unsigned-varint",
+ "void",
"wasm-timer",
"zeroize",
]
-[[package]]
-name = "sc-network-bitswap"
-version = "0.33.0"
-dependencies = [
- "async-channel",
- "cid",
- "futures",
- "libp2p-identity",
- "log",
- "prost 0.12.3",
- "prost-build",
- "sc-block-builder",
- "sc-client-api",
- "sc-consensus",
- "sc-network",
- "sp-blockchain",
- "sp-consensus",
- "sp-crypto-hashing",
- "sp-runtime",
- "substrate-test-runtime",
- "substrate-test-runtime-client",
- "thiserror",
- "tokio",
- "unsigned-varint",
-]
-
[[package]]
name = "sc-network-common"
version = "0.33.0"
@@ -16366,8 +16988,9 @@ dependencies = [
"futures",
"libp2p-identity",
"parity-scale-codec",
- "prost-build",
+ "prost-build 0.12.4",
"sc-consensus",
+ "sc-network-types",
"sp-consensus",
"sp-consensus-grandpa",
"sp-runtime",
@@ -16389,6 +17012,7 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"schnellru",
"sp-runtime",
"substrate-prometheus-endpoint",
@@ -16401,16 +17025,16 @@ dependencies = [
name = "sc-network-light"
version = "0.33.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-channel",
"futures",
- "libp2p-identity",
"log",
"parity-scale-codec",
- "prost 0.12.3",
- "prost-build",
+ "prost 0.12.4",
+ "prost-build 0.12.4",
"sc-client-api",
"sc-network",
+ "sc-network-types",
"sp-blockchain",
"sp-core",
"sp-runtime",
@@ -16421,7 +17045,7 @@ dependencies = [
name = "sc-network-statement"
version = "0.16.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-channel",
"futures",
"libp2p",
@@ -16430,7 +17054,9 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"sp-consensus",
+ "sp-runtime",
"sp-statement-store",
"substrate-prometheus-endpoint",
]
@@ -16439,7 +17065,7 @@ dependencies = [
name = "sc-network-sync"
version = "0.33.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-channel",
"async-trait",
"fork-tree",
@@ -16449,14 +17075,15 @@ dependencies = [
"log",
"mockall",
"parity-scale-codec",
- "prost 0.12.3",
- "prost-build",
+ "prost 0.12.4",
+ "prost-build 0.12.4",
"quickcheck",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
"sc-network",
"sc-network-common",
+ "sc-network-types",
"sc-utils",
"schnellru",
"smallvec",
@@ -16485,7 +17112,7 @@ dependencies = [
"libp2p",
"log",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-client-api",
"sc-consensus",
@@ -16493,6 +17120,7 @@ dependencies = [
"sc-network-common",
"sc-network-light",
"sc-network-sync",
+ "sc-network-types",
"sc-service",
"sc-utils",
"sp-blockchain",
@@ -16509,7 +17137,7 @@ dependencies = [
name = "sc-network-transactions"
version = "0.33.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"futures",
"libp2p",
"log",
@@ -16517,17 +17145,32 @@ dependencies = [
"sc-network",
"sc-network-common",
"sc-network-sync",
+ "sc-network-types",
"sc-utils",
"sp-consensus",
"sp-runtime",
"substrate-prometheus-endpoint",
]
+[[package]]
+name = "sc-network-types"
+version = "0.10.0-dev"
+dependencies = [
+ "bs58 0.5.0",
+ "libp2p-identity",
+ "litep2p",
+ "multiaddr",
+ "multihash 0.17.0",
+ "rand 0.8.5",
+ "thiserror",
+]
+
[[package]]
name = "sc-offchain"
version = "29.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
+ "async-trait",
"bytes",
"fnv",
"futures",
@@ -16541,12 +17184,13 @@ dependencies = [
"once_cell",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-client-api",
"sc-client-db",
"sc-network",
"sc-network-common",
+ "sc-network-types",
"sc-transaction-pool",
"sc-transaction-pool-api",
"sc-utils",
@@ -16577,7 +17221,7 @@ name = "sc-rpc"
version = "29.0.0"
dependencies = [
"assert_matches",
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"futures",
"jsonrpsee",
"log",
@@ -16654,7 +17298,7 @@ dependencies = [
name = "sc-rpc-spec-v2"
version = "0.34.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"futures",
"futures-util",
@@ -16664,7 +17308,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"pretty_assertions",
- "rand",
+ "rand 0.8.5",
"sc-block-builder",
"sc-chain-spec",
"sc-client-api",
@@ -16673,6 +17317,7 @@ dependencies = [
"sc-transaction-pool",
"sc-transaction-pool-api",
"sc-utils",
+ "schnellru",
"serde",
"serde_json",
"sp-api",
@@ -16718,7 +17363,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
"sc-chain-spec",
"sc-client-api",
"sc-client-db",
@@ -16727,11 +17372,11 @@ dependencies = [
"sc-informant",
"sc-keystore",
"sc-network",
- "sc-network-bitswap",
"sc-network-common",
"sc-network-light",
"sc-network-sync",
"sc-network-transactions",
+ "sc-network-types",
"sc-rpc",
"sc-rpc-server",
"sc-rpc-spec-v2",
@@ -16773,7 +17418,7 @@ dependencies = [
name = "sc-service-test"
version = "2.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-channel",
"fdlimit",
"futures",
@@ -16819,7 +17464,7 @@ dependencies = [
name = "sc-statement-store"
version = "10.0.0"
dependencies = [
- "env_logger 0.9.3",
+ "env_logger 0.11.3",
"log",
"parity-db",
"parking_lot 0.12.1",
@@ -16873,7 +17518,7 @@ dependencies = [
"futures",
"libc",
"log",
- "rand",
+ "rand 0.8.5",
"rand_pcg",
"regex",
"sc-telemetry",
@@ -16896,7 +17541,8 @@ dependencies = [
"log",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
+ "sc-network",
"sc-utils",
"serde",
"serde_json",
@@ -16910,7 +17556,7 @@ version = "28.0.0"
dependencies = [
"ansi_term",
"chrono",
- "criterion 0.4.0",
+ "criterion",
"is-terminal",
"lazy_static",
"libc",
@@ -16930,8 +17576,8 @@ dependencies = [
"sp-tracing 16.0.0",
"thiserror",
"tracing",
- "tracing-log 0.1.3",
- "tracing-subscriber 0.2.25",
+ "tracing-log 0.2.0",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -16939,8 +17585,8 @@ name = "sc-tracing-proc-macro"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -16948,10 +17594,10 @@ dependencies = [
name = "sc-transaction-pool"
version = "28.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"async-trait",
- "criterion 0.4.0",
+ "criterion",
"futures",
"futures-timer",
"linked-hash-map",
@@ -17011,9 +17657,9 @@ dependencies = [
[[package]]
name = "scale-info"
-version = "2.11.0"
+version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ef2175c2907e7c8bc0a9c3f86aeb5ec1f3b275300ad58a44d0c3ae379a5e52e"
+checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7"
dependencies = [
"bitvec",
"cfg-if",
@@ -17025,13 +17671,13 @@ dependencies = [
[[package]]
name = "scale-info-derive"
-version = "2.11.0"
+version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "634d9b8eb8fd61c5cdd3390d9b2132300a7e7618955b98b8416f118c1b4e144f"
+checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac"
dependencies = [
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -17062,8 +17708,8 @@ version = "0.8.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"serde_derive_internals",
"syn 1.0.109",
]
@@ -17101,7 +17747,7 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0"
dependencies = [
- "aead 0.5.2",
+ "aead",
"arrayref",
"arrayvec 0.7.4",
"curve25519-dalek 4.1.2",
@@ -17109,7 +17755,7 @@ dependencies = [
"merlin",
"rand_core 0.6.4",
"serde_bytes",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"subtle 2.5.0",
"zeroize",
]
@@ -17142,6 +17788,21 @@ dependencies = [
"untrusted 0.7.1",
]
+[[package]]
+name = "sctp-proto"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f64cef148d3295c730c3cb340b0b252a4d570b1c7d4bf0808f88540b0a888bc"
+dependencies = [
+ "bytes",
+ "crc",
+ "fxhash",
+ "log",
+ "rand 0.8.5",
+ "slab",
+ "thiserror",
+]
+
[[package]]
name = "sec1"
version = "0.7.3"
@@ -17341,8 +18002,8 @@ version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -17352,8 +18013,8 @@ version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -17372,6 +18033,7 @@ version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
+ "indexmap 2.2.3",
"itoa",
"ryu",
"serde",
@@ -17441,8 +18103,8 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -17468,6 +18130,7 @@ dependencies = [
"cfg-if",
"cpufeatures",
"digest 0.10.7",
+ "sha1-asm",
]
[[package]]
@@ -17481,6 +18144,15 @@ dependencies = [
"digest 0.10.7",
]
+[[package]]
+name = "sha1-asm"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ba6947745e7f86be3b8af00b7355857085dbdf8901393c89514510eb61f4e21"
+dependencies = [
+ "cc",
+]
+
[[package]]
name = "sha2"
version = "0.9.9"
@@ -17496,9 +18168,9 @@ dependencies = [
[[package]]
name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
"cfg-if",
"cpufeatures",
@@ -17586,6 +18258,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "signature"
+version = "1.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+
[[package]]
name = "signature"
version = "2.1.0"
@@ -17609,6 +18287,15 @@ dependencies = [
"wide",
]
+[[package]]
+name = "simple-dns"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694"
+dependencies = [
+ "bitflags 2.4.0",
+]
+
[[package]]
name = "simple-mermaid"
version = "0.1.1"
@@ -17656,6 +18343,17 @@ dependencies = [
"version_check",
]
+[[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel",
+ "futures-core",
+ "futures-io",
+]
+
[[package]]
name = "smallvec"
version = "1.11.2"
@@ -17672,7 +18370,7 @@ dependencies = [
"async-executor",
"async-fs",
"async-io",
- "async-lock 2.8.0",
+ "async-lock",
"async-net",
"async-process",
"blocking",
@@ -17695,18 +18393,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5"
dependencies = [
"arrayvec 0.7.4",
- "async-lock 2.8.0",
+ "async-lock",
"atomic-take",
"base64 0.21.2",
"bip39",
"blake2-rfc",
"bs58 0.5.0",
- "chacha20 0.9.1",
+ "chacha20",
"crossbeam-queue",
"derive_more",
- "ed25519-zebra 4.0.3",
+ "ed25519-zebra",
"either",
- "event-listener 2.5.3",
+ "event-listener",
"fnv",
"futures-lite",
"futures-util",
@@ -17723,14 +18421,14 @@ dependencies = [
"num-traits",
"pbkdf2",
"pin-project",
- "poly1305 0.8.0",
- "rand",
+ "poly1305",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"ruzstd",
"schnorrkel 0.10.2",
"serde",
"serde_json",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sha3",
"siphasher",
"slab",
@@ -17749,12 +18447,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33"
dependencies = [
"async-channel",
- "async-lock 2.8.0",
+ "async-lock",
"base64 0.21.2",
"blake2-rfc",
"derive_more",
"either",
- "event-listener 2.5.3",
+ "event-listener",
"fnv",
"futures-channel",
"futures-lite",
@@ -17767,7 +18465,7 @@ dependencies = [
"no-std-net",
"parking_lot 0.12.1",
"pin-project",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"serde",
"serde_json",
@@ -17786,18 +18484,18 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
[[package]]
name = "snow"
-version = "0.9.3"
+version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
+checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85"
dependencies = [
- "aes-gcm 0.9.2",
+ "aes-gcm",
"blake2 0.10.6",
"chacha20poly1305",
"curve25519-dalek 4.1.2",
"rand_core 0.6.4",
- "ring 0.16.20",
+ "ring 0.17.7",
"rustc_version 0.4.0",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"subtle 2.5.0",
]
@@ -17817,7 +18515,6 @@ version = "0.2.0"
dependencies = [
"byte-slice-cast",
"frame-support",
- "frame-system",
"hex",
"hex-literal",
"parity-scale-codec",
@@ -17832,7 +18529,6 @@ dependencies = [
"sp-std 14.0.0",
"ssz_rs",
"ssz_rs_derive",
- "static_assertions",
]
[[package]]
@@ -17868,14 +18564,12 @@ dependencies = [
"hex-literal",
"parity-bytes",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"rlp",
- "rustc-hex",
"scale-info",
"serde",
"serde-big-array",
"serde_json",
- "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
@@ -17891,7 +18585,7 @@ dependencies = [
"hex",
"lazy_static",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"snowbridge-amcl",
"zeroize",
@@ -17901,8 +18595,8 @@ dependencies = [
name = "snowbridge-outbound-queue-merkle-tree"
version = "0.3.0"
dependencies = [
- "array-bytes 4.2.0",
- "env_logger 0.9.3",
+ "array-bytes",
+ "env_logger 0.11.3",
"hex",
"hex-literal",
"parity-scale-codec",
@@ -17921,17 +18615,13 @@ dependencies = [
"snowbridge-core",
"snowbridge-outbound-queue-merkle-tree",
"sp-api",
- "sp-core",
"sp-std 14.0.0",
- "staging-xcm",
]
[[package]]
name = "snowbridge-pallet-ethereum-client"
version = "0.2.0"
dependencies = [
- "bp-runtime",
- "byte-slice-cast",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -17939,8 +18629,7 @@ dependencies = [
"log",
"pallet-timestamp",
"parity-scale-codec",
- "rand",
- "rlp",
+ "rand 0.8.5",
"scale-info",
"serde",
"serde_json",
@@ -17953,8 +18642,6 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-std 14.0.0",
- "ssz_rs",
- "ssz_rs_derive",
"static_assertions",
]
@@ -17962,9 +18649,6 @@ dependencies = [
name = "snowbridge-pallet-ethereum-client-fixtures"
version = "0.9.0"
dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
"hex-literal",
"snowbridge-beacon-primitives",
"snowbridge-core",
@@ -17977,21 +18661,18 @@ name = "snowbridge-pallet-inbound-queue"
version = "0.2.0"
dependencies = [
"alloy-primitives",
- "alloy-rlp",
"alloy-sol-types",
"frame-benchmarking",
"frame-support",
"frame-system",
"hex-literal",
"log",
- "num-traits",
"pallet-balances",
"parity-scale-codec",
"scale-info",
"serde",
"snowbridge-beacon-primitives",
"snowbridge-core",
- "snowbridge-ethereum",
"snowbridge-pallet-ethereum-client",
"snowbridge-pallet-inbound-queue-fixtures",
"snowbridge-router-primitives",
@@ -18001,7 +18682,6 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
@@ -18009,9 +18689,6 @@ dependencies = [
name = "snowbridge-pallet-inbound-queue-fixtures"
version = "0.10.0"
dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
"hex-literal",
"snowbridge-beacon-primitives",
"snowbridge-core",
@@ -18028,7 +18705,6 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "hex-literal",
"pallet-message-queue",
"parity-scale-codec",
"scale-info",
@@ -18041,14 +18717,12 @@ dependencies = [
"sp-keyring",
"sp-runtime",
"sp-std 14.0.0",
- "staging-xcm",
]
[[package]]
name = "snowbridge-pallet-system"
version = "0.2.0"
dependencies = [
- "ethabi-decode",
"frame-benchmarking",
"frame-support",
"frame-system",
@@ -18068,7 +18742,6 @@ dependencies = [
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
@@ -18076,22 +18749,18 @@ dependencies = [
name = "snowbridge-router-primitives"
version = "0.9.0"
dependencies = [
- "ethabi-decode",
"frame-support",
- "frame-system",
"hex-literal",
"log",
"parity-scale-codec",
"rustc-hex",
"scale-info",
- "serde",
"snowbridge-core",
"sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
]
@@ -18100,7 +18769,6 @@ name = "snowbridge-runtime-common"
version = "0.2.0"
dependencies = [
"frame-support",
- "frame-system",
"log",
"parity-scale-codec",
"snowbridge-core",
@@ -18115,77 +18783,30 @@ dependencies = [
name = "snowbridge-runtime-test-common"
version = "0.2.0"
dependencies = [
- "assets-common",
- "bridge-hub-test-utils",
- "bridge-runtime-common",
- "cumulus-pallet-aura-ext",
"cumulus-pallet-parachain-system",
- "cumulus-pallet-session-benchmarking",
- "cumulus-pallet-xcm",
- "cumulus-pallet-xcmp-queue",
- "cumulus-primitives-core",
- "cumulus-primitives-utility",
- "frame-benchmarking",
- "frame-executive",
"frame-support",
"frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "hex-literal",
- "log",
- "pallet-aura",
- "pallet-authorship",
"pallet-balances",
"pallet-collator-selection",
"pallet-message-queue",
- "pallet-multisig",
"pallet-session",
"pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
"pallet-utility",
"pallet-xcm",
- "pallet-xcm-benchmarks",
- "parachains-common",
"parachains-runtimes-test-utils",
"parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-parachain-primitives",
- "polkadot-runtime-common",
- "scale-info",
- "serde",
- "smallvec",
- "snowbridge-beacon-primitives",
"snowbridge-core",
- "snowbridge-outbound-queue-runtime-api",
"snowbridge-pallet-ethereum-client",
"snowbridge-pallet-ethereum-client-fixtures",
- "snowbridge-pallet-inbound-queue",
"snowbridge-pallet-outbound-queue",
"snowbridge-pallet-system",
- "snowbridge-router-primitives",
- "snowbridge-system-runtime-api",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
"sp-core",
- "sp-genesis-builder",
- "sp-inherents",
"sp-io",
"sp-keyring",
- "sp-offchain",
"sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-storage 19.0.0",
- "sp-transaction-pool",
- "sp-version",
"staging-parachain-info",
"staging-xcm",
- "staging-xcm-builder",
"staging-xcm-executor",
- "static_assertions",
]
[[package]]
@@ -18195,7 +18816,6 @@ dependencies = [
"parity-scale-codec",
"snowbridge-core",
"sp-api",
- "sp-core",
"sp-std 14.0.0",
"staging-xcm",
]
@@ -18212,12 +18832,12 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.5.3"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
dependencies = [
"libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -18233,7 +18853,7 @@ dependencies = [
"http",
"httparse",
"log",
- "rand",
+ "rand 0.8.5",
"sha-1 0.9.8",
]
@@ -18277,7 +18897,6 @@ dependencies = [
"sp-timestamp",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
- "try-runtime-cli",
]
[[package]]
@@ -18349,8 +18968,8 @@ dependencies = [
"blake2 0.10.6",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -18358,7 +18977,7 @@ dependencies = [
name = "sp-api-test"
version = "2.0.1"
dependencies = [
- "criterion 0.4.0",
+ "criterion",
"futures",
"log",
"parity-scale-codec",
@@ -18404,13 +19023,13 @@ dependencies = [
name = "sp-arithmetic"
version = "23.0.0"
dependencies = [
- "criterion 0.4.0",
- "docify 0.2.7",
+ "criterion",
+ "docify",
"integer-sqrt",
"num-traits",
"parity-scale-codec",
"primitive-types",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"sp-crypto-hashing",
@@ -18535,7 +19154,7 @@ dependencies = [
name = "sp-consensus-beefy"
version = "13.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"lazy_static",
"parity-scale-codec",
"scale-info",
@@ -18548,7 +19167,7 @@ dependencies = [
"sp-keystore",
"sp-mmr-primitives",
"sp-runtime",
- "strum 0.24.1",
+ "strum 0.26.2",
"w3f-bls",
]
@@ -18606,20 +19225,20 @@ dependencies = [
name = "sp-core"
version = "28.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"bandersnatch_vrfs",
"bitflags 1.3.2",
"blake2 0.10.6",
"bounded-collections",
"bs58 0.5.0",
- "criterion 0.4.0",
+ "criterion",
"dyn-clonable",
- "ed25519-zebra 3.1.0",
+ "ed25519-zebra",
"futures",
"hash-db",
"hash256-std-hasher",
"impl-serde",
- "itertools 0.10.5",
+ "itertools 0.11.0",
"k256",
"lazy_static",
"libsecp256k1",
@@ -18630,7 +19249,7 @@ dependencies = [
"parking_lot 0.12.1",
"paste",
"primitive-types",
- "rand",
+ "rand 0.8.5",
"regex",
"scale-info",
"schnorrkel 0.11.4",
@@ -18718,13 +19337,13 @@ dependencies = [
[[package]]
name = "sp-crypto-hashing"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"blake2b_simd",
"byteorder",
- "criterion 0.4.0",
+ "criterion",
"digest 0.10.7",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sha3",
"sp-crypto-hashing-proc-macro",
"twox-hash",
@@ -18732,9 +19351,9 @@ dependencies = [
[[package]]
name = "sp-crypto-hashing-proc-macro"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
- "quote",
+ "quote 1.0.35",
"sp-crypto-hashing",
"syn 2.0.53",
]
@@ -18752,8 +19371,8 @@ name = "sp-debug-derive"
version = "8.0.0"
source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -18761,8 +19380,8 @@ dependencies = [
name = "sp-debug-derive"
version = "14.0.0"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -18788,8 +19407,10 @@ dependencies = [
[[package]]
name = "sp-genesis-builder"
-version = "0.7.0"
+version = "0.8.0"
dependencies = [
+ "parity-scale-codec",
+ "scale-info",
"serde_json",
"sp-api",
"sp-runtime",
@@ -18813,7 +19434,7 @@ name = "sp-io"
version = "30.0.0"
dependencies = [
"bytes",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"libsecp256k1",
"log",
"parity-scale-codec",
@@ -18839,7 +19460,7 @@ version = "31.0.0"
dependencies = [
"sp-core",
"sp-runtime",
- "strum 0.24.1",
+ "strum 0.26.2",
]
[[package]]
@@ -18848,8 +19469,8 @@ version = "0.34.0"
dependencies = [
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
- "rand_chacha 0.2.2",
+ "rand 0.8.5",
+ "rand_chacha 0.3.1",
"sp-core",
"sp-externalities 0.25.0",
]
@@ -18885,7 +19506,7 @@ dependencies = [
name = "sp-mmr-primitives"
version = "26.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"ckb-merkle-mountain-range",
"log",
"parity-scale-codec",
@@ -18903,7 +19524,7 @@ name = "sp-npos-elections"
version = "26.0.0"
dependencies = [
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"sp-arithmetic",
@@ -18918,7 +19539,7 @@ version = "2.0.0-alpha.5"
dependencies = [
"clap 4.5.3",
"honggfuzz",
- "rand",
+ "rand 0.8.5",
"sp-npos-elections",
"sp-runtime",
]
@@ -18955,14 +19576,15 @@ dependencies = [
name = "sp-runtime"
version = "31.0.1"
dependencies = [
- "docify 0.2.7",
+ "docify",
"either",
"hash256-std-hasher",
"impl-trait-for-tuples",
"log",
+ "num-traits",
"parity-scale-codec",
"paste",
- "rand",
+ "rand 0.8.5",
"scale-info",
"serde",
"serde_json",
@@ -19030,8 +19652,8 @@ source = "git+https://github.com/paritytech/polkadot-sdk#838a534da874cf6071fba1d
dependencies = [
"Inflector",
"proc-macro-crate 1.3.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -19042,8 +19664,8 @@ dependencies = [
"Inflector",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -19114,14 +19736,14 @@ dependencies = [
name = "sp-state-machine"
version = "0.35.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_matches",
"hash-db",
"log",
"parity-scale-codec",
"parking_lot 0.12.1",
"pretty_assertions",
- "rand",
+ "rand 0.8.5",
"smallvec",
"sp-core",
"sp-externalities 0.25.0",
@@ -19137,14 +19759,14 @@ dependencies = [
name = "sp-statement-store"
version = "10.0.0"
dependencies = [
- "aes-gcm 0.10.3",
+ "aes-gcm",
"curve25519-dalek 4.1.2",
- "ed25519-dalek",
+ "ed25519-dalek 2.1.0",
"hkdf",
"parity-scale-codec",
- "rand",
+ "rand 0.8.5",
"scale-info",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sp-api",
"sp-application-crypto",
"sp-core",
@@ -19231,7 +19853,7 @@ dependencies = [
"parity-scale-codec",
"tracing",
"tracing-core",
- "tracing-subscriber 0.2.25",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -19260,15 +19882,15 @@ name = "sp-trie"
version = "29.0.0"
dependencies = [
"ahash 0.8.8",
- "array-bytes 6.1.0",
- "criterion 0.4.0",
+ "array-bytes",
+ "criterion",
"hash-db",
"lazy_static",
"memory-db",
"nohash-hasher",
"parity-scale-codec",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"scale-info",
"schnellru",
"sp-core",
@@ -19303,8 +19925,8 @@ name = "sp-version-proc-macro"
version = "13.0.0"
dependencies = [
"parity-scale-codec",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"sp-version",
"syn 2.0.53",
]
@@ -19388,11 +20010,11 @@ checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439"
dependencies = [
"Inflector",
"num-format",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"serde",
"serde_json",
- "unicode-xid",
+ "unicode-xid 0.2.4",
]
[[package]]
@@ -19413,8 +20035,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -19426,7 +20048,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "staging-chain-spec-builder"
-version = "2.0.0"
+version = "3.0.0"
dependencies = [
"clap 4.5.3",
"log",
@@ -19439,11 +20061,11 @@ dependencies = [
name = "staging-node-cli"
version = "3.0.0-dev"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"assert_cmd",
"clap 4.5.3",
"clap_complete",
- "criterion 0.4.0",
+ "criterion",
"frame-benchmarking",
"frame-benchmarking-cli",
"frame-support",
@@ -19454,7 +20076,7 @@ dependencies = [
"kitchensink-runtime",
"log",
"mmr-gadget",
- "nix 0.26.2",
+ "nix 0.27.1",
"node-primitives",
"node-rpc",
"node-testing",
@@ -19473,7 +20095,7 @@ dependencies = [
"pallet-treasury",
"parity-scale-codec",
"platforms",
- "rand",
+ "rand 0.8.5",
"regex",
"sc-authority-discovery",
"sc-basic-authorship",
@@ -19521,6 +20143,7 @@ dependencies = [
"sp-core",
"sp-crypto-hashing",
"sp-externalities 0.25.0",
+ "sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-keyring",
@@ -19542,7 +20165,6 @@ dependencies = [
"tempfile",
"tokio",
"tokio-util",
- "try-runtime-cli",
"wait-timeout",
"wat",
]
@@ -19585,7 +20207,7 @@ version = "2.0.0"
name = "staging-xcm"
version = "7.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"bounded-collections",
"derivative",
"environmental",
@@ -19681,11 +20303,31 @@ checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"
dependencies = [
"cfg_aliases",
"memchr",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
+[[package]]
+name = "str0m"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3f10d3f68e60168d81110410428a435dbde28cc5525f5f7c6fdec92dbdc2800"
+dependencies = [
+ "combine",
+ "crc",
+ "hmac 0.12.1",
+ "once_cell",
+ "openssl",
+ "openssl-sys",
+ "rand 0.8.5",
+ "sctp-proto",
+ "serde",
+ "sha-1 0.10.1",
+ "thiserror",
+ "tracing",
+]
+
[[package]]
name = "strobe-rs"
version = "0.8.1"
@@ -19699,6 +20341,12 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
[[package]]
name = "strsim"
version = "0.10.0"
@@ -19711,6 +20359,30 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+[[package]]
+name = "structopt"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
+dependencies = [
+ "clap 2.34.0",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
+dependencies = [
+ "heck 0.3.3",
+ "proc-macro-error",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
[[package]]
name = "strum"
version = "0.24.1"
@@ -19722,9 +20394,18 @@ dependencies = [
[[package]]
name = "strum"
-version = "0.25.0"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros 0.26.2",
+]
[[package]]
name = "strum_macros"
@@ -19733,8 +20414,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustversion",
"syn 1.0.109",
]
@@ -19746,8 +20427,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck 0.4.1",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
+ "rustversion",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"rustversion",
"syn 2.0.53",
]
@@ -19769,7 +20463,7 @@ dependencies = [
"pbkdf2",
"rustc-hex",
"schnorrkel 0.11.4",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"zeroize",
]
@@ -19783,7 +20477,7 @@ version = "0.1.0"
dependencies = [
"assert_cmd",
"futures",
- "nix 0.26.2",
+ "nix 0.27.1",
"node-primitives",
"regex",
"sc-cli",
@@ -19857,6 +20551,49 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "substrate-relay-helper"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-std",
+ "async-trait",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-parachains",
+ "bp-polkadot-core",
+ "bp-relayers",
+ "bp-runtime",
+ "bridge-runtime-common",
+ "equivocation-detector",
+ "finality-grandpa",
+ "finality-relay",
+ "frame-support",
+ "frame-system",
+ "futures",
+ "hex",
+ "log",
+ "messages-relay",
+ "num-traits",
+ "pallet-balances",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-grandpa",
+ "pallet-transaction-payment",
+ "parachains-relay",
+ "parity-scale-codec",
+ "rbtag",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-runtime",
+ "structopt",
+ "strum 0.26.2",
+ "thiserror",
+]
+
[[package]]
name = "substrate-rpc-client"
version = "0.33.0"
@@ -19892,7 +20629,7 @@ dependencies = [
name = "substrate-test-client"
version = "2.0.1"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"async-trait",
"futures",
"parity-scale-codec",
@@ -19918,12 +20655,13 @@ dependencies = [
name = "substrate-test-runtime"
version = "2.0.0"
dependencies = [
- "array-bytes 6.1.0",
+ "array-bytes",
"frame-executive",
"frame-support",
"frame-system",
"frame-system-rpc-runtime-api",
"futures",
+ "hex-literal",
"log",
"pallet-babe",
"pallet-balances",
@@ -20017,7 +20755,7 @@ dependencies = [
"parity-wasm",
"polkavm-linker",
"sp-maybe-compressed-blob",
- "strum 0.24.1",
+ "strum 0.26.2",
"tempfile",
"toml 0.8.8",
"walkdir",
@@ -20133,14 +20871,25 @@ dependencies = [
"symbolic-common",
]
+[[package]]
+name = "syn"
+version = "0.15.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
+dependencies = [
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "unicode-xid 0.1.0",
+]
+
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"unicode-ident",
]
@@ -20150,8 +20899,8 @@ version = "2.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"unicode-ident",
]
@@ -20162,8 +20911,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
dependencies = [
"paste",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -20173,10 +20922,25 @@ version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
- "unicode-xid",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "sysinfo"
+version = "0.30.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
+dependencies = [
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "windows 0.52.0",
]
[[package]]
@@ -20365,11 +21129,8 @@ version = "1.0.0"
dependencies = [
"frame-support",
"polkadot-primitives",
- "polkadot-runtime-common",
"smallvec",
- "sp-core",
"sp-runtime",
- "sp-weights",
]
[[package]]
@@ -20386,6 +21147,15 @@ dependencies = [
"westend-runtime-constants",
]
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
[[package]]
name = "textwrap"
version = "0.16.0"
@@ -20416,8 +21186,8 @@ version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 1.0.109",
]
@@ -20427,8 +21197,8 @@ version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -20509,6 +21279,8 @@ checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07"
dependencies = [
"deranged",
"itoa",
+ "libc",
+ "num_threads",
"serde",
"time-core",
"time-macros",
@@ -20565,9 +21337,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.33.0"
+version = "1.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
dependencies = [
"backtrace",
"bytes",
@@ -20577,19 +21349,19 @@ dependencies = [
"parking_lot 0.12.1",
"pin-project-lite 0.2.12",
"signal-hook-registry",
- "socket2 0.5.3",
+ "socket2 0.5.6",
"tokio-macros",
"windows-sys 0.48.0",
]
[[package]]
name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -20600,7 +21372,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f"
dependencies = [
"pin-project",
- "rand",
+ "rand 0.8.5",
"tokio",
]
@@ -20652,13 +21424,16 @@ dependencies = [
[[package]]
name = "tokio-tungstenite"
-version = "0.17.2"
+version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
dependencies = [
"futures-util",
"log",
+ "rustls 0.21.6",
+ "rustls-native-certs 0.6.3",
"tokio",
+ "tokio-rustls 0.24.1",
"tungstenite",
]
@@ -20778,11 +21553,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
[[package]]
name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "cfg-if",
"log",
"pin-project-lite 0.2.12",
"tracing-attributes",
@@ -20791,12 +21565,12 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -20837,8 +21611,8 @@ dependencies = [
"assert_matches",
"expander 2.0.0",
"proc-macro-crate 3.0.0",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -20884,7 +21658,6 @@ dependencies = [
"chrono",
"lazy_static",
"matchers 0.0.1",
- "parking_lot 0.11.2",
"regex",
"serde",
"serde_json",
@@ -20903,9 +21676,11 @@ version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
dependencies = [
+ "chrono",
"matchers 0.1.0",
"nu-ansi-term",
"once_cell",
+ "parking_lot 0.12.1",
"regex",
"sharded-slab",
"smallvec",
@@ -20917,11 +21692,11 @@ dependencies = [
[[package]]
name = "trie-bench"
-version = "0.38.0"
+version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4680cb226e31d2a096592d0edecdda91cc371743002f80c0f8cf80219819b3b"
+checksum = "3092f400e9f7e3ce8c1756016a8b6287163ab7a11dd47d82169260cb4cc2d680"
dependencies = [
- "criterion 0.4.0",
+ "criterion",
"hash-db",
"keccak-hasher",
"memory-db",
@@ -20933,12 +21708,11 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642"
+checksum = "65ed83be775d85ebb0e272914fff6462c39b3ddd6dc67b5c1c41271aad280c69"
dependencies = [
"hash-db",
- "hashbrown 0.13.2",
"log",
"rustc-hex",
"smallvec",
@@ -20972,14 +21746,14 @@ dependencies = [
"async-trait",
"cfg-if",
"data-encoding",
- "enum-as-inner",
+ "enum-as-inner 0.5.1",
"futures-channel",
"futures-io",
"futures-util",
"idna 0.2.3",
"ipnet",
"lazy_static",
- "rand",
+ "rand 0.8.5",
"smallvec",
"socket2 0.4.9",
"thiserror",
@@ -20989,6 +21763,31 @@ dependencies = [
"url",
]
+[[package]]
+name = "trust-dns-proto"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner 0.6.0",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand 0.8.5",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
[[package]]
name = "trust-dns-resolver"
version = "0.22.0"
@@ -21006,56 +21805,36 @@ dependencies = [
"thiserror",
"tokio",
"tracing",
- "trust-dns-proto",
+ "trust-dns-proto 0.22.0",
]
[[package]]
-name = "try-lock"
-version = "0.2.4"
+name = "trust-dns-resolver"
+version = "0.23.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "try-runtime-cli"
-version = "0.38.0"
+checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
dependencies = [
- "assert_cmd",
- "async-trait",
- "clap 4.5.3",
- "frame-remote-externalities",
- "frame-try-runtime",
- "hex",
- "log",
- "node-primitives",
- "parity-scale-codec",
- "regex",
- "sc-cli",
- "sc-executor",
- "serde",
- "serde_json",
- "sp-api",
- "sp-consensus-aura",
- "sp-consensus-babe",
- "sp-core",
- "sp-debug-derive 14.0.0",
- "sp-externalities 0.25.0",
- "sp-inherents",
- "sp-io",
- "sp-keystore",
- "sp-rpc",
- "sp-runtime",
- "sp-state-machine",
- "sp-timestamp",
- "sp-transaction-storage-proof",
- "sp-version",
- "sp-weights",
- "substrate-cli-test-utils",
- "substrate-rpc-client",
- "tempfile",
+ "cfg-if",
+ "futures-util",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "rand 0.8.5",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
"tokio",
- "zstd 0.12.4",
+ "tracing",
+ "trust-dns-proto 0.23.2",
]
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
[[package]]
name = "trybuild"
version = "1.0.89"
@@ -21080,18 +21859,19 @@ checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df"
[[package]]
name = "tungstenite"
-version = "0.17.3"
+version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
dependencies = [
- "base64 0.13.1",
"byteorder",
"bytes",
+ "data-encoding",
"http",
"httparse",
"log",
- "rand",
- "sha-1 0.10.1",
+ "rand 0.8.5",
+ "rustls 0.21.6",
+ "sha1",
"thiserror",
"url",
"utf-8",
@@ -21111,7 +21891,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
"cfg-if",
"digest 0.10.7",
- "rand",
+ "rand 0.7.3",
"static_assertions",
]
@@ -21166,6 +21946,12 @@ dependencies = [
"tinyvec",
]
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
[[package]]
name = "unicode-width"
version = "0.1.10"
@@ -21174,19 +21960,15 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
[[package]]
name = "unicode-xid"
-version = "0.2.4"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
[[package]]
-name = "universal-hash"
-version = "0.4.0"
+name = "unicode-xid"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
-dependencies = [
- "generic-array 0.14.7",
- "subtle 2.5.0",
-]
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "universal-hash"
@@ -21206,14 +21988,15 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
name = "unsigned-varint"
-version = "0.7.1"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836"
+checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"
dependencies = [
"asynchronous-codec",
"bytes",
"futures-io",
"futures-util",
+ "tokio-util",
]
[[package]]
@@ -21305,6 +22088,12 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
[[package]]
name = "version_check"
version = "0.9.4"
@@ -21332,10 +22121,10 @@ dependencies = [
"arrayref",
"constcat",
"digest 0.10.7",
- "rand",
+ "rand 0.8.5",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"sha3",
"thiserror",
"zeroize",
@@ -21408,8 +22197,8 @@ dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
"wasm-bindgen-shared",
]
@@ -21432,7 +22221,7 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
- "quote",
+ "quote 1.0.35",
"wasm-bindgen-macro-support",
]
@@ -21442,8 +22231,8 @@ version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
@@ -21475,8 +22264,8 @@ version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
]
[[package]]
@@ -21653,7 +22442,7 @@ dependencies = [
"log",
"rustix 0.36.15",
"serde",
- "sha2 0.10.7",
+ "sha2 0.10.8",
"toml 0.5.11",
"windows-sys 0.45.0",
"zstd 0.11.2+zstd.1.5.2",
@@ -21777,7 +22566,7 @@ dependencies = [
"memfd",
"memoffset 0.8.0",
"paste",
- "rand",
+ "rand 0.8.5",
"rustix 0.36.15",
"wasmtime-asm-macros",
"wasmtime-environ",
@@ -21905,7 +22694,6 @@ dependencies = [
"pallet-fast-unstake",
"pallet-grandpa",
"pallet-identity",
- "pallet-im-online",
"pallet-indices",
"pallet-membership",
"pallet-message-queue",
@@ -21980,6 +22768,7 @@ dependencies = [
"tiny-keccak",
"tokio",
"westend-runtime-constants",
+ "xcm-fee-payment-runtime-api",
]
[[package]]
@@ -22090,6 +22879,40 @@ dependencies = [
"windows-targets 0.48.5",
]
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
[[package]]
name = "windows-sys"
version = "0.45.0"
@@ -22387,6 +23210,23 @@ dependencies = [
"time",
]
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs",
+ "data-encoding",
+ "der-parser",
+ "lazy_static",
+ "nom",
+ "oid-registry",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
[[package]]
name = "xattr"
version = "1.0.1"
@@ -22453,13 +23293,27 @@ dependencies = [
"staging-xcm-executor",
]
+[[package]]
+name = "xcm-fee-payment-runtime-api"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-weights",
+ "staging-xcm",
+]
+
[[package]]
name = "xcm-procedural"
version = "7.0.0"
dependencies = [
"Inflector",
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"staging-xcm",
"syn 2.0.53",
"trybuild",
@@ -22547,7 +23401,7 @@ dependencies = [
"log",
"nohash-hasher",
"parking_lot 0.12.1",
- "rand",
+ "rand 0.8.5",
"static_assertions",
]
@@ -22581,8 +23435,8 @@ version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
@@ -22601,8 +23455,8 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
- "proc-macro2",
- "quote",
+ "proc-macro2 1.0.75",
+ "quote 1.0.35",
"syn 2.0.53",
]
diff --git a/Cargo.toml b/Cargo.toml
index 5eeac5978270f7c656a3f52af53471d552b183d8..1d3f3d8e9ecd137493e72370734378fac9b19a87 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,12 +22,14 @@ members = [
"bridges/chains/chain-polkadot-bulletin",
"bridges/chains/chain-rococo",
"bridges/chains/chain-westend",
+ "bridges/modules/beefy",
"bridges/modules/grandpa",
"bridges/modules/messages",
"bridges/modules/parachains",
"bridges/modules/relayers",
"bridges/modules/xcm-bridge-hub",
"bridges/modules/xcm-bridge-hub-router",
+ "bridges/primitives/beefy",
"bridges/primitives/header-chain",
"bridges/primitives/messages",
"bridges/primitives/parachains",
@@ -37,6 +39,13 @@ members = [
"bridges/primitives/test-utils",
"bridges/primitives/xcm-bridge-hub",
"bridges/primitives/xcm-bridge-hub-router",
+ "bridges/relays/client-substrate",
+ "bridges/relays/equivocation",
+ "bridges/relays/finality",
+ "bridges/relays/lib-substrate-relay",
+ "bridges/relays/messages",
+ "bridges/relays/parachains",
+ "bridges/relays/utils",
"bridges/snowbridge/pallets/ethereum-client",
"bridges/snowbridge/pallets/ethereum-client/fixtures",
"bridges/snowbridge/pallets/inbound-queue",
@@ -94,6 +103,7 @@ members = [
"cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend",
"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/people/people-rococo",
"cumulus/parachains/integration-tests/emulated/tests/people/people-westend",
"cumulus/parachains/pallets/collective-content",
@@ -214,6 +224,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-simulator",
"polkadot/xcm/xcm-simulator/example",
"polkadot/xcm/xcm-simulator/fuzzer",
@@ -259,13 +270,13 @@ members = [
"substrate/client/mixnet",
"substrate/client/network",
"substrate/client/network-gossip",
- "substrate/client/network/bitswap",
"substrate/client/network/common",
"substrate/client/network/light",
"substrate/client/network/statement",
"substrate/client/network/sync",
"substrate/client/network/test",
"substrate/client/network/transactions",
+ "substrate/client/network/types",
"substrate/client/offchain",
"substrate/client/proposer-metrics",
"substrate/client/rpc",
@@ -290,6 +301,7 @@ members = [
"substrate/frame",
"substrate/frame/alliance",
"substrate/frame/asset-conversion",
+ "substrate/frame/asset-conversion/ops",
"substrate/frame/asset-rate",
"substrate/frame/assets",
"substrate/frame/atomic-swap",
@@ -330,6 +342,7 @@ members = [
"substrate/frame/examples/dev-mode",
"substrate/frame/examples/frame-crate",
"substrate/frame/examples/kitchensink",
+ "substrate/frame/examples/multi-block-migrations",
"substrate/frame/examples/offchain-worker",
"substrate/frame/examples/single-block-migrations",
"substrate/frame/examples/split",
@@ -490,16 +503,17 @@ members = [
"substrate/utils/frame/frame-utilities-cli",
"substrate/utils/frame/generate-bags",
"substrate/utils/frame/generate-bags/node-runtime",
+ "substrate/utils/frame/omni-bencher",
"substrate/utils/frame/remote-externalities",
"substrate/utils/frame/rpc/client",
"substrate/utils/frame/rpc/state-trie-migration-rpc",
"substrate/utils/frame/rpc/support",
"substrate/utils/frame/rpc/system",
- "substrate/utils/frame/try-runtime/cli",
"substrate/utils/prometheus",
"substrate/utils/substrate-bip39",
"substrate/utils/wasm-builder",
+ "templates/minimal",
"templates/minimal/node",
"templates/minimal/pallets/template",
"templates/minimal/runtime",
@@ -556,6 +570,7 @@ serde_json = { version = "1.0.114", default-features = false }
serde_yaml = { version = "0.9" }
syn = { version = "2.0.53" }
thiserror = { version = "1.0.48" }
+tracing-subscriber = { version = "0.3.18" }
[profile.release]
# Polkadot runtime requires unwinding.
diff --git a/bridges/.gitignore b/bridges/.gitignore
deleted file mode 100644
index 5d10cfa41a4487247e2c331144d3dabf0ec5e6f7..0000000000000000000000000000000000000000
--- a/bridges/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-**/target/
-**/.env
-**/.env2
-**/rust-toolchain
-hfuzz_target
-hfuzz_workspace
-**/Cargo.lock
-
-**/*.rs.bk
-
-*.o
-*.so
-*.rlib
-*.dll
-.gdb_history
-
-*.exe
-
-.DS_Store
-
-.cargo
-.idea
-.vscode
-*.iml
-*.swp
-*.swo
diff --git a/bridges/README.md b/bridges/README.md
index a2ce213d2541c346361eb28125a06e3079e1c269..8bfa39841f51e7824d0f1169540342c2bd88b664 100644
--- a/bridges/README.md
+++ b/bridges/README.md
@@ -38,10 +38,10 @@ cargo test --all
```
Also you can build the repo with [Parity CI Docker
-image](https://github.com/paritytech/scripts/tree/master/dockerfiles/bridges-ci):
+image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-unified):
```bash
-docker pull paritytech/bridges-ci:production
+docker pull paritytech/ci-unified:latest
mkdir ~/cache
chown 1000:1000 ~/cache #processes in the container runs as "nonroot" user with UID 1000
docker run --rm -it -w /shellhere/parity-bridges-common \
@@ -49,7 +49,7 @@ docker run --rm -it -w /shellhere/parity-bridges-common \
-v "$(pwd)":/shellhere/parity-bridges-common \
-e CARGO_HOME=/cache/cargo/ \
-e SCCACHE_DIR=/cache/sccache/ \
- -e CARGO_TARGET_DIR=/cache/target/ paritytech/bridges-ci:production cargo build --all
+ -e CARGO_TARGET_DIR=/cache/target/ paritytech/ci-unified:latest cargo build --all
#artifacts can be found in ~/cache/target
```
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index ee54f15f38b4c0a2e9faae3a157874898701ba2a..660d8f85bebb22bfb72ef7c83729bce58ee85276 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -11,11 +11,12 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
workspace = true
[dependencies]
-codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] }
+codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] }
hash-db = { version = "0.16.0", default-features = false }
log = { workspace = true }
-scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
+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 }
# Bridge dependencies
@@ -82,6 +83,7 @@ std = [
"sp-runtime/std",
"sp-std/std",
"sp-trie/std",
+ "tuplex/std",
"xcm-builder/std",
"xcm/std",
]
diff --git a/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs b/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
new file mode 100644
index 0000000000000000000000000000000000000000..2c152aef68226aee36e791a882b5859427a9a33d
--- /dev/null
+++ b/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
@@ -0,0 +1,680 @@
+// 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 .
+
+//! Transaction extension that rejects bridge-related transactions, that include
+//! obsolete (duplicated) data or do not pass some additional pallet-specific
+//! checks.
+
+use crate::{
+ extensions::refund_relayer_extension::RefundableParachainId,
+ messages_call_ext::MessagesCallSubType,
+};
+use bp_relayers::ExplicitOrAccountParams;
+use bp_runtime::Parachain;
+use pallet_bridge_grandpa::{
+ BridgedBlockNumber, CallSubType as GrandpaCallSubType, SubmitFinalityProofHelper,
+};
+use pallet_bridge_parachains::{
+ CallSubType as ParachainsCallSubtype, SubmitParachainHeadsHelper, SubmitParachainHeadsInfo,
+};
+use pallet_bridge_relayers::Pallet as RelayersPallet;
+use sp_runtime::{
+ traits::{Get, PhantomData, UniqueSaturatedInto},
+ transaction_validity::{TransactionPriority, TransactionValidity, ValidTransactionBuilder},
+};
+
+/// A duplication of the `FilterCall` trait.
+///
+/// We need this trait in order to be able to implement it for the messages pallet,
+/// since the implementation is done outside of the pallet crate.
+pub trait BridgeRuntimeFilterCall {
+ /// Data that may be passed from the validate to `post_dispatch`.
+ type ToPostDispatch;
+ /// Called during validation. Needs to checks whether a runtime call, submitted
+ /// by the `who` is valid. `who` may be `None` if transaction is not signed
+ /// by a regular account.
+ fn validate(who: &AccountId, call: &Call) -> (Self::ToPostDispatch, TransactionValidity);
+ /// Called after transaction is dispatched.
+ fn post_dispatch(_who: &AccountId, _has_failed: bool, _to_post_dispatch: Self::ToPostDispatch) {
+ }
+}
+
+/// Wrapper for the bridge GRANDPA pallet that checks calls for obsolete submissions
+/// and also boosts transaction priority if it has submitted by registered relayer.
+/// The boost is computed as
+/// `(BundledHeaderNumber - 1 - BestFinalizedHeaderNumber) * Priority::get()`.
+/// The boost is only applied if submitter has active registration in the relayers
+/// pallet.
+pub struct CheckAndBoostBridgeGrandpaTransactions(
+ PhantomData<(T, I, Priority, SlashAccount)>,
+);
+
+impl, SlashAccount: Get>
+ BridgeRuntimeFilterCall
+ for CheckAndBoostBridgeGrandpaTransactions
+where
+ T: pallet_bridge_relayers::Config + pallet_bridge_grandpa::Config,
+ T::RuntimeCall: GrandpaCallSubType,
+{
+ // bridged header number, bundled in transaction
+ type ToPostDispatch = Option>;
+
+ fn validate(
+ who: &T::AccountId,
+ call: &T::RuntimeCall,
+ ) -> (Self::ToPostDispatch, TransactionValidity) {
+ match GrandpaCallSubType::::check_obsolete_submit_finality_proof(call) {
+ Ok(Some(our_tx)) => {
+ let to_post_dispatch = Some(our_tx.base.block_number);
+ let total_priority_boost =
+ compute_priority_boost::(who, our_tx.improved_by);
+ (
+ to_post_dispatch,
+ ValidTransactionBuilder::default().priority(total_priority_boost).build(),
+ )
+ },
+ Ok(None) => (None, ValidTransactionBuilder::default().build()),
+ Err(e) => (None, Err(e)),
+ }
+ }
+
+ fn post_dispatch(
+ relayer: &T::AccountId,
+ has_failed: bool,
+ bundled_block_number: Self::ToPostDispatch,
+ ) {
+ // we are only interested in associated pallet submissions
+ let Some(bundled_block_number) = bundled_block_number else { return };
+ // we are only interested in failed or unneeded transactions
+ let has_failed =
+ has_failed || !SubmitFinalityProofHelper::::was_successful(bundled_block_number);
+
+ if !has_failed {
+ return
+ }
+
+ // let's slash registered relayer
+ RelayersPallet::::slash_and_deregister(
+ relayer,
+ ExplicitOrAccountParams::Explicit(SlashAccount::get()),
+ );
+ }
+}
+
+/// Wrapper for the bridge parachains pallet that checks calls for obsolete submissions
+/// and also boosts transaction priority if it has submitted by registered relayer.
+/// The boost is computed as
+/// `(BundledHeaderNumber - 1 - BestKnownHeaderNumber) * Priority::get()`.
+/// The boost is only applied if submitter has active registration in the relayers
+/// pallet.
+pub struct CheckAndBoostBridgeParachainsTransactions(
+ PhantomData<(T, RefPara, Priority, SlashAccount)>,
+);
+
+impl, SlashAccount: Get>
+ BridgeRuntimeFilterCall
+ for CheckAndBoostBridgeParachainsTransactions
+where
+ T: pallet_bridge_relayers::Config + pallet_bridge_parachains::Config,
+ RefPara: RefundableParachainId,
+ T::RuntimeCall: ParachainsCallSubtype,
+{
+ // bridged header number, bundled in transaction
+ type ToPostDispatch = Option;
+
+ fn validate(
+ who: &T::AccountId,
+ call: &T::RuntimeCall,
+ ) -> (Self::ToPostDispatch, TransactionValidity) {
+ match ParachainsCallSubtype::::check_obsolete_submit_parachain_heads(
+ call,
+ ) {
+ Ok(Some(our_tx)) if our_tx.base.para_id.0 == RefPara::BridgedChain::PARACHAIN_ID => {
+ let to_post_dispatch = Some(our_tx.base);
+ let total_priority_boost =
+ compute_priority_boost::(&who, our_tx.improved_by);
+ (
+ to_post_dispatch,
+ ValidTransactionBuilder::default().priority(total_priority_boost).build(),
+ )
+ },
+ Ok(_) => (None, ValidTransactionBuilder::default().build()),
+ Err(e) => (None, Err(e)),
+ }
+ }
+
+ fn post_dispatch(relayer: &T::AccountId, has_failed: bool, maybe_update: Self::ToPostDispatch) {
+ // we are only interested in associated pallet submissions
+ let Some(update) = maybe_update else { return };
+ // we are only interested in failed or unneeded transactions
+ let has_failed = has_failed ||
+ !SubmitParachainHeadsHelper::::was_successful(&update);
+
+ if !has_failed {
+ return
+ }
+
+ // let's slash registered relayer
+ RelayersPallet::::slash_and_deregister(
+ relayer,
+ ExplicitOrAccountParams::Explicit(SlashAccount::get()),
+ );
+ }
+}
+
+impl BridgeRuntimeFilterCall
+ for pallet_bridge_grandpa::Pallet
+where
+ T: pallet_bridge_grandpa::Config,
+ T::RuntimeCall: GrandpaCallSubType,
+{
+ type ToPostDispatch = ();
+ fn validate(_who: &T::AccountId, call: &T::RuntimeCall) -> ((), TransactionValidity) {
+ (
+ (),
+ GrandpaCallSubType::::check_obsolete_submit_finality_proof(call)
+ .and_then(|_| ValidTransactionBuilder::default().build()),
+ )
+ }
+}
+
+impl BridgeRuntimeFilterCall
+ for pallet_bridge_parachains::Pallet
+where
+ T: pallet_bridge_parachains::Config,
+ T::RuntimeCall: ParachainsCallSubtype,
+{
+ type ToPostDispatch = ();
+ fn validate(_who: &T::AccountId, call: &T::RuntimeCall) -> ((), TransactionValidity) {
+ (
+ (),
+ ParachainsCallSubtype::::check_obsolete_submit_parachain_heads(call)
+ .and_then(|_| ValidTransactionBuilder::default().build()),
+ )
+ }
+}
+
+impl, I: 'static>
+ BridgeRuntimeFilterCall for pallet_bridge_messages::Pallet
+where
+ T::RuntimeCall: MessagesCallSubType,
+{
+ type ToPostDispatch = ();
+ /// Validate messages in order to avoid "mining" messages delivery and delivery confirmation
+ /// transactions, that are delivering outdated messages/confirmations. Without this validation,
+ /// even honest relayers may lose their funds if there are multiple relays running and
+ /// submitting the same messages/confirmations.
+ fn validate(_who: &T::AccountId, call: &T::RuntimeCall) -> ((), TransactionValidity) {
+ ((), call.check_obsolete_call())
+ }
+}
+
+/// Computes priority boost that improved known header by `improved_by`
+fn compute_priority_boost(
+ relayer: &T::AccountId,
+ improved_by: N,
+) -> TransactionPriority
+where
+ T: pallet_bridge_relayers::Config,
+ N: UniqueSaturatedInto,
+ Priority: Get,
+{
+ // we only boost priority if relayer has staked required balance
+ let is_relayer_registration_active = RelayersPallet::::is_registration_active(relayer);
+ // if tx improves by just one, there's no need to bump its priority
+ let improved_by: TransactionPriority = improved_by.unique_saturated_into().saturating_sub(1);
+ // if relayer is registered, for every skipped header we improve by `Priority`
+ let boost_per_header = if is_relayer_registration_active { Priority::get() } else { 0 };
+ improved_by.saturating_mul(boost_per_header)
+}
+
+/// Declares a runtime-specific `BridgeRejectObsoleteHeadersAndMessages` signed extension.
+///
+/// ## Example
+///
+/// ```nocompile
+/// generate_bridge_reject_obsolete_headers_and_messages!{
+/// Call, AccountId
+/// BridgeRococoGrandpa, BridgeRococoMessages,
+/// BridgeRococoParachains
+/// }
+/// ```
+///
+/// The goal of this extension is to avoid "mining" transactions that provide outdated bridged
+/// headers and messages. Without that extension, even honest relayers may lose their funds if
+/// there are multiple relays running and submitting the same information.
+#[macro_export]
+macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
+ ($call:ty, $account_id:ty, $($filter_call:ty),*) => {
+ #[derive(Clone, codec::Decode, Default, codec::Encode, Eq, PartialEq, sp_runtime::RuntimeDebug, scale_info::TypeInfo)]
+ pub struct BridgeRejectObsoleteHeadersAndMessages;
+ impl sp_runtime::traits::SignedExtension for BridgeRejectObsoleteHeadersAndMessages {
+ const IDENTIFIER: &'static str = "BridgeRejectObsoleteHeadersAndMessages";
+ type AccountId = $account_id;
+ type Call = $call;
+ type AdditionalSigned = ();
+ type Pre = (
+ $account_id,
+ ( $(
+ <$filter_call as $crate::extensions::check_obsolete_extension::BridgeRuntimeFilterCall<
+ $account_id,
+ $call,
+ >>::ToPostDispatch,
+ )* ),
+ );
+
+ fn additional_signed(&self) -> sp_std::result::Result<
+ (),
+ sp_runtime::transaction_validity::TransactionValidityError,
+ > {
+ Ok(())
+ }
+
+ #[allow(unused_variables)]
+ fn validate(
+ &self,
+ who: &Self::AccountId,
+ call: &Self::Call,
+ _info: &sp_runtime::traits::DispatchInfoOf,
+ _len: usize,
+ ) -> sp_runtime::transaction_validity::TransactionValidity {
+ let tx_validity = sp_runtime::transaction_validity::ValidTransaction::default();
+ let to_prepare = ();
+ $(
+ let (from_validate, call_filter_validity) = <
+ $filter_call as
+ $crate::extensions::check_obsolete_extension::BridgeRuntimeFilterCall<
+ Self::AccountId,
+ $call,
+ >>::validate(&who, call);
+ let tx_validity = tx_validity.combine_with(call_filter_validity?);
+ )*
+ Ok(tx_validity)
+ }
+
+ #[allow(unused_variables)]
+ fn pre_dispatch(
+ self,
+ relayer: &Self::AccountId,
+ call: &Self::Call,
+ info: &sp_runtime::traits::DispatchInfoOf,
+ len: usize,
+ ) -> Result {
+ use tuplex::PushBack;
+ let to_post_dispatch = ();
+ $(
+ let (from_validate, call_filter_validity) = <
+ $filter_call as
+ $crate::extensions::check_obsolete_extension::BridgeRuntimeFilterCall<
+ $account_id,
+ $call,
+ >>::validate(&relayer, call);
+ let _ = call_filter_validity?;
+ let to_post_dispatch = to_post_dispatch.push_back(from_validate);
+ )*
+ Ok((relayer.clone(), to_post_dispatch))
+ }
+
+ #[allow(unused_variables)]
+ fn post_dispatch(
+ to_post_dispatch: Option,
+ info: &sp_runtime::traits::DispatchInfoOf,
+ post_info: &sp_runtime::traits::PostDispatchInfoOf,
+ len: usize,
+ result: &sp_runtime::DispatchResult,
+ ) -> Result<(), sp_runtime::transaction_validity::TransactionValidityError> {
+ use tuplex::PopFront;
+ let Some((relayer, to_post_dispatch)) = to_post_dispatch else { return Ok(()) };
+ let has_failed = result.is_err();
+ $(
+ let (item, to_post_dispatch) = to_post_dispatch.pop_front();
+ <
+ $filter_call as
+ $crate::extensions::check_obsolete_extension::BridgeRuntimeFilterCall<
+ $account_id,
+ $call,
+ >>::post_dispatch(&relayer, has_failed, item);
+ )*
+ Ok(())
+ }
+ }
+ };
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crate::{
+ extensions::refund_relayer_extension::{
+ tests::{
+ initialize_environment, relayer_account_at_this_chain,
+ submit_parachain_head_call_ex, submit_relay_header_call_ex,
+ },
+ RefundableParachain,
+ },
+ mock::*,
+ };
+ use bp_polkadot_core::parachains::ParaId;
+ use bp_runtime::HeaderId;
+ use frame_support::{assert_err, assert_ok};
+ use sp_runtime::{
+ traits::{ConstU64, SignedExtension},
+ transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction},
+ DispatchError,
+ };
+
+ pub struct MockCall {
+ data: u32,
+ }
+
+ impl sp_runtime::traits::Dispatchable for MockCall {
+ type RuntimeOrigin = u64;
+ type Config = ();
+ type Info = ();
+ type PostInfo = ();
+
+ fn dispatch(
+ self,
+ _origin: Self::RuntimeOrigin,
+ ) -> sp_runtime::DispatchResultWithInfo {
+ unimplemented!()
+ }
+ }
+
+ pub struct FirstFilterCall;
+ impl FirstFilterCall {
+ fn post_dispatch_called_with(success: bool) {
+ frame_support::storage::unhashed::put(&[1], &success);
+ }
+
+ fn verify_post_dispatch_called_with(success: bool) {
+ assert_eq!(frame_support::storage::unhashed::get::(&[1]), Some(success));
+ }
+ }
+
+ impl BridgeRuntimeFilterCall for FirstFilterCall {
+ type ToPostDispatch = u64;
+ fn validate(_who: &u64, call: &MockCall) -> (u64, TransactionValidity) {
+ if call.data <= 1 {
+ return (1, InvalidTransaction::Custom(1).into())
+ }
+
+ (1, Ok(ValidTransaction { priority: 1, ..Default::default() }))
+ }
+
+ fn post_dispatch(_who: &u64, has_failed: bool, to_post_dispatch: Self::ToPostDispatch) {
+ Self::post_dispatch_called_with(!has_failed);
+ assert_eq!(to_post_dispatch, 1);
+ }
+ }
+
+ pub struct SecondFilterCall;
+
+ impl SecondFilterCall {
+ fn post_dispatch_called_with(success: bool) {
+ frame_support::storage::unhashed::put(&[2], &success);
+ }
+
+ fn verify_post_dispatch_called_with(success: bool) {
+ assert_eq!(frame_support::storage::unhashed::get::(&[2]), Some(success));
+ }
+ }
+
+ impl BridgeRuntimeFilterCall for SecondFilterCall {
+ type ToPostDispatch = u64;
+ fn validate(_who: &u64, call: &MockCall) -> (u64, TransactionValidity) {
+ if call.data <= 2 {
+ return (2, InvalidTransaction::Custom(2).into())
+ }
+
+ (2, Ok(ValidTransaction { priority: 2, ..Default::default() }))
+ }
+
+ fn post_dispatch(_who: &u64, has_failed: bool, to_post_dispatch: Self::ToPostDispatch) {
+ Self::post_dispatch_called_with(!has_failed);
+ assert_eq!(to_post_dispatch, 2);
+ }
+ }
+
+ #[test]
+ fn test_generated_obsolete_extension() {
+ generate_bridge_reject_obsolete_headers_and_messages!(
+ MockCall,
+ u64,
+ FirstFilterCall,
+ SecondFilterCall
+ );
+
+ run_test(|| {
+ assert_err!(
+ BridgeRejectObsoleteHeadersAndMessages.validate(&42, &MockCall { data: 1 }, &(), 0),
+ InvalidTransaction::Custom(1)
+ );
+ assert_err!(
+ BridgeRejectObsoleteHeadersAndMessages.pre_dispatch(
+ &42,
+ &MockCall { data: 1 },
+ &(),
+ 0
+ ),
+ InvalidTransaction::Custom(1)
+ );
+
+ assert_err!(
+ BridgeRejectObsoleteHeadersAndMessages.validate(&42, &MockCall { data: 2 }, &(), 0),
+ InvalidTransaction::Custom(2)
+ );
+ assert_err!(
+ BridgeRejectObsoleteHeadersAndMessages.pre_dispatch(
+ &42,
+ &MockCall { data: 2 },
+ &(),
+ 0
+ ),
+ InvalidTransaction::Custom(2)
+ );
+
+ assert_eq!(
+ BridgeRejectObsoleteHeadersAndMessages
+ .validate(&42, &MockCall { data: 3 }, &(), 0)
+ .unwrap(),
+ ValidTransaction { priority: 3, ..Default::default() },
+ );
+ assert_eq!(
+ BridgeRejectObsoleteHeadersAndMessages
+ .pre_dispatch(&42, &MockCall { data: 3 }, &(), 0)
+ .unwrap(),
+ (42, (1, 2)),
+ );
+
+ // when post_dispatch is called with `Ok(())`, it is propagated to all "nested"
+ // extensions
+ assert_ok!(BridgeRejectObsoleteHeadersAndMessages::post_dispatch(
+ Some((0, (1, 2))),
+ &(),
+ &(),
+ 0,
+ &Ok(())
+ ));
+ FirstFilterCall::verify_post_dispatch_called_with(true);
+ SecondFilterCall::verify_post_dispatch_called_with(true);
+
+ // when post_dispatch is called with `Err(())`, it is propagated to all "nested"
+ // extensions
+ assert_ok!(BridgeRejectObsoleteHeadersAndMessages::post_dispatch(
+ Some((0, (1, 2))),
+ &(),
+ &(),
+ 0,
+ &Err(DispatchError::BadOrigin)
+ ));
+ FirstFilterCall::verify_post_dispatch_called_with(false);
+ SecondFilterCall::verify_post_dispatch_called_with(false);
+ });
+ }
+
+ frame_support::parameter_types! {
+ pub SlashDestination: ThisChainAccountId = 42;
+ }
+
+ type BridgeGrandpaWrapper =
+ CheckAndBoostBridgeGrandpaTransactions, SlashDestination>;
+
+ #[test]
+ fn grandpa_wrapper_does_not_boost_extensions_for_unregistered_relayer() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+
+ let priority_boost = BridgeGrandpaWrapper::validate(
+ &relayer_account_at_this_chain(),
+ &submit_relay_header_call_ex(200),
+ )
+ .1
+ .unwrap()
+ .priority;
+ assert_eq!(priority_boost, 0);
+ })
+ }
+
+ #[test]
+ fn grandpa_wrapper_boosts_extensions_for_registered_relayer() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ let priority_boost = BridgeGrandpaWrapper::validate(
+ &relayer_account_at_this_chain(),
+ &submit_relay_header_call_ex(200),
+ )
+ .1
+ .unwrap()
+ .priority;
+ assert_eq!(priority_boost, 99_000);
+ })
+ }
+
+ #[test]
+ fn grandpa_wrapper_slashes_registered_relayer_if_transaction_fails() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ BridgeGrandpaWrapper::post_dispatch(&relayer_account_at_this_chain(), true, Some(150));
+ assert!(!BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ })
+ }
+
+ #[test]
+ fn grandpa_wrapper_does_not_slash_registered_relayer_if_transaction_succeeds() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ BridgeGrandpaWrapper::post_dispatch(&relayer_account_at_this_chain(), false, Some(100));
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ })
+ }
+
+ type BridgeParachainsWrapper = CheckAndBoostBridgeParachainsTransactions<
+ TestRuntime,
+ RefundableParachain<(), BridgedUnderlyingParachain>,
+ ConstU64<1_000>,
+ SlashDestination,
+ >;
+
+ #[test]
+ fn parachains_wrapper_does_not_boost_extensions_for_unregistered_relayer() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+
+ let priority_boost = BridgeParachainsWrapper::validate(
+ &relayer_account_at_this_chain(),
+ &submit_parachain_head_call_ex(200),
+ )
+ .1
+ .unwrap()
+ .priority;
+ assert_eq!(priority_boost, 0);
+ })
+ }
+
+ #[test]
+ fn parachains_wrapper_boosts_extensions_for_registered_relayer() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ let priority_boost = BridgeParachainsWrapper::validate(
+ &relayer_account_at_this_chain(),
+ &submit_parachain_head_call_ex(200),
+ )
+ .1
+ .unwrap()
+ .priority;
+ assert_eq!(priority_boost, 99_000);
+ })
+ }
+
+ #[test]
+ fn parachains_wrapper_slashes_registered_relayer_if_transaction_fails() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ BridgeParachainsWrapper::post_dispatch(
+ &relayer_account_at_this_chain(),
+ true,
+ Some(SubmitParachainHeadsInfo {
+ at_relay_block: HeaderId(150, Default::default()),
+ para_id: ParaId(BridgedUnderlyingParachain::PARACHAIN_ID),
+ para_head_hash: [150u8; 32].into(),
+ is_free_execution_expected: false,
+ }),
+ );
+ assert!(!BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ })
+ }
+
+ #[test]
+ fn parachains_wrapper_does_not_slash_registered_relayer_if_transaction_succeeds() {
+ run_test(|| {
+ initialize_environment(100, 100, 100);
+ BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
+ .unwrap();
+
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ BridgeParachainsWrapper::post_dispatch(
+ &relayer_account_at_this_chain(),
+ false,
+ Some(SubmitParachainHeadsInfo {
+ at_relay_block: HeaderId(100, Default::default()),
+ para_id: ParaId(BridgedUnderlyingParachain::PARACHAIN_ID),
+ para_head_hash: [100u8; 32].into(),
+ is_free_execution_expected: false,
+ }),
+ );
+ assert!(BridgeRelayers::is_registration_active(&relayer_account_at_this_chain()));
+ })
+ }
+}
diff --git a/bridges/bin/runtime-common/src/extensions/mod.rs b/bridges/bin/runtime-common/src/extensions/mod.rs
new file mode 100644
index 0000000000000000000000000000000000000000..3f1b506aaae3ef66fe6f44379258356a2074464c
--- /dev/null
+++ b/bridges/bin/runtime-common/src/extensions/mod.rs
@@ -0,0 +1,21 @@
+// 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 .
+
+//! Bridge-specific transaction extensions.
+
+pub mod check_obsolete_extension;
+pub mod priority_calculator;
+pub mod refund_relayer_extension;
diff --git a/bridges/bin/runtime-common/src/extensions/priority_calculator.rs b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs
new file mode 100644
index 0000000000000000000000000000000000000000..92810290f95e77a7fdc04cafaa1e6ab290e1661a
--- /dev/null
+++ b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs
@@ -0,0 +1,407 @@
+// 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 .
+
+//! Bridge transaction priority calculator.
+//!
+//! We want to prioritize message delivery transactions with more messages over
+//! transactions with less messages. That's because we reject delivery transactions
+//! if it contains already delivered message. And if some transaction delivers
+//! single message with nonce `N`, then the transaction with nonces `N..=N+100` will
+//! be rejected. This can lower bridge throughput down to one message per block.
+
+use frame_support::traits::Get;
+use sp_runtime::transaction_validity::TransactionPriority;
+
+// reexport everything from `integrity_tests` module
+#[allow(unused_imports)]
+pub use integrity_tests::*;
+
+/// We'll deal with different bridge items here - messages, headers, ...
+/// To avoid being too verbose with generic code, let's just define a separate alias.
+pub type ItemCount = u64;
+
+/// Compute priority boost for transaction that brings given number of bridge
+/// items (messages, headers, ...), when every additional item adds `PriorityBoostPerItem`
+/// to transaction priority.
+pub fn compute_priority_boost(n_items: ItemCount) -> TransactionPriority
+where
+ PriorityBoostPerItem: Get,
+{
+ // we don't want any boost for transaction with single (additional) item => minus one
+ PriorityBoostPerItem::get().saturating_mul(n_items.saturating_sub(1))
+}
+
+#[cfg(not(feature = "integrity-test"))]
+mod integrity_tests {}
+
+#[cfg(feature = "integrity-test")]
+mod integrity_tests {
+ use super::{compute_priority_boost, ItemCount};
+ use crate::extensions::refund_relayer_extension::RefundableParachainId;
+
+ use bp_messages::MessageNonce;
+ use bp_runtime::PreComputedSize;
+ use frame_support::{
+ dispatch::{DispatchClass, DispatchInfo, Pays, PostDispatchInfo},
+ traits::Get,
+ };
+ use pallet_transaction_payment::OnChargeTransaction;
+ use sp_runtime::{
+ traits::{Dispatchable, UniqueSaturatedInto, Zero},
+ transaction_validity::TransactionPriority,
+ FixedPointOperand, SaturatedConversion, Saturating,
+ };
+
+ type BalanceOf =
+ <::OnChargeTransaction as OnChargeTransaction<
+ T,
+ >>::Balance;
+
+ /// Ensures that the value of `PriorityBoostPerItem` matches the value of
+ /// `tip_boost_per_item`.
+ ///
+ /// We want two transactions, `TX1` with `N` items and `TX2` with `N+1` items, have almost
+ /// the same priority if we'll add `tip_boost_per_item` tip to the `TX1`. We want to be sure
+ /// that if we add plain `PriorityBoostPerItem` priority to `TX1`, the priority will be close
+ /// to `TX2` as well.
+ fn ensure_priority_boost_is_sane(
+ param_name: &str,
+ max_items: ItemCount,
+ tip_boost_per_item: Balance,
+ estimate_priority: impl Fn(ItemCount, Balance) -> TransactionPriority,
+ ) where
+ PriorityBoostPerItem: Get,
+ ItemCount: UniqueSaturatedInto,
+ Balance: FixedPointOperand + Zero,
+ {
+ let priority_boost_per_item = PriorityBoostPerItem::get();
+ for n_items in 1..=max_items {
+ let base_priority = estimate_priority(n_items, Zero::zero());
+ let priority_boost = compute_priority_boost::(n_items);
+ let priority_with_boost = base_priority
+ .checked_add(priority_boost)
+ .expect("priority overflow: try lowering `max_items` or `tip_boost_per_item`?");
+
+ let tip = tip_boost_per_item.saturating_mul((n_items - 1).unique_saturated_into());
+ let priority_with_tip = estimate_priority(1, tip);
+
+ const ERROR_MARGIN: TransactionPriority = 5; // 5%
+ if priority_with_boost.abs_diff(priority_with_tip).saturating_mul(100) /
+ priority_with_tip >
+ ERROR_MARGIN
+ {
+ panic!(
+ "The {param_name} value ({}) must be fixed to: {}",
+ priority_boost_per_item,
+ compute_priority_boost_per_item(
+ max_items,
+ tip_boost_per_item,
+ estimate_priority
+ ),
+ );
+ }
+ }
+ }
+
+ /// Compute priority boost that we give to bridge transaction for every
+ /// additional bridge item.
+ #[cfg(feature = "integrity-test")]
+ fn compute_priority_boost_per_item(
+ max_items: ItemCount,
+ tip_boost_per_item: Balance,
+ estimate_priority: impl Fn(ItemCount, Balance) -> TransactionPriority,
+ ) -> TransactionPriority
+ where
+ ItemCount: UniqueSaturatedInto,
+ Balance: FixedPointOperand + Zero,
+ {
+ // estimate priority of transaction that delivers one item and has large tip
+ let small_with_tip_priority =
+ estimate_priority(1, tip_boost_per_item.saturating_mul(max_items.saturated_into()));
+ // estimate priority of transaction that delivers maximal number of items, but has no tip
+ let large_without_tip_priority = estimate_priority(max_items, Zero::zero());
+
+ small_with_tip_priority
+ .saturating_sub(large_without_tip_priority)
+ .saturating_div(max_items - 1)
+ }
+
+ /// Computations, specific to bridge relay chains transactions.
+ pub mod per_relay_header {
+ use super::*;
+
+ use bp_header_chain::{
+ max_expected_submit_finality_proof_arguments_size, ChainWithGrandpa,
+ };
+ use pallet_bridge_grandpa::WeightInfoExt;
+
+ /// Ensures that the value of `PriorityBoostPerHeader` matches the value of
+ /// `tip_boost_per_header`.
+ ///
+ /// We want two transactions, `TX1` with `N` headers and `TX2` with `N+1` headers, have
+ /// almost the same priority if we'll add `tip_boost_per_header` tip to the `TX1`. We want
+ /// to be sure that if we add plain `PriorityBoostPerHeader` priority to `TX1`, the priority
+ /// will be close to `TX2` as well.
+ pub fn ensure_priority_boost_is_sane(
+ tip_boost_per_header: BalanceOf,
+ ) where
+ Runtime:
+ pallet_transaction_payment::Config + pallet_bridge_grandpa::Config,
+ GrandpaInstance: 'static,
+ PriorityBoostPerHeader: Get,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ // the meaning of `max_items` here is different when comparing with message
+ // transactions - with messages we have a strict limit on maximal number of
+ // messages we can fit into a single transaction. With headers, current best
+ // header may be improved by any "number of items". But this number is only
+ // used to verify priority boost, so it should be fine to select this arbitrary
+ // value - it SHALL NOT affect any value, it just adds more tests for the value.
+ let maximal_improved_by = 4_096;
+ super::ensure_priority_boost_is_sane::>(
+ "PriorityBoostPerRelayHeader",
+ maximal_improved_by,
+ tip_boost_per_header,
+ |_n_headers, tip| {
+ estimate_relay_header_submit_transaction_priority::(
+ tip,
+ )
+ },
+ );
+ }
+
+ /// Estimate relay header delivery transaction priority.
+ #[cfg(feature = "integrity-test")]
+ fn estimate_relay_header_submit_transaction_priority(
+ tip: BalanceOf,
+ ) -> TransactionPriority
+ where
+ Runtime:
+ pallet_transaction_payment::Config + pallet_bridge_grandpa::Config,
+ GrandpaInstance: 'static,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ // just an estimation of extra transaction bytes that are added to every transaction
+ // (including signature, signed extensions extra and etc + in our case it includes
+ // all call arguments except the proof itself)
+ let base_tx_size = 512;
+ // let's say we are relaying largest relay chain headers
+ let tx_call_size = max_expected_submit_finality_proof_arguments_size::<
+ Runtime::BridgedChain,
+ >(true, Runtime::BridgedChain::MAX_AUTHORITIES_COUNT * 2 / 3 + 1);
+
+ // finally we are able to estimate transaction size and weight
+ let transaction_size = base_tx_size.saturating_add(tx_call_size);
+ let transaction_weight = Runtime::WeightInfo::submit_finality_proof_weight(
+ Runtime::BridgedChain::MAX_AUTHORITIES_COUNT * 2 / 3 + 1,
+ Runtime::BridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY,
+ );
+
+ pallet_transaction_payment::ChargeTransactionPayment::::get_priority(
+ &DispatchInfo {
+ weight: transaction_weight,
+ class: DispatchClass::Normal,
+ pays_fee: Pays::Yes,
+ },
+ transaction_size as _,
+ tip,
+ Zero::zero(),
+ )
+ }
+ }
+
+ /// Computations, specific to bridge parachains transactions.
+ pub mod per_parachain_header {
+ use super::*;
+
+ use bp_runtime::Parachain;
+ use pallet_bridge_parachains::WeightInfoExt;
+
+ /// Ensures that the value of `PriorityBoostPerHeader` matches the value of
+ /// `tip_boost_per_header`.
+ ///
+ /// We want two transactions, `TX1` with `N` headers and `TX2` with `N+1` headers, have
+ /// almost the same priority if we'll add `tip_boost_per_header` tip to the `TX1`. We want
+ /// to be sure that if we add plain `PriorityBoostPerHeader` priority to `TX1`, the priority
+ /// will be close to `TX2` as well.
+ pub fn ensure_priority_boost_is_sane(
+ tip_boost_per_header: BalanceOf,
+ ) where
+ Runtime: pallet_transaction_payment::Config
+ + pallet_bridge_parachains::Config,
+ RefundableParachain: RefundableParachainId,
+ PriorityBoostPerHeader: Get,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ // the meaning of `max_items` here is different when comparing with message
+ // transactions - with messages we have a strict limit on maximal number of
+ // messages we can fit into a single transaction. With headers, current best
+ // header may be improved by any "number of items". But this number is only
+ // used to verify priority boost, so it should be fine to select this arbitrary
+ // value - it SHALL NOT affect any value, it just adds more tests for the value.
+ let maximal_improved_by = 4_096;
+ super::ensure_priority_boost_is_sane::>(
+ "PriorityBoostPerParachainHeader",
+ maximal_improved_by,
+ tip_boost_per_header,
+ |_n_headers, tip| {
+ estimate_parachain_header_submit_transaction_priority::<
+ Runtime,
+ RefundableParachain,
+ >(tip)
+ },
+ );
+ }
+
+ /// Estimate parachain header delivery transaction priority.
+ #[cfg(feature = "integrity-test")]
+ fn estimate_parachain_header_submit_transaction_priority(
+ tip: BalanceOf,
+ ) -> TransactionPriority
+ where
+ Runtime: pallet_transaction_payment::Config
+ + pallet_bridge_parachains::Config,
+ RefundableParachain: RefundableParachainId,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ // just an estimation of extra transaction bytes that are added to every transaction
+ // (including signature, signed extensions extra and etc + in our case it includes
+ // all call arguments except the proof itself)
+ let base_tx_size = 512;
+ // let's say we are relaying largest parachain headers and proof takes some more bytes
+ let tx_call_size = >::WeightInfo::expected_extra_storage_proof_size()
+ .saturating_add(RefundableParachain::BridgedChain::MAX_HEADER_SIZE);
+
+ // finally we are able to estimate transaction size and weight
+ let transaction_size = base_tx_size.saturating_add(tx_call_size);
+ let transaction_weight = >::WeightInfo::submit_parachain_heads_weight(
+ Runtime::DbWeight::get(),
+ &PreComputedSize(transaction_size as _),
+ // just one parachain - all other submissions won't receive any boost
+ 1,
+ );
+
+ pallet_transaction_payment::ChargeTransactionPayment::::get_priority(
+ &DispatchInfo {
+ weight: transaction_weight,
+ class: DispatchClass::Normal,
+ pays_fee: Pays::Yes,
+ },
+ transaction_size as _,
+ tip,
+ Zero::zero(),
+ )
+ }
+ }
+
+ /// Computations, specific to bridge messages transactions.
+ pub mod per_message {
+ use super::*;
+
+ use pallet_bridge_messages::WeightInfoExt;
+
+ /// Ensures that the value of `PriorityBoostPerMessage` matches the value of
+ /// `tip_boost_per_message`.
+ ///
+ /// We want two transactions, `TX1` with `N` messages and `TX2` with `N+1` messages, have
+ /// almost the same priority if we'll add `tip_boost_per_message` tip to the `TX1`. We want
+ /// to be sure that if we add plain `PriorityBoostPerMessage` priority to `TX1`, the
+ /// priority will be close to `TX2` as well.
+ pub fn ensure_priority_boost_is_sane(
+ tip_boost_per_message: BalanceOf,
+ ) where
+ Runtime: pallet_transaction_payment::Config
+ + pallet_bridge_messages::Config,
+ MessagesInstance: 'static,
+ PriorityBoostPerMessage: Get,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ let maximal_messages_in_delivery_transaction =
+ Runtime::MaxUnconfirmedMessagesAtInboundLane::get();
+ super::ensure_priority_boost_is_sane::>(
+ "PriorityBoostPerMessage",
+ maximal_messages_in_delivery_transaction,
+ tip_boost_per_message,
+ |n_messages, tip| {
+ estimate_message_delivery_transaction_priority::(
+ n_messages, tip,
+ )
+ },
+ );
+ }
+
+ /// Estimate message delivery transaction priority.
+ #[cfg(feature = "integrity-test")]
+ fn estimate_message_delivery_transaction_priority(
+ messages: MessageNonce,
+ tip: BalanceOf,
+ ) -> TransactionPriority
+ where
+ Runtime: pallet_transaction_payment::Config
+ + pallet_bridge_messages::Config,
+ MessagesInstance: 'static,
+ Runtime::RuntimeCall: Dispatchable,
+ BalanceOf: Send + Sync + FixedPointOperand,
+ {
+ // just an estimation of extra transaction bytes that are added to every transaction
+ // (including signature, signed extensions extra and etc + in our case it includes
+ // all call arguments except the proof itself)
+ let base_tx_size = 512;
+ // let's say we are relaying similar small messages and for every message we add more
+ // trie nodes to the proof (x0.5 because we expect some nodes to be reused)
+ let estimated_message_size = 512;
+ // let's say all our messages have the same dispatch weight
+ let estimated_message_dispatch_weight =
+ Runtime::WeightInfo::message_dispatch_weight(estimated_message_size);
+ // messages proof argument size is (for every message) messages size + some additional
+ // trie nodes. Some of them are reused by different messages, so let's take 2/3 of
+ // default "overhead" constant
+ let messages_proof_size = Runtime::WeightInfo::expected_extra_storage_proof_size()
+ .saturating_mul(2)
+ .saturating_div(3)
+ .saturating_add(estimated_message_size)
+ .saturating_mul(messages as _);
+
+ // finally we are able to estimate transaction size and weight
+ let transaction_size = base_tx_size.saturating_add(messages_proof_size);
+ let transaction_weight = Runtime::WeightInfo::receive_messages_proof_weight(
+ &PreComputedSize(transaction_size as _),
+ messages as _,
+ estimated_message_dispatch_weight.saturating_mul(messages),
+ );
+
+ pallet_transaction_payment::ChargeTransactionPayment::::get_priority(
+ &DispatchInfo {
+ weight: transaction_weight,
+ class: DispatchClass::Normal,
+ pays_fee: Pays::Yes,
+ },
+ transaction_size as _,
+ tip,
+ Zero::zero(),
+ )
+ }
+ }
+}
diff --git a/bridges/bin/runtime-common/src/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
similarity index 84%
rename from bridges/bin/runtime-common/src/refund_relayer_extension.rs
rename to bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
index fc3d544555c59edaeec2c3ea73a515d0613efadb..c7d7263957fca5dcefff61173bf689c4d4c9468c 100644
--- a/bridges/bin/runtime-common/src/refund_relayer_extension.rs
+++ b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs
@@ -23,8 +23,8 @@ use crate::messages_call_ext::{
CallHelper as MessagesCallHelper, CallInfo as MessagesCallInfo, MessagesCallSubType,
};
use bp_messages::{LaneId, MessageNonce};
-use bp_relayers::{RewardsAccountOwner, RewardsAccountParams};
-use bp_runtime::{Chain, Parachain, ParachainIdOf, RangeInclusiveExt, StaticStrProvider};
+use bp_relayers::{ExplicitOrAccountParams, RewardsAccountOwner, RewardsAccountParams};
+use bp_runtime::{Parachain, RangeInclusiveExt, StaticStrProvider};
use codec::{Codec, Decode, Encode};
use frame_support::{
dispatch::{CallableCallFor, DispatchInfo, PostDispatchInfo},
@@ -33,8 +33,7 @@ use frame_support::{
CloneNoBound, DefaultNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound,
};
use pallet_bridge_grandpa::{
- CallSubType as GrandpaCallSubType, Config as GrandpaConfig, SubmitFinalityProofHelper,
- SubmitFinalityProofInfo,
+ CallSubType as GrandpaCallSubType, SubmitFinalityProofHelper, SubmitFinalityProofInfo,
};
use pallet_bridge_messages::Config as MessagesConfig;
use pallet_bridge_parachains::{
@@ -69,20 +68,9 @@ type CallOf = ::RuntimeCall;
/// coming from this parachain.
pub trait RefundableParachainId {
/// The instance of the bridge parachains pallet.
- type Instance;
+ type Instance: 'static;
/// The parachain Id.
- type Id: Get;
-}
-
-/// Default implementation of `RefundableParachainId`.
-pub struct DefaultRefundableParachainId(PhantomData<(Instance, Id)>);
-
-impl RefundableParachainId for DefaultRefundableParachainId
-where
- Id: Get,
-{
- type Instance = Instance;
- type Id = Id;
+ type BridgedChain: Parachain;
}
/// Implementation of `RefundableParachainId` for `trait Parachain`.
@@ -90,10 +78,11 @@ pub struct RefundableParachain(PhantomData<(Instance, Para)>);
impl RefundableParachainId for RefundableParachain
where
+ Instance: 'static,
Para: Parachain,
{
type Instance = Instance;
- type Id = ParachainIdOf;
+ type BridgedChain = Para;
}
/// Trait identifying a bridged messages lane. A relayer might be refunded for delivering messages
@@ -245,17 +234,10 @@ pub enum RelayerAccountAction {
/// Everything common among our refund transaction extensions.
pub trait RefundTransactionExtension:
'static + Clone + Codec + sp_std::fmt::Debug + Default + Eq + PartialEq + Send + Sync + TypeInfo
-where
- >::BridgedChain:
- Chain,
{
/// This chain runtime.
- type Runtime: UtilityConfig>
- + GrandpaConfig
- + MessagesConfig<::Instance>
+ type Runtime: MessagesConfig<::Instance>
+ RelayersConfig;
- /// Grandpa pallet reference.
- type GrandpaInstance: 'static;
/// Messages pallet and lane reference.
type Msgs: RefundableMessagesLaneId;
/// Refund amount calculator.
@@ -279,11 +261,13 @@ where
call: &CallOf,
) -> Result<&CallOf, TransactionValidityError>;
- /// Called from post-dispatch and shall perform additional checks (apart from relay
- /// chain finality and messages transaction finality) of given call result.
+ /// Called from post-dispatch and shall perform additional checks (apart from messages
+ /// transaction success) of given call result.
fn additional_call_result_check(
relayer: &AccountIdOf,
call_info: &CallInfo,
+ extra_weight: &mut Weight,
+ extra_size: &mut u32,
) -> bool;
/// Given post-dispatch information, analyze the outcome of relayer call and return
@@ -351,35 +335,6 @@ where
return slash_relayer_if_delivery_result
}
- // check if relay chain state has been updated
- if let Some(finality_proof_info) = call_info.submit_finality_proof_info() {
- if !SubmitFinalityProofHelper::::was_successful(
- finality_proof_info.block_number,
- ) {
- // we only refund relayer if all calls have updated chain state
- log::trace!(
- target: "runtime::bridge",
- "{} via {:?}: relayer {:?} has submitted invalid relay chain finality proof",
- Self::Id::STR,
- ::Id::get(),
- relayer,
- );
- return slash_relayer_if_delivery_result
- }
-
- // there's a conflict between how bridge GRANDPA pallet works and a `utility.batchAll`
- // transaction. If relay chain header is mandatory, the GRANDPA pallet returns
- // `Pays::No`, because such transaction is mandatory for operating the bridge. But
- // `utility.batchAll` transaction always requires payment. But in both cases we'll
- // refund relayer - either explicitly here, or using `Pays::No` if he's choosing
- // to submit dedicated transaction.
-
- // submitter has means to include extra weight/bytes in the `submit_finality_proof`
- // call, so let's subtract extra weight/size to avoid refunding for this extra stuff
- extra_weight = finality_proof_info.extra_weight;
- extra_size = finality_proof_info.extra_size;
- }
-
// Check if the `ReceiveMessagesProof` call delivered at least some of the messages that
// it contained. If this happens, we consider the transaction "helpful" and refund it.
let msgs_call_info = call_info.messages_call_info();
@@ -394,8 +349,13 @@ where
return slash_relayer_if_delivery_result
}
- // do additional check
- if !Self::additional_call_result_check(&relayer, &call_info) {
+ // do additional checks
+ if !Self::additional_call_result_check(
+ &relayer,
+ &call_info,
+ &mut extra_weight,
+ &mut extra_size,
+ ) {
return slash_relayer_if_delivery_result
}
@@ -471,19 +431,12 @@ where
RuntimeDebugNoBound,
TypeInfo,
)]
-pub struct RefundTransactionExtensionAdapter(T)
-where
- >::BridgedChain:
- Chain;
+pub struct RefundTransactionExtensionAdapter(T);
impl TransactionExtensionBase
for RefundTransactionExtensionAdapter
where
- >::BridgedChain:
- Chain,
CallOf: Dispatchable
- + IsSubType, T::Runtime>>
- + GrandpaCallSubType
+ MessagesCallSubType::Instance>,
{
const IDENTIFIER: &'static str = T::Id::STR;
@@ -537,8 +490,9 @@ where
}
// compute priority boost
- let priority_boost =
- crate::priority_calculator::compute_priority_boost::(bundled_messages);
+ let priority_boost = crate::extensions::priority_calculator::compute_priority_boost::<
+ T::Priority,
+ >(bundled_messages);
let valid_transaction = ValidTransactionBuilder::default().priority(priority_boost);
log::trace!(
@@ -607,7 +561,10 @@ where
);
},
RelayerAccountAction::Slash(relayer, slash_account) =>
- RelayersPallet::::slash_and_deregister(&relayer, slash_account),
+ RelayersPallet::::slash_and_deregister(
+ &relayer,
+ ExplicitOrAccountParams::Params(slash_account),
+ ),
}
Ok(())
@@ -659,6 +616,14 @@ impl RefundTransactionExtension
for RefundBridgedParachainMessages
where
Self: 'static + Send + Sync,
+ RefundBridgedGrandpaMessages<
+ Runtime,
+ Runtime::BridgesGrandpaPalletInstance,
+ Msgs,
+ Refund,
+ Priority,
+ Id,
+ >: 'static + Send + Sync,
Runtime: UtilityConfig>
+ BoundedBridgeGrandpaConfig
+ ParachainsConfig
@@ -676,7 +641,6 @@ where
+ MessagesCallSubType,
{
type Runtime = Runtime;
- type GrandpaInstance = Runtime::BridgesGrandpaPalletInstance;
type Msgs = Msgs;
type Refund = Refund;
type Priority = Priority;
@@ -702,7 +666,7 @@ where
let para_finality_call = calls
.next()
.transpose()?
- .and_then(|c| c.submit_parachain_heads_info_for(Para::Id::get()));
+ .and_then(|c| c.submit_parachain_heads_info_for(Para::BridgedChain::PARACHAIN_ID));
let relay_finality_call =
calls.next().transpose()?.and_then(|c| c.submit_finality_proof_info());
@@ -726,7 +690,26 @@ where
Ok(call)
}
- fn additional_call_result_check(relayer: &Runtime::AccountId, call_info: &CallInfo) -> bool {
+ fn additional_call_result_check(
+ relayer: &Runtime::AccountId,
+ call_info: &CallInfo,
+ extra_weight: &mut Weight,
+ extra_size: &mut u32,
+ ) -> bool {
+ // check if relay chain state has been updated
+ let is_grandpa_call_successful =
+ RefundBridgedGrandpaMessages::<
+ Runtime,
+ Runtime::BridgesGrandpaPalletInstance,
+ Msgs,
+ Refund,
+ Priority,
+ Id,
+ >::additional_call_result_check(relayer, call_info, extra_weight, extra_size);
+ if !is_grandpa_call_successful {
+ return false
+ }
+
// check if parachain state has been updated
if let Some(para_proof_info) = call_info.submit_parachain_heads_info() {
if !SubmitParachainHeadsHelper::::was_successful(
@@ -737,7 +720,7 @@ where
target: "runtime::bridge",
"{} from parachain {} via {:?}: relayer {:?} has submitted invalid parachain finality proof",
Id::STR,
- Para::Id::get(),
+ Para::BridgedChain::PARACHAIN_ID,
Msgs::Id::get(),
relayer,
);
@@ -809,7 +792,6 @@ where
+ MessagesCallSubType,
{
type Runtime = Runtime;
- type GrandpaInstance = GrandpaInstance;
type Msgs = Msgs;
type Refund = Refund;
type Priority = Priority;
@@ -851,13 +833,125 @@ where
Ok(call)
}
- fn additional_call_result_check(_relayer: &Runtime::AccountId, _call_info: &CallInfo) -> bool {
+ fn additional_call_result_check(
+ relayer: &Runtime::AccountId,
+ call_info: &CallInfo,
+ extra_weight: &mut Weight,
+ extra_size: &mut u32,
+ ) -> bool {
+ // check if relay chain state has been updated
+ if let Some(finality_proof_info) = call_info.submit_finality_proof_info() {
+ if !SubmitFinalityProofHelper::::was_successful(
+ finality_proof_info.block_number,
+ ) {
+ // we only refund relayer if all calls have updated chain state
+ log::trace!(
+ target: "runtime::bridge",
+ "{} via {:?}: relayer {:?} has submitted invalid relay chain finality proof",
+ Self::Id::STR,
+ ::Id::get(),
+ relayer,
+ );
+ return false
+ }
+
+ // there's a conflict between how bridge GRANDPA pallet works and a `utility.batchAll`
+ // transaction. If relay chain header is mandatory, the GRANDPA pallet returns
+ // `Pays::No`, because such transaction is mandatory for operating the bridge. But
+ // `utility.batchAll` transaction always requires payment. But in both cases we'll
+ // refund relayer - either explicitly here, or using `Pays::No` if he's choosing
+ // to submit dedicated transaction.
+
+ // submitter has means to include extra weight/bytes in the `submit_finality_proof`
+ // call, so let's subtract extra weight/size to avoid refunding for this extra stuff
+ *extra_weight = (*extra_weight).saturating_add(finality_proof_info.extra_weight);
+ *extra_size = (*extra_size).saturating_add(finality_proof_info.extra_size);
+ }
+
+ true
+ }
+}
+
+/// Transaction extension that refunds a relayer for standalone messages delivery and confirmation
+/// transactions. Finality transactions are not refunded.
+#[derive(
+ DefaultNoBound,
+ CloneNoBound,
+ Decode,
+ Encode,
+ EqNoBound,
+ PartialEqNoBound,
+ RuntimeDebugNoBound,
+ TypeInfo,
+)]
+#[scale_info(skip_type_params(Runtime, GrandpaInstance, Msgs, Refund, Priority, Id))]
+pub struct RefundBridgedMessages(
+ PhantomData<(
+ // runtime with `pallet-bridge-messages` and `pallet-bridge-relayers` pallets deployed
+ Runtime,
+ // implementation of `RefundableMessagesLaneId` trait, which specifies the instance of
+ // the used `pallet-bridge-messages` pallet and the lane within this pallet
+ Msgs,
+ // implementation of the `RefundCalculator` trait, that is used to compute refund that
+ // we give to relayer for his transaction
+ Refund,
+ // getter for per-message `TransactionPriority` boost that we give to message
+ // delivery transactions
+ Priority,
+ // the runtime-unique identifier of this signed extension
+ Id,
+ )>,
+);
+
+impl RefundSignedExtension
+ for RefundBridgedMessages
+where
+ Self: 'static + Send + Sync,
+ Runtime: MessagesConfig + RelayersConfig,
+ Msgs: RefundableMessagesLaneId,
+ Refund: RefundCalculator,
+ Priority: Get,
+ Id: StaticStrProvider,
+ CallOf: Dispatchable
+ + MessagesCallSubType,
+{
+ type Runtime = Runtime;
+ type Msgs = Msgs;
+ type Refund = Refund;
+ type Priority = Priority;
+ type Id = Id;
+
+ fn expand_call(call: &CallOf) -> Vec<&CallOf> {
+ vec![call]
+ }
+
+ fn parse_and_check_for_obsolete_call(
+ call: &CallOf,
+ ) -> Result