diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock
index 00d301601a..369147856d 100644
--- a/polkadot/Cargo.lock
+++ b/polkadot/Cargo.lock
@@ -682,21 +682,33 @@ dependencies = [
]
[[package]]
-name = "bp-kusama"
+name = "bp-header-chain"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
- "bp-runtime",
+ "bp-test-utils",
+ "finality-grandpa",
"frame-support",
- "frame-system",
- "sp-api",
+ "parity-scale-codec",
+ "serde",
"sp-core",
+ "sp-finality-grandpa",
"sp-runtime",
"sp-std",
]
[[package]]
-name = "bp-message-lane"
+name = "bp-kusama"
+version = "0.1.0"
+dependencies = [
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "sp-api",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-messages"
version = "0.1.0"
dependencies = [
"bp-runtime",
@@ -710,14 +722,43 @@ dependencies = [
name = "bp-polkadot"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "sp-api",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-polkadot-core"
+version = "0.1.0"
+dependencies = [
+ "bp-messages",
"bp-runtime",
"frame-support",
"frame-system",
+ "hex",
+ "parity-scale-codec",
"sp-api",
"sp-core",
"sp-runtime",
"sp-std",
+ "sp-version",
+]
+
+[[package]]
+name = "bp-rococo"
+version = "0.1.0"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
]
[[package]]
@@ -725,12 +766,44 @@ name = "bp-runtime"
version = "0.1.0"
dependencies = [
"frame-support",
+ "hash-db",
"num-traits",
"parity-scale-codec",
"sp-core",
"sp-io",
"sp-runtime",
+ "sp-state-machine",
"sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "bp-test-utils"
+version = "0.1.0"
+dependencies = [
+ "bp-header-chain",
+ "ed25519-dalek",
+ "finality-grandpa",
+ "parity-scale-codec",
+ "sp-application-crypto",
+ "sp-finality-grandpa",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-westend"
+version = "0.1.0"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "parity-scale-codec",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
]
[[package]]
diff --git a/polkadot/Cargo.toml b/polkadot/Cargo.toml
index f8914a160d..824e80dd33 100644
--- a/polkadot/Cargo.toml
+++ b/polkadot/Cargo.toml
@@ -26,8 +26,10 @@ tempfile = "3.2.0"
[workspace]
members = [
- "bridges/primitives/kusama",
- "bridges/primitives/polkadot",
+ "bridges/primitives/chain-kusama",
+ "bridges/primitives/chain-polkadot",
+ "bridges/primitives/chain-rococo",
+ "bridges/primitives/chain-westend",
"bridges/primitives/runtime",
"cli",
"core-primitives",
diff --git a/polkadot/bridges/.dependabot/config.yml b/polkadot/bridges/.dependabot/config.yml
index 1972b3b94a..61599ccba9 100644
--- a/polkadot/bridges/.dependabot/config.yml
+++ b/polkadot/bridges/.dependabot/config.yml
@@ -14,6 +14,8 @@ update_configs:
dependency_name: "frame-*"
- match:
dependency_name: "pallet-*"
+ - match:
+ dependency_name: "node-inspect"
automerged_updates:
- match:
update_type: "all"
diff --git a/polkadot/bridges/.github/workflows/deny.yml b/polkadot/bridges/.github/workflows/deny.yml
index e444b11da8..9f9f7264ae 100644
--- a/polkadot/bridges/.github/workflows/deny.yml
+++ b/polkadot/bridges/.github/workflows/deny.yml
@@ -10,12 +10,19 @@ on:
tags:
- v*
paths-ignore:
- - '**/README.md'
+ - '**.md'
- diagrams/*
- docs/*
jobs:
cargo-deny:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ checks:
+ - advisories
+ - bans licenses sources
+ # Prevent sudden announcement of a new advisory from failing CI:
+ continue-on-error: ${{ matrix.checks == 'advisories' }}
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.4.1
@@ -29,4 +36,4 @@ jobs:
- name: Cargo deny
uses: EmbarkStudios/cargo-deny-action@v1
with:
- command: "check --hide-inclusion-graph"
+ command: check ${{ matrix.checks }}
diff --git a/polkadot/bridges/.github/workflows/lint.yml b/polkadot/bridges/.github/workflows/lint.yml
index b30a72a4c4..4ebd12e0d6 100644
--- a/polkadot/bridges/.github/workflows/lint.yml
+++ b/polkadot/bridges/.github/workflows/lint.yml
@@ -8,7 +8,7 @@ on:
tags:
- v*
paths-ignore:
- - '**/README.md'
+ - '**.md'
- diagrams/*
- docs/*
schedule: # Weekly build
@@ -21,17 +21,21 @@ jobs:
env:
RUST_BACKTRACE: full
steps:
+
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.4.1
with:
access_token: ${{ github.token }}
+
- name: Checkout sources & submodules
uses: actions/checkout@master
with:
fetch-depth: 5
submodules: recursive
+
- name: Add rustfmt
run: rustup component add rustfmt
+
- name: rust-fmt check
uses: actions-rs/cargo@master
with:
diff --git a/polkadot/bridges/.github/workflows/publish-deps.yml b/polkadot/bridges/.github/workflows/publish-deps.yml
index 799aa8f966..16d56a5d78 100644
--- a/polkadot/bridges/.github/workflows/publish-deps.yml
+++ b/polkadot/bridges/.github/workflows/publish-deps.yml
@@ -1,49 +1,76 @@
-name: Publish Dependencies to Docker hub
+name: Publish Dependencies to Docker hub
on:
push:
tags:
- v*
paths-ignore:
- - '**/README.md'
+ - '**.md'
- diagrams/*
- docs/*
- schedule: # Weekly build
- - cron: '0 0 * * 0'
+ schedule: # Weekly build
+ - cron: '0 0 * * 0'
jobs:
-## Publish to Docker hub
+ ## Publish to Docker hub
publish:
- name: Publishing
- runs-on: ubuntu-latest
+ name: Publishing
+ runs-on: ubuntu-latest
container:
- image: docker:git
+ image: docker:git
steps:
- - name: Cancel Previous Runs
- uses: styfle/cancel-workflow-action@0.4.1
+
+ - name: Cancel Previous Runs
+ uses: styfle/cancel-workflow-action@0.4.1
with:
- access_token: ${{ github.token }}
- - name: Checkout sources & submodules
- uses: actions/checkout@master
+ access_token: ${{ github.token }}
+
+ - name: Checkout sources & submodules
+ uses: actions/checkout@v2
with:
- fetch-depth: 5
- submodules: recursive
- - name: Build and push dependencies
- uses: docker/build-push-action@v1
+ fetch-depth: 5
+ submodules: recursive
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v1
with:
- username: ${{ secrets.DOCKER_USER }}
- password: ${{ secrets.DOCKER_PASSWORD }}
- repository: paritytech/bridge-dependencies
- dockerfile: deployments/BridgeDeps.Dockerfile
- tag_with_ref: true
- tag_with_sha: true
- labels:
- org.opencontainers.image.source="https://github.com/paritytech/parity-bridges-common",
- org.opencontainers.image.authors="devops-team@parity.io",
- org.opencontainers.image.vendor="Parity Technologies",
- org.opencontainers.image.url="https://github.com/paritytech/parity-bridges-common",
- org.opencontainers.image.documentation="https://github.com/paritytech/parity-bridges-common/README.md",
- org.opencontainers.image.title=${{ matrix.project }},
- org.opencontainers.image.description="${{ matrix.project }} - component of Parity Bridges Common",
- org.opencontainers.image.licenses="GPL-3.0 License"
- add_git_labels: true
+ username: ${{ secrets.DOCKER_USER }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Prepare
+ id: prep
+ run: |
+ DOCKER_IMAGE=paritytech/bridge-dependencies
+ VERSION=latest
+ if [[ $GITHUB_REF == refs/tags/* ]]; then
+ VERSION=${GITHUB_REF#refs/tags/}
+ elif [[ $GITHUB_REF == refs/heads/* ]]; then
+ VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
+ fi
+ TAGS=${DOCKER_IMAGE}:${VERSION}
+ TAGS=$TAGS,${DOCKER_IMAGE}:sha-${GITHUB_SHA::8}
+ echo ::set-output name=TAGS::${TAGS}
+ echo ::set-output name=DATE::$(date +%d-%m-%Y)
+
+ - name: Build and push
+ uses: docker/build-push-action@v2
+ with:
+ file: deployments/BridgeDeps.Dockerfile
+ push: true
+ cache-from: type=registry,ref=paritytech/bridge-dependencies:latest
+ cache-to: type=inline
+ tags: ${{ steps.prep.outputs.TAGS }}
+ labels: |
+ org.opencontainers.image.title=bridge-dependencies
+ org.opencontainers.image.description=bridge-dependencies - component of Parity Bridges Common
+ org.opencontainers.image.source=${{ github.event.repository.html_url }}
+ org.opencontainers.image.url=https://github.com/paritytech/parity-bridges-common
+ org.opencontainers.image.documentation=https://github.com/paritytech/parity-bridges-common/README.md
+ org.opencontainers.image.created=${{ steps.prep.outputs.DATE }}
+ org.opencontainers.image.revision=${{ github.sha }}
+ org.opencontainers.image.authors=devops-team@parity.io
+ org.opencontainers.image.vendor=Parity Technologies
+ org.opencontainers.image.licenses=GPL-3.0 License
diff --git a/polkadot/bridges/.github/workflows/publish-docker.yml b/polkadot/bridges/.github/workflows/publish-docker.yml
index 3e00ead610..5a4670b6ea 100644
--- a/polkadot/bridges/.github/workflows/publish-docker.yml
+++ b/polkadot/bridges/.github/workflows/publish-docker.yml
@@ -1,20 +1,20 @@
-name: Publish images to Docker hub
+name: Publish images to Docker hub
on:
push:
tags:
- v*
paths-ignore:
- - '**/README.md'
+ - '**.md'
- diagrams/*
- docs/*
- schedule: # Nightly build
- - cron: '0 1 * * *'
+ schedule: # Nightly build
+ - cron: '0 1 * * *'
jobs:
-## Publish to Docker hub
+ ## Publish to Docker hub
publish:
- name: Publishing
+ name: Publishing
strategy:
matrix:
project:
@@ -31,46 +31,63 @@ jobs:
healthcheck: http://localhost:9616/metrics
- project: substrate-relay
healthcheck: http://localhost:9616/metrics
- runs-on: ubuntu-latest
- container:
- image: docker:git
+
+ runs-on: ubuntu-latest
steps:
- - name: Cancel Previous Runs
- uses: styfle/cancel-workflow-action@0.4.1
+
+ - name: Cancel Previous Runs
+ uses: styfle/cancel-workflow-action@0.4.1
with:
- access_token: ${{ github.token }}
- - name: Checkout sources & submodules
- uses: actions/checkout@master
+ access_token: ${{ github.token }}
+
+ - name: Checkout sources & submodules
+ uses: actions/checkout@v2
with:
- fetch-depth: 5
- submodules: recursive
- - name: Set vars
- id: vars
- run: |
- echo ::set-output name=DATE::$(date +%d-%m-%Y)
- if [[ ${GITHUB_REF} = refs/tags/* ]]
- then
- echo ::set-output name=TAG::${GITHUB_REF#refs/tags/}
- else
- echo ::set-output name=TAG::nightly-$(date +%d-%m-%Y)
+ fetch-depth: 5
+ submodules: recursive
+
+ - name: Prepare
+ id: prep
+ run: |
+ if [[ $GITHUB_REF == refs/tags/* ]]; then
+ VERSION=${GITHUB_REF#refs/tags/}
+ elif [[ $GITHUB_REF == refs/heads/* ]]; then
+ VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
fi
- - name: Build and push ${{ matrix.project }}
- uses: docker/build-push-action@v1
+ TAGS="${VERSION} sha-${GITHUB_SHA::8} latest"
+ echo ::set-output name=TAGS::${VERSION}
+ echo ::set-output name=TAGS::${TAGS}
+ echo ::set-output name=DATE::$(date +%d-%m-%Y)
+
+ - name: Workaround rootless build
+ run: |
+ sudo apt-get install fuse-overlayfs
+ mkdir -vp ~/.config/containers
+ printf "[storage.options]\nmount_program=\"/usr/bin/fuse-overlayfs\"" > ~/.config/containers/storage.conf
+
+ - name: Build image for ${{ matrix.project }}
+ uses: redhat-actions/buildah-build@v2.2
with:
+ image: ${{ matrix.project }}
+ tags: ${{ steps.prep.outputs.TAGS }}
+ dockerfiles: ./Dockerfile
+ build-args: |
+ PROJECT=${{ matrix.project }}
+ HEALTH=${{ matrix.healthcheck }}
+ VCS_REF=sha-${GITHUB_SHA::8}
+ BUILD_DATE=${{ steps.prep.outputs.DATE }}
+ VERSION=${{ steps.prep.outputs.VERSION }}
+
+ - name: Push ${{ matrix.project }} image to docker.io
+ id: push-to-dockerhub
+ uses: redhat-actions/push-to-registry@v2.1.1
+ with:
+ registry: docker.io/paritytech
+ image: ${{ matrix.project }}
+ tags: ${{ steps.prep.outputs.TAGS }}
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- repository: paritytech/${{ matrix.project }}
- build_args: PROJECT=${{ matrix.project }}, HEALTH=${{ matrix.healthcheck }}
- tags: ${{ steps.vars.outputs.TAG }}, latest
- labels:
- org.opencontainers.image.created=${{ steps.vars.outputs.DATE }},
- org.opencontainers.image.source="https://github.com/paritytech/parity-bridges-common",
- org.opencontainers.image.authors="devops-team@parity.io",
- org.opencontainers.image.vendor="Parity Technologies",
- org.opencontainers.image.url="https://github.com/paritytech/parity-bridges-common",
- org.opencontainers.image.documentation="https://github.com/paritytech/parity-bridges-common/README.md",
- org.opencontainers.image.version=${{ steps.vars.outputs.TAG }},
- org.opencontainers.image.title=${{ matrix.project }},
- org.opencontainers.image.description="${{ matrix.project }} - component of Parity Bridges Common",
- org.opencontainers.image.licenses="GPL-3.0 License"
- add_git_labels: true
+
+ - name: Check the image
+ run: |
+ echo "New image has been pushed to ${{ steps.push-to-dockerhub.outputs.registry-path }}"
diff --git a/polkadot/bridges/.github/workflows/rust.yml b/polkadot/bridges/.github/workflows/rust.yml
index 3fe73363bf..e6f7939efb 100644
--- a/polkadot/bridges/.github/workflows/rust.yml
+++ b/polkadot/bridges/.github/workflows/rust.yml
@@ -8,7 +8,7 @@ on:
tags:
- v*
paths-ignore:
- - '**/README.md'
+ - '**.md'
- diagrams/*
- docs/*
schedule: # Weekly build
@@ -23,27 +23,30 @@ jobs:
toolchain:
- stable
#- beta
- - nightly
+ - nightly-2021-04-10
runs-on: ubuntu-latest
env:
RUST_BACKTRACE: full
- NIGHTLY: nightly #if necessary, specify the version, nightly-2020-10-04, etc.
+ NIGHTLY: nightly-2021-04-10 #if necessary, specify the version, nightly-2020-10-04, etc.
steps:
+
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.4.1
with:
access_token: ${{ github.token }}
+
- name: Checkout sources & submodules
uses: actions/checkout@master
with:
fetch-depth: 5
submodules: recursive
+
- name: Install Toolchain
run: rustup toolchain add $NIGHTLY
+
- name: Add WASM Utilities
run: rustup target add wasm32-unknown-unknown --toolchain $NIGHTLY
- - name: Rust Cache
- uses: Swatinem/rust-cache@v1.2.0
+
- name: Checking rust-${{ matrix.toolchain }}
uses: actions-rs/cargo@master
with:
@@ -66,13 +69,14 @@ jobs:
with:
command: check
toolchain: ${{ matrix.toolchain }}
- args: --manifest-path ./bin/rialto/node/Cargo.toml --no-default-features --features runtime-benchmarks --verbose
+ args: -p rialto-runtime --features runtime-benchmarks --verbose
+
- name: Check Millau benchmarks runtime ${{ matrix.platform }} rust-${{ matrix.toolchain }}
uses: actions-rs/cargo@master
with:
command: check
toolchain: ${{ matrix.toolchain }}
- args: --manifest-path ./bin/millau/node/Cargo.toml --no-default-features --features runtime-benchmarks --verbose
+ args: -p millau-runtime --features runtime-benchmarks --verbose
## Build Stage
build:
@@ -86,23 +90,26 @@ jobs:
runs-on: ubuntu-latest
env:
RUST_BACKTRACE: full
- NIGHTLY: nightly #if necessary, specify the version, nightly-2020-10-04, etc.
+ NIGHTLY: nightly-2021-04-10 #if necessary, specify the version, nightly-2020-10-04, etc.
steps:
+
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.4.1
with:
access_token: ${{ github.token }}
+
- name: Checkout sources & submodules
uses: actions/checkout@master
with:
fetch-depth: 5
submodules: recursive
+
- name: Install Toolchain
run: rustup toolchain add $NIGHTLY
+
- name: Add WASM Utilities
run: rustup target add wasm32-unknown-unknown --toolchain $NIGHTLY
- - name: Rust Cache
- uses: Swatinem/rust-cache@v1.2.0
+
- name: Building rust-${{ matrix.toolchain }}
uses: actions-rs/cargo@master
if: github.ref == 'refs/heads/master'
@@ -110,6 +117,7 @@ jobs:
command: build
toolchain: ${{ matrix.toolchain }}
args: --all --verbose
+
- name: Prepare artifacts
if: github.ref == 'refs/heads/master'
run: |
@@ -119,6 +127,7 @@ jobs:
mv -v target/debug/ethereum-poa-relay ./artifacts/;
mv -v target/debug/substrate-relay ./artifacts/;
shell: bash
+
- name: Upload artifacts
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@v1
@@ -132,28 +141,35 @@ jobs:
runs-on: ubuntu-latest
env:
RUST_BACKTRACE: full
- NIGHTLY: nightly #if necessary, specify the version, nightly-2020-10-04, etc.
+ NIGHTLY: nightly-2021-04-10 #if necessary, specify the version, nightly-2020-10-04, etc.
steps:
+
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.4.1
with:
access_token: ${{ github.token }}
+
- name: Checkout sources & submodules
uses: actions/checkout@master
with:
fetch-depth: 5
submodules: recursive
+
- name: Install Toolchain
run: rustup toolchain add $NIGHTLY
+
- name: Add WASM Utilities
run: rustup target add wasm32-unknown-unknown --toolchain $NIGHTLY
+
- name: Add clippy
run: rustup component add clippy --toolchain $NIGHTLY
+
- name: Rust Cache
uses: Swatinem/rust-cache@v1.2.0
+
- name: Clippy
uses: actions-rs/cargo@master
with:
command: clippy
- toolchain: nightly #if necessary, specify the version, nightly-2020-10-04, etc.
+ toolchain: nightly-2021-04-10 #if necessary, specify the version, nightly-2020-10-04, etc.
args: --all-targets -- -D warnings
diff --git a/polkadot/bridges/.gitignore b/polkadot/bridges/.gitignore
index cc9ede9aef..0ab0857843 100644
--- a/polkadot/bridges/.gitignore
+++ b/polkadot/bridges/.gitignore
@@ -2,6 +2,9 @@
**/.env
**/.env2
**/rust-toolchain
+hfuzz_target
+hfuzz_workspace
+**/Cargo.lock
**/*.rs.bk
diff --git a/polkadot/bridges/.maintain/rialto-weight-template.hbs b/polkadot/bridges/.maintain/rialto-weight-template.hbs
index c8d6725a7f..4bf856948a 100644
--- a/polkadot/bridges/.maintain/rialto-weight-template.hbs
+++ b/polkadot/bridges/.maintain/rialto-weight-template.hbs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/CODE_OF_CONDUCT.md b/polkadot/bridges/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000..70541fb72f
--- /dev/null
+++ b/polkadot/bridges/CODE_OF_CONDUCT.md
@@ -0,0 +1,80 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers
+pledge to making participation in our project and our community a harassment-free experience for
+everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity
+and expression, level of experience, education, socio-economic status, nationality, personal
+appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit
+ permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+### Facilitation, Not Strongarming
+
+We recognise that this software is merely a tool for users to create and maintain their blockchain
+of preference. We see that blockchains are naturally community platforms with users being the
+ultimate decision makers. We assert that good software will maximise user agency by facilitate
+user-expression on the network. As such:
+
+- This project will strive to give users as much choice as is both reasonable and possible over what
+ protocol they adhere to; but
+- use of the project's technical forums, commenting systems, pull requests and issue trackers as a
+ means to express individual protocol preferences is forbidden.
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are
+expected to take appropriate and fair corrective action in response to any instances of unacceptable
+behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits,
+code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or
+to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is
+representing the project or its community. Examples of representing a project or community include
+using an official project e-mail address, posting via an official social media account, or acting as
+an appointed representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting
+the project team at admin@parity.io. All complaints will be reviewed and investigated and will
+result in a response that is deemed necessary and appropriate to the circumstances. The project team
+is obligated to maintain confidentiality with regard to the reporter of an incident. Further
+details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face
+temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at
+https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/polkadot/bridges/Cargo.lock b/polkadot/bridges/Cargo.lock
index 8e013b7dae..5811d7ad3b 100644
--- a/polkadot/bridges/Cargo.lock
+++ b/polkadot/bridges/Cargo.lock
@@ -1,5 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+version = 3
+
[[package]]
name = "Inflector"
version = "0.11.4"
@@ -12,18 +14,18 @@ dependencies = [
[[package]]
name = "addr2line"
-version = "0.14.0"
+version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
+checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
-version = "0.2.3"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "aead"
@@ -79,12 +81,6 @@ dependencies = [
"opaque-debug 0.3.0",
]
-[[package]]
-name = "ahash"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
-
[[package]]
name = "ahash"
version = "0.4.7"
@@ -120,9 +116,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
+checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1"
[[package]]
name = "approx"
@@ -133,6 +129,18 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "arbitrary"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "698b65a961a9d730fb45b6b0327e20207810c9f61ee421b082b27ba003f49e2b"
+
+[[package]]
+name = "array_tool"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f8cb5d814eb646a863c4f24978cff2880c4be96ad8cde2c0f0678732902e271"
+
[[package]]
name = "arrayref"
version = "0.3.6"
@@ -175,9 +183,9 @@ dependencies = [
[[package]]
name = "async-channel"
-version = "1.5.1"
+version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9"
+checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
dependencies = [
"concurrent-queue",
"event-listener",
@@ -254,13 +262,13 @@ dependencies = [
[[package]]
name = "async-process"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda"
+checksum = "ef37b86e2fa961bae5a4d212708ea0154f904ce31d1a4a7f47e1bbc33a0c040b"
dependencies = [
"async-io",
"blocking",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"event-listener",
"futures-lite",
"once_cell",
@@ -279,7 +287,7 @@ dependencies = [
"async-io",
"async-lock",
"async-process",
- "crossbeam-utils 0.8.1",
+ "crossbeam-utils 0.8.3",
"futures-channel",
"futures-core",
"futures-io",
@@ -296,6 +304,20 @@ dependencies = [
"wasm-bindgen-futures",
]
+[[package]]
+name = "async-std-resolver"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f665c56111e244fe38e7708ee10948a4356ad6a548997c21f5a63a0f4e0edc4d"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "futures-io",
+ "futures-util",
+ "pin-utils",
+ "trust-dns-resolver",
+]
+
[[package]]
name = "async-task"
version = "4.0.3"
@@ -304,14 +326,15 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
[[package]]
name = "async-tls"
-version = "0.6.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce6977f57fa68da77ffe5542950d47e9c23d65f5bc7cb0a9f8700996913eec7"
+checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400"
dependencies = [
- "futures 0.3.12",
- "rustls 0.16.0",
- "webpki",
- "webpki-roots 0.17.0",
+ "futures-core",
+ "futures-io",
+ "rustls 0.19.0",
+ "webpki 0.21.4",
+ "webpki-roots",
]
[[package]]
@@ -331,7 +354,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"futures-sink",
"futures-util",
"memchr",
@@ -344,7 +367,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"futures-sink",
"futures-util",
"memchr",
@@ -395,9 +418,9 @@ dependencies = [
[[package]]
name = "backtrace"
-version = "0.3.55"
+version = "0.3.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
+checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
dependencies = [
"addr2line",
"cfg-if 1.0.0",
@@ -419,21 +442,6 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83"
-[[package]]
-name = "base64"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "base64"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-
[[package]]
name = "base64"
version = "0.12.3"
@@ -447,10 +455,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
-name = "bincode"
-version = "1.3.1"
+name = "beef"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"
+checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409"
+
+[[package]]
+name = "bincode"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d175dfa69e619905c4c3cdb7c3c203fa3bdd5d51184e3afdb2742c0280493772"
dependencies = [
"byteorder",
"serde",
@@ -486,6 +500,16 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+[[package]]
+name = "bitvec"
+version = "0.17.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c"
+dependencies = [
+ "either",
+ "radium 0.3.0",
+]
+
[[package]]
name = "bitvec"
version = "0.20.1"
@@ -493,7 +517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5011ffc90248764d7005b0e10c7294f5aa1bd87d9dd7248f4ad475b347c294d"
dependencies = [
"funty",
- "radium",
+ "radium 0.6.2",
"tap",
"wyz",
]
@@ -621,7 +645,7 @@ name = "bp-currency-exchange"
version = "0.1.0"
dependencies = [
"frame-support",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
"sp-std",
]
@@ -638,10 +662,10 @@ dependencies = [
"impl-serde",
"libsecp256k1",
"parity-bytes",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"plain_hasher",
"primitive-types",
- "rlp 0.5.0",
+ "rlp",
"serde",
"serde-big-array",
"sp-api",
@@ -656,9 +680,9 @@ name = "bp-header-chain"
version = "0.1.0"
dependencies = [
"bp-test-utils",
- "finality-grandpa",
+ "finality-grandpa 0.14.0",
"frame-support",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-finality-grandpa",
@@ -670,13 +694,10 @@ dependencies = [
name = "bp-kusama"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
+ "bp-polkadot-core",
"bp-runtime",
- "frame-support",
- "frame-system",
"sp-api",
- "sp-core",
- "sp-runtime",
"sp-std",
]
@@ -685,17 +706,17 @@ name = "bp-message-dispatch"
version = "0.1.0"
dependencies = [
"bp-runtime",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
]
[[package]]
-name = "bp-message-lane"
+name = "bp-messages"
version = "0.1.0"
dependencies = [
"bp-runtime",
"frame-support",
"frame-system",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-std",
]
@@ -703,7 +724,7 @@ dependencies = [
name = "bp-millau"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
"bp-runtime",
"fixed-hash",
"frame-support",
@@ -725,7 +746,35 @@ dependencies = [
name = "bp-polkadot"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "sp-api",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-polkadot-core"
+version = "0.1.0"
+dependencies = [
+ "bp-messages",
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "parity-scale-codec 2.0.1",
+ "sp-api",
+ "sp-core",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
+]
+
+[[package]]
+name = "bp-rialto"
+version = "0.1.0"
+dependencies = [
+ "bp-messages",
"bp-runtime",
"frame-support",
"frame-system",
@@ -736,17 +785,18 @@ dependencies = [
]
[[package]]
-name = "bp-rialto"
+name = "bp-rococo"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
"bp-runtime",
- "frame-support",
- "frame-system",
+ "parity-scale-codec 2.0.1",
"sp-api",
- "sp-core",
"sp-runtime",
"sp-std",
+ "sp-version",
]
[[package]]
@@ -754,12 +804,15 @@ name = "bp-runtime"
version = "0.1.0"
dependencies = [
"frame-support",
+ "hash-db",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-core",
"sp-io",
"sp-runtime",
+ "sp-state-machine",
"sp-std",
+ "sp-trie",
]
[[package]]
@@ -767,10 +820,28 @@ name = "bp-test-utils"
version = "0.1.0"
dependencies = [
"bp-header-chain",
- "finality-grandpa",
+ "ed25519-dalek",
+ "finality-grandpa 0.14.0",
+ "parity-scale-codec 2.0.1",
+ "sp-application-crypto",
"sp-finality-grandpa",
- "sp-keyring",
"sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "bp-westend"
+version = "0.1.0"
+dependencies = [
+ "bp-header-chain",
+ "bp-messages",
+ "bp-polkadot-core",
+ "bp-runtime",
+ "parity-scale-codec 2.0.1",
+ "sp-api",
+ "sp-runtime",
+ "sp-std",
+ "sp-version",
]
[[package]]
@@ -778,15 +849,15 @@ name = "bridge-runtime-common"
version = "0.1.0"
dependencies = [
"bp-message-dispatch",
- "bp-message-lane",
+ "bp-messages",
"bp-runtime",
"ed25519-dalek",
"frame-support",
"hash-db",
- "pallet-bridge-call-dispatch",
- "pallet-message-lane",
- "pallet-substrate-bridge",
- "parity-scale-codec",
+ "pallet-bridge-dispatch",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
+ "parity-scale-codec 2.0.1",
"sp-core",
"sp-runtime",
"sp-state-machine",
@@ -794,12 +865,6 @@ dependencies = [
"sp-trie",
]
-[[package]]
-name = "bs58"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
-
[[package]]
name = "bs58"
version = "0.4.0"
@@ -808,18 +873,24 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
[[package]]
name = "bstr"
-version = "0.2.14"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"
+checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d"
dependencies = [
"memchr",
]
[[package]]
name = "bumpalo"
-version = "3.4.0"
+version = "3.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
+
+[[package]]
+name = "byte-slice-cast"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3"
[[package]]
name = "byte-slice-cast"
@@ -858,9 +929,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
[[package]]
name = "bytes"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72"
+checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
[[package]]
name = "cache-padded"
@@ -870,9 +941,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
[[package]]
name = "cc"
-version = "1.0.66"
+version = "1.0.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
dependencies = [
"jobserver",
]
@@ -936,9 +1007,9 @@ dependencies = [
[[package]]
name = "cid"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d88f30b1e74e7063df5711496f3ee6e74a9735d62062242d70cddf77717f18e"
+checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768"
dependencies = [
"multibase",
"multihash",
@@ -1001,9 +1072,9 @@ dependencies = [
[[package]]
name = "const_fn"
-version = "0.4.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
+checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
[[package]]
name = "constant_time_eq"
@@ -1017,7 +1088,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
dependencies = [
- "core-foundation-sys",
+ "core-foundation-sys 0.7.0",
"libc",
]
@@ -1027,6 +1098,12 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
+
[[package]]
name = "cpp_demangle"
version = "0.3.2"
@@ -1051,18 +1128,18 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
[[package]]
name = "cranelift-bforest"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4066fd63b502d73eb8c5fa6bcab9c7962b05cd580f6b149ee83a8e730d8ce7fb"
+checksum = "bcee7a5107071484772b89fdf37f0f460b7db75f476e43ea7a684fd942470bcf"
dependencies = [
"cranelift-entity",
]
[[package]]
name = "cranelift-codegen"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a54e4beb833a3c873a18a8fe735d73d732044004c7539a072c8faa35ccb0c60"
+checksum = "654ab96f0f1cab71c0d323618a58360a492da2c341eb2c1f977fc195c664001b"
dependencies = [
"byteorder",
"cranelift-bforest",
@@ -1080,9 +1157,9 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c54cac7cacb443658d8f0ff36a3545822613fa202c946c0891897843bc933810"
+checksum = "65994cfc5be9d5fd10c5fc30bcdddfa50c04bb79c91329287bff846434ff8f14"
dependencies = [
"cranelift-codegen-shared",
"cranelift-entity",
@@ -1090,24 +1167,27 @@ dependencies = [
[[package]]
name = "cranelift-codegen-shared"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a109760aff76788b2cdaeefad6875a73c2b450be13906524f6c2a81e05b8d83c"
+checksum = "889d720b688b8b7df5e4903f9b788c3c59396050f5548e516e58ccb7312463ab"
+dependencies = [
+ "serde",
+]
[[package]]
name = "cranelift-entity"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b044234aa32531f89a08b487630ddc6744696ec04c8123a1ad388de837f5de3"
+checksum = "1a2e6884a363e42a9ba980193ea8603a4272f8a92bd8bbaf9f57a94dbea0ff96"
dependencies = [
"serde",
]
[[package]]
name = "cranelift-frontend"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5452b3e4e97538ee5ef2cc071301c69a86c7adf2770916b9d04e9727096abd93"
+checksum = "e6f41e2f9b57d2c030e249d0958f1cdc2c3cd46accf8c0438b3d1944e9153444"
dependencies = [
"cranelift-codegen",
"log",
@@ -1117,25 +1197,24 @@ dependencies = [
[[package]]
name = "cranelift-native"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f68035c10b2e80f26cc29c32fa824380877f38483504c2a47b54e7da311caaf3"
+checksum = "aab70ba7575665375d31cbdea2462916ce58be887834e1b83c860b43b51af637"
dependencies = [
"cranelift-codegen",
- "raw-cpuid",
"target-lexicon",
]
[[package]]
name = "cranelift-wasm"
-version = "0.69.0"
+version = "0.71.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a530eb9d1c95b3309deb24c3d179d8b0ba5837ed98914a429787c395f614949d"
+checksum = "f2fc3d2e70da6439adf97648dcdf81834363154f2907405345b6fbe7ca38918c"
dependencies = [
"cranelift-codegen",
"cranelift-entity",
"cranelift-frontend",
- "itertools",
+ "itertools 0.10.0",
"log",
"serde",
"smallvec 1.6.1",
@@ -1159,7 +1238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
dependencies = [
"cfg-if 1.0.0",
- "crossbeam-utils 0.8.1",
+ "crossbeam-utils 0.8.3",
]
[[package]]
@@ -1180,8 +1259,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if 1.0.0",
- "crossbeam-epoch 0.9.1",
- "crossbeam-utils 0.8.1",
+ "crossbeam-epoch 0.9.3",
+ "crossbeam-utils 0.8.3",
]
[[package]]
@@ -1201,13 +1280,12 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.1"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
+checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
dependencies = [
"cfg-if 1.0.0",
- "const_fn",
- "crossbeam-utils 0.8.1",
+ "crossbeam-utils 0.8.3",
"lazy_static",
"memoffset 0.6.1",
"scopeguard",
@@ -1237,9 +1315,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.1"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
+checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
dependencies = [
"autocfg",
"cfg-if 1.0.0",
@@ -1283,9 +1361,9 @@ dependencies = [
[[package]]
name = "ctor"
-version = "0.1.18"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10bcb9d7dcbf7002aaffbb53eac22906b64cdcc127971dcc387d8eb7c95d5560"
+checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19"
dependencies = [
"quote",
"syn",
@@ -1303,10 +1381,41 @@ dependencies = [
]
[[package]]
-name = "curve25519-dalek"
-version = "2.1.0"
+name = "curl"
+version = "0.4.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5"
+checksum = "5a872858e9cb9e3b96c80dd78774ad9e32e44d3b05dc31e142b858d14aebc82c"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2 0.3.19",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.41+curl-7.75.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ec466abd277c7cab2905948f3e94d10bc4963f1f5d47921c1cc4ffd2028fe65"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8"
dependencies = [
"byteorder",
"digest 0.8.1",
@@ -1317,9 +1426,9 @@ dependencies = [
[[package]]
name = "curve25519-dalek"
-version = "3.0.0"
+version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307"
+checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f"
dependencies = [
"byteorder",
"digest 0.9.0",
@@ -1330,9 +1439,9 @@ dependencies = [
[[package]]
name = "data-encoding"
-version = "2.3.1"
+version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908"
+checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
[[package]]
name = "data-encoding-macro"
@@ -1469,9 +1578,9 @@ dependencies = [
[[package]]
name = "dyn-clone"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d55796afa1b20c2945ca8eabfc421839f2b766619209f1ede813cf2484f31804"
+checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf"
[[package]]
name = "ed25519"
@@ -1488,11 +1597,11 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
- "curve25519-dalek 3.0.0",
+ "curve25519-dalek 3.0.2",
"ed25519",
"rand 0.7.3",
"serde",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"zeroize",
]
@@ -1502,6 +1611,27 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+[[package]]
+name = "encoding_rs"
+version = "0.8.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "env_logger"
version = "0.7.1"
@@ -1522,7 +1652,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
dependencies = [
"atty",
- "humantime 2.0.1",
+ "humantime 2.1.0",
"log",
"regex",
"termcolor",
@@ -1627,10 +1757,10 @@ name = "ethereum-contract-builtin"
version = "0.1.0"
dependencies = [
"ethereum-types",
- "finality-grandpa",
+ "finality-grandpa 0.14.0",
"hex",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"rialto-runtime",
"sc-finality-grandpa",
"sp-blockchain",
@@ -1655,7 +1785,7 @@ dependencies = [
"ethabi-derive",
"exchange-relay",
"frame-system",
- "futures 0.3.12",
+ "futures 0.3.13",
"headers-relay",
"hex",
"hex-literal 0.3.1",
@@ -1664,7 +1794,7 @@ dependencies = [
"messages-relay",
"num-traits",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-ethereum-client",
"relay-rialto-client",
"relay-substrate-client",
@@ -1706,7 +1836,7 @@ dependencies = [
"async-std",
"async-trait",
"backoff",
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"num-traits",
"parking_lot 0.11.1",
@@ -1719,7 +1849,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
]
[[package]]
@@ -1784,6 +1914,21 @@ dependencies = [
"log",
]
+[[package]]
+name = "finality-grandpa"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b"
+dependencies = [
+ "either",
+ "futures 0.3.13",
+ "futures-timer 2.0.2",
+ "log",
+ "num-traits",
+ "parity-scale-codec 1.3.7",
+ "parking_lot 0.9.0",
+]
+
[[package]]
name = "finality-grandpa"
version = "0.14.0"
@@ -1791,14 +1936,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c"
dependencies = [
"either",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"log",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
]
+[[package]]
+name = "finality-relay"
+version = "0.1.0"
+dependencies = [
+ "async-std",
+ "async-trait",
+ "backoff",
+ "bp-header-chain",
+ "futures 0.3.13",
+ "headers-relay",
+ "log",
+ "num-traits",
+ "parking_lot 0.11.1",
+ "relay-utils",
+]
+
[[package]]
name = "fixed-hash"
version = "0.7.0"
@@ -1819,9 +1980,9 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
[[package]]
name = "flate2"
-version = "1.0.19"
+version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
+checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
dependencies = [
"cfg-if 1.0.0",
"crc32fast",
@@ -1830,6 +1991,18 @@ dependencies = [
"miniz_oxide",
]
+[[package]]
+name = "flume"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "531a685ab99b8f60a271b44d5dd1a76e55124a8c9fa0407b7a8e9cd172d5b588"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "pin-project 1.0.5",
+ "spinning_top",
+]
+
[[package]]
name = "fnv"
version = "1.0.7"
@@ -1839,16 +2012,16 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "fork-tree"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
]
[[package]]
name = "form_urlencoded"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
dependencies = [
"matches",
"percent-encoding 2.1.0",
@@ -1856,13 +2029,14 @@ dependencies = [
[[package]]
name = "frame-benchmarking"
-version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+version = "3.1.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
"linregress",
- "parity-scale-codec",
+ "log",
+ "parity-scale-codec 2.0.1",
"paste 1.0.4",
"sp-api",
"sp-io",
@@ -1875,13 +2049,13 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"Inflector",
"chrono",
"frame-benchmarking",
"handlebars",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-cli",
"sc-client-db",
"sc-executor",
@@ -1898,12 +2072,11 @@ dependencies = [
[[package]]
name = "frame-executive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
- "parity-scale-codec",
- "serde",
+ "parity-scale-codec 2.0.1",
"sp-core",
"sp-io",
"sp-runtime",
@@ -1914,9 +2087,9 @@ dependencies = [
[[package]]
name = "frame-metadata"
version = "13.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-std",
@@ -1925,7 +2098,7 @@ dependencies = [
[[package]]
name = "frame-support"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"bitflags",
"frame-metadata",
@@ -1933,7 +2106,7 @@ dependencies = [
"impl-trait-for-tuples",
"log",
"once_cell",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"paste 1.0.4",
"serde",
"smallvec 1.6.1",
@@ -1951,7 +2124,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"Inflector",
"frame-support-procedural-tools",
@@ -1963,10 +2136,10 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support-procedural-tools-derive",
- "proc-macro-crate",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
@@ -1975,7 +2148,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"proc-macro2",
"quote",
@@ -1985,11 +2158,12 @@ dependencies = [
[[package]]
name = "frame-system"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"impl-trait-for-tuples",
- "parity-scale-codec",
+ "log",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-io",
@@ -2001,9 +2175,9 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
]
@@ -2019,6 +2193,16 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "fs2"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
@@ -2049,15 +2233,15 @@ checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
[[package]]
name = "futures"
-version = "0.1.30"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed"
+checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
[[package]]
name = "futures"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150"
+checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1"
dependencies = [
"futures-channel",
"futures-core",
@@ -2070,9 +2254,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846"
+checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939"
dependencies = [
"futures-core",
"futures-sink",
@@ -2080,9 +2264,9 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65"
+checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
[[package]]
name = "futures-cpupool"
@@ -2090,7 +2274,7 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"num_cpus",
]
@@ -2100,8 +2284,8 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9"
dependencies = [
- "futures 0.1.30",
- "futures 0.3.12",
+ "futures 0.1.31",
+ "futures 0.3.13",
"lazy_static",
"log",
"parking_lot 0.9.0",
@@ -2112,9 +2296,9 @@ dependencies = [
[[package]]
name = "futures-executor"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9"
+checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1"
dependencies = [
"futures-core",
"futures-task",
@@ -2124,9 +2308,9 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500"
+checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59"
[[package]]
name = "futures-lite"
@@ -2145,9 +2329,9 @@ dependencies = [
[[package]]
name = "futures-macro"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd"
+checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7"
dependencies = [
"proc-macro-hack",
"proc-macro2",
@@ -2163,23 +2347,20 @@ checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b"
dependencies = [
"futures-io",
"rustls 0.19.0",
- "webpki",
+ "webpki 0.21.4",
]
[[package]]
name = "futures-sink"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6"
+checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3"
[[package]]
name = "futures-task"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86"
-dependencies = [
- "once_cell",
-]
+checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80"
[[package]]
name = "futures-timer"
@@ -2195,11 +2376,11 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
[[package]]
name = "futures-util"
-version = "0.3.12"
+version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b"
+checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"futures-channel",
"futures-core",
"futures-io",
@@ -2220,19 +2401,6 @@ version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
-[[package]]
-name = "generator"
-version = "0.6.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cdc09201b2e8ca1b19290cf7e65de2246b8e91fb6874279722189c4de7b94dc"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustc_version",
- "winapi 0.3.9",
-]
-
[[package]]
name = "generic-array"
version = "0.12.3"
@@ -2263,20 +2431,20 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.1.15"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"libc",
"wasi 0.9.0+wasi-snapshot-preview1",
]
[[package]]
name = "getrandom"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"
+checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
dependencies = [
"cfg-if 1.0.0",
"libc",
@@ -2345,7 +2513,7 @@ dependencies = [
"byteorder",
"bytes 0.4.12",
"fnv",
- "futures 0.1.30",
+ "futures 0.1.31",
"http 0.1.21",
"indexmap",
"log",
@@ -2365,10 +2533,10 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
- "http 0.2.2",
+ "http 0.2.3",
"indexmap",
"slab",
- "tokio 0.2.24",
+ "tokio 0.2.25",
"tokio-util",
"tracing",
"tracing-futures",
@@ -2376,9 +2544,9 @@ dependencies = [
[[package]]
name = "handlebars"
-version = "3.5.1"
+version = "3.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2764f9796c0ddca4b82c07f25dd2cb3db30b9a8f47940e78e1c883d9e95c3db9"
+checksum = "cdb0867bbc5a3da37a753e78021d5fcf8a4db00e18dd2dd90fd36e24190e162d"
dependencies = [
"log",
"pest",
@@ -2403,23 +2571,13 @@ dependencies = [
"crunchy",
]
-[[package]]
-name = "hashbrown"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf"
-dependencies = [
- "ahash 0.3.8",
- "autocfg",
-]
-
[[package]]
name = "hashbrown"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
dependencies = [
- "ahash 0.4.7",
+ "ahash",
]
[[package]]
@@ -2429,7 +2587,7 @@ dependencies = [
"async-std",
"async-trait",
"backoff",
- "futures 0.3.12",
+ "futures 0.3.13",
"linked-hash-map",
"log",
"num-traits",
@@ -2448,18 +2606,18 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.1.17"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
dependencies = [
"libc",
]
[[package]]
name = "hex"
-version = "0.4.2"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hex-literal"
@@ -2523,6 +2681,28 @@ dependencies = [
"hmac 0.7.1",
]
+[[package]]
+name = "honggfuzz"
+version = "0.5.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bea09577d948a98a5f59b7c891e274c4fb35ad52f67782b3d0cb53b9c05301f1"
+dependencies = [
+ "arbitrary",
+ "lazy_static",
+ "memmap",
+]
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "http"
version = "0.1.21"
@@ -2536,11 +2716,11 @@ dependencies = [
[[package]]
name = "http"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
+checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"fnv",
"itoa",
]
@@ -2552,7 +2732,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"http 0.1.21",
"tokio-buf",
]
@@ -2564,14 +2744,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
dependencies = [
"bytes 0.5.6",
- "http 0.2.2",
+ "http 0.2.3",
]
[[package]]
name = "httparse"
-version = "1.3.4"
+version = "1.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
[[package]]
name = "httpdate"
@@ -2590,18 +2770,18 @@ dependencies = [
[[package]]
name = "humantime"
-version = "2.0.1"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "hyper"
-version = "0.12.35"
+version = "0.12.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
+checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"futures-cpupool",
"h2 0.1.26",
"http 0.1.21",
@@ -2635,14 +2815,14 @@ dependencies = [
"futures-core",
"futures-util",
"h2 0.2.7",
- "http 0.2.2",
+ "http 0.2.3",
"http-body 0.3.1",
"httparse",
"httpdate",
"itoa",
"pin-project 1.0.5",
- "socket2",
- "tokio 0.2.24",
+ "socket2 0.3.19",
+ "tokio 0.2.25",
"tower-service",
"tracing",
"want 0.3.0",
@@ -2661,9 +2841,9 @@ dependencies = [
"log",
"rustls 0.18.1",
"rustls-native-certs",
- "tokio 0.2.24",
+ "tokio 0.2.25",
"tokio-rustls",
- "webpki",
+ "webpki 0.21.4",
]
[[package]]
@@ -2679,9 +2859,9 @@ dependencies = [
[[package]]
name = "idna"
-version = "0.2.0"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
dependencies = [
"matches",
"unicode-bidi",
@@ -2711,12 +2891,12 @@ dependencies = [
[[package]]
name = "if-watch"
-version = "0.1.8"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85"
+checksum = "6a6d52908d4ea4ab2bc22474ba149bf1011c8e2c3ebc1ff593ae28ac44f494b6"
dependencies = [
"async-io",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-lite",
"if-addrs",
"ipnet",
@@ -2731,7 +2911,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df170efa359aebdd5cb7fe78edcc67107748e4737bdca8a8fb40d15ea7a877ed"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
]
[[package]]
@@ -2740,7 +2920,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808"
dependencies = [
- "rlp 0.5.0",
+ "rlp",
]
[[package]]
@@ -2770,7 +2950,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
dependencies = [
"autocfg",
- "hashbrown 0.9.1",
+ "hashbrown",
"serde",
]
@@ -2798,7 +2978,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 2.0.2",
]
@@ -2817,12 +2997,49 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f"
+[[package]]
+name = "ipconfig"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
+dependencies = [
+ "socket2 0.3.19",
+ "widestring",
+ "winapi 0.3.9",
+ "winreg",
+]
+
[[package]]
name = "ipnet"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
+[[package]]
+name = "isahc"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33b24d2aed6bbe6faeab0e164ec2e9e6193fcfcfe489b6eb59fb0d0d34947d73"
+dependencies = [
+ "crossbeam-utils 0.8.3",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "flume",
+ "futures-lite",
+ "http 0.2.3",
+ "log",
+ "mime",
+ "once_cell",
+ "polling",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url 2.2.1",
+ "waker-fn",
+]
+
[[package]]
name = "itertools"
version = "0.9.0"
@@ -2832,6 +3049,15 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
version = "0.4.7"
@@ -2849,13 +3075,26 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.46"
+version = "0.3.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
+checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "jsonpath_lib"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61352ec23883402b7d30b3313c16cbabefb8907361c4eb669d990cbb87ceee5a"
+dependencies = [
+ "array_tool",
+ "env_logger 0.7.1",
+ "log",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "jsonrpc-client-transports"
version = "15.1.0"
@@ -2863,7 +3102,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7"
dependencies = [
"failure",
- "futures 0.1.30",
+ "futures 0.1.31",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub",
"log",
@@ -2878,7 +3117,7 @@ version = "15.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"log",
"serde",
"serde_derive",
@@ -2891,7 +3130,7 @@ version = "17.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07569945133257ff557eb37b015497104cea61a2c9edaf126c1cbd6e8332397f"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"serde",
"serde_derive",
@@ -2913,7 +3152,7 @@ version = "15.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 0.1.5",
"proc-macro2",
"quote",
"syn",
@@ -2925,7 +3164,7 @@ version = "15.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7"
dependencies = [
- "hyper 0.12.35",
+ "hyper 0.12.36",
"jsonrpc-core 15.1.0",
"jsonrpc-server-utils",
"log",
@@ -2991,49 +3230,57 @@ dependencies = [
"slab",
]
-[[package]]
-name = "jsonrpsee"
-version = "1.0.0"
-source = "git+https://github.com/svyatonik/jsonrpsee.git?branch=shared-client-in-rpc-api#1597b09c4a9140cd0f1320948c7a8fb237af58fb"
-dependencies = [
- "async-std",
- "async-tls",
- "bs58 0.3.1",
- "bytes 0.5.6",
- "fnv",
- "futures 0.3.12",
- "futures-timer 3.0.2",
- "globset",
- "hashbrown 0.7.2",
- "hyper 0.13.10",
- "jsonrpsee-proc-macros",
- "lazy_static",
- "log",
- "parking_lot 0.10.2",
- "pin-project 0.4.27",
- "rand 0.7.3",
- "serde",
- "serde_json",
- "smallvec 1.6.1",
- "soketto 0.3.2",
- "thiserror",
- "tokio 0.2.24",
- "unicase",
- "url 2.2.0",
- "webpki",
-]
-
[[package]]
name = "jsonrpsee-proc-macros"
-version = "1.0.0"
-source = "git+https://github.com/svyatonik/jsonrpsee.git?branch=shared-client-in-rpc-api#1597b09c4a9140cd0f1320948c7a8fb237af58fb"
+version = "0.2.0-alpha.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0cbaee9ca6440e191545a68c7bf28db0ff918359a904e37a6e7cf7edd132f5a"
dependencies = [
"Inflector",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
]
+[[package]]
+name = "jsonrpsee-types"
+version = "0.2.0-alpha.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ce2de6884fb4abee16eca02329a1eec1eb8df8aed751a8e929083820c78ce7"
+dependencies = [
+ "async-trait",
+ "beef",
+ "futures-channel",
+ "futures-util",
+ "log",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "jsonrpsee-ws-client"
+version = "0.2.0-alpha.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03ece6acc5ef1e7877fd53887e8937b273466713dc8c017a32223c2b9b678d63"
+dependencies = [
+ "async-std",
+ "async-tls",
+ "async-trait",
+ "fnv",
+ "futures 0.3.13",
+ "jsonrpsee-types",
+ "log",
+ "pin-project 1.0.5",
+ "serde",
+ "serde_json",
+ "soketto",
+ "thiserror",
+ "url 2.2.1",
+ "webpki 0.22.0",
+]
+
[[package]]
name = "keccak"
version = "0.1.0"
@@ -3118,9 +3365,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
[[package]]
name = "libc"
-version = "0.2.81"
+version = "0.2.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
+checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
[[package]]
name = "libloading"
@@ -3139,14 +3386,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
[[package]]
-name = "libp2p"
-version = "0.35.1"
+name = "libnghttp2-sys"
+version = "0.1.6+1.43.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adc225a49973cf9ab10d0cdd6a4b8f0cda299df9b760824bbb623f15f8f0c95a"
+checksum = "0af55541a8827e138d59ec9e5877fb6095ece63fb6f4da45e7491b4fbd262855"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libp2p"
+version = "0.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5759b526f75102829c15e4d8566603b4bf502ed19b5f35920d98113873470d"
dependencies = [
"atomic",
- "bytes 1.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "futures 0.3.13",
"lazy_static",
"libp2p-core",
"libp2p-deflate",
@@ -3161,6 +3418,7 @@ dependencies = [
"libp2p-ping",
"libp2p-plaintext",
"libp2p-pnet",
+ "libp2p-relay",
"libp2p-request-response",
"libp2p-swarm",
"libp2p-swarm-derive",
@@ -3178,16 +3436,16 @@ dependencies = [
[[package]]
name = "libp2p-core"
-version = "0.27.1"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a2d56aadc2c2bf22cd7797f86e56a65b5b3994a0136b65be3106938acae7a26"
+checksum = "c1e1797734bbd4c453664fefb029628f77c356ffc5bce98f06b18a7db3ebb0f7"
dependencies = [
"asn1_der",
- "bs58 0.4.0",
+ "bs58",
"ed25519-dalek",
"either",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"lazy_static",
"libsecp256k1",
@@ -3202,7 +3460,7 @@ dependencies = [
"rand 0.7.3",
"ring",
"rw-stream-sink",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"smallvec 1.6.1",
"thiserror",
"unsigned-varint 0.7.0",
@@ -3212,35 +3470,38 @@ dependencies = [
[[package]]
name = "libp2p-deflate"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345"
+checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08"
dependencies = [
"flate2",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
]
[[package]]
name = "libp2p-dns"
-version = "0.27.0"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3"
+checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b"
dependencies = [
- "futures 0.3.12",
+ "async-std-resolver",
+ "futures 0.3.13",
"libp2p-core",
"log",
+ "smallvec 1.6.1",
+ "trust-dns-resolver",
]
[[package]]
name = "libp2p-floodsub"
-version = "0.27.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f"
+checksum = "897645f99e9b396df256a6aa8ba8c4bc019ac6b7c62556f624b5feea9acc82bb"
dependencies = [
"cuckoofilter",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3252,16 +3513,16 @@ dependencies = [
[[package]]
name = "libp2p-gossipsub"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "502dc5fcbfec4aa1c63ef3f7307ffe20e90c1a1387bf23ed0bec087f2dde58a1"
+checksum = "794b0c85f5df1acbc1fc38414d37272594811193b6325c76d3931c3e3f5df8c0"
dependencies = [
"asynchronous-codec 0.6.0",
"base64 0.13.0",
"byteorder",
- "bytes 1.0.0",
+ "bytes 1.0.1",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"hex_fmt",
"libp2p-core",
"libp2p-swarm",
@@ -3270,7 +3531,7 @@ dependencies = [
"prost-build",
"rand 0.7.3",
"regex",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"smallvec 1.6.1",
"unsigned-varint 0.7.0",
"wasm-timer",
@@ -3278,11 +3539,11 @@ dependencies = [
[[package]]
name = "libp2p-identify"
-version = "0.27.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e"
+checksum = "f88ebc841d744979176ab4b8b294a3e655a7ba4ef26a905d073a52b49ed4dff5"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3294,23 +3555,23 @@ dependencies = [
[[package]]
name = "libp2p-kad"
-version = "0.28.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3da6c9acbcc05f93235d201d7d45ef4e8b88a45d8836f98becd8b4d443f066"
+checksum = "bbb5b90b6bda749023a85f60b49ea74b387c25f17d8df541ae72a3c75dd52e63"
dependencies = [
"arrayvec 0.5.2",
"asynchronous-codec 0.6.0",
- "bytes 1.0.0",
+ "bytes 1.0.1",
"either",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"libp2p-swarm",
"log",
"prost",
"prost-build",
"rand 0.7.3",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"smallvec 1.6.1",
"uint",
"unsigned-varint 0.7.0",
@@ -3320,34 +3581,34 @@ dependencies = [
[[package]]
name = "libp2p-mdns"
-version = "0.28.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e9e6374814d1b118d97ccabdfc975c8910bd16dc38a8bc058eeb08bf2080fe1"
+checksum = "be28ca13bb648d249a9baebd750ebc64ce7040ddd5f0ce1035ff1f4549fb596d"
dependencies = [
"async-io",
"data-encoding",
"dns-parser",
- "futures 0.3.12",
+ "futures 0.3.13",
"if-watch",
"lazy_static",
"libp2p-core",
"libp2p-swarm",
"log",
- "rand 0.7.3",
+ "rand 0.8.3",
"smallvec 1.6.1",
- "socket2",
+ "socket2 0.4.0",
"void",
]
[[package]]
name = "libp2p-mplex"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "350ce8b3923594aedabd5d6e3f875d058435052a29c3f32df378bc70d10be464"
+checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d"
dependencies = [
"asynchronous-codec 0.6.0",
- "bytes 1.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "futures 0.3.13",
"libp2p-core",
"log",
"nohash-hasher",
@@ -3359,20 +3620,20 @@ dependencies = [
[[package]]
name = "libp2p-noise"
-version = "0.29.0"
+version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778"
+checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd"
dependencies = [
- "bytes 1.0.0",
- "curve25519-dalek 3.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "curve25519-dalek 3.0.2",
+ "futures 0.3.13",
"lazy_static",
"libp2p-core",
"log",
"prost",
"prost-build",
"rand 0.7.3",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"snow",
"static_assertions",
"x25519-dalek",
@@ -3381,11 +3642,11 @@ dependencies = [
[[package]]
name = "libp2p-ping"
-version = "0.27.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c"
+checksum = "dea10fc5209260915ea65b78f612d7ff78a29ab288e7aa3250796866af861c45"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3396,13 +3657,13 @@ dependencies = [
[[package]]
name = "libp2p-plaintext"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d58defcadb646ae4b033e130b48d87410bf76394dc3335496cae99dac803e61"
+checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11"
dependencies = [
"asynchronous-codec 0.6.0",
- "bytes 1.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "futures 0.3.13",
"libp2p-core",
"log",
"prost",
@@ -3417,7 +3678,7 @@ version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"pin-project 1.0.5",
"rand 0.7.3",
@@ -3426,14 +3687,37 @@ dependencies = [
]
[[package]]
-name = "libp2p-request-response"
-version = "0.9.1"
+name = "libp2p-relay"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10e5552827c33d8326502682da73a0ba4bfa40c1b55b216af3c303f32169dd89"
+checksum = "3ff268be6a9d6f3c6cca3b81bbab597b15217f9ad8787c6c40fc548c1af7cd24"
+dependencies = [
+ "asynchronous-codec 0.6.0",
+ "bytes 1.0.1",
+ "futures 0.3.13",
+ "futures-timer 3.0.2",
+ "libp2p-core",
+ "libp2p-swarm",
+ "log",
+ "pin-project 1.0.5",
+ "prost",
+ "prost-build",
+ "rand 0.7.3",
+ "smallvec 1.6.1",
+ "unsigned-varint 0.7.0",
+ "void",
+ "wasm-timer",
+]
+
+[[package]]
+name = "libp2p-request-response"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "725367dd2318c54c5ab1a6418592e5b01c63b0dedfbbfb8389220b2bcf691899"
dependencies = [
"async-trait",
- "bytes 1.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "futures 0.3.13",
"libp2p-core",
"libp2p-swarm",
"log",
@@ -3447,12 +3731,12 @@ dependencies = [
[[package]]
name = "libp2p-swarm"
-version = "0.27.2"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7955b973e1fd2bd61ffd43ce261c1223f61f4aacd5bae362a924993f9a25fd98"
+checksum = "75c26980cadd7c25d89071cb23e1f7f5df4863128cc91d83c6ddc72338cecafa"
dependencies = [
"either",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"log",
"rand 0.7.3",
@@ -3473,40 +3757,40 @@ dependencies = [
[[package]]
name = "libp2p-tcp"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a5aef80e519a6cb8e2663605142f97baaaea1a252eecbf8756184765f7471b"
+checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9"
dependencies = [
"async-io",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"if-watch",
"ipnet",
"libc",
"libp2p-core",
"log",
- "socket2",
+ "socket2 0.4.0",
]
[[package]]
name = "libp2p-uds"
-version = "0.27.0"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487"
+checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5"
dependencies = [
"async-std",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"log",
]
[[package]]
name = "libp2p-wasm-ext"
-version = "0.27.0"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd"
+checksum = "cef45d61e43c313531b5e903e4e8415212ff6338e0c54c47da5b9b412b5760de"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"js-sys",
"libp2p-core",
"parity-send-wrapper",
@@ -3516,29 +3800,29 @@ dependencies = [
[[package]]
name = "libp2p-websocket"
-version = "0.28.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22"
+checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74"
dependencies = [
"either",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-rustls",
"libp2p-core",
"log",
"quicksink",
"rw-stream-sink",
- "soketto 0.4.2",
- "url 2.2.0",
- "webpki-roots 0.21.0",
+ "soketto",
+ "url 2.2.1",
+ "webpki-roots",
]
[[package]]
name = "libp2p-yamux"
-version = "0.30.1"
+version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4819358c542a86ff95f6ae691efb4b94ddaf477079b01a686f5705b79bfc232a"
+checksum = "96d6144cc94143fb0a8dd1e7c2fbcc32a2808168bcd1d69920635424d5993b7b"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p-core",
"parking_lot 0.11.1",
"thiserror",
@@ -3580,15 +3864,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
dependencies = [
"cc",
+ "libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "linked-hash-map"
-version = "0.5.3"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
+checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
[[package]]
name = "linked_hash_set"
@@ -3638,25 +3923,21 @@ dependencies = [
]
[[package]]
-name = "loom"
-version = "0.3.6"
+name = "lru"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0e8460f2f2121162705187214720353c517b97bdfb3494c0b1e33d83ebe4bed"
+checksum = "1f374d42cdfc1d7dbf3d3dec28afab2eb97ffbf43a3234d795b5986dbf4b90ba"
dependencies = [
- "cfg-if 0.1.10",
- "generator",
- "scoped-tls",
- "serde",
- "serde_json",
+ "hashbrown",
]
[[package]]
-name = "lru"
-version = "0.6.3"
+name = "lru-cache"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
dependencies = [
- "hashbrown 0.9.1",
+ "linked-hash-map",
]
[[package]]
@@ -3674,6 +3955,12 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
[[package]]
name = "matchers"
version = "0.0.1"
@@ -3710,6 +3997,16 @@ version = "2.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+[[package]]
+name = "memmap"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "memmap2"
version = "0.2.1"
@@ -3744,7 +4041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "814bbecfc0451fc314eeea34f05bbcd5b98a7ad7af37faee088b86a1e633f1d4"
dependencies = [
"hash-db",
- "hashbrown 0.9.1",
+ "hashbrown",
"parity-util-mem",
]
@@ -3756,9 +4053,9 @@ checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882"
[[package]]
name = "merlin"
-version = "2.0.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78"
+checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
dependencies = [
"byteorder",
"keccak",
@@ -3772,8 +4069,8 @@ version = "0.1.0"
dependencies = [
"async-std",
"async-trait",
- "bp-message-lane",
- "futures 0.3.12",
+ "bp-messages",
+ "futures 0.3.13",
"hex",
"log",
"parking_lot 0.11.1",
@@ -3784,15 +4081,16 @@ dependencies = [
name = "millau-bridge-node"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
"bp-millau",
"bp-runtime",
"frame-benchmarking",
"frame-benchmarking-cli",
"jsonrpc-core 15.1.0",
"millau-runtime",
- "pallet-message-lane",
- "pallet-message-lane-rpc",
+ "node-inspect",
+ "pallet-bridge-messages",
+ "pallet-transaction-payment-rpc",
"sc-basic-authorship",
"sc-cli",
"sc-client-api",
@@ -3804,6 +4102,7 @@ dependencies = [
"sc-keystore",
"sc-rpc",
"sc-service",
+ "sc-telemetry",
"sc-transaction-pool",
"sp-consensus",
"sp-consensus-aura",
@@ -3814,7 +4113,6 @@ dependencies = [
"structopt",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
- "vergen",
]
[[package]]
@@ -3822,10 +4120,11 @@ name = "millau-runtime"
version = "0.1.0"
dependencies = [
"bp-header-chain",
- "bp-message-lane",
+ "bp-messages",
"bp-millau",
"bp-rialto",
"bp-runtime",
+ "bp-westend",
"bridge-runtime-common",
"frame-executive",
"frame-support",
@@ -3834,18 +4133,18 @@ dependencies = [
"hex-literal 0.3.1",
"pallet-aura",
"pallet-balances",
- "pallet-bridge-call-dispatch",
- "pallet-finality-verifier",
+ "pallet-bridge-dispatch",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
"pallet-grandpa",
- "pallet-message-lane",
"pallet-randomness-collective-flip",
"pallet-session",
"pallet-shift-session-manager",
- "pallet-substrate-bridge",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-api",
"sp-block-builder",
@@ -3864,19 +4163,25 @@ dependencies = [
]
[[package]]
-name = "minicbor"
-version = "0.7.0"
+name = "mime"
+version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0164190d1771b1458c3742075b057ed55d25cd9dfb930aade99315a1eb1fe12d"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "minicbor"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea79ce4ab9f445ec6b71833a2290ac0a29c9dde0fa7cae4c481eecae021d9bd9"
dependencies = [
"minicbor-derive",
]
[[package]]
name = "minicbor-derive"
-version = "0.6.0"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e071b3159835ee91df62dbdbfdd7ec366b7ea77c838f43aff4acda6b61bcfb9"
+checksum = "19ce18b5423c573a13e80cb3046ea0af6379ef725dc3af4886bdb8f4e5093068"
dependencies = [
"proc-macro2",
"quote",
@@ -3885,9 +4190,9 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.4.3"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
"adler",
"autocfg",
@@ -3965,7 +4270,7 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897"
dependencies = [
- "socket2",
+ "socket2 0.3.19",
"winapi 0.3.9",
]
@@ -3998,7 +4303,7 @@ dependencies = [
"digest 0.9.0",
"generic-array 0.14.4",
"multihash-derive",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"sha3",
"unsigned-varint 0.5.1",
]
@@ -4009,7 +4314,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 0.1.5",
"proc-macro-error",
"proc-macro2",
"quote",
@@ -4025,16 +4330,16 @@ checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333"
[[package]]
name = "multistream-select"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10ddc0eb0117736f19d556355464fc87efc8ad98b29e3fd84f02531eb6e90840"
+checksum = "5df70763c86c98487451f307e1b68b4100da9076f4c12146905fc2054277f4e8"
dependencies = [
- "bytes 1.0.0",
- "futures 0.3.12",
+ "bytes 1.0.1",
+ "futures 0.3.13",
"log",
"pin-project 1.0.5",
"smallvec 1.6.1",
- "unsigned-varint 0.6.0",
+ "unsigned-varint 0.7.0",
]
[[package]]
@@ -4066,12 +4371,12 @@ dependencies = [
[[package]]
name = "nb-connect"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998"
+checksum = "670361df1bc2399ee1ff50406a0d422587dd3bb0da596e1978fe8e05dabddf4f"
dependencies = [
"libc",
- "winapi 0.3.9",
+ "socket2 0.3.19",
]
[[package]]
@@ -4085,6 +4390,23 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "node-inspect"
+version = "0.8.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
+dependencies = [
+ "derive_more",
+ "log",
+ "parity-scale-codec 2.0.1",
+ "sc-cli",
+ "sc-client-api",
+ "sc-service",
+ "sp-blockchain",
+ "sp-core",
+ "sp-runtime",
+ "structopt",
+]
+
[[package]]
name = "nodrop"
version = "0.1.14"
@@ -4137,6 +4459,16 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "num-format"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465"
+dependencies = [
+ "arrayvec 0.4.12",
+ "itoa",
+]
+
[[package]]
name = "num-integer"
version = "0.1.44"
@@ -4181,9 +4513,9 @@ dependencies = [
[[package]]
name = "object"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
+checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
dependencies = [
"crc32fast",
"indexmap",
@@ -4191,9 +4523,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.5.2"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+checksum = "10acf907b94fc1b1a152d08ef97e7759650268cf986bf127f387e602b02c7e5a"
dependencies = [
"parking_lot 0.11.1",
]
@@ -4216,6 +4548,19 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+[[package]]
+name = "openssl-sys"
+version = "0.9.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
[[package]]
name = "owning_ref"
version = "0.4.1"
@@ -4228,30 +4573,28 @@ dependencies = [
[[package]]
name = "pallet-aura"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
"pallet-session",
"pallet-timestamp",
- "parity-scale-codec",
- "serde",
+ "parity-scale-codec 2.0.1",
"sp-application-crypto",
"sp-consensus-aura",
"sp-runtime",
"sp-std",
- "sp-timestamp",
]
[[package]]
name = "pallet-authorship"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
"impl-trait-for-tuples",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-authorship",
"sp-inherents",
"sp-runtime",
@@ -4261,29 +4604,13 @@ dependencies = [
[[package]]
name = "pallet-balances"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "parity-scale-codec",
- "serde",
- "sp-runtime",
- "sp-std",
-]
-
-[[package]]
-name = "pallet-bridge-call-dispatch"
-version = "0.1.0"
-dependencies = [
- "bp-message-dispatch",
- "bp-runtime",
- "frame-support",
- "frame-system",
- "parity-scale-codec",
- "serde",
- "sp-core",
- "sp-io",
+ "log",
+ "parity-scale-codec 2.0.1",
"sp-runtime",
"sp-std",
]
@@ -4297,7 +4624,25 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
- "parity-scale-codec",
+ "log",
+ "parity-scale-codec 2.0.1",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-bridge-dispatch"
+version = "0.1.0"
+dependencies = [
+ "bp-message-dispatch",
+ "bp-runtime",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-io",
@@ -4315,7 +4660,8 @@ dependencies = [
"frame-system",
"hex-literal 0.3.1",
"libsecp256k1",
- "parity-scale-codec",
+ "log",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-io",
"sp-runtime",
@@ -4323,18 +4669,45 @@ dependencies = [
]
[[package]]
-name = "pallet-finality-verifier"
+name = "pallet-bridge-grandpa"
version = "0.1.0"
dependencies = [
"bp-header-chain",
"bp-runtime",
"bp-test-utils",
- "finality-grandpa",
+ "finality-grandpa 0.14.0",
+ "frame-benchmarking",
"frame-support",
"frame-system",
- "pallet-substrate-bridge",
- "parity-scale-codec",
+ "log",
+ "num-traits",
+ "parity-scale-codec 2.0.1",
"serde",
+ "sp-finality-grandpa",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-trie",
+]
+
+[[package]]
+name = "pallet-bridge-messages"
+version = "0.1.0"
+dependencies = [
+ "bp-messages",
+ "bp-rialto",
+ "bp-runtime",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "hex-literal 0.3.1",
+ "log",
+ "num-traits",
+ "pallet-balances",
+ "parity-scale-codec 2.0.1",
+ "serde",
+ "sp-core",
"sp-io",
"sp-runtime",
"sp-std",
@@ -4343,15 +4716,15 @@ dependencies = [
[[package]]
name = "pallet-grandpa"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log",
"pallet-authorship",
"pallet-session",
- "parity-scale-codec",
- "serde",
+ "parity-scale-codec 2.0.1",
"sp-application-crypto",
"sp-core",
"sp-finality-grandpa",
@@ -4361,55 +4734,14 @@ dependencies = [
"sp-std",
]
-[[package]]
-name = "pallet-message-lane"
-version = "0.1.0"
-dependencies = [
- "bp-message-lane",
- "bp-rialto",
- "bp-runtime",
- "frame-benchmarking",
- "frame-support",
- "frame-system",
- "hex-literal 0.3.1",
- "num-traits",
- "pallet-balances",
- "parity-scale-codec",
- "serde",
- "sp-core",
- "sp-io",
- "sp-runtime",
- "sp-std",
-]
-
-[[package]]
-name = "pallet-message-lane-rpc"
-version = "0.1.0"
-dependencies = [
- "bp-message-lane",
- "bp-runtime",
- "derive_more",
- "futures 0.3.12",
- "jsonrpc-core 15.1.0",
- "jsonrpc-core-client",
- "jsonrpc-derive",
- "log",
- "sc-client-api",
- "sp-blockchain",
- "sp-core",
- "sp-runtime",
- "sp-state-machine",
- "sp-trie",
-]
-
[[package]]
name = "pallet-randomness-collective-flip"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"safe-mix",
"sp-runtime",
"sp-std",
@@ -4418,14 +4750,13 @@ dependencies = [
[[package]]
name = "pallet-session"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
"impl-trait-for-tuples",
"pallet-timestamp",
- "parity-scale-codec",
- "serde",
+ "parity-scale-codec 2.0.1",
"sp-core",
"sp-io",
"sp-runtime",
@@ -4442,7 +4773,7 @@ dependencies = [
"frame-support",
"frame-system",
"pallet-session",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-runtime",
@@ -4450,37 +4781,14 @@ dependencies = [
"sp-std",
]
-[[package]]
-name = "pallet-substrate-bridge"
-version = "0.1.0"
-dependencies = [
- "bp-header-chain",
- "bp-runtime",
- "bp-test-utils",
- "finality-grandpa",
- "frame-support",
- "frame-system",
- "hash-db",
- "parity-scale-codec",
- "serde",
- "sp-core",
- "sp-finality-grandpa",
- "sp-io",
- "sp-runtime",
- "sp-state-machine",
- "sp-std",
- "sp-trie",
-]
-
[[package]]
name = "pallet-sudo"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
- "parity-scale-codec",
- "serde",
+ "parity-scale-codec 2.0.1",
"sp-io",
"sp-runtime",
"sp-std",
@@ -4489,14 +4797,14 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
"impl-trait-for-tuples",
- "parity-scale-codec",
- "serde",
+ "log",
+ "parity-scale-codec 2.0.1",
"sp-inherents",
"sp-runtime",
"sp-std",
@@ -4506,11 +4814,11 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-support",
"frame-system",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"smallvec 1.6.1",
"sp-core",
@@ -4519,6 +4827,34 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-transaction-payment-rpc"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
+dependencies = [
+ "jsonrpc-core 15.1.0",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec 2.0.1",
+ "sp-api",
+ "sp-blockchain",
+ "sp-core",
+ "sp-rpc",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-transaction-payment-rpc-runtime-api"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
+dependencies = [
+ "pallet-transaction-payment",
+ "parity-scale-codec 2.0.1",
+ "sp-api",
+ "sp-runtime",
+]
+
[[package]]
name = "parity-bytes"
version = "0.1.2"
@@ -4527,12 +4863,13 @@ checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67"
[[package]]
name = "parity-db"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "111e193c96758d476d272093a853882668da17489f76bf4361b8decae0b6c515"
+checksum = "495197c078e54b8735181aa35c00a327f7f3a3cc00a1ee8c95926dd010f0ec6b"
dependencies = [
"blake2-rfc",
"crc32fast",
+ "fs2",
"hex",
"libc",
"log",
@@ -4543,12 +4880,12 @@ dependencies = [
[[package]]
name = "parity-multiaddr"
-version = "0.11.1"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2c6805f98667a3828afb2ec2c396a8d610497e8d546f5447188aae47c5a79ec"
+checksum = "58341485071825827b7f03cf7efd1cb21e6a709bea778fb50227fd45d2f361b4"
dependencies = [
"arrayref",
- "bs58 0.4.0",
+ "bs58",
"byteorder",
"data-encoding",
"multihash",
@@ -4556,29 +4893,54 @@ dependencies = [
"serde",
"static_assertions",
"unsigned-varint 0.7.0",
- "url 2.2.0",
+ "url 2.2.1",
]
[[package]]
name = "parity-scale-codec"
-version = "2.0.0"
+version = "1.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75c823fdae1bb5ff5708ee61a62697e6296175dc671710876871c853f48592b3"
+checksum = "a4b26b16c7687c3075982af47719e481815df30bc544f7a6690763a25ca16e9d"
dependencies = [
"arrayvec 0.5.2",
- "bitvec",
- "byte-slice-cast",
- "parity-scale-codec-derive",
+ "bitvec 0.17.4",
+ "byte-slice-cast 0.3.5",
+ "parity-scale-codec-derive 1.2.3",
+ "serde",
+]
+
+[[package]]
+name = "parity-scale-codec"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cd3dab59b5cf4bc81069ade0fc470341a1ef3ad5fa73e5a8943bed2ec12b2e8"
+dependencies = [
+ "arrayvec 0.5.2",
+ "bitvec 0.20.1",
+ "byte-slice-cast 1.0.0",
+ "parity-scale-codec-derive 2.0.1",
"serde",
]
[[package]]
name = "parity-scale-codec-derive"
-version = "2.0.0"
+version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9029e65297c7fd6d7013f0579e193ec2b34ae78eabca854c9417504ad8a2d214"
+checksum = "c41512944b1faff334a5f1b9447611bf4ef40638ccb6328173dacefb338e878c"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "parity-scale-codec-derive"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa04976a81fde04924b40cc4036c4d12841e8bb04325a5cf2ada75731a150a7d"
+dependencies = [
+ "proc-macro-crate 0.1.5",
"proc-macro2",
"quote",
"syn",
@@ -4597,7 +4959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"libc",
"log",
"mio-named-pipes",
@@ -4616,7 +4978,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "664a8c6b8e62d8f9f2f937e391982eb433ab285b4cd9545b342441e04a906e42"
dependencies = [
"cfg-if 1.0.0",
- "hashbrown 0.9.1",
+ "hashbrown",
"impl-trait-for-tuples",
"parity-util-mem-derive",
"parking_lot 0.11.1",
@@ -4657,7 +5019,7 @@ dependencies = [
"rand 0.7.3",
"sha-1 0.8.2",
"slab",
- "url 2.2.0",
+ "url 2.2.1",
]
[[package]]
@@ -4695,7 +5057,7 @@ checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
dependencies = [
"instant",
"lock_api 0.4.2",
- "parking_lot_core 0.8.2",
+ "parking_lot_core 0.8.3",
]
[[package]]
@@ -4729,14 +5091,14 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
+checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
dependencies = [
"cfg-if 1.0.0",
"instant",
"libc",
- "redox_syscall 0.1.57",
+ "redox_syscall 0.2.5",
"smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -4937,9 +5299,9 @@ dependencies = [
[[package]]
name = "platforms"
-version = "0.2.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e"
+checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325"
[[package]]
name = "polling"
@@ -5003,6 +5365,16 @@ dependencies = [
"toml",
]
+[[package]]
+name = "proc-macro-crate"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92"
+dependencies = [
+ "thiserror",
+ "toml",
+]
+
[[package]]
name = "proc-macro-error"
version = "1.0.4"
@@ -5035,15 +5407,15 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro-nested"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
[[package]]
name = "proc-macro2"
-version = "1.0.24"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
dependencies = [
"unicode-xid",
]
@@ -5068,7 +5440,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"prost-derive",
]
@@ -5078,9 +5450,9 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"heck",
- "itertools",
+ "itertools 0.9.0",
"log",
"multimap",
"petgraph",
@@ -5097,7 +5469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
dependencies = [
"anyhow",
- "itertools",
+ "itertools 0.9.0",
"proc-macro2",
"quote",
"syn",
@@ -5109,7 +5481,7 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"prost",
]
@@ -5158,13 +5530,19 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.8"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [
"proc-macro2",
]
+[[package]]
+name = "radium"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac"
+
[[package]]
name = "radium"
version = "0.6.2"
@@ -5200,7 +5578,7 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
- "getrandom 0.1.15",
+ "getrandom 0.1.16",
"libc",
"rand_chacha 0.2.2",
"rand_core 0.5.1",
@@ -5261,7 +5639,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
- "getrandom 0.1.15",
+ "getrandom 0.1.16",
]
[[package]]
@@ -5270,7 +5648,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
dependencies = [
- "getrandom 0.2.1",
+ "getrandom 0.2.2",
]
[[package]]
@@ -5309,17 +5687,6 @@ dependencies = [
"rand_core 0.5.1",
]
-[[package]]
-name = "raw-cpuid"
-version = "8.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73"
-dependencies = [
- "bitflags",
- "cc",
- "rustc_version",
-]
-
[[package]]
name = "rawpointer"
version = "0.2.1"
@@ -5346,7 +5713,7 @@ checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
dependencies = [
"crossbeam-channel",
"crossbeam-deque 0.8.0",
- "crossbeam-utils 0.8.1",
+ "crossbeam-utils 0.8.3",
"lazy_static",
"num_cpus",
]
@@ -5368,9 +5735,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_syscall"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
+checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
dependencies = [
"bitflags",
]
@@ -5381,7 +5748,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
dependencies = [
- "getrandom 0.1.15",
+ "getrandom 0.1.16",
"redox_syscall 0.1.57",
"rust-argon2",
]
@@ -5392,24 +5759,24 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
- "getrandom 0.2.1",
- "redox_syscall 0.2.4",
+ "getrandom 0.2.2",
+ "redox_syscall 0.2.5",
]
[[package]]
name = "ref-cast"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e84b8a3c77dd38893c11b59284a40f304a1346d4da020e603fab3671727df95d"
+checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d5173fc07aa6595363a38ca7d69d438cc32cca4216ccd1a3a8f2d4b10bbcd0"
+checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2"
dependencies = [
"proc-macro2",
"quote",
@@ -5424,14 +5791,15 @@ checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5"
dependencies = [
"log",
"rustc-hash",
+ "serde",
"smallvec 1.6.1",
]
[[package]]
name = "regex"
-version = "1.4.2"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
+checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a"
dependencies = [
"aho-corasick",
"memchr",
@@ -5451,9 +5819,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.6.21"
+version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
+checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581"
[[package]]
name = "region"
@@ -5474,10 +5842,11 @@ dependencies = [
"bp-eth-poa",
"headers-relay",
"hex-literal 0.3.1",
- "jsonrpsee",
+ "jsonrpsee-proc-macros",
+ "jsonrpsee-ws-client",
"libsecp256k1",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-utils",
"web3",
]
@@ -5491,7 +5860,7 @@ dependencies = [
"frame-system",
"headers-relay",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-substrate-client",
"relay-utils",
"sp-core",
@@ -5508,7 +5877,7 @@ dependencies = [
"headers-relay",
"millau-runtime",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-substrate-client",
"relay-utils",
"sp-core",
@@ -5525,7 +5894,7 @@ dependencies = [
"frame-system",
"headers-relay",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-substrate-client",
"relay-utils",
"sp-core",
@@ -5541,7 +5910,7 @@ dependencies = [
"frame-system",
"headers-relay",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"relay-substrate-client",
"relay-utils",
"rialto-runtime",
@@ -5550,29 +5919,51 @@ dependencies = [
"sp-runtime",
]
+[[package]]
+name = "relay-rococo-client"
+version = "0.1.0"
+dependencies = [
+ "bp-rococo",
+ "frame-support",
+ "frame-system",
+ "headers-relay",
+ "pallet-transaction-payment",
+ "parity-scale-codec 2.0.1",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-core",
+ "sp-keyring",
+ "sp-runtime",
+]
+
[[package]]
name = "relay-substrate-client"
version = "0.1.0"
dependencies = [
"async-std",
"async-trait",
- "bp-message-lane",
+ "bp-header-chain",
+ "bp-messages",
"bp-runtime",
+ "finality-relay",
"frame-support",
"frame-system",
- "futures 0.3.12",
+ "futures 0.3.13",
"headers-relay",
- "jsonrpsee",
+ "jsonrpsee-proc-macros",
+ "jsonrpsee-ws-client",
"log",
"num-traits",
"pallet-balances",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"rand 0.7.3",
"relay-utils",
"sc-rpc-api",
"sp-core",
+ "sp-finality-grandpa",
"sp-runtime",
"sp-std",
+ "sp-storage",
"sp-trie",
"sp-version",
]
@@ -5586,14 +5977,34 @@ dependencies = [
"async-trait",
"backoff",
"env_logger 0.8.3",
- "futures 0.3.12",
+ "futures 0.3.13",
+ "isahc",
+ "jsonpath_lib",
"log",
"num-traits",
+ "serde_json",
"substrate-prometheus-endpoint",
"sysinfo",
"time 0.2.25",
]
+[[package]]
+name = "relay-westend-client"
+version = "0.1.0"
+dependencies = [
+ "bp-westend",
+ "frame-support",
+ "frame-system",
+ "headers-relay",
+ "pallet-transaction-payment",
+ "parity-scale-codec 2.0.1",
+ "relay-substrate-client",
+ "relay-utils",
+ "sp-core",
+ "sp-keyring",
+ "sp-runtime",
+]
+
[[package]]
name = "remove_dir_all"
version = "0.5.3"
@@ -5603,6 +6014,16 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error 1.2.3",
+]
+
[[package]]
name = "retain_mut"
version = "0.1.2"
@@ -5613,14 +6034,15 @@ checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1"
name = "rialto-bridge-node"
version = "0.1.0"
dependencies = [
- "bp-message-lane",
+ "bp-messages",
"bp-rialto",
"bp-runtime",
"frame-benchmarking",
"frame-benchmarking-cli",
"jsonrpc-core 15.1.0",
- "pallet-message-lane",
- "pallet-message-lane-rpc",
+ "node-inspect",
+ "pallet-bridge-messages",
+ "pallet-transaction-payment-rpc",
"rialto-runtime",
"sc-basic-authorship",
"sc-cli",
@@ -5644,7 +6066,6 @@ dependencies = [
"structopt",
"substrate-build-script-utils",
"substrate-frame-rpc-system",
- "vergen",
]
[[package]]
@@ -5655,7 +6076,7 @@ dependencies = [
"bp-eth-poa",
"bp-header-chain",
"bp-message-dispatch",
- "bp-message-lane",
+ "bp-messages",
"bp-millau",
"bp-rialto",
"bp-runtime",
@@ -5667,22 +6088,23 @@ dependencies = [
"frame-system-rpc-runtime-api",
"hex-literal 0.3.1",
"libsecp256k1",
+ "log",
"pallet-aura",
"pallet-balances",
- "pallet-bridge-call-dispatch",
"pallet-bridge-currency-exchange",
+ "pallet-bridge-dispatch",
"pallet-bridge-eth-poa",
- "pallet-finality-verifier",
+ "pallet-bridge-grandpa",
+ "pallet-bridge-messages",
"pallet-grandpa",
- "pallet-message-lane",
"pallet-randomness-collective-flip",
"pallet-session",
"pallet-shift-session-manager",
- "pallet-substrate-bridge",
"pallet-sudo",
"pallet-timestamp",
"pallet-transaction-payment",
- "parity-scale-codec",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-api",
"sp-block-builder",
@@ -5703,9 +6125,9 @@ dependencies = [
[[package]]
name = "ring"
-version = "0.16.19"
+version = "0.16.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
dependencies = [
"cc",
"libc",
@@ -5716,22 +6138,13 @@ dependencies = [
"winapi 0.3.9",
]
-[[package]]
-name = "rlp"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1190dcc8c3a512f1eef5d09bb8c84c7f39e1054e174d1795482e18f5272f2e73"
-dependencies = [
- "rustc-hex",
-]
-
[[package]]
name = "rlp"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8"
dependencies = [
- "bytes 1.0.0",
+ "bytes 1.0.1",
"rustc-hex",
]
@@ -5747,9 +6160,9 @@ dependencies = [
[[package]]
name = "rpassword"
-version = "5.0.0"
+version = "5.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9"
+checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb"
dependencies = [
"libc",
"winapi 0.3.9",
@@ -5764,7 +6177,7 @@ dependencies = [
"base64 0.13.0",
"blake2b_simd",
"constant_time_eq",
- "crossbeam-utils 0.8.1",
+ "crossbeam-utils 0.8.3",
]
[[package]]
@@ -5794,19 +6207,6 @@ dependencies = [
"semver",
]
-[[package]]
-name = "rustls"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e"
-dependencies = [
- "base64 0.10.1",
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
[[package]]
name = "rustls"
version = "0.18.1"
@@ -5817,7 +6217,7 @@ dependencies = [
"log",
"ring",
"sct",
- "webpki",
+ "webpki 0.21.4",
]
[[package]]
@@ -5830,7 +6230,7 @@ dependencies = [
"log",
"ring",
"sct",
- "webpki",
+ "webpki 0.21.4",
]
[[package]]
@@ -5845,13 +6245,23 @@ dependencies = [
"security-framework",
]
+[[package]]
+name = "ruzstd"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d425143485a37727c7a46e689bbe3b883a00f42b4a52c4ac0f44855c1009b00"
+dependencies = [
+ "byteorder",
+ "twox-hash",
+]
+
[[package]]
name = "rw-stream-sink"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"pin-project 0.4.27",
"static_assertions",
]
@@ -5883,12 +6293,12 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-block-builder",
"sc-client-api",
"sc-proposer-metrics",
@@ -5906,14 +6316,13 @@ dependencies = [
[[package]]
name = "sc-block-builder"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-client-api",
"sp-api",
"sp-block-builder",
"sp-blockchain",
- "sp-consensus",
"sp-core",
"sp-inherents",
"sp-runtime",
@@ -5923,10 +6332,10 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"impl-trait-for-tuples",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-chain-spec-derive",
"sc-consensus-babe",
"sc-consensus-epochs",
@@ -5944,9 +6353,9 @@ dependencies = [
[[package]]
name = "sc-chain-spec-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
@@ -5955,16 +6364,16 @@ dependencies = [
[[package]]
name = "sc-cli"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"chrono",
"fdlimit",
- "futures 0.3.12",
+ "futures 0.3.13",
"hex",
"libp2p",
"log",
"names",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"rand 0.7.3",
"regex",
"rpassword",
@@ -5987,22 +6396,22 @@ dependencies = [
"structopt",
"thiserror",
"tiny-bip39",
- "tokio 0.2.24",
+ "tokio 0.2.25",
]
[[package]]
name = "sc-client-api"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"hash-db",
"kvdb",
"lazy_static",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sc-executor",
"sp-api",
@@ -6027,7 +6436,7 @@ dependencies = [
[[package]]
name = "sc-client-db"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"blake2-rfc",
"hash-db",
@@ -6037,7 +6446,7 @@ dependencies = [
"linked-hash-map",
"log",
"parity-db",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"parking_lot 0.11.1",
"sc-client-api",
@@ -6057,8 +6466,9 @@ dependencies = [
[[package]]
name = "sc-consensus"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
+ "parking_lot 0.11.1",
"sc-client-api",
"sp-blockchain",
"sp-consensus",
@@ -6068,14 +6478,14 @@ dependencies = [
[[package]]
name = "sc-consensus-aura"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
+ "async-trait",
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"log",
- "parity-scale-codec",
- "parking_lot 0.11.1",
+ "parity-scale-codec 2.0.1",
"sc-block-builder",
"sc-client-api",
"sc-consensus-slots",
@@ -6100,18 +6510,19 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
+ "async-trait",
"derive_more",
"fork-tree",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"log",
"merlin",
"num-bigint",
"num-rational",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"pdqselect",
"rand 0.7.3",
@@ -6146,12 +6557,12 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"fork-tree",
- "parity-scale-codec",
- "parking_lot 0.11.1",
+ "parity-scale-codec 2.0.1",
"sc-client-api",
+ "sc-consensus",
"sp-blockchain",
"sp-runtime",
]
@@ -6159,13 +6570,13 @@ dependencies = [
[[package]]
name = "sc-consensus-slots"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "async-trait",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"log",
- "parity-scale-codec",
- "parking_lot 0.11.1",
+ "parity-scale-codec 2.0.1",
"sc-client-api",
"sc-telemetry",
"sp-api",
@@ -6178,6 +6589,7 @@ dependencies = [
"sp-inherents",
"sp-runtime",
"sp-state-machine",
+ "sp-timestamp",
"sp-trie",
"thiserror",
]
@@ -6185,7 +6597,7 @@ dependencies = [
[[package]]
name = "sc-consensus-uncles"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
"sc-client-api",
@@ -6199,13 +6611,13 @@ dependencies = [
[[package]]
name = "sc-executor"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
"lazy_static",
"libsecp256k1",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-wasm",
"parking_lot 0.11.1",
"sc-executor-common",
@@ -6215,6 +6627,7 @@ dependencies = [
"sp-core",
"sp-externalities",
"sp-io",
+ "sp-maybe-compressed-blob",
"sp-panic-handler",
"sp-runtime-interface",
"sp-serializer",
@@ -6228,11 +6641,12 @@ dependencies = [
[[package]]
name = "sc-executor-common"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-wasm",
+ "pwasm-utils",
"sp-allocator",
"sp-core",
"sp-serializer",
@@ -6244,10 +6658,10 @@ dependencies = [
[[package]]
name = "sc-executor-wasmi"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-executor-common",
"sp-allocator",
"sp-core",
@@ -6259,10 +6673,10 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-wasm",
"pwasm-utils",
"sc-executor-common",
@@ -6277,17 +6691,18 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
+ "async-trait",
"derive_more",
"dyn-clone",
- "finality-grandpa",
+ "finality-grandpa 0.14.0",
"fork-tree",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"linked-hash-map",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"pin-project 1.0.5",
"rand 0.7.3",
@@ -6316,17 +6731,17 @@ dependencies = [
[[package]]
name = "sc-finality-grandpa-rpc"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
- "finality-grandpa",
- "futures 0.3.12",
+ "finality-grandpa 0.14.0",
+ "futures 0.3.13",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client",
"jsonrpc-derive",
"jsonrpc-pubsub",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-client-api",
"sc-finality-grandpa",
"sc-rpc",
@@ -6340,10 +6755,10 @@ dependencies = [
[[package]]
name = "sc-informant"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"ansi_term 0.12.1",
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"parity-util-mem",
"sc-client-api",
@@ -6358,11 +6773,11 @@ dependencies = [
[[package]]
name = "sc-keystore"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-util",
"hex",
"merlin",
@@ -6378,11 +6793,11 @@ dependencies = [
[[package]]
name = "sc-light"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"hash-db",
"lazy_static",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sc-client-api",
"sc-executor",
@@ -6397,21 +6812,21 @@ dependencies = [
[[package]]
name = "sc-network"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"async-std",
"async-trait",
"asynchronous-codec 0.5.0",
"bitflags",
- "bs58 0.4.0",
- "bytes 1.0.0",
+ "bs58",
+ "bytes 1.0.1",
"cid",
"derive_more",
"either",
"erased-serde",
"fnv",
"fork-tree",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"hex",
"ip_network",
@@ -6421,7 +6836,7 @@ dependencies = [
"log",
"lru",
"nohash-hasher",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"pin-project 1.0.5",
"prost",
@@ -6450,9 +6865,9 @@ dependencies = [
[[package]]
name = "sc-network-gossip"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"libp2p",
"log",
@@ -6460,23 +6875,25 @@ dependencies = [
"sc-network",
"sp-runtime",
"substrate-prometheus-endpoint",
+ "tracing",
"wasm-timer",
]
[[package]]
name = "sc-offchain"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"bytes 0.5.6",
"fnv",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
+ "hex",
"hyper 0.13.10",
"hyper-rustls",
"log",
"num_cpus",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"rand 0.7.3",
"sc-client-api",
@@ -6493,9 +6910,9 @@ dependencies = [
[[package]]
name = "sc-peerset"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p",
"log",
"serde_json",
@@ -6506,7 +6923,7 @@ dependencies = [
[[package]]
name = "sc-proposer-metrics"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -6515,14 +6932,14 @@ dependencies = [
[[package]]
name = "sc-rpc"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"hash-db",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sc-block-builder",
"sc-client-api",
@@ -6549,16 +6966,16 @@ dependencies = [
[[package]]
name = "sc-rpc-api"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client",
"jsonrpc-derive",
"jsonrpc-pubsub",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"serde",
"serde_json",
@@ -6573,9 +6990,9 @@ dependencies = [
[[package]]
name = "sc-rpc-server"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"jsonrpc-core 15.1.0",
"jsonrpc-http-server",
"jsonrpc-ipc-server",
@@ -6591,19 +7008,20 @@ dependencies = [
[[package]]
name = "sc-service"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
+ "async-trait",
"directories",
"exit-future",
- "futures 0.1.30",
- "futures 0.3.12",
+ "futures 0.1.31",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"hash-db",
"jsonrpc-core 15.1.0",
"jsonrpc-pubsub",
"lazy_static",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"parking_lot 0.11.1",
"pin-project 1.0.5",
@@ -6654,10 +7072,10 @@ dependencies = [
[[package]]
name = "sc-state-db"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"parity-util-mem-derive",
"parking_lot 0.11.1",
@@ -6669,10 +7087,10 @@ dependencies = [
[[package]]
name = "sc-telemetry"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"chrono",
- "futures 0.3.12",
+ "futures 0.3.13",
"libp2p",
"log",
"parking_lot 0.11.1",
@@ -6680,10 +7098,8 @@ dependencies = [
"rand 0.7.3",
"serde",
"serde_json",
- "sp-utils",
"take_mut",
- "tracing",
- "tracing-subscriber",
+ "thiserror",
"void",
"wasm-timer",
]
@@ -6691,7 +7107,7 @@ dependencies = [
[[package]]
name = "sc-tracing"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"ansi_term 0.12.1",
"atty",
@@ -6702,7 +7118,6 @@ dependencies = [
"parking_lot 0.11.1",
"regex",
"rustc-hash",
- "sc-telemetry",
"sc-tracing-proc-macro",
"serde",
"serde_json",
@@ -6719,9 +7134,9 @@ dependencies = [
[[package]]
name = "sc-tracing-proc-macro"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
@@ -6730,10 +7145,10 @@ dependencies = [
[[package]]
name = "sc-transaction-graph"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"linked-hash-map",
"log",
"parity-util-mem",
@@ -6752,13 +7167,13 @@ dependencies = [
[[package]]
name = "sc-transaction-pool"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-diagnose",
"intervalier",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"parking_lot 0.11.1",
"sc-client-api",
@@ -6793,8 +7208,8 @@ checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862"
dependencies = [
"arrayref",
"arrayvec 0.5.2",
- "curve25519-dalek 2.1.0",
- "getrandom 0.1.15",
+ "curve25519-dalek 2.1.2",
+ "getrandom 0.1.16",
"merlin",
"rand 0.7.3",
"rand_core 0.5.1",
@@ -6827,9 +7242,9 @@ dependencies = [
[[package]]
name = "scroll_derive"
-version = "0.10.4"
+version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d"
+checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0"
dependencies = [
"proc-macro2",
"quote",
@@ -6863,7 +7278,7 @@ checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b"
dependencies = [
"bitflags",
"core-foundation",
- "core-foundation-sys",
+ "core-foundation-sys 0.7.0",
"libc",
"security-framework-sys",
]
@@ -6874,7 +7289,7 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7"
dependencies = [
- "core-foundation-sys",
+ "core-foundation-sys 0.7.0",
"libc",
]
@@ -6895,9 +7310,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
-version = "1.0.123"
+version = "1.0.124"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
+checksum = "bd761ff957cb2a45fbb9ab3da6512de9de55872866160b23c25f1a841e99d29f"
dependencies = [
"serde_derive",
]
@@ -6914,9 +7329,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.123"
+version = "1.0.124"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
+checksum = "1800f7693e94e186f5e25a28291ae1570da908aff7d97a095dec1e56ff99069b"
dependencies = [
"proc-macro2",
"quote",
@@ -6925,10 +7340,11 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.62"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
+checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
dependencies = [
+ "indexmap",
"itoa",
"ryu",
"serde",
@@ -6948,9 +7364,9 @@ dependencies = [
[[package]]
name = "sha-1"
-version = "0.9.2"
+version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c"
+checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f"
dependencies = [
"block-buffer 0.9.0",
"cfg-if 1.0.0",
@@ -6979,9 +7395,9 @@ dependencies = [
[[package]]
name = "sha2"
-version = "0.9.2"
+version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8"
+checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de"
dependencies = [
"block-buffer 0.9.0",
"cfg-if 1.0.0",
@@ -7004,12 +7420,11 @@ dependencies = [
[[package]]
name = "sharded-slab"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4921be914e16899a80adefb821f8ddb7974e3f1250223575a44ed994882127"
+checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3"
dependencies = [
"lazy_static",
- "loom",
]
[[package]]
@@ -7020,9 +7435,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
[[package]]
name = "signal-hook"
-version = "0.1.17"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729"
+checksum = "8a7f3f92a1da3d6b1d32245d0cbcbbab0cfc45996d8df619c42bccfa6d2bbb5f"
dependencies = [
"libc",
"signal-hook-registry",
@@ -7039,9 +7454,9 @@ dependencies = [
[[package]]
name = "signature"
-version = "1.2.2"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210"
+checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68"
[[package]]
name = "simba"
@@ -7061,6 +7476,17 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+[[package]]
+name = "sluice"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fa0333a60ff2e3474a6775cc611840c2a55610c831dd366503474c02f1a28f5"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+]
+
[[package]]
name = "smallvec"
version = "0.6.14"
@@ -7089,7 +7515,7 @@ dependencies = [
"rand_core 0.5.1",
"ring",
"rustc_version",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"subtle 2.4.0",
"x25519-dalek",
]
@@ -7106,22 +7532,13 @@ dependencies = [
]
[[package]]
-name = "soketto"
-version = "0.3.2"
+name = "socket2"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c9dab3f95c9ebdf3a88268c19af668f637a3c5039c2c56ff2d40b1b2d64a25b"
+checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
dependencies = [
- "base64 0.11.0",
- "bytes 0.5.6",
- "futures 0.3.12",
- "http 0.2.2",
- "httparse",
- "log",
- "rand 0.7.3",
- "sha1",
- "smallvec 1.6.1",
- "static_assertions",
- "thiserror",
+ "libc",
+ "winapi 0.3.9",
]
[[package]]
@@ -7133,17 +7550,17 @@ dependencies = [
"base64 0.12.3",
"bytes 0.5.6",
"flate2",
- "futures 0.3.12",
+ "futures 0.3.13",
"httparse",
"log",
"rand 0.7.3",
- "sha-1 0.9.2",
+ "sha-1 0.9.4",
]
[[package]]
name = "sp-allocator"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
"sp-core",
@@ -7155,10 +7572,11 @@ dependencies = [
[[package]]
name = "sp-api"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"hash-db",
- "parity-scale-codec",
+ "log",
+ "parity-scale-codec 2.0.1",
"sp-api-proc-macro",
"sp-core",
"sp-runtime",
@@ -7171,10 +7589,10 @@ dependencies = [
[[package]]
name = "sp-api-proc-macro"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"blake2-rfc",
- "proc-macro-crate",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
@@ -7183,9 +7601,9 @@ dependencies = [
[[package]]
name = "sp-application-crypto"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-core",
"sp-io",
@@ -7195,22 +7613,23 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"integer-sqrt",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-debug-derive",
"sp-std",
+ "static_assertions",
]
[[package]]
name = "sp-authorship"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-inherents",
"sp-runtime",
"sp-std",
@@ -7219,9 +7638,9 @@ dependencies = [
[[package]]
name = "sp-block-builder"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
"sp-inherents",
"sp-runtime",
@@ -7231,12 +7650,12 @@ dependencies = [
[[package]]
name = "sp-blockchain"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"lru",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sp-api",
"sp-consensus",
@@ -7249,7 +7668,7 @@ dependencies = [
[[package]]
name = "sp-chain-spec"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"serde",
"serde_json",
@@ -7258,13 +7677,14 @@ dependencies = [
[[package]]
name = "sp-consensus"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "async-trait",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"libp2p",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"serde",
"sp-api",
@@ -7284,11 +7704,12 @@ dependencies = [
[[package]]
name = "sp-consensus-aura"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
"sp-application-crypto",
+ "sp-consensus",
"sp-consensus-slots",
"sp-inherents",
"sp-runtime",
@@ -7299,10 +7720,11 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"merlin",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
+ "serde",
"sp-api",
"sp-application-crypto",
"sp-consensus",
@@ -7319,9 +7741,9 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-arithmetic",
"sp-runtime",
]
@@ -7329,9 +7751,9 @@ dependencies = [
[[package]]
name = "sp-consensus-vrf"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"schnorrkel",
"sp-core",
"sp-runtime",
@@ -7341,14 +7763,14 @@ dependencies = [
[[package]]
name = "sp-core"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"base58",
"blake2-rfc",
"byteorder",
"dyn-clonable",
"ed25519-dalek",
- "futures 0.3.12",
+ "futures 0.3.13",
"hash-db",
"hash256-std-hasher",
"hex",
@@ -7358,7 +7780,7 @@ dependencies = [
"log",
"merlin",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"parking_lot 0.11.1",
"primitive-types",
@@ -7367,7 +7789,7 @@ dependencies = [
"schnorrkel",
"secrecy",
"serde",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"sp-debug-derive",
"sp-externalities",
"sp-runtime-interface",
@@ -7385,7 +7807,7 @@ dependencies = [
[[package]]
name = "sp-database"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"kvdb",
"parking_lot 0.11.1",
@@ -7394,7 +7816,7 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"proc-macro2",
"quote",
@@ -7404,10 +7826,10 @@ dependencies = [
[[package]]
name = "sp-externalities"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"environmental",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-std",
"sp-storage",
]
@@ -7415,11 +7837,11 @@ dependencies = [
[[package]]
name = "sp-finality-grandpa"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "finality-grandpa",
+ "finality-grandpa 0.14.0",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-api",
"sp-application-crypto",
@@ -7432,9 +7854,9 @@ dependencies = [
[[package]]
name = "sp-inherents"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sp-core",
"sp-std",
@@ -7444,13 +7866,13 @@ dependencies = [
[[package]]
name = "sp-io"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"hash-db",
"libsecp256k1",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"sp-core",
"sp-externalities",
@@ -7468,7 +7890,7 @@ dependencies = [
[[package]]
name = "sp-keyring"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"lazy_static",
"sp-core",
@@ -7479,13 +7901,13 @@ dependencies = [
[[package]]
name = "sp-keystore"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"async-trait",
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"merlin",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"schnorrkel",
"serde",
@@ -7493,10 +7915,19 @@ dependencies = [
"sp-externalities",
]
+[[package]]
+name = "sp-maybe-compressed-blob"
+version = "3.0.0"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
+dependencies = [
+ "ruzstd",
+ "zstd",
+]
+
[[package]]
name = "sp-offchain"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"sp-api",
"sp-core",
@@ -7506,7 +7937,7 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"backtrace",
]
@@ -7514,7 +7945,7 @@ dependencies = [
[[package]]
name = "sp-rpc"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"serde",
"sp-core",
@@ -7523,13 +7954,13 @@ dependencies = [
[[package]]
name = "sp-runtime"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"either",
"hash256-std-hasher",
"impl-trait-for-tuples",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parity-util-mem",
"paste 1.0.4",
"rand 0.7.3",
@@ -7544,10 +7975,10 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"impl-trait-for-tuples",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"primitive-types",
"sp-externalities",
"sp-runtime-interface-proc-macro",
@@ -7561,10 +7992,10 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"Inflector",
- "proc-macro-crate",
+ "proc-macro-crate 1.0.0",
"proc-macro2",
"quote",
"syn",
@@ -7573,7 +8004,7 @@ dependencies = [
[[package]]
name = "sp-serializer"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"serde",
"serde_json",
@@ -7582,9 +8013,9 @@ dependencies = [
[[package]]
name = "sp-session"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
"sp-core",
"sp-runtime",
@@ -7595,9 +8026,9 @@ dependencies = [
[[package]]
name = "sp-staking"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-runtime",
"sp-std",
]
@@ -7605,12 +8036,12 @@ dependencies = [
[[package]]
name = "sp-state-machine"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"hash-db",
"log",
"num-traits",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"parking_lot 0.11.1",
"rand 0.7.3",
"smallvec 1.6.1",
@@ -7627,15 +8058,15 @@ dependencies = [
[[package]]
name = "sp-std"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
[[package]]
name = "sp-storage"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"impl-serde",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"ref-cast",
"serde",
"sp-debug-derive",
@@ -7645,7 +8076,7 @@ dependencies = [
[[package]]
name = "sp-tasks"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
"sp-core",
@@ -7658,10 +8089,9 @@ dependencies = [
[[package]]
name = "sp-timestamp"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "impl-trait-for-tuples",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-api",
"sp-inherents",
"sp-runtime",
@@ -7672,10 +8102,10 @@ dependencies = [
[[package]]
name = "sp-tracing"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-std",
"tracing",
"tracing-core",
@@ -7685,12 +8115,12 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"derive_more",
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-api",
"sp-blockchain",
@@ -7701,11 +8131,11 @@ dependencies = [
[[package]]
name = "sp-trie"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"hash-db",
"memory-db",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-core",
"sp-std",
"trie-db",
@@ -7715,9 +8145,9 @@ dependencies = [
[[package]]
name = "sp-utils"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-core",
"futures-timer 3.0.2",
"lazy_static",
@@ -7727,10 +8157,10 @@ dependencies = [
[[package]]
name = "sp-version"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"impl-serde",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"serde",
"sp-runtime",
"sp-std",
@@ -7739,10 +8169,10 @@ dependencies = [
[[package]]
name = "sp-wasm-interface"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"impl-trait-for-tuples",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sp-std",
"wasmi",
]
@@ -7753,6 +8183,15 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+[[package]]
+name = "spinning_top"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bd0ab6b8c375d2d963503b90d3770010d95bc3b5f98036f948dee24bf4e8879"
+dependencies = [
+ "lock_api 0.4.2",
+]
+
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
@@ -7761,9 +8200,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "standback"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8"
+checksum = "a2beb4d1860a61f571530b3f855a1b538d0200f7871c63331ecd6f17b1f014f8"
dependencies = [
"version_check",
]
@@ -7832,6 +8271,30 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+[[package]]
+name = "storage-proof-fuzzer"
+version = "0.1.0"
+dependencies = [
+ "bp-header-chain",
+ "bp-runtime",
+ "bp-test-utils",
+ "env_logger 0.8.3",
+ "finality-grandpa 0.12.3",
+ "frame-support",
+ "frame-system",
+ "hash-db",
+ "honggfuzz",
+ "log",
+ "parity-scale-codec 1.3.7",
+ "sp-core",
+ "sp-finality-grandpa",
+ "sp-io",
+ "sp-runtime",
+ "sp-state-machine",
+ "sp-std",
+ "sp-trie",
+]
+
[[package]]
name = "stream-cipher"
version = "0.7.1"
@@ -7917,9 +8380,9 @@ dependencies = [
[[package]]
name = "substrate-build-script-utils"
-version = "2.0.0"
+version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f14feab86fe31e7d0a485d53d7c1c634c426f7ae5b8ce4f705b2e49a35713fcb"
+checksum = "bd540ba72520174c2c73ce96bf507eeba3cc8a481f58be92525b69110e1fa645"
dependencies = [
"platforms",
]
@@ -7927,15 +8390,15 @@ dependencies = [
[[package]]
name = "substrate-frame-rpc-system"
version = "3.0.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"frame-system-rpc-runtime-api",
- "futures 0.3.12",
+ "futures 0.3.13",
"jsonrpc-core 15.1.0",
"jsonrpc-core-client",
"jsonrpc-derive",
"log",
- "parity-scale-codec",
+ "parity-scale-codec 2.0.1",
"sc-client-api",
"sc-rpc-api",
"serde",
@@ -7950,7 +8413,7 @@ dependencies = [
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.9.0"
-source = "git+https://github.com/paritytech/substrate.git?branch=master#528c14b3c96bb93d3029451f0706a079d7d7a9bb"
+source = "git+https://github.com/paritytech/substrate?branch=master#46a64ac817ec909c66203a7e0715ee111762d3f7"
dependencies = [
"async-std",
"derive_more",
@@ -7958,47 +8421,57 @@ dependencies = [
"hyper 0.13.10",
"log",
"prometheus",
- "tokio 0.2.24",
+ "tokio 0.2.25",
]
[[package]]
name = "substrate-relay"
version = "0.1.0"
dependencies = [
+ "anyhow",
"async-std",
"async-trait",
"bp-header-chain",
"bp-kusama",
- "bp-message-lane",
+ "bp-messages",
"bp-millau",
"bp-polkadot",
"bp-rialto",
+ "bp-rococo",
"bp-runtime",
+ "bp-westend",
"bridge-runtime-common",
+ "finality-grandpa 0.14.0",
+ "finality-relay",
"frame-support",
- "futures 0.3.12",
+ "futures 0.3.13",
"headers-relay",
"hex",
+ "hex-literal 0.3.1",
"log",
"messages-relay",
"millau-runtime",
+ "num-format",
"num-traits",
- "pallet-bridge-call-dispatch",
- "pallet-message-lane",
- "pallet-substrate-bridge",
- "parity-scale-codec",
+ "pallet-bridge-dispatch",
+ "pallet-bridge-messages",
+ "parity-scale-codec 2.0.1",
"paste 1.0.4",
"relay-kusama-client",
"relay-millau-client",
"relay-polkadot-client",
"relay-rialto-client",
+ "relay-rococo-client",
"relay-substrate-client",
"relay-utils",
+ "relay-westend-client",
"rialto-runtime",
"sp-core",
"sp-finality-grandpa",
+ "sp-keyring",
"sp-runtime",
"sp-trie",
+ "sp-version",
"structopt",
]
@@ -8022,9 +8495,9 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
[[package]]
name = "syn"
-version = "1.0.60"
+version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
+checksum = "3ce15dd3ed8aa2f8eeac4716d6ef5ab58b6b9256db41d7e1a0224c2788e8fd87"
dependencies = [
"proc-macro2",
"quote",
@@ -8045,11 +8518,13 @@ dependencies = [
[[package]]
name = "sysinfo"
-version = "0.15.3"
+version = "0.15.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67330cbee3b2a819e3365a773f05e884a136603687f812bf24db5b6c3d76b696"
+checksum = "de94457a09609f33fec5e7fceaf907488967c6c7c75d64da6a7ce6ffdb8b5abd"
dependencies = [
- "cfg-if 0.1.10",
+ "cc",
+ "cfg-if 1.0.0",
+ "core-foundation-sys 0.8.2",
"doc-comment",
"libc",
"ntapi",
@@ -8066,26 +8541,26 @@ checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60"
[[package]]
name = "tap"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "target-lexicon"
-version = "0.11.1"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ee5a98e506fb7231a304c3a1bd7c132a55016cf65001e0282480665870dfcb9"
+checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95"
[[package]]
name = "tempfile"
-version = "3.1.0"
+version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
dependencies = [
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"libc",
- "rand 0.7.3",
- "redox_syscall 0.1.57",
+ "rand 0.8.3",
+ "redox_syscall 0.2.5",
"remove_dir_all",
"winapi 0.3.9",
]
@@ -8110,18 +8585,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.23"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.23"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
dependencies = [
"proc-macro2",
"quote",
@@ -8130,11 +8605,11 @@ dependencies = [
[[package]]
name = "thread_local"
-version = "1.0.1"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
dependencies = [
- "lazy_static",
+ "once_cell",
]
[[package]]
@@ -8207,7 +8682,7 @@ dependencies = [
"pbkdf2 0.4.0",
"rand 0.7.3",
"rustc-hash",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"thiserror",
"unicode-normalization",
"zeroize",
@@ -8224,9 +8699,9 @@ dependencies = [
[[package]]
name = "tinyvec"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
+checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
dependencies = [
"tinyvec_macros",
]
@@ -8244,7 +8719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"mio",
"num_cpus",
"tokio-codec",
@@ -8263,9 +8738,9 @@ dependencies = [
[[package]]
name = "tokio"
-version = "0.2.24"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48"
+checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
dependencies = [
"bytes 0.5.6",
"fnv",
@@ -8291,7 +8766,7 @@ checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
dependencies = [
"bytes 0.4.12",
"either",
- "futures 0.1.30",
+ "futures 0.1.31",
]
[[package]]
@@ -8301,7 +8776,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"tokio-io",
]
@@ -8311,7 +8786,7 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"tokio-executor",
]
@@ -8322,7 +8797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
dependencies = [
"crossbeam-utils 0.7.2",
- "futures 0.1.30",
+ "futures 0.1.31",
]
[[package]]
@@ -8331,7 +8806,7 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"tokio-io",
"tokio-threadpool",
]
@@ -8343,7 +8818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"log",
]
@@ -8354,7 +8829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"mio",
"mio-named-pipes",
"tokio 0.1.22",
@@ -8367,7 +8842,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
dependencies = [
"crossbeam-utils 0.7.2",
- "futures 0.1.30",
+ "futures 0.1.31",
"lazy_static",
"log",
"mio",
@@ -8387,8 +8862,8 @@ checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"
dependencies = [
"futures-core",
"rustls 0.18.1",
- "tokio 0.2.24",
- "webpki",
+ "tokio 0.2.25",
+ "webpki 0.21.4",
]
[[package]]
@@ -8397,7 +8872,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
]
[[package]]
@@ -8407,7 +8882,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
dependencies = [
"fnv",
- "futures 0.1.30",
+ "futures 0.1.31",
]
[[package]]
@@ -8417,7 +8892,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"iovec",
"mio",
"tokio-io",
@@ -8433,7 +8908,7 @@ dependencies = [
"crossbeam-deque 0.7.3",
"crossbeam-queue",
"crossbeam-utils 0.7.2",
- "futures 0.1.30",
+ "futures 0.1.31",
"lazy_static",
"log",
"num_cpus",
@@ -8448,7 +8923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
dependencies = [
"crossbeam-utils 0.7.2",
- "futures 0.1.30",
+ "futures 0.1.31",
"slab",
"tokio-executor",
]
@@ -8460,7 +8935,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"log",
"mio",
"tokio-codec",
@@ -8475,7 +8950,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
dependencies = [
"bytes 0.4.12",
- "futures 0.1.30",
+ "futures 0.1.31",
"iovec",
"libc",
"log",
@@ -8497,7 +8972,7 @@ dependencies = [
"futures-sink",
"log",
"pin-project-lite 0.1.11",
- "tokio 0.2.24",
+ "tokio 0.2.25",
]
[[package]]
@@ -8511,15 +8986,15 @@ dependencies = [
[[package]]
name = "tower-service"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
+checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
[[package]]
name = "tracing"
-version = "0.1.22"
+version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
+checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
dependencies = [
"cfg-if 1.0.0",
"log",
@@ -8530,9 +9005,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.11"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
+checksum = "a8a9bd1db7706f2373a190b0d067146caa39350c486f3d455b0e33b431f94c07"
dependencies = [
"proc-macro2",
"quote",
@@ -8550,19 +9025,19 @@ dependencies = [
[[package]]
name = "tracing-futures"
-version = "0.2.4"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
- "pin-project 0.4.27",
+ "pin-project 1.0.5",
"tracing",
]
[[package]]
name = "tracing-log"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9"
+checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
dependencies = [
"lazy_static",
"log",
@@ -8581,9 +9056,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.2.15"
+version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401"
+checksum = "8ab8966ac3ca27126141f7999361cc97dd6fb4b71da04c02044fa9045d98bb96"
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -8603,12 +9078,12 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.22.2"
+version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc176c377eb24d652c9c69c832c832019011b6106182bf84276c66b66d5c9a6"
+checksum = "ec051edf7f0fc9499a2cb0947652cab2148b9d7f61cee7605e312e9f970dacaf"
dependencies = [
"hash-db",
- "hashbrown 0.9.1",
+ "hashbrown",
"log",
"rustc-hex",
"smallvec 1.6.1",
@@ -8625,12 +9100,55 @@ dependencies = [
[[package]]
name = "triehash"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f490aa7aa4e4d07edeba442c007e42e3e7f43aafb5112c5b047fff0b1aa5449c"
+checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c"
dependencies = [
"hash-db",
- "rlp 0.4.6",
+ "rlp",
+]
+
+[[package]]
+name = "trust-dns-proto"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d57e219ba600dd96c2f6d82eb79645068e14edbc5c7e27514af40436b88150c"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.2",
+ "ipnet",
+ "lazy_static",
+ "log",
+ "rand 0.8.3",
+ "smallvec 1.6.1",
+ "thiserror",
+ "tinyvec",
+ "url 2.2.1",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0437eea3a6da51acc1e946545ff53d5b8fb2611ff1c3bed58522dde100536ae"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "log",
+ "lru-cache",
+ "parking_lot 0.11.1",
+ "resolv-conf",
+ "smallvec 1.6.1",
+ "thiserror",
+ "trust-dns-proto",
]
[[package]]
@@ -8694,9 +9212,9 @@ dependencies = [
[[package]]
name = "unicode-normalization"
-version = "0.1.16"
+version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
+checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
dependencies = [
"tinyvec",
]
@@ -8742,7 +9260,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2"
dependencies = [
"asynchronous-codec 0.5.0",
- "bytes 1.0.0",
+ "bytes 1.0.1",
"futures-io",
"futures-util",
]
@@ -8754,7 +9272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f"
dependencies = [
"asynchronous-codec 0.6.0",
- "bytes 1.0.0",
+ "bytes 1.0.1",
"futures-io",
"futures-util",
]
@@ -8778,12 +9296,12 @@ dependencies = [
[[package]]
name = "url"
-version = "2.2.0"
+version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
+checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
dependencies = [
"form_urlencoded",
- "idna 0.2.0",
+ "idna 0.2.2",
"matches",
"percent-encoding 2.1.0",
]
@@ -8815,16 +9333,6 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-[[package]]
-name = "vergen"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb"
-dependencies = [
- "bitflags",
- "chrono",
-]
-
[[package]]
name = "version_check"
version = "0.9.2"
@@ -8849,7 +9357,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
dependencies = [
- "futures 0.1.30",
+ "futures 0.1.31",
"log",
"try-lock",
]
@@ -8878,9 +9386,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "wasm-bindgen"
-version = "0.2.69"
+version = "0.2.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
+checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
dependencies = [
"cfg-if 1.0.0",
"wasm-bindgen-macro",
@@ -8888,9 +9396,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.69"
+version = "0.2.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
+checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
dependencies = [
"bumpalo",
"lazy_static",
@@ -8903,9 +9411,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.19"
+version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
+checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -8915,9 +9423,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.69"
+version = "0.2.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
+checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -8925,9 +9433,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.69"
+version = "0.2.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
+checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
dependencies = [
"proc-macro2",
"quote",
@@ -8938,9 +9446,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.69"
+version = "0.2.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
+checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
[[package]]
name = "wasm-timer"
@@ -8948,7 +9456,7 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"js-sys",
"parking_lot 0.11.1",
"pin-utils",
@@ -8982,15 +9490,15 @@ dependencies = [
[[package]]
name = "wasmparser"
-version = "0.71.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1"
+checksum = "755a9a4afe3f6cccbbe6d7e965eef44cf260b001f93e547eba84255c1d0187d8"
[[package]]
name = "wasmtime"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7426055cb92bd9a1e9469b48154d8d6119cd8c498c8b70284e420342c05dc45d"
+checksum = "718cb52a9fdb7ab12471e9b9d051c9adfa6b5c504e0a1fea045e5eabc81eedd9"
dependencies = [
"anyhow",
"backtrace",
@@ -9000,6 +9508,7 @@ dependencies = [
"indexmap",
"libc",
"log",
+ "paste 1.0.4",
"region",
"rustc-demangle",
"serde",
@@ -9008,6 +9517,7 @@ dependencies = [
"wasmparser",
"wasmtime-cache",
"wasmtime-environ",
+ "wasmtime-fiber",
"wasmtime-jit",
"wasmtime-profiling",
"wasmtime-runtime",
@@ -9017,9 +9527,9 @@ dependencies = [
[[package]]
name = "wasmtime-cache"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c01d9287e36921e46f5887a47007824ae5dbb9b7517a2d565660ab4471478709"
+checksum = "1f984df56c4adeba91540f9052db9f7a8b3b00cfaac1a023bee50a972f588b0c"
dependencies = [
"anyhow",
"base64 0.13.0",
@@ -9030,7 +9540,7 @@ dependencies = [
"libc",
"log",
"serde",
- "sha2 0.9.2",
+ "sha2 0.9.3",
"toml",
"winapi 0.3.9",
"zstd",
@@ -9038,22 +9548,23 @@ dependencies = [
[[package]]
name = "wasmtime-cranelift"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4134ed3a4316cd0de0e546c6004850afe472b0fa3fcdc2f2c15f8d449562d962"
+checksum = "2a05abbf94e03c2c8ee02254b1949320c4d45093de5d9d6ed4d9351d536075c9"
dependencies = [
"cranelift-codegen",
"cranelift-entity",
"cranelift-frontend",
"cranelift-wasm",
+ "wasmparser",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-debug"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e91fa931df6dd8af2b02606307674d3bad23f55473d5f4c809dddf7e4c4dc411"
+checksum = "382eecd6281c6c1d1f3c904c3c143e671fc1a9573820cbfa777fba45ce2eda9c"
dependencies = [
"anyhow",
"gimli",
@@ -9067,9 +9578,9 @@ dependencies = [
[[package]]
name = "wasmtime-environ"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1098871dc3120aaf8190d79153e470658bb79f63ee9ca31716711e123c28220"
+checksum = "81011b2b833663d7e0ce34639459a0e301e000fc7331e0298b3a27c78d0cec60"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
@@ -9086,10 +9597,21 @@ dependencies = [
]
[[package]]
-name = "wasmtime-jit"
-version = "0.22.0"
+name = "wasmtime-fiber"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "738bfcd1561ede8bb174215776fd7d9a95d5f0a47ca3deabe0282c55f9a89f68"
+checksum = "d92da32e31af2e3d828f485f5f24651ed4d3b7f03a46ea6555eae6940d1402cd"
+dependencies = [
+ "cc",
+ "libc",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "wasmtime-jit"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b5f649623859a12d361fe4cc4793de44f7c3ff34c322c5714289787e89650bb"
dependencies = [
"addr2line",
"anyhow",
@@ -9120,9 +9642,9 @@ dependencies = [
[[package]]
name = "wasmtime-obj"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e96d77f1801131c5e86d93e42a3cf8a35402107332c202c245c83f34888a906"
+checksum = "ef2e99cd9858f57fd062e9351e07881cedfc8597928385e02a48d9333b9e15a1"
dependencies = [
"anyhow",
"more-asserts",
@@ -9134,9 +9656,9 @@ dependencies = [
[[package]]
name = "wasmtime-profiling"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60bb672c9d894776d7b9250dd9b4fe890f8760201ee4f53e5f2da772b6c4debb"
+checksum = "e46c0a590e49278ba7f79ef217af9db4ecc671b50042c185093e22d73524abb2"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
@@ -9153,9 +9675,9 @@ dependencies = [
[[package]]
name = "wasmtime-runtime"
-version = "0.22.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a978086740949eeedfefcee667b57a9e98d9a7fc0de382fcfa0da30369e3530d"
+checksum = "1438a09185fc7ca067caf1a80d7e5b398eefd4fb7630d94841448ade60feb3d0"
dependencies = [
"backtrace",
"cc",
@@ -9175,27 +9697,27 @@ dependencies = [
[[package]]
name = "wast"
-version = "30.0.0"
+version = "35.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2"
+checksum = "1a5800e9f86a1eae935e38bea11e60fd253f6d514d153fb39b3e5535a7b37b56"
dependencies = [
"leb128",
]
[[package]]
name = "wat"
-version = "1.0.31"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44"
+checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02"
dependencies = [
"wast",
]
[[package]]
name = "web-sys"
-version = "0.3.46"
+version = "0.3.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"
+checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -9210,14 +9732,14 @@ dependencies = [
"derive_more",
"ethabi",
"ethereum-types",
- "futures 0.3.12",
+ "futures 0.3.13",
"futures-timer 3.0.2",
"hex",
"jsonrpc-core 17.0.0",
"log",
"parking_lot 0.11.1",
"pin-project 1.0.5",
- "rlp 0.5.0",
+ "rlp",
"serde",
"serde_json",
"tiny-keccak",
@@ -9234,12 +9756,13 @@ dependencies = [
]
[[package]]
-name = "webpki-roots"
-version = "0.17.0"
+name = "webpki"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a262ae37dd9d60f60dd473d1158f9fbebf110ba7b6a5051c8160460f6043718b"
+checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
dependencies = [
- "webpki",
+ "ring",
+ "untrusted",
]
[[package]]
@@ -9248,7 +9771,7 @@ version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376"
dependencies = [
- "webpki",
+ "webpki 0.21.4",
]
[[package]]
@@ -9279,6 +9802,12 @@ dependencies = [
"thiserror",
]
+[[package]]
+name = "widestring"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+
[[package]]
name = "winapi"
version = "0.2.8"
@@ -9322,6 +9851,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "winreg"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+dependencies = [
+ "winapi 0.3.9",
+]
+
[[package]]
name = "ws2_32-sys"
version = "0.2.1"
@@ -9344,7 +9882,7 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088"
dependencies = [
- "curve25519-dalek 3.0.0",
+ "curve25519-dalek 3.0.2",
"rand_core 0.5.1",
"zeroize",
]
@@ -9361,7 +9899,7 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cc7bd8c983209ed5d527f44b01c41b7dc146fd960c61cf9e1d25399841dc271"
dependencies = [
- "futures 0.3.12",
+ "futures 0.3.13",
"log",
"nohash-hasher",
"parking_lot 0.11.1",
@@ -9392,18 +9930,18 @@ dependencies = [
[[package]]
name = "zstd"
-version = "0.5.4+zstd.1.4.7"
+version = "0.6.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910"
+checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "2.0.6+zstd.1.4.7"
+version = "3.0.1+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e"
+checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c"
dependencies = [
"libc",
"zstd-sys",
@@ -9411,12 +9949,10 @@ dependencies = [
[[package]]
name = "zstd-sys"
-version = "1.4.18+zstd.1.4.7"
+version = "1.4.20+zstd.1.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81"
+checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e"
dependencies = [
"cc",
- "glob",
- "itertools",
"libc",
]
diff --git a/polkadot/bridges/Dockerfile b/polkadot/bridges/Dockerfile
index a1ff908974..b3c4a7b4ba 100644
--- a/polkadot/bridges/Dockerfile
+++ b/polkadot/bridges/Dockerfile
@@ -8,33 +8,10 @@
#
# See the `deployments/README.md` for all the available `PROJECT` values.
-# This first stage prepares our dependencies to be built by `cargo-chef`.
-FROM rust as planner
-WORKDIR /parity-bridges-common
-RUN cargo install cargo-chef --version 0.1.13
-COPY . .
-RUN cargo chef prepare --recipe-path recipe.json
-
-# This second stage is where the dependencies actually get built.
-# The reason we split it from the first stage is so that the `COPY . .`
-# step doesn't blow our cache.
-FROM paritytech/bridge-dependencies AS cacher
-WORKDIR /parity-bridges-common
-RUN cargo install cargo-chef --version 0.1.13
-
-COPY --from=planner /parity-bridges-common/recipe.json recipe.json
-RUN cargo chef cook --release --recipe-path recipe.json
-
-# In this third stage we go ahead and build the actual binary we want.
-# This should be fairly quick since the dependencies are being built and
-# cached in the previous stage.
FROM paritytech/bridge-dependencies as builder
WORKDIR /parity-bridges-common
-RUN cargo install cargo-chef --version 0.1.13
COPY . .
-COPY --from=cacher /parity-bridges-common/target target
-COPY --from=cacher $CARGO_HOME $CARGO_HOME
ARG PROJECT=ethereum-poa-relay
RUN cargo build --release --verbose -p ${PROJECT}
@@ -42,17 +19,23 @@ RUN strip ./target/release/${PROJECT}
# In this final stage we copy over the final binary and do some checks
# to make sure that everything looks good.
-FROM ubuntu:xenial as runtime
+FROM ubuntu:20.04 as runtime
# show backtraces
ENV RUST_BACKTRACE 1
+ENV DEBIAN_FRONTEND=noninteractive
RUN set -eux; \
apt-get update && \
- apt-get install -y libssl-dev curl
-
-RUN groupadd -g 1000 user \
- && useradd -u 1000 -g user -s /bin/sh -m user
+ apt-get install -y curl ca-certificates && \
+ apt-get install -y --no-install-recommends libssl-dev && \
+ update-ca-certificates && \
+ groupadd -g 1000 user && \
+ useradd -u 1000 -g user -s /bin/sh -m user && \
+ # apt clean up
+ apt-get autoremove -y && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
# switch to non-root user
USER user
@@ -69,3 +52,20 @@ RUN ./${PROJECT} --version
ENV PROJECT=$PROJECT
ENTRYPOINT ["/home/user/bridge-entrypoint.sh"]
+
+# metadata
+ARG VCS_REF=master
+ARG BUILD_DATE=""
+ARG VERSION=""
+
+LABEL org.opencontainers.image.title="${PROJECT}" \
+ org.opencontainers.image.description="${PROJECT} - component of Parity Bridges Common" \
+ org.opencontainers.image.source="https://github.com/paritytech/parity-bridges-common/blob/${VCS_REF}/Dockerfile" \
+ org.opencontainers.image.url="https://github.com/paritytech/parity-bridges-common/blob/${VCS_REF}/Dockerfile" \
+ org.opencontainers.image.documentation="https://github.com/paritytech/parity-bridges-common/blob/${VCS_REF}/README.md" \
+ org.opencontainers.image.created="${BUILD_DATE}" \
+ org.opencontainers.image.version="${VERSION}" \
+ org.opencontainers.image.revision="${VCS_REF}" \
+ org.opencontainers.image.authors="devops-team@parity.io" \
+ org.opencontainers.image.vendor="Parity Technologies" \
+ org.opencontainers.image.licenses="GPL-3.0 License"
diff --git a/polkadot/bridges/README.md b/polkadot/bridges/README.md
index eaa63ad14c..8f6446c887 100644
--- a/polkadot/bridges/README.md
+++ b/polkadot/bridges/README.md
@@ -11,6 +11,7 @@ Substrate chains or Ethereum Proof-of-Authority chains.
🚧 The bridges are currently under construction - a hardhat is recommended beyond this point 🚧
## Contents
+
- [Installation](#installation)
- [High-Level Architecture](#high-level-architecture)
- [Project Layout](#project-layout)
@@ -19,6 +20,7 @@ Substrate chains or Ethereum Proof-of-Authority chains.
- [Community](#community)
## Installation
+
To get up and running you need both stable and nightly Rust. Rust nightly is used to build the Web
Assembly (WASM) runtime for the node. You can configure the WASM support as so:
@@ -70,6 +72,7 @@ Take a look at [Bridge High Level Documentation](./docs/high-level-overview.md)
description of the bridge interaction.
## Project Layout
+
Here's an overview of how the project is laid out. The main bits are the `node`, which is the actual
"blockchain", the `modules` which are used to build the blockchain's logic (a.k.a the runtime) and
the `relays` which are used to pass messages between chains.
@@ -83,15 +86,16 @@ the `relays` which are used to pass messages between chains.
│ └── ...
├── modules // Substrate Runtime Modules (a.k.a Pallets)
│ ├── ethereum // Ethereum PoA Header Sync Module
-│ ├── substrate // Substrate Based Chain Header Sync Module
-│ ├── message-lane // Cross Chain Message Passing
+│ ├── grandpa // On-Chain GRANDPA Light Client
+│ ├── messages // Cross Chain Message Passing
+│ ├── dispatch // Target Chain Message Execution
│ └── ...
├── primitives // Code shared between modules, runtimes, and relays
│ └── ...
├── relays // Application for sending headers and messages between chains
│ └── ...
└── scripts // Useful development and maintenence scripts
- ```
+```
## Running the Bridge
@@ -99,9 +103,9 @@ To run the Bridge you need to be able to connect the bridge relay node to the RP
on each side of the bridge (source and target chain).
There are 3 ways to run the bridge, described below:
- - building & running from source,
- - building or using Docker images for each individual component,
- - running a Docker Compose setup (recommended).
+- building & running from source,
+- building or using Docker images for each individual component,
+- running a Docker Compose setup (recommended).
### Using the Source
@@ -154,20 +158,20 @@ Then we need to initialize and run the relayer:
```bash
docker run --network=host -it \
- paritytech/substrate-relay initialize-rialto-headers-bridge-in-millau \
- --millau-host localhost \
- --millau-port 9945 \
- --rialto-host localhost \
- --rialto-port 9944 \
- --millau-signer //Alice
+ paritytech/substrate-relay init-bridge RialtoToMillau \
+ --target-host localhost \
+ --target-port 9945 \
+ --source-host localhost \
+ --source-port 9944 \
+ --target-signer //Alice
docker run --network=host -it \
- paritytech/substrate-relay rialto-headers-to-millau \
- --millau-host localhost \
- --millau-port 9945 \
- --rialto-host localhost \
- --rialto-port 9944 \
- --millau-signer //Bob \
+ paritytech/substrate-relay relay-headers RialtoToMillau \
+ --target-host localhost \
+ --target-port 9945 \
+ --source-host localhost \
+ --source-port 9944 \
+ --target-signer //Bob \
```
You should now see the relayer submitting headers from the Millau chain to the Rialto chain.
@@ -196,6 +200,7 @@ monitoring dashboards, etc. see the [Deployments README](./deployments/README.md
A straightforward way to interact with and test the bridge is sending messages. This is explained
in the [send message](./docs/send-message.md) document.
+
## Community
Main hangout for the community is [Element](https://element.io/) (formerly Riot). Element is a chat
@@ -208,4 +213,3 @@ Element channel.
The [Substrate Technical](https://app.element.io/#/room/#substrate-technical:matrix.org) Element
channel is most suited for discussions regarding Substrate itself.
-
diff --git a/polkadot/bridges/bin/millau/node/Cargo.toml b/polkadot/bridges/bin/millau/node/Cargo.toml
index 6f7aa94e6f..e31e2c871a 100644
--- a/polkadot/bridges/bin/millau/node/Cargo.toml
+++ b/polkadot/bridges/bin/millau/node/Cargo.toml
@@ -15,17 +15,18 @@ structopt = "0.3.21"
# Bridge dependencies
-bp-message-lane = { path = "../../../primitives/message-lane" }
-bp-millau= { path = "../../../primitives/millau" }
+bp-messages = { path = "../../../primitives/messages" }
+bp-millau= { path = "../../../primitives/chain-millau" }
bp-runtime = { path = "../../../primitives/runtime" }
millau-runtime = { path = "../runtime" }
-pallet-message-lane = { path = "../../../modules/message-lane" }
-pallet-message-lane-rpc = { path = "../../../modules/message-lane/rpc" }
+pallet-bridge-messages = { path = "../../../modules/messages" }
# Substrate Dependencies
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" }
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
+node-inspect = { git = "https://github.com/paritytech/substrate", branch = "master" }
+pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] }
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -35,21 +36,21 @@ sc-executor = { git = "https://github.com/paritytech/substrate", branch = "maste
sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" }
substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" }
[build-dependencies]
-build-script-utils = { package = "substrate-build-script-utils", version = "2.0" }
+substrate-build-script-utils = "3.0.0"
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
-vergen = "3.1.0"
[features]
default = []
diff --git a/polkadot/bridges/bin/millau/node/build.rs b/polkadot/bridges/bin/millau/node/build.rs
index e9a10ff8ad..d9b50049e2 100644
--- a/polkadot/bridges/bin/millau/node/build.rs
+++ b/polkadot/bridges/bin/millau/node/build.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -14,12 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-use vergen::{generate_cargo_keys, ConstantsFlags};
-
-const ERROR_MSG: &str = "Failed to generate metadata files";
+use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};
fn main() {
- generate_cargo_keys(ConstantsFlags::SHA_SHORT).expect(ERROR_MSG);
+ generate_cargo_keys();
- build_script_utils::rerun_if_git_head_changed();
+ rerun_if_git_head_changed();
}
diff --git a/polkadot/bridges/bin/millau/node/src/chain_spec.rs b/polkadot/bridges/bin/millau/node/src/chain_spec.rs
index 8e9aded9f1..f9e9502da7 100644
--- a/polkadot/bridges/bin/millau/node/src/chain_spec.rs
+++ b/polkadot/bridges/bin/millau/node/src/chain_spec.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
use bp_millau::derive_account_from_rialto_id;
use millau_runtime::{
- AccountId, AuraConfig, BalancesConfig, BridgeRialtoConfig, GenesisConfig, GrandpaConfig, SessionConfig,
+ AccountId, AuraConfig, BalancesConfig, BridgeWestendGrandpaConfig, GenesisConfig, GrandpaConfig, SessionConfig,
SessionKeys, Signature, SudoConfig, SystemConfig, WASM_BINARY,
};
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
@@ -122,7 +122,10 @@ impl Alternative {
get_account_id_from_seed::("Ferdie//stash"),
get_account_id_from_seed::("George//stash"),
get_account_id_from_seed::("Harry//stash"),
- pallet_message_lane::Module::::relayer_fund_account_id(),
+ pallet_bridge_messages::Pallet::<
+ millau_runtime::Runtime,
+ pallet_bridge_messages::DefaultInstance,
+ >::relayer_fund_account_id(),
derive_account_from_rialto_id(bp_runtime::SourceAccount::Account(
get_account_id_from_seed::("Dave"),
)),
@@ -151,31 +154,33 @@ fn testnet_genesis(
_enable_println: bool,
) -> GenesisConfig {
GenesisConfig {
- frame_system: Some(SystemConfig {
+ frame_system: SystemConfig {
code: WASM_BINARY.to_vec(),
changes_trie_config: Default::default(),
- }),
- pallet_balances: Some(BalancesConfig {
+ },
+ pallet_balances: BalancesConfig {
balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 50)).collect(),
- }),
- pallet_aura: Some(AuraConfig {
+ },
+ pallet_aura: AuraConfig {
authorities: Vec::new(),
- }),
- pallet_grandpa: Some(GrandpaConfig {
+ },
+ pallet_grandpa: GrandpaConfig {
authorities: Vec::new(),
- }),
- pallet_substrate_bridge: Some(BridgeRialtoConfig {
- // We'll initialize the pallet with a dispatchable instead.
- init_data: None,
- owner: Some(root_key.clone()),
- }),
- pallet_sudo: Some(SudoConfig { key: root_key }),
- pallet_session: Some(SessionConfig {
+ },
+ pallet_sudo: SudoConfig { key: root_key },
+ pallet_session: SessionConfig {
keys: initial_authorities
.iter()
.map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone(), x.2.clone())))
.collect::>(),
- }),
+ },
+ pallet_bridge_grandpa_Instance1: BridgeWestendGrandpaConfig {
+ // for our deployments to avoid multiple same-nonces transactions:
+ // //Alice is already used to initialize Rialto<->Millau bridge
+ // => let's use //George to initialize Westend->Millau bridge
+ owner: Some(get_account_id_from_seed::("George")),
+ ..Default::default()
+ },
}
}
diff --git a/polkadot/bridges/bin/millau/node/src/cli.rs b/polkadot/bridges/bin/millau/node/src/cli.rs
index 1149c4f910..46323ed25c 100644
--- a/polkadot/bridges/bin/millau/node/src/cli.rs
+++ b/polkadot/bridges/bin/millau/node/src/cli.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ pub struct Cli {
pub enum Subcommand {
/// Key management cli utilities
Key(sc_cli::KeySubcommand),
+
/// Verify a signature for a message, provided on STDIN, with a given (public or secret) key.
Verify(sc_cli::VerifyCmd),
@@ -61,7 +62,9 @@ pub enum Subcommand {
/// Revert the chain to a previous state.
Revert(sc_cli::RevertCmd),
- /// The custom benchmark subcommmand benchmarking runtime pallets.
- #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]
+ /// Inspect blocks or extrinsics.
+ Inspect(node_inspect::cli::InspectCmd),
+
+ /// Benchmark runtime pallets.
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
}
diff --git a/polkadot/bridges/bin/millau/node/src/command.rs b/polkadot/bridges/bin/millau/node/src/command.rs
index 8751a4516d..d73f9b1ac9 100644
--- a/polkadot/bridges/bin/millau/node/src/command.rs
+++ b/polkadot/bridges/bin/millau/node/src/command.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -17,7 +17,7 @@
use crate::cli::{Cli, Subcommand};
use crate::service;
use crate::service::new_partial;
-use millau_runtime::Block;
+use millau_runtime::{Block, RuntimeApi};
use sc_cli::{ChainSpec, Role, RuntimeVersion, SubstrateCli};
use sc_service::PartialComponents;
@@ -154,6 +154,10 @@ pub fn run() -> sc_cli::Result<()> {
Ok((cmd.run(client, backend), task_manager))
})
}
+ Some(Subcommand::Inspect(cmd)) => {
+ let runner = cli.create_runner(cmd)?;
+ runner.sync_run(|config| cmd.run::(config))
+ }
None => {
let runner = cli.create_runner(&cli.run)?;
runner.run_node_until_exit(|config| async move {
diff --git a/polkadot/bridges/bin/millau/node/src/lib.rs b/polkadot/bridges/bin/millau/node/src/lib.rs
index fdecc0b45f..382d1c2d7f 100644
--- a/polkadot/bridges/bin/millau/node/src/lib.rs
+++ b/polkadot/bridges/bin/millau/node/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/millau/node/src/main.rs b/polkadot/bridges/bin/millau/node/src/main.rs
index 07ec88727d..cf6dd9f733 100644
--- a/polkadot/bridges/bin/millau/node/src/main.rs
+++ b/polkadot/bridges/bin/millau/node/src/main.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/millau/node/src/service.rs b/polkadot/bridges/bin/millau/node/src/service.rs
index 2f72e5717f..8677ec2e70 100644
--- a/polkadot/bridges/bin/millau/node/src/service.rs
+++ b/polkadot/bridges/bin/millau/node/src/service.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -30,11 +30,13 @@
use millau_runtime::{self, opaque::Block, RuntimeApi};
use sc_client_api::{ExecutorProvider, RemoteBackend};
+use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams};
use sc_executor::native_executor_instance;
pub use sc_executor::NativeExecutor;
use sc_finality_grandpa::SharedVoterState;
use sc_keystore::LocalKeystore;
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
+use sc_telemetry::{Telemetry, TelemetryWorker};
use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
use sp_inherents::InherentDataProviders;
use std::sync::Arc;
@@ -70,6 +72,7 @@ pub fn new_partial(
AuraPair,
>,
sc_finality_grandpa::LinkHalf,
+ Option,
),
>,
ServiceError,
@@ -77,12 +80,30 @@ pub fn new_partial(
if config.keystore_remote.is_some() {
return Err(ServiceError::Other("Remote Keystores are not supported.".to_string()));
}
- let inherent_data_providers = sp_inherents::InherentDataProviders::new();
+ let inherent_data_providers = InherentDataProviders::new();
- let (client, backend, keystore_container, task_manager) =
- sc_service::new_full_parts::(&config)?;
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
+ let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ )?;
let client = Arc::new(client);
+ let telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
+
let select_chain = sc_consensus::LongestChain::new(backend.clone());
let transaction_pool = sc_transaction_pool::BasicPool::new_full(
@@ -93,22 +114,28 @@ pub fn new_partial(
client.clone(),
);
- let (grandpa_block_import, grandpa_link) =
- sc_finality_grandpa::block_import(client.clone(), &(client.clone() as Arc<_>), select_chain.clone())?;
+ let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(
+ client.clone(),
+ &(client.clone() as Arc<_>),
+ select_chain.clone(),
+ telemetry.as_ref().map(|x| x.handle()),
+ )?;
let aura_block_import =
sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(grandpa_block_import.clone(), client.clone());
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- aura_block_import.clone(),
- Some(Box::new(grandpa_block_import)),
- client.clone(),
- inherent_data_providers.clone(),
- &task_manager.spawn_essential_handle(),
- config.prometheus_registry(),
- sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
- )?;
+ let import_queue = sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: aura_block_import.clone(),
+ justification_import: Some(Box::new(grandpa_block_import)),
+ client: client.clone(),
+ inherent_data_providers: inherent_data_providers.clone(),
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
Ok(sc_service::PartialComponents {
client,
@@ -119,7 +146,7 @@ pub fn new_partial(
select_chain,
transaction_pool,
inherent_data_providers,
- other: (aura_block_import, grandpa_link),
+ other: (aura_block_import, grandpa_link, telemetry),
})
}
@@ -141,7 +168,7 @@ pub fn new_full(mut config: Configuration) -> Result
select_chain,
transaction_pool,
inherent_data_providers,
- other: (block_import, grandpa_link),
+ other: (block_import, grandpa_link, mut telemetry),
} = new_partial(&config)?;
if let Some(url) = &config.keystore_remote {
@@ -173,13 +200,7 @@ pub fn new_full(mut config: Configuration) -> Result
})?;
if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config,
- backend.clone(),
- task_manager.spawn_handle(),
- client.clone(),
- network.clone(),
- );
+ sc_service::build_offchain_workers(&config, task_manager.spawn_handle(), client.clone(), network.clone());
}
let role = config.role.clone();
@@ -190,40 +211,9 @@ pub fn new_full(mut config: Configuration) -> Result
let prometheus_registry = config.prometheus_registry().cloned();
let rpc_extensions_builder = {
- use bp_message_lane::{LaneId, MessageNonce};
- use bp_runtime::{InstanceId, RIALTO_BRIDGE_INSTANCE};
use sc_finality_grandpa::FinalityProofProvider as GrandpaFinalityProofProvider;
- use sp_core::storage::StorageKey;
- // This struct is here to ease update process.
-
- /// Millau runtime from message-lane RPC point of view.
- struct MillauMessageLaneKeys;
-
- impl pallet_message_lane_rpc::Runtime for MillauMessageLaneKeys {
- fn message_key(&self, instance: &InstanceId, lane: &LaneId, nonce: MessageNonce) -> Option {
- match *instance {
- RIALTO_BRIDGE_INSTANCE => Some(millau_runtime::rialto_messages::message_key(lane, nonce)),
- _ => None,
- }
- }
-
- fn outbound_lane_data_key(&self, instance: &InstanceId, lane: &LaneId) -> Option {
- match *instance {
- RIALTO_BRIDGE_INSTANCE => Some(millau_runtime::rialto_messages::outbound_lane_data_key(lane)),
- _ => None,
- }
- }
-
- fn inbound_lane_data_key(&self, instance: &InstanceId, lane: &LaneId) -> Option {
- match *instance {
- RIALTO_BRIDGE_INSTANCE => Some(millau_runtime::rialto_messages::inbound_lane_data_key(lane)),
- _ => None,
- }
- }
- }
-
- use pallet_message_lane_rpc::{MessageLaneApi, MessageLaneRpcHandler};
+ use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi};
use sc_finality_grandpa_rpc::{GrandpaApi, GrandpaRpcHandler};
use sc_rpc::DenyUnsafe;
use substrate_frame_rpc_system::{FullSystem, SystemApi};
@@ -237,7 +227,7 @@ pub fn new_full(mut config: Configuration) -> Result
let shared_voter_state = sc_finality_grandpa::SharedVoterState::empty();
let finality_proof_provider =
- GrandpaFinalityProofProvider::new_for_service(backend.clone(), Some(shared_authority_set.clone()));
+ GrandpaFinalityProofProvider::new_for_service(backend, Some(shared_authority_set.clone()));
Box::new(move |_, subscription_executor| {
let mut io = jsonrpc_core::IoHandler::default();
@@ -246,6 +236,9 @@ pub fn new_full(mut config: Configuration) -> Result
pool.clone(),
DenyUnsafe::No,
)));
+ io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(
+ client.clone(),
+ )));
io.extend_with(GrandpaApi::to_delegate(GrandpaRpcHandler::new(
shared_authority_set.clone(),
shared_voter_state.clone(),
@@ -253,16 +246,11 @@ pub fn new_full(mut config: Configuration) -> Result
subscription_executor,
finality_proof_provider.clone(),
)));
- io.extend_with(MessageLaneApi::to_delegate(MessageLaneRpcHandler::new(
- backend.clone(),
- Arc::new(MillauMessageLaneKeys),
- )));
-
io
})
};
- let (_rpc_handlers, telemetry_connection_notifier) = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
+ let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
network: network.clone(),
client: client.clone(),
keystore: keystore_container.sync_keystore(),
@@ -275,32 +263,35 @@ pub fn new_full(mut config: Configuration) -> Result
network_status_sinks,
system_rpc_tx,
config,
- telemetry_span: None,
+ telemetry: telemetry.as_mut(),
})?;
if role.is_authority() {
- let proposer = sc_basic_authorship::ProposerFactory::new(
+ let proposer_factory = sc_basic_authorship::ProposerFactory::new(
task_manager.spawn_handle(),
client.clone(),
transaction_pool,
prometheus_registry.as_ref(),
+ telemetry.as_ref().map(|x| x.handle()),
);
let can_author_with = sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());
- let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- client.clone(),
+ let aura = sc_consensus_aura::start_aura::(StartAuraParams {
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ client: client.clone(),
select_chain,
block_import,
- proposer,
- network.clone(),
+ proposer_factory,
inherent_data_providers,
force_authoring,
backoff_authoring_blocks,
- keystore_container.sync_keystore(),
+ keystore: keystore_container.sync_keystore(),
can_author_with,
- )?;
+ sync_oracle: network.clone(),
+ block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
// the AURA authoring task is considered essential, i.e. if it
// fails we take down the service with it.
@@ -323,6 +314,7 @@ pub fn new_full(mut config: Configuration) -> Result
observer_enabled: false,
keystore,
is_authority: role.is_authority(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
if enable_grandpa {
@@ -336,10 +328,10 @@ pub fn new_full(mut config: Configuration) -> Result
config: grandpa_config,
link: grandpa_link,
network,
- telemetry_on_connect: telemetry_connection_notifier.map(|x| x.on_connect_stream()),
voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),
prometheus_registry,
shared_voter_state: SharedVoterState::empty(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
// the GRANDPA voter task is considered infallible, i.e.
@@ -355,8 +347,27 @@ pub fn new_full(mut config: Configuration) -> Result
/// Builds a new service for a light client.
pub fn new_light(mut config: Configuration) -> Result {
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
let (client, backend, keystore_container, mut task_manager, on_demand) =
- sc_service::new_light_parts::(&config)?;
+ sc_service::new_light_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ )?;
+
+ let mut telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
config
.network
@@ -373,22 +384,28 @@ pub fn new_light(mut config: Configuration) -> Result
on_demand.clone(),
));
- let (grandpa_block_import, _) =
- sc_finality_grandpa::block_import(client.clone(), &(client.clone() as Arc<_>), select_chain)?;
+ let (grandpa_block_import, _) = sc_finality_grandpa::block_import(
+ client.clone(),
+ &(client.clone() as Arc<_>),
+ select_chain,
+ telemetry.as_ref().map(|x| x.handle()),
+ )?;
let aura_block_import =
sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(grandpa_block_import.clone(), client.clone());
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- aura_block_import,
- Some(Box::new(grandpa_block_import)),
- client.clone(),
- InherentDataProviders::new(),
- &task_manager.spawn_essential_handle(),
- config.prometheus_registry(),
- sp_consensus::NeverCanAuthor,
- )?;
+ let import_queue = sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: aura_block_import,
+ justification_import: Some(Box::new(grandpa_block_import)),
+ client: client.clone(),
+ inherent_data_providers: InherentDataProviders::new(),
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::NeverCanAuthor,
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
let (network, network_status_sinks, system_rpc_tx, network_starter) =
sc_service::build_network(sc_service::BuildNetworkParams {
@@ -402,13 +419,7 @@ pub fn new_light(mut config: Configuration) -> Result
})?;
if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config,
- backend.clone(),
- task_manager.spawn_handle(),
- client.clone(),
- network.clone(),
- );
+ sc_service::build_offchain_workers(&config, task_manager.spawn_handle(), client.clone(), network.clone());
}
sc_service::spawn_tasks(sc_service::SpawnTasksParams {
@@ -424,7 +435,7 @@ pub fn new_light(mut config: Configuration) -> Result
network,
network_status_sinks,
system_rpc_tx,
- telemetry_span: None,
+ telemetry: telemetry.as_mut(),
})?;
network_starter.start_network();
diff --git a/polkadot/bridges/bin/millau/runtime/Cargo.toml b/polkadot/bridges/bin/millau/runtime/Cargo.toml
index d163661284..e1f7ed10c6 100644
--- a/polkadot/bridges/bin/millau/runtime/Cargo.toml
+++ b/polkadot/bridges/bin/millau/runtime/Cargo.toml
@@ -10,21 +10,21 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
[dependencies]
codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
hex-literal = "0.3"
-serde = { version = "1.0.123", optional = true, features = ["derive"] }
+serde = { version = "1.0.124", optional = true, features = ["derive"] }
# Bridge dependencies
bp-header-chain = { path = "../../../primitives/header-chain", default-features = false }
-bp-message-lane = { path = "../../../primitives/message-lane", default-features = false }
-bp-millau = { path = "../../../primitives/millau", default-features = false }
-bp-rialto = { path = "../../../primitives/rialto", default-features = false }
+bp-messages = { path = "../../../primitives/messages", default-features = false }
+bp-millau = { path = "../../../primitives/chain-millau", default-features = false }
+bp-rialto = { path = "../../../primitives/chain-rialto", default-features = false }
bp-runtime = { path = "../../../primitives/runtime", default-features = false }
+bp-westend = { path = "../../../primitives/chain-westend", default-features = false }
bridge-runtime-common = { path = "../../runtime-common", default-features = false }
-pallet-bridge-call-dispatch = { path = "../../../modules/call-dispatch", default-features = false }
-pallet-finality-verifier = { path = "../../../modules/finality-verifier", default-features = false }
-pallet-message-lane = { path = "../../../modules/message-lane", default-features = false }
+pallet-bridge-dispatch = { path = "../../../modules/dispatch", default-features = false }
+pallet-bridge-grandpa = { path = "../../../modules/grandpa", default-features = false }
+pallet-bridge-messages = { path = "../../../modules/messages", default-features = false }
pallet-shift-session-manager = { path = "../../../modules/shift-session-manager", default-features = false }
-pallet-substrate-bridge = { path = "../../../modules/substrate", default-features = false }
# Substrate Dependencies
@@ -40,12 +40,13 @@ pallet-session = { git = "https://github.com/paritytech/substrate", branch = "ma
pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
+pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
-sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
+sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-session = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
@@ -61,36 +62,37 @@ wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "2.
default = ["std"]
std = [
"bp-header-chain/std",
- "bp-message-lane/std",
+ "bp-messages/std",
"bp-millau/std",
"bp-rialto/std",
"bp-runtime/std",
+ "bp-westend/std",
"bridge-runtime-common/std",
"codec/std",
"frame-executive/std",
"frame-support/std",
- "frame-system/std",
"frame-system-rpc-runtime-api/std",
+ "frame-system/std",
"pallet-aura/std",
"pallet-balances/std",
- "pallet-bridge-call-dispatch/std",
- "pallet-finality-verifier/std",
+ "pallet-bridge-dispatch/std",
+ "pallet-bridge-grandpa/std",
+ "pallet-bridge-messages/std",
"pallet-grandpa/std",
- "pallet-message-lane/std",
"pallet-randomness-collective-flip/std",
- "pallet-shift-session-manager/std",
"pallet-session/std",
- "pallet-substrate-bridge/std",
+ "pallet-shift-session-manager/std",
"pallet-sudo/std",
"pallet-timestamp/std",
+ "pallet-transaction-payment-rpc-runtime-api/std",
"pallet-transaction-payment/std",
"serde",
"sp-api/std",
"sp-block-builder/std",
"sp-consensus-aura/std",
"sp-core/std",
- "sp-inherents/std",
"sp-finality-grandpa/std",
+ "sp-inherents/std",
"sp-offchain/std",
"sp-runtime/std",
"sp-session/std",
@@ -99,3 +101,6 @@ std = [
"sp-trie/std",
"sp-version/std",
]
+# TODO: https://github.com/paritytech/parity-bridges-common/issues/390
+# I've left the feature flag here to test our CI configuration
+runtime-benchmarks = []
diff --git a/polkadot/bridges/bin/millau/runtime/build.rs b/polkadot/bridges/bin/millau/runtime/build.rs
index 4fda040c9b..dcb5cb0621 100644
--- a/polkadot/bridges/bin/millau/runtime/build.rs
+++ b/polkadot/bridges/bin/millau/runtime/build.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/millau/runtime/src/lib.rs b/polkadot/bridges/bin/millau/runtime/src/lib.rs
index 491359fc97..30cf1bd87c 100644
--- a/polkadot/bridges/bin/millau/runtime/src/lib.rs
+++ b/polkadot/bridges/bin/millau/runtime/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -37,6 +37,7 @@ use crate::rialto_messages::{ToRialtoMessagePayload, WithRialtoMessageBridge};
use bridge_runtime_common::messages::{source::estimate_message_dispatch_and_delivery_fee, MessageBridge};
use codec::Decode;
use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};
+use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
use sp_api::impl_runtime_apis;
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
@@ -61,8 +62,9 @@ pub use frame_support::{
pub use frame_system::Call as SystemCall;
pub use pallet_balances::Call as BalancesCall;
-pub use pallet_message_lane::Call as MessageLaneCall;
-pub use pallet_substrate_bridge::Call as BridgeRialtoCall;
+pub use pallet_bridge_grandpa::Call as BridgeGrandpaRialtoCall;
+pub use pallet_bridge_grandpa::Call as BridgeGrandpaWestendCall;
+pub use pallet_bridge_messages::Call as MessagesCall;
pub use pallet_sudo::Call as SudoCall;
pub use pallet_timestamp::Call as TimestampCall;
@@ -199,15 +201,16 @@ impl frame_system::Config for Runtime {
type DbWeight = DbWeight;
/// The designated SS58 prefix of this chain.
type SS58Prefix = SS58Prefix;
+ /// The set code logic, just the default since we're not a parachain.
type OnSetCode = ();
}
impl pallet_aura::Config for Runtime {
type AuthorityId = AuraId;
}
-impl pallet_bridge_call_dispatch::Config for Runtime {
+impl pallet_bridge_dispatch::Config for Runtime {
type Event = Event;
- type MessageId = (bp_message_lane::LaneId, bp_message_lane::MessageNonce);
+ type MessageId = (bp_messages::LaneId, bp_messages::MessageNonce);
type Call = Call;
type CallFilter = ();
type EncodedCall = crate::rialto_messages::FromRialtoEncodedCall;
@@ -291,7 +294,7 @@ impl pallet_session::Config for Runtime {
type ValidatorIdOf = ();
type ShouldEndSession = pallet_session::PeriodicSessions;
type NextSessionRotation = pallet_session::PeriodicSessions;
- type SessionManager = pallet_shift_session_manager::Module;
+ type SessionManager = pallet_shift_session_manager::Pallet;
type SessionHandler = ::KeyTypeIdProviders;
type Keys = SessionKeys;
type DisabledValidatorsThreshold = ();
@@ -299,33 +302,48 @@ impl pallet_session::Config for Runtime {
type WeightInfo = ();
}
-impl pallet_substrate_bridge::Config for Runtime {
- type BridgedChain = bp_rialto::Rialto;
-}
-
parameter_types! {
// This is a pretty unscientific cap.
//
// Note that once this is hit the pallet will essentially throttle incoming requests down to one
// call per block.
pub const MaxRequests: u32 = 50;
+ pub const WestendValidatorCount: u32 = 255;
+
+ // Number of headers to keep.
+ //
+ // Assuming the worst case of every header being finalized, we will keep headers for at least a
+ // week.
+ pub const HeadersToKeep: u32 = 7 * bp_millau::DAYS as u32;
}
-impl pallet_finality_verifier::Config for Runtime {
+pub type RialtoGrandpaInstance = ();
+impl pallet_bridge_grandpa::Config for Runtime {
type BridgedChain = bp_rialto::Rialto;
- type HeaderChain = pallet_substrate_bridge::Module;
- type AncestryProof = Vec;
- type AncestryChecker = bp_header_chain::LinearAncestryChecker;
type MaxRequests = MaxRequests;
+ type HeadersToKeep = HeadersToKeep;
+
+ // TODO [#391]: Use weights generated for the Millau runtime instead of Rialto ones.
+ type WeightInfo = pallet_bridge_grandpa::weights::RialtoWeight;
+}
+
+pub type WestendGrandpaInstance = pallet_bridge_grandpa::Instance1;
+impl pallet_bridge_grandpa::Config for Runtime {
+ type BridgedChain = bp_westend::Westend;
+ type MaxRequests = MaxRequests;
+ type HeadersToKeep = HeadersToKeep;
+
+ // TODO [#391]: Use weights generated for the Millau runtime instead of Rialto ones.
+ type WeightInfo = pallet_bridge_grandpa::weights::RialtoWeight;
}
impl pallet_shift_session_manager::Config for Runtime {}
parameter_types! {
- pub const MaxMessagesToPruneAtOnce: bp_message_lane::MessageNonce = 8;
- pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_message_lane::MessageNonce =
+ pub const MaxMessagesToPruneAtOnce: bp_messages::MessageNonce = 8;
+ pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce =
bp_millau::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE;
- pub const MaxUnconfirmedMessagesAtInboundLane: bp_message_lane::MessageNonce =
+ pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce =
bp_millau::MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE;
// `IdentityFee` is used by Millau => we may use weight directly
pub const GetDeliveryConfirmationTransactionFee: Balance =
@@ -333,11 +351,14 @@ parameter_types! {
pub const RootAccountForPayments: Option = None;
}
-impl pallet_message_lane::Config for Runtime {
+/// Instance of the messages pallet used to relay messages to/from Rialto chain.
+pub type WithRialtoMessagesInstance = pallet_bridge_messages::DefaultInstance;
+
+impl pallet_bridge_messages::Config for Runtime {
type Event = Event;
// TODO: https://github.com/paritytech/parity-bridges-common/issues/390
- type WeightInfo = pallet_message_lane::weights::RialtoWeight;
- type Parameter = rialto_messages::MillauToRialtoMessageLaneParameter;
+ type WeightInfo = pallet_bridge_messages::weights::RialtoWeight;
+ type Parameter = rialto_messages::MillauToRialtoMessagesParameter;
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane;
@@ -353,7 +374,7 @@ impl pallet_message_lane::Config for Runtime {
type TargetHeaderChain = crate::rialto_messages::Rialto;
type LaneMessageVerifier = crate::rialto_messages::ToRialtoMessageVerifier;
- type MessageDeliveryAndDispatchPayment = pallet_message_lane::instant_payments::InstantCurrencyPayments<
+ type MessageDeliveryAndDispatchPayment = pallet_bridge_messages::instant_payments::InstantCurrencyPayments<
Runtime,
pallet_balances::Pallet,
GetDeliveryConfirmationTransactionFee,
@@ -370,10 +391,10 @@ construct_runtime!(
NodeBlock = opaque::Block,
UncheckedExtrinsic = UncheckedExtrinsic
{
- BridgeRialto: pallet_substrate_bridge::{Pallet, Call, Storage, Config},
- BridgeRialtoMessageLane: pallet_message_lane::{Pallet, Call, Storage, Event},
- BridgeCallDispatch: pallet_bridge_call_dispatch::{Pallet, Event},
- BridgeFinalityVerifier: pallet_finality_verifier::{Pallet, Call},
+ BridgeRialtoMessages: pallet_bridge_messages::{Pallet, Call, Storage, Event},
+ BridgeDispatch: pallet_bridge_dispatch::{Pallet, Event},
+ BridgeRialtoGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage},
+ BridgeWestendGrandpa: pallet_bridge_grandpa::::{Pallet, Call, Config, Storage},
System: frame_system::{Pallet, Call, Config, Storage, Event},
RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage},
Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
@@ -411,6 +432,8 @@ pub type SignedExtra = (
pub type SignedPayload = generic::SignedPayload;
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic;
+/// Extrinsic type that has already been checked.
+pub type CheckedExtrinsic = generic::CheckedExtrinsic;
/// Executive: handles dispatch to the various modules.
pub type Executive =
frame_executive::Executive, Runtime, AllPallets>;
@@ -422,7 +445,7 @@ impl_runtime_apis! {
}
fn execute_block(block: Block) {
- Executive::execute_block(block)
+ Executive::execute_block(block);
}
fn initialize_block(header: &::Header) {
@@ -483,8 +506,8 @@ impl_runtime_apis! {
}
impl sp_consensus_aura::AuraApi for Runtime {
- fn slot_duration() -> u64 {
- Aura::slot_duration()
+ fn slot_duration() -> sp_consensus_aura::SlotDuration {
+ sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration())
}
fn authorities() -> Vec {
@@ -492,6 +515,18 @@ impl_runtime_apis! {
}
}
+ impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<
+ Block,
+ Balance,
+ > for Runtime {
+ fn query_info(uxt: ::Extrinsic, len: u32) -> RuntimeDispatchInfo {
+ TransactionPayment::query_info(uxt, len)
+ }
+ fn query_fee_details(uxt: ::Extrinsic, len: u32) -> FeeDetails {
+ TransactionPayment::query_fee_details(uxt, len)
+ }
+ }
+
impl sp_session::SessionKeys for Runtime {
fn generate_session_keys(seed: Option>) -> Vec {
SessionKeys::generate(seed)
@@ -535,32 +570,31 @@ impl_runtime_apis! {
}
}
- impl bp_rialto::RialtoHeaderApi for Runtime {
- fn best_blocks() -> Vec<(bp_rialto::BlockNumber, bp_rialto::Hash)> {
- BridgeRialto::best_headers()
- }
-
- fn finalized_block() -> (bp_rialto::BlockNumber, bp_rialto::Hash) {
- let header = BridgeRialto::best_finalized();
+ impl bp_rialto::RialtoFinalityApi for Runtime {
+ fn best_finalized() -> (bp_rialto::BlockNumber, bp_rialto::Hash) {
+ let header = BridgeRialtoGrandpa::best_finalized();
(header.number, header.hash())
}
- fn incomplete_headers() -> Vec<(bp_rialto::BlockNumber, bp_rialto::Hash)> {
- BridgeRialto::require_justifications()
+ fn is_known_header(hash: bp_rialto::Hash) -> bool {
+ BridgeRialtoGrandpa::is_known_header(hash)
+ }
+ }
+
+ impl bp_westend::WestendFinalityApi for Runtime {
+ fn best_finalized() -> (bp_westend::BlockNumber, bp_westend::Hash) {
+ let header = BridgeWestendGrandpa::best_finalized();
+ (header.number, header.hash())
}
- fn is_known_block(hash: bp_rialto::Hash) -> bool {
- BridgeRialto::is_known_header(hash)
- }
-
- fn is_finalized_block(hash: bp_rialto::Hash) -> bool {
- BridgeRialto::is_finalized_header(hash)
+ fn is_known_header(hash: bp_westend::Hash) -> bool {
+ BridgeWestendGrandpa::is_known_header(hash)
}
}
impl bp_rialto::ToRialtoOutboundLaneApi for Runtime {
fn estimate_message_delivery_and_dispatch_fee(
- _lane_id: bp_message_lane::LaneId,
+ _lane_id: bp_messages::LaneId,
payload: ToRialtoMessagePayload,
) -> Option {
estimate_message_dispatch_and_delivery_fee::(
@@ -570,12 +604,12 @@ impl_runtime_apis! {
}
fn messages_dispatch_weight(
- lane: bp_message_lane::LaneId,
- begin: bp_message_lane::MessageNonce,
- end: bp_message_lane::MessageNonce,
- ) -> Vec<(bp_message_lane::MessageNonce, Weight, u32)> {
+ lane: bp_messages::LaneId,
+ begin: bp_messages::MessageNonce,
+ end: bp_messages::MessageNonce,
+ ) -> Vec<(bp_messages::MessageNonce, Weight, u32)> {
(begin..=end).filter_map(|nonce| {
- let encoded_payload = BridgeRialtoMessageLane::outbound_message_payload(lane, nonce)?;
+ let encoded_payload = BridgeRialtoMessages::outbound_message_payload(lane, nonce)?;
let decoded_payload = rialto_messages::ToRialtoMessagePayload::decode(
&mut &encoded_payload[..]
).ok()?;
@@ -584,26 +618,26 @@ impl_runtime_apis! {
.collect()
}
- fn latest_received_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeRialtoMessageLane::outbound_latest_received_nonce(lane)
+ fn latest_received_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeRialtoMessages::outbound_latest_received_nonce(lane)
}
- fn latest_generated_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeRialtoMessageLane::outbound_latest_generated_nonce(lane)
+ fn latest_generated_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeRialtoMessages::outbound_latest_generated_nonce(lane)
}
}
impl bp_rialto::FromRialtoInboundLaneApi for Runtime {
- fn latest_received_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeRialtoMessageLane::inbound_latest_received_nonce(lane)
+ fn latest_received_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeRialtoMessages::inbound_latest_received_nonce(lane)
}
- fn latest_confirmed_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeRialtoMessageLane::inbound_latest_confirmed_nonce(lane)
+ fn latest_confirmed_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeRialtoMessages::inbound_latest_confirmed_nonce(lane)
}
- fn unrewarded_relayers_state(lane: bp_message_lane::LaneId) -> bp_message_lane::UnrewardedRelayersState {
- BridgeRialtoMessageLane::inbound_unrewarded_relayers_state(lane)
+ fn unrewarded_relayers_state(lane: bp_messages::LaneId) -> bp_messages::UnrewardedRelayersState {
+ BridgeRialtoMessages::inbound_unrewarded_relayers_state(lane)
}
}
}
@@ -623,7 +657,7 @@ where
AccountId: codec::Encode,
SpecVersion: codec::Encode,
{
- pallet_bridge_call_dispatch::account_ownership_digest(
+ pallet_bridge_dispatch::account_ownership_digest(
rialto_call,
millau_account_id,
rialto_spec_version,
@@ -639,9 +673,9 @@ mod tests {
#[test]
fn ensure_millau_message_lane_weights_are_correct() {
// TODO: https://github.com/paritytech/parity-bridges-common/issues/390
- type Weights = pallet_message_lane::weights::RialtoWeight;
+ type Weights = pallet_bridge_messages::weights::RialtoWeight;
- pallet_message_lane::ensure_weights_are_correct::(
+ pallet_bridge_messages::ensure_weights_are_correct::(
bp_millau::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT,
bp_millau::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT,
bp_millau::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
@@ -650,34 +684,24 @@ mod tests {
let max_incoming_message_proof_size = bp_rialto::EXTRA_STORAGE_PROOF_SIZE.saturating_add(
messages::target::maximal_incoming_message_size(bp_millau::max_extrinsic_size()),
);
- pallet_message_lane::ensure_able_to_receive_message::(
+ pallet_bridge_messages::ensure_able_to_receive_message::(
bp_millau::max_extrinsic_size(),
bp_millau::max_extrinsic_weight(),
max_incoming_message_proof_size,
- bridge_runtime_common::messages::transaction_weight_without_multiplier(
- bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- max_incoming_message_proof_size as _,
- 0,
- ),
messages::target::maximal_incoming_message_dispatch_weight(bp_millau::max_extrinsic_weight()),
);
- let max_incoming_inbound_lane_data_proof_size = bp_message_lane::InboundLaneData::<()>::encoded_size_hint(
+ let max_incoming_inbound_lane_data_proof_size = bp_messages::InboundLaneData::<()>::encoded_size_hint(
bp_millau::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE,
bp_rialto::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE as _,
)
.unwrap_or(u32::MAX);
- pallet_message_lane::ensure_able_to_receive_confirmation::(
+ pallet_bridge_messages::ensure_able_to_receive_confirmation::(
bp_millau::max_extrinsic_size(),
bp_millau::max_extrinsic_weight(),
max_incoming_inbound_lane_data_proof_size,
bp_rialto::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE,
bp_rialto::MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE,
- bridge_runtime_common::messages::transaction_weight_without_multiplier(
- bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- max_incoming_inbound_lane_data_proof_size as _,
- 0,
- ),
);
}
}
diff --git a/polkadot/bridges/bin/millau/runtime/src/rialto_messages.rs b/polkadot/bridges/bin/millau/runtime/src/rialto_messages.rs
index 9775c93d2d..a800117dc5 100644
--- a/polkadot/bridges/bin/millau/runtime/src/rialto_messages.rs
+++ b/polkadot/bridges/bin/millau/runtime/src/rialto_messages.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -14,52 +14,32 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-//! Everything required to serve Millau <-> Rialto message lanes.
+//! Everything required to serve Millau <-> Rialto messages.
use crate::Runtime;
-use bp_message_lane::{
+use bp_messages::{
source_chain::TargetHeaderChain,
target_chain::{ProvedMessages, SourceHeaderChain},
- InboundLaneData, LaneId, Message, MessageNonce, Parameter as MessageLaneParameter,
+ InboundLaneData, LaneId, Message, MessageNonce, Parameter as MessagesParameter,
};
use bp_runtime::{InstanceId, RIALTO_BRIDGE_INSTANCE};
-use bridge_runtime_common::messages::{self, ChainWithMessageLanes, MessageBridge};
+use bridge_runtime_common::messages::{self, MessageBridge, MessageTransaction};
use codec::{Decode, Encode};
use frame_support::{
parameter_types,
- weights::{DispatchClass, Weight, WeightToFeePolynomial},
+ weights::{DispatchClass, Weight},
RuntimeDebug,
};
-use sp_core::storage::StorageKey;
use sp_runtime::{FixedPointNumber, FixedU128};
use sp_std::{convert::TryFrom, ops::RangeInclusive};
+/// Initial value of `RialtoToMillauConversionRate` parameter.
+pub const INITIAL_RIALTO_TO_MILLAU_CONVERSION_RATE: FixedU128 = FixedU128::from_inner(FixedU128::DIV);
+
parameter_types! {
/// Rialto to Millau conversion rate. Initially we treat both tokens as equal.
- storage RialtoToMillauConversionRate: FixedU128 = 1.into();
-}
-
-/// Storage key of the Millau -> Rialto message in the runtime storage.
-pub fn message_key(lane: &LaneId, nonce: MessageNonce) -> StorageKey {
- pallet_message_lane::storage_keys::message_key::::MessageLaneInstance>(
- lane, nonce,
- )
-}
-
-/// Storage key of the Millau -> Rialto message lane state in the runtime storage.
-pub fn outbound_lane_data_key(lane: &LaneId) -> StorageKey {
- pallet_message_lane::storage_keys::outbound_lane_data_key::<::MessageLaneInstance>(
- lane,
- )
-}
-
-/// Storage key of the Rialto -> Millau message lane state in the runtime storage.
-pub fn inbound_lane_data_key(lane: &LaneId) -> StorageKey {
- pallet_message_lane::storage_keys::inbound_lane_data_key::<
- Runtime,
- ::MessageLaneInstance,
- >(lane)
+ pub storage RialtoToMillauConversionRate: FixedU128 = INITIAL_RIALTO_TO_MILLAU_CONVERSION_RATE;
}
/// Message payload for Millau -> Rialto messages.
@@ -84,7 +64,7 @@ type ToRialtoMessagesDeliveryProof = messages::source::FromBridgedChainMessagesD
pub type FromRialtoMessageDispatch = messages::target::FromBridgedChainMessageDispatch<
WithRialtoMessageBridge,
crate::Runtime,
- pallet_bridge_call_dispatch::DefaultInstance,
+ pallet_bridge_dispatch::DefaultInstance,
>;
/// Millau <-> Rialto message bridge.
@@ -99,59 +79,6 @@ impl MessageBridge for WithRialtoMessageBridge {
type ThisChain = Millau;
type BridgedChain = Rialto;
- fn maximal_extrinsic_size_on_target_chain() -> u32 {
- bp_rialto::max_extrinsic_size()
- }
-
- fn weight_limits_of_message_on_bridged_chain(_message_payload: &[u8]) -> RangeInclusive {
- // we don't want to relay too large messages + keep reserve for future upgrades
- let upper_limit = messages::target::maximal_incoming_message_dispatch_weight(bp_rialto::max_extrinsic_weight());
-
- // we're charging for payload bytes in `WithRialtoMessageBridge::weight_of_delivery_transaction` function
- //
- // this bridge may be used to deliver all kind of messages, so we're not making any assumptions about
- // minimal dispatch weight here
-
- 0..=upper_limit
- }
-
- fn weight_of_delivery_transaction(message_payload: &[u8]) -> Weight {
- let message_payload_len = u32::try_from(message_payload.len())
- .map(Into::into)
- .unwrap_or(Weight::MAX);
- let extra_bytes_in_payload =
- message_payload_len.saturating_sub(pallet_message_lane::EXPECTED_DEFAULT_MESSAGE_LENGTH.into());
- messages::transaction_weight_without_multiplier(
- bp_rialto::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- message_payload_len.saturating_add(bp_millau::EXTRA_STORAGE_PROOF_SIZE as _),
- extra_bytes_in_payload
- .saturating_mul(bp_rialto::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
- .saturating_add(bp_rialto::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT),
- )
- }
-
- fn weight_of_delivery_confirmation_transaction_on_this_chain() -> Weight {
- let inbounded_data_size: Weight =
- InboundLaneData::::encoded_size_hint(bp_rialto::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE, 1)
- .map(Into::into)
- .unwrap_or(Weight::MAX);
-
- messages::transaction_weight_without_multiplier(
- bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- inbounded_data_size.saturating_add(bp_rialto::EXTRA_STORAGE_PROOF_SIZE as _),
- bp_millau::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
- )
- }
-
- fn this_weight_to_this_balance(weight: Weight) -> bp_millau::Balance {
- ::WeightToFee::calc(&weight)
- }
-
- fn bridged_weight_to_bridged_balance(weight: Weight) -> bp_rialto::Balance {
- // we're using the same weights in both chains now
- ::WeightToFee::calc(&weight) as _
- }
-
fn bridged_balance_to_this_balance(bridged_balance: bp_rialto::Balance) -> bp_millau::Balance {
bp_millau::Balance::try_from(RialtoToMillauConversionRate::get().saturating_mul_int(bridged_balance))
.unwrap_or(bp_millau::Balance::MAX)
@@ -162,42 +89,114 @@ impl MessageBridge for WithRialtoMessageBridge {
#[derive(RuntimeDebug, Clone, Copy)]
pub struct Millau;
-impl messages::ChainWithMessageLanes for Millau {
+impl messages::ChainWithMessages for Millau {
type Hash = bp_millau::Hash;
type AccountId = bp_millau::AccountId;
type Signer = bp_millau::AccountSigner;
type Signature = bp_millau::Signature;
- type Call = crate::Call;
type Weight = Weight;
type Balance = bp_millau::Balance;
- type MessageLaneInstance = pallet_message_lane::DefaultInstance;
+ type MessagesInstance = crate::WithRialtoMessagesInstance;
}
-impl messages::ThisChainWithMessageLanes for Millau {
+impl messages::ThisChainWithMessages for Millau {
+ type Call = crate::Call;
+
fn is_outbound_lane_enabled(lane: &LaneId) -> bool {
- *lane == LaneId::default()
+ *lane == [0, 0, 0, 0] || *lane == [0, 0, 0, 1]
}
fn maximal_pending_messages_at_outbound_lane() -> MessageNonce {
MessageNonce::MAX
}
+
+ fn estimate_delivery_confirmation_transaction() -> MessageTransaction {
+ let inbound_data_size =
+ InboundLaneData::::encoded_size_hint(bp_millau::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE, 1)
+ .unwrap_or(u32::MAX);
+
+ MessageTransaction {
+ dispatch_weight: bp_millau::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
+ size: inbound_data_size
+ .saturating_add(bp_rialto::EXTRA_STORAGE_PROOF_SIZE)
+ .saturating_add(bp_millau::TX_EXTRA_BYTES),
+ }
+ }
+
+ fn transaction_payment(transaction: MessageTransaction) -> bp_millau::Balance {
+ // in our testnets, both per-byte fee and weight-to-fee are 1:1
+ messages::transaction_payment(
+ bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
+ 1,
+ FixedU128::zero(),
+ |weight| weight as _,
+ transaction,
+ )
+ }
}
/// Rialto chain from message lane point of view.
#[derive(RuntimeDebug, Clone, Copy)]
pub struct Rialto;
-impl messages::ChainWithMessageLanes for Rialto {
+impl messages::ChainWithMessages for Rialto {
type Hash = bp_rialto::Hash;
type AccountId = bp_rialto::AccountId;
type Signer = bp_rialto::AccountSigner;
type Signature = bp_rialto::Signature;
- type Call = (); // unknown to us
type Weight = Weight;
type Balance = bp_rialto::Balance;
- type MessageLaneInstance = pallet_message_lane::DefaultInstance;
+ type MessagesInstance = pallet_bridge_messages::DefaultInstance;
+}
+
+impl messages::BridgedChainWithMessages for Rialto {
+ fn maximal_extrinsic_size() -> u32 {
+ bp_rialto::max_extrinsic_size()
+ }
+
+ fn message_weight_limits(_message_payload: &[u8]) -> RangeInclusive {
+ // we don't want to relay too large messages + keep reserve for future upgrades
+ let upper_limit = messages::target::maximal_incoming_message_dispatch_weight(bp_rialto::max_extrinsic_weight());
+
+ // we're charging for payload bytes in `WithRialtoMessageBridge::transaction_payment` function
+ //
+ // this bridge may be used to deliver all kind of messages, so we're not making any assumptions about
+ // minimal dispatch weight here
+
+ 0..=upper_limit
+ }
+
+ fn estimate_delivery_transaction(
+ message_payload: &[u8],
+ message_dispatch_weight: Weight,
+ ) -> MessageTransaction {
+ let message_payload_len = u32::try_from(message_payload.len()).unwrap_or(u32::MAX);
+ let extra_bytes_in_payload = Weight::from(message_payload_len)
+ .saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH.into());
+
+ MessageTransaction {
+ dispatch_weight: extra_bytes_in_payload
+ .saturating_mul(bp_rialto::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
+ .saturating_add(bp_rialto::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
+ .saturating_add(message_dispatch_weight),
+ size: message_payload_len
+ .saturating_add(bp_millau::EXTRA_STORAGE_PROOF_SIZE)
+ .saturating_add(bp_rialto::TX_EXTRA_BYTES),
+ }
+ }
+
+ fn transaction_payment(transaction: MessageTransaction) -> bp_rialto::Balance {
+ // in our testnets, both per-byte fee and weight-to-fee are 1:1
+ messages::transaction_payment(
+ bp_rialto::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
+ 1,
+ FixedU128::zero(),
+ |weight| weight as _,
+ transaction,
+ )
+ }
}
impl TargetHeaderChain for Rialto {
@@ -238,15 +237,15 @@ impl SourceHeaderChain for Rialto {
/// Millau -> Rialto message lane pallet parameters.
#[derive(RuntimeDebug, Clone, Encode, Decode, PartialEq, Eq)]
-pub enum MillauToRialtoMessageLaneParameter {
+pub enum MillauToRialtoMessagesParameter {
/// The conversion formula we use is: `MillauTokens = RialtoTokens * conversion_rate`.
RialtoToMillauConversionRate(FixedU128),
}
-impl MessageLaneParameter for MillauToRialtoMessageLaneParameter {
+impl MessagesParameter for MillauToRialtoMessagesParameter {
fn save(&self) {
match *self {
- MillauToRialtoMessageLaneParameter::RialtoToMillauConversionRate(ref conversion_rate) => {
+ MillauToRialtoMessagesParameter::RialtoToMillauConversionRate(ref conversion_rate) => {
RialtoToMillauConversionRate::set(conversion_rate)
}
}
diff --git a/polkadot/bridges/bin/rialto/node/Cargo.toml b/polkadot/bridges/bin/rialto/node/Cargo.toml
index f99178c77a..a51ee7a5ab 100644
--- a/polkadot/bridges/bin/rialto/node/Cargo.toml
+++ b/polkadot/bridges/bin/rialto/node/Cargo.toml
@@ -15,17 +15,19 @@ structopt = "0.3.21"
# Bridge dependencies
-bp-message-lane = { path = "../../../primitives/message-lane" }
+bp-messages = { path = "../../../primitives/messages" }
bp-runtime = { path = "../../../primitives/runtime" }
-bp-rialto = { path = "../../../primitives/rialto" }
-pallet-message-lane = { path = "../../../modules/message-lane" }
-pallet-message-lane-rpc = { path = "../../../modules/message-lane/rpc" }
+bp-rialto = { path = "../../../primitives/chain-rialto" }
+pallet-bridge-messages = { path = "../../../modules/messages" }
rialto-runtime = { path = "../runtime" }
# Substrate Dependencies
+
frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" }
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
+node-inspect = { git = "https://github.com/paritytech/substrate", branch = "master" }
+pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] }
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -35,22 +37,21 @@ sc-executor = { git = "https://github.com/paritytech/substrate", branch = "maste
sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-finality-grandpa-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" }
sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
-sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master" }
+sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" }
substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" }
[build-dependencies]
-build-script-utils = { package = "substrate-build-script-utils", version = "2.0" }
+substrate-build-script-utils = "3.0.0"
frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" }
-vergen = "3.1.0"
[features]
default = []
diff --git a/polkadot/bridges/bin/rialto/node/build.rs b/polkadot/bridges/bin/rialto/node/build.rs
index e9a10ff8ad..d9b50049e2 100644
--- a/polkadot/bridges/bin/rialto/node/build.rs
+++ b/polkadot/bridges/bin/rialto/node/build.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -14,12 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-use vergen::{generate_cargo_keys, ConstantsFlags};
-
-const ERROR_MSG: &str = "Failed to generate metadata files";
+use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};
fn main() {
- generate_cargo_keys(ConstantsFlags::SHA_SHORT).expect(ERROR_MSG);
+ generate_cargo_keys();
- build_script_utils::rerun_if_git_head_changed();
+ rerun_if_git_head_changed();
}
diff --git a/polkadot/bridges/bin/rialto/node/src/chain_spec.rs b/polkadot/bridges/bin/rialto/node/src/chain_spec.rs
index 00a73cd445..732cf1a4b1 100644
--- a/polkadot/bridges/bin/rialto/node/src/chain_spec.rs
+++ b/polkadot/bridges/bin/rialto/node/src/chain_spec.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -16,8 +16,8 @@
use bp_rialto::derive_account_from_millau_id;
use rialto_runtime::{
- AccountId, AuraConfig, BalancesConfig, BridgeKovanConfig, BridgeMillauConfig, BridgeRialtoPoAConfig, GenesisConfig,
- GrandpaConfig, SessionConfig, SessionKeys, Signature, SudoConfig, SystemConfig, WASM_BINARY,
+ AccountId, AuraConfig, BalancesConfig, BridgeKovanConfig, BridgeRialtoPoAConfig, GenesisConfig, GrandpaConfig,
+ SessionConfig, SessionKeys, Signature, SudoConfig, SystemConfig, WASM_BINARY,
};
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
use sp_core::{sr25519, Pair, Public};
@@ -122,7 +122,10 @@ impl Alternative {
get_account_id_from_seed::("Ferdie//stash"),
get_account_id_from_seed::("George//stash"),
get_account_id_from_seed::("Harry//stash"),
- pallet_message_lane::Module::::relayer_fund_account_id(),
+ pallet_bridge_messages::Pallet::<
+ rialto_runtime::Runtime,
+ pallet_bridge_messages::DefaultInstance,
+ >::relayer_fund_account_id(),
derive_account_from_millau_id(bp_runtime::SourceAccount::Account(
get_account_id_from_seed::("Dave"),
)),
@@ -151,33 +154,28 @@ fn testnet_genesis(
_enable_println: bool,
) -> GenesisConfig {
GenesisConfig {
- frame_system: Some(SystemConfig {
+ frame_system: SystemConfig {
code: WASM_BINARY.to_vec(),
changes_trie_config: Default::default(),
- }),
- pallet_balances: Some(BalancesConfig {
+ },
+ pallet_balances: BalancesConfig {
balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 50)).collect(),
- }),
- pallet_aura: Some(AuraConfig {
+ },
+ pallet_aura: AuraConfig {
authorities: Vec::new(),
- }),
- pallet_bridge_eth_poa_Instance1: Some(load_rialto_poa_bridge_config()),
- pallet_bridge_eth_poa_Instance2: Some(load_kovan_bridge_config()),
- pallet_grandpa: Some(GrandpaConfig {
+ },
+ pallet_bridge_eth_poa_Instance1: load_rialto_poa_bridge_config(),
+ pallet_bridge_eth_poa_Instance2: load_kovan_bridge_config(),
+ pallet_grandpa: GrandpaConfig {
authorities: Vec::new(),
- }),
- pallet_substrate_bridge: Some(BridgeMillauConfig {
- // We'll initialize the pallet with a dispatchable instead.
- init_data: None,
- owner: Some(root_key.clone()),
- }),
- pallet_sudo: Some(SudoConfig { key: root_key }),
- pallet_session: Some(SessionConfig {
+ },
+ pallet_sudo: SudoConfig { key: root_key },
+ pallet_session: SessionConfig {
keys: initial_authorities
.iter()
.map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone(), x.2.clone())))
.collect::>(),
- }),
+ },
}
}
diff --git a/polkadot/bridges/bin/rialto/node/src/cli.rs b/polkadot/bridges/bin/rialto/node/src/cli.rs
index 1149c4f910..46323ed25c 100644
--- a/polkadot/bridges/bin/rialto/node/src/cli.rs
+++ b/polkadot/bridges/bin/rialto/node/src/cli.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -31,6 +31,7 @@ pub struct Cli {
pub enum Subcommand {
/// Key management cli utilities
Key(sc_cli::KeySubcommand),
+
/// Verify a signature for a message, provided on STDIN, with a given (public or secret) key.
Verify(sc_cli::VerifyCmd),
@@ -61,7 +62,9 @@ pub enum Subcommand {
/// Revert the chain to a previous state.
Revert(sc_cli::RevertCmd),
- /// The custom benchmark subcommmand benchmarking runtime pallets.
- #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]
+ /// Inspect blocks or extrinsics.
+ Inspect(node_inspect::cli::InspectCmd),
+
+ /// Benchmark runtime pallets.
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
}
diff --git a/polkadot/bridges/bin/rialto/node/src/command.rs b/polkadot/bridges/bin/rialto/node/src/command.rs
index 8242c9eaab..a9930c5741 100644
--- a/polkadot/bridges/bin/rialto/node/src/command.rs
+++ b/polkadot/bridges/bin/rialto/node/src/command.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -17,7 +17,7 @@
use crate::cli::{Cli, Subcommand};
use crate::service;
use crate::service::new_partial;
-use rialto_runtime::Block;
+use rialto_runtime::{Block, RuntimeApi};
use sc_cli::{ChainSpec, Role, RuntimeVersion, SubstrateCli};
use sc_service::PartialComponents;
@@ -153,6 +153,10 @@ pub fn run() -> sc_cli::Result<()> {
Ok((cmd.run(client, backend), task_manager))
})
}
+ Some(Subcommand::Inspect(cmd)) => {
+ let runner = cli.create_runner(cmd)?;
+ runner.sync_run(|config| cmd.run::(config))
+ }
None => {
let runner = cli.create_runner(&cli.run)?;
runner
diff --git a/polkadot/bridges/bin/rialto/node/src/main.rs b/polkadot/bridges/bin/rialto/node/src/main.rs
index 164afae2bb..f319d1437a 100644
--- a/polkadot/bridges/bin/rialto/node/src/main.rs
+++ b/polkadot/bridges/bin/rialto/node/src/main.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/rialto/node/src/service.rs b/polkadot/bridges/bin/rialto/node/src/service.rs
index 67ca185137..841202ac7b 100644
--- a/polkadot/bridges/bin/rialto/node/src/service.rs
+++ b/polkadot/bridges/bin/rialto/node/src/service.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -30,11 +30,13 @@
use rialto_runtime::{self, opaque::Block, RuntimeApi};
use sc_client_api::{ExecutorProvider, RemoteBackend};
+use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams};
use sc_executor::native_executor_instance;
pub use sc_executor::NativeExecutor;
use sc_finality_grandpa::SharedVoterState;
use sc_keystore::LocalKeystore;
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
+use sc_telemetry::{Telemetry, TelemetryWorker};
use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
use sp_inherents::InherentDataProviders;
use std::sync::Arc;
@@ -70,6 +72,7 @@ pub fn new_partial(
AuraPair,
>,
sc_finality_grandpa::LinkHalf,
+ Option,
),
>,
ServiceError,
@@ -77,12 +80,30 @@ pub fn new_partial(
if config.keystore_remote.is_some() {
return Err(ServiceError::Other("Remote Keystores are not supported.".to_string()));
}
- let inherent_data_providers = sp_inherents::InherentDataProviders::new();
+ let inherent_data_providers = InherentDataProviders::new();
- let (client, backend, keystore_container, task_manager) =
- sc_service::new_full_parts::(&config)?;
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
+ let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ )?;
let client = Arc::new(client);
+ let telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
+
let select_chain = sc_consensus::LongestChain::new(backend.clone());
let transaction_pool = sc_transaction_pool::BasicPool::new_full(
@@ -93,22 +114,28 @@ pub fn new_partial(
client.clone(),
);
- let (grandpa_block_import, grandpa_link) =
- sc_finality_grandpa::block_import(client.clone(), &(client.clone() as Arc<_>), select_chain.clone())?;
+ let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(
+ client.clone(),
+ &(client.clone() as Arc<_>),
+ select_chain.clone(),
+ telemetry.as_ref().map(|x| x.handle()),
+ )?;
let aura_block_import =
sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(grandpa_block_import.clone(), client.clone());
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- aura_block_import.clone(),
- Some(Box::new(grandpa_block_import)),
- client.clone(),
- inherent_data_providers.clone(),
- &task_manager.spawn_essential_handle(),
- config.prometheus_registry(),
- sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
- )?;
+ let import_queue = sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: aura_block_import.clone(),
+ justification_import: Some(Box::new(grandpa_block_import)),
+ client: client.clone(),
+ inherent_data_providers: inherent_data_providers.clone(),
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
Ok(sc_service::PartialComponents {
client,
@@ -119,7 +146,7 @@ pub fn new_partial(
select_chain,
transaction_pool,
inherent_data_providers,
- other: (aura_block_import, grandpa_link),
+ other: (aura_block_import, grandpa_link, telemetry),
})
}
@@ -141,7 +168,7 @@ pub fn new_full(mut config: Configuration) -> Result
select_chain,
transaction_pool,
inherent_data_providers,
- other: (block_import, grandpa_link),
+ other: (block_import, grandpa_link, mut telemetry),
} = new_partial(&config)?;
if let Some(url) = &config.keystore_remote {
@@ -173,13 +200,7 @@ pub fn new_full(mut config: Configuration) -> Result
})?;
if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config,
- backend.clone(),
- task_manager.spawn_handle(),
- client.clone(),
- network.clone(),
- );
+ sc_service::build_offchain_workers(&config, task_manager.spawn_handle(), client.clone(), network.clone());
}
let role = config.role.clone();
@@ -190,40 +211,9 @@ pub fn new_full(mut config: Configuration) -> Result
let prometheus_registry = config.prometheus_registry().cloned();
let rpc_extensions_builder = {
- use bp_message_lane::{LaneId, MessageNonce};
- use bp_runtime::{InstanceId, MILLAU_BRIDGE_INSTANCE};
use sc_finality_grandpa::FinalityProofProvider as GrandpaFinalityProofProvider;
- use sp_core::storage::StorageKey;
- // This struct is here to ease update process.
-
- /// Rialto runtime from message-lane RPC point of view.
- struct RialtoMessageLaneKeys;
-
- impl pallet_message_lane_rpc::Runtime for RialtoMessageLaneKeys {
- fn message_key(&self, instance: &InstanceId, lane: &LaneId, nonce: MessageNonce) -> Option {
- match *instance {
- MILLAU_BRIDGE_INSTANCE => Some(rialto_runtime::millau_messages::message_key(lane, nonce)),
- _ => None,
- }
- }
-
- fn outbound_lane_data_key(&self, instance: &InstanceId, lane: &LaneId) -> Option {
- match *instance {
- MILLAU_BRIDGE_INSTANCE => Some(rialto_runtime::millau_messages::outbound_lane_data_key(lane)),
- _ => None,
- }
- }
-
- fn inbound_lane_data_key(&self, instance: &InstanceId, lane: &LaneId) -> Option {
- match *instance {
- MILLAU_BRIDGE_INSTANCE => Some(rialto_runtime::millau_messages::inbound_lane_data_key(lane)),
- _ => None,
- }
- }
- }
-
- use pallet_message_lane_rpc::{MessageLaneApi, MessageLaneRpcHandler};
+ use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi};
use sc_finality_grandpa_rpc::{GrandpaApi, GrandpaRpcHandler};
use sc_rpc::DenyUnsafe;
use substrate_frame_rpc_system::{FullSystem, SystemApi};
@@ -237,7 +227,7 @@ pub fn new_full(mut config: Configuration) -> Result
let shared_voter_state = sc_finality_grandpa::SharedVoterState::empty();
let finality_proof_provider =
- GrandpaFinalityProofProvider::new_for_service(backend.clone(), Some(shared_authority_set.clone()));
+ GrandpaFinalityProofProvider::new_for_service(backend, Some(shared_authority_set.clone()));
Box::new(move |_, subscription_executor| {
let mut io = jsonrpc_core::IoHandler::default();
@@ -246,6 +236,9 @@ pub fn new_full(mut config: Configuration) -> Result
pool.clone(),
DenyUnsafe::No,
)));
+ io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(
+ client.clone(),
+ )));
io.extend_with(GrandpaApi::to_delegate(GrandpaRpcHandler::new(
shared_authority_set.clone(),
shared_voter_state.clone(),
@@ -253,16 +246,12 @@ pub fn new_full(mut config: Configuration) -> Result
subscription_executor,
finality_proof_provider.clone(),
)));
- io.extend_with(MessageLaneApi::to_delegate(MessageLaneRpcHandler::new(
- backend.clone(),
- Arc::new(RialtoMessageLaneKeys),
- )));
io
})
};
- let (_rpc_handlers, telemetry_connection_notifier) = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
+ let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
network: network.clone(),
client: client.clone(),
keystore: keystore_container.sync_keystore(),
@@ -275,32 +264,35 @@ pub fn new_full(mut config: Configuration) -> Result
network_status_sinks,
system_rpc_tx,
config,
- telemetry_span: None,
+ telemetry: telemetry.as_mut(),
})?;
if role.is_authority() {
- let proposer = sc_basic_authorship::ProposerFactory::new(
+ let proposer_factory = sc_basic_authorship::ProposerFactory::new(
task_manager.spawn_handle(),
client.clone(),
transaction_pool,
prometheus_registry.as_ref(),
+ telemetry.as_ref().map(|x| x.handle()),
);
let can_author_with = sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());
- let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- client.clone(),
+ let aura = sc_consensus_aura::start_aura::(StartAuraParams {
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ client: client.clone(),
select_chain,
block_import,
- proposer,
- network.clone(),
+ proposer_factory,
inherent_data_providers,
force_authoring,
backoff_authoring_blocks,
- keystore_container.sync_keystore(),
+ keystore: keystore_container.sync_keystore(),
can_author_with,
- )?;
+ sync_oracle: network.clone(),
+ block_proposal_slot_portion: SlotProportion::new(2f32 / 3f32),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
// the AURA authoring task is considered essential, i.e. if it
// fails we take down the service with it.
@@ -323,6 +315,7 @@ pub fn new_full(mut config: Configuration) -> Result
observer_enabled: false,
keystore,
is_authority: role.is_authority(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
if enable_grandpa {
@@ -336,10 +329,10 @@ pub fn new_full(mut config: Configuration) -> Result
config: grandpa_config,
link: grandpa_link,
network,
- telemetry_on_connect: telemetry_connection_notifier.map(|x| x.on_connect_stream()),
voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),
prometheus_registry,
shared_voter_state: SharedVoterState::empty(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
};
// the GRANDPA voter task is considered infallible, i.e.
@@ -355,8 +348,27 @@ pub fn new_full(mut config: Configuration) -> Result
/// Builds a new service for a light client.
pub fn new_light(mut config: Configuration) -> Result {
+ let telemetry = config
+ .telemetry_endpoints
+ .clone()
+ .filter(|x| !x.is_empty())
+ .map(|endpoints| -> Result<_, sc_telemetry::Error> {
+ let worker = TelemetryWorker::new(16)?;
+ let telemetry = worker.handle().new_telemetry(endpoints);
+ Ok((worker, telemetry))
+ })
+ .transpose()?;
+
let (client, backend, keystore_container, mut task_manager, on_demand) =
- sc_service::new_light_parts::(&config)?;
+ sc_service::new_light_parts::(
+ &config,
+ telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()),
+ )?;
+
+ let mut telemetry = telemetry.map(|(worker, telemetry)| {
+ task_manager.spawn_handle().spawn("telemetry", worker.run());
+ telemetry
+ });
config
.network
@@ -373,22 +385,28 @@ pub fn new_light(mut config: Configuration) -> Result
on_demand.clone(),
));
- let (grandpa_block_import, _) =
- sc_finality_grandpa::block_import(client.clone(), &(client.clone() as Arc<_>), select_chain)?;
+ let (grandpa_block_import, _) = sc_finality_grandpa::block_import(
+ client.clone(),
+ &(client.clone() as Arc<_>),
+ select_chain,
+ telemetry.as_ref().map(|x| x.handle()),
+ )?;
let aura_block_import =
sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(grandpa_block_import.clone(), client.clone());
- let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(
- sc_consensus_aura::slot_duration(&*client)?,
- aura_block_import,
- Some(Box::new(grandpa_block_import)),
- client.clone(),
- InherentDataProviders::new(),
- &task_manager.spawn_essential_handle(),
- config.prometheus_registry(),
- sp_consensus::NeverCanAuthor,
- )?;
+ let import_queue = sc_consensus_aura::import_queue::(ImportQueueParams {
+ block_import: aura_block_import,
+ justification_import: Some(Box::new(grandpa_block_import)),
+ client: client.clone(),
+ inherent_data_providers: InherentDataProviders::new(),
+ spawner: &task_manager.spawn_essential_handle(),
+ can_author_with: sp_consensus::NeverCanAuthor,
+ slot_duration: sc_consensus_aura::slot_duration(&*client)?,
+ registry: config.prometheus_registry(),
+ check_for_equivocation: Default::default(),
+ telemetry: telemetry.as_ref().map(|x| x.handle()),
+ })?;
let (network, network_status_sinks, system_rpc_tx, network_starter) =
sc_service::build_network(sc_service::BuildNetworkParams {
@@ -402,13 +420,7 @@ pub fn new_light(mut config: Configuration) -> Result
})?;
if config.offchain_worker.enabled {
- sc_service::build_offchain_workers(
- &config,
- backend.clone(),
- task_manager.spawn_handle(),
- client.clone(),
- network.clone(),
- );
+ sc_service::build_offchain_workers(&config, task_manager.spawn_handle(), client.clone(), network.clone());
}
sc_service::spawn_tasks(sc_service::SpawnTasksParams {
@@ -424,7 +436,7 @@ pub fn new_light(mut config: Configuration) -> Result
network,
network_status_sinks,
system_rpc_tx,
- telemetry_span: None,
+ telemetry: telemetry.as_mut(),
})?;
network_starter.start_network();
diff --git a/polkadot/bridges/bin/rialto/runtime/Cargo.toml b/polkadot/bridges/bin/rialto/runtime/Cargo.toml
index 517ddff9cb..ea8c51d0e8 100644
--- a/polkadot/bridges/bin/rialto/runtime/Cargo.toml
+++ b/polkadot/bridges/bin/rialto/runtime/Cargo.toml
@@ -11,7 +11,8 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
hex-literal = "0.3"
libsecp256k1 = { version = "0.3.4", optional = true, default-features = false, features = ["hmac"] }
-serde = { version = "1.0.123", optional = true, features = ["derive"] }
+log = { version = "0.4.14", default-features = false }
+serde = { version = "1.0.124", optional = true, features = ["derive"] }
# Bridge dependencies
@@ -19,17 +20,16 @@ bp-currency-exchange = { path = "../../../primitives/currency-exchange", default
bp-eth-poa = { path = "../../../primitives/ethereum-poa", default-features = false }
bp-header-chain = { path = "../../../primitives/header-chain", default-features = false }
bp-message-dispatch = { path = "../../../primitives/message-dispatch", default-features = false }
-bp-message-lane = { path = "../../../primitives/message-lane", default-features = false }
-bp-millau = { path = "../../../primitives/millau", default-features = false }
-bp-rialto = { path = "../../../primitives/rialto", default-features = false }
+bp-messages = { path = "../../../primitives/messages", default-features = false }
+bp-millau = { path = "../../../primitives/chain-millau", default-features = false }
+bp-rialto = { path = "../../../primitives/chain-rialto", default-features = false }
bp-runtime = { path = "../../../primitives/runtime", default-features = false }
bridge-runtime-common = { path = "../../runtime-common", default-features = false }
-pallet-bridge-eth-poa = { path = "../../../modules/ethereum", default-features = false }
-pallet-bridge-call-dispatch = { path = "../../../modules/call-dispatch", default-features = false }
pallet-bridge-currency-exchange = { path = "../../../modules/currency-exchange", default-features = false }
-pallet-finality-verifier = { path = "../../../modules/finality-verifier", default-features = false }
-pallet-substrate-bridge = { path = "../../../modules/substrate", default-features = false }
-pallet-message-lane = { path = "../../../modules/message-lane", default-features = false }
+pallet-bridge-dispatch = { path = "../../../modules/dispatch", default-features = false }
+pallet-bridge-eth-poa = { path = "../../../modules/ethereum", default-features = false }
+pallet-bridge-grandpa = { path = "../../../modules/grandpa", default-features = false }
+pallet-bridge-messages = { path = "../../../modules/messages", default-features = false }
pallet-shift-session-manager = { path = "../../../modules/shift-session-manager", default-features = false }
# Substrate Dependencies
@@ -47,6 +47,7 @@ pallet-session = { git = "https://github.com/paritytech/substrate", branch = "ma
pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
+pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
@@ -62,6 +63,7 @@ sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch
sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
sp-version = { git = "https://github.com/paritytech/substrate", branch = "master" , default-features = false }
+
[dev-dependencies]
libsecp256k1 = { version = "0.3.4", features = ["hmac"] }
@@ -75,7 +77,7 @@ std = [
"bp-eth-poa/std",
"bp-header-chain/std",
"bp-message-dispatch/std",
- "bp-message-lane/std",
+ "bp-messages/std",
"bp-millau/std",
"bp-rialto/std",
"bp-runtime/std",
@@ -86,19 +88,20 @@ std = [
"frame-support/std",
"frame-system-rpc-runtime-api/std",
"frame-system/std",
+ "log/std",
"pallet-aura/std",
"pallet-balances/std",
- "pallet-bridge-eth-poa/std",
- "pallet-bridge-call-dispatch/std",
"pallet-bridge-currency-exchange/std",
- "pallet-finality-verifier/std",
+ "pallet-bridge-dispatch/std",
+ "pallet-bridge-eth-poa/std",
+ "pallet-bridge-grandpa/std",
+ "pallet-bridge-messages/std",
"pallet-grandpa/std",
- "pallet-message-lane/std",
"pallet-randomness-collective-flip/std",
"pallet-shift-session-manager/std",
- "pallet-substrate-bridge/std",
"pallet-sudo/std",
"pallet-timestamp/std",
+ "pallet-transaction-payment-rpc-runtime-api/std",
"pallet-transaction-payment/std",
"serde",
"sp-api/std",
@@ -124,6 +127,6 @@ runtime-benchmarks = [
"libsecp256k1",
"pallet-bridge-currency-exchange/runtime-benchmarks",
"pallet-bridge-eth-poa/runtime-benchmarks",
- "pallet-message-lane/runtime-benchmarks",
+ "pallet-bridge-messages/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
]
diff --git a/polkadot/bridges/bin/rialto/runtime/build.rs b/polkadot/bridges/bin/rialto/runtime/build.rs
index 4fda040c9b..dcb5cb0621 100644
--- a/polkadot/bridges/bin/rialto/runtime/build.rs
+++ b/polkadot/bridges/bin/rialto/runtime/build.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/rialto/runtime/src/benches.rs b/polkadot/bridges/bin/rialto/runtime/src/benches.rs
index 4ca476e5f3..86d6b8361c 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/benches.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/benches.rs
@@ -1,4 +1,4 @@
-// Copyright 2020 Parity Technologies (UK) Ltd.
+// Copyright 2020-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/rialto/runtime/src/exchange.rs b/polkadot/bridges/bin/rialto/runtime/src/exchange.rs
index 926d959537..a054962a79 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/exchange.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/exchange.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -81,7 +81,7 @@ impl MaybeLockFundsTransaction for EthTransaction {
// we only accept transactions sending funds directly to the pre-configured address
if tx.unsigned.to != Some(LOCK_FUNDS_ADDRESS.into()) {
- frame_support::debug::trace!(
+ log::trace!(
target: "runtime",
"Failed to parse fund locks transaction. Invalid peer recipient: {:?}",
tx.unsigned.to,
@@ -94,7 +94,7 @@ impl MaybeLockFundsTransaction for EthTransaction {
match tx.unsigned.payload.len() {
32 => recipient_raw.as_fixed_bytes_mut().copy_from_slice(&tx.unsigned.payload),
len => {
- frame_support::debug::trace!(
+ log::trace!(
target: "runtime",
"Failed to parse fund locks transaction. Invalid recipient length: {}",
len,
@@ -106,7 +106,7 @@ impl MaybeLockFundsTransaction for EthTransaction {
let amount = tx.unsigned.value.low_u128();
if tx.unsigned.value != amount.into() {
- frame_support::debug::trace!(
+ log::trace!(
target: "runtime",
"Failed to parse fund locks transaction. Invalid amount: {}",
tx.unsigned.value,
diff --git a/polkadot/bridges/bin/rialto/runtime/src/kovan.rs b/polkadot/bridges/bin/rialto/runtime/src/kovan.rs
index fa76347db2..03b0ca8a07 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/kovan.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/kovan.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/rialto/runtime/src/lib.rs b/polkadot/bridges/bin/rialto/runtime/src/lib.rs
index 033e4f9f59..4e81d3efb1 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/lib.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -43,6 +43,7 @@ use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge};
use bridge_runtime_common::messages::{source::estimate_message_dispatch_and_delivery_fee, MessageBridge};
use codec::Decode;
use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList};
+use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
use sp_api::impl_runtime_apis;
use sp_consensus_aura::sr25519::AuthorityId as AuraId;
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
@@ -69,8 +70,8 @@ pub use frame_system::Call as SystemCall;
pub use pallet_balances::Call as BalancesCall;
pub use pallet_bridge_currency_exchange::Call as BridgeCurrencyExchangeCall;
pub use pallet_bridge_eth_poa::Call as BridgeEthPoACall;
-pub use pallet_message_lane::Call as MessageLaneCall;
-pub use pallet_substrate_bridge::Call as BridgeMillauCall;
+pub use pallet_bridge_grandpa::Call as BridgeGrandpaMillauCall;
+pub use pallet_bridge_messages::Call as MessagesCall;
pub use pallet_sudo::Call as SudoCall;
pub use pallet_timestamp::Call as TimestampCall;
@@ -207,6 +208,7 @@ impl frame_system::Config for Runtime {
type DbWeight = DbWeight;
/// The designated SS58 prefix of this chain.
type SS58Prefix = SS58Prefix;
+ /// The set code logic, just the default since we're not a parachain.
type OnSetCode = ();
}
@@ -256,9 +258,9 @@ impl pallet_bridge_currency_exchange::Config for Runtime
type DepositInto = DepositInto;
}
-impl pallet_bridge_call_dispatch::Config for Runtime {
+impl pallet_bridge_dispatch::Config for Runtime {
type Event = Event;
- type MessageId = (bp_message_lane::LaneId, bp_message_lane::MessageNonce);
+ type MessageId = (bp_messages::LaneId, bp_messages::MessageNonce);
type Call = Call;
type CallFilter = ();
type EncodedCall = crate::millau_messages::FromMillauEncodedCall;
@@ -290,7 +292,7 @@ impl bp_currency_exchange::DepositInto for DepositInto {
// - deposited != 0: (should never happen in practice) deposit has been partially completed
match deposited_amount {
_ if deposited_amount == amount => {
- frame_support::debug::trace!(
+ log::trace!(
target: "runtime",
"Deposited {} to {:?}",
amount,
@@ -300,7 +302,7 @@ impl bp_currency_exchange::DepositInto for DepositInto {
Ok(())
}
_ if deposited_amount == 0 => {
- frame_support::debug::error!(
+ log::error!(
target: "runtime",
"Deposit of {} to {:?} has failed",
amount,
@@ -310,7 +312,7 @@ impl bp_currency_exchange::DepositInto for DepositInto {
Err(bp_currency_exchange::Error::DepositFailed)
}
_ => {
- frame_support::debug::error!(
+ log::error!(
target: "runtime",
"Deposit of {} to {:?} has partially competed. {} has been deposited",
amount,
@@ -398,7 +400,7 @@ impl pallet_session::Config for Runtime {
type ValidatorIdOf = ();
type ShouldEndSession = pallet_session::PeriodicSessions;
type NextSessionRotation = pallet_session::PeriodicSessions;
- type SessionManager = pallet_shift_session_manager::Module;
+ type SessionManager = pallet_shift_session_manager::Pallet;
type SessionHandler = ::KeyTypeIdProviders;
type Keys = SessionKeys;
type DisabledValidatorsThreshold = ();
@@ -406,33 +408,34 @@ impl pallet_session::Config for Runtime {
type WeightInfo = ();
}
-impl pallet_substrate_bridge::Config for Runtime {
- type BridgedChain = bp_millau::Millau;
-}
-
parameter_types! {
// This is a pretty unscientific cap.
//
// Note that once this is hit the pallet will essentially throttle incoming requests down to one
// call per block.
pub const MaxRequests: u32 = 50;
+
+ // Number of headers to keep.
+ //
+ // Assuming the worst case of every header being finalized, we will keep headers at least for a
+ // week.
+ pub const HeadersToKeep: u32 = 7 * bp_rialto::DAYS as u32;
}
-impl pallet_finality_verifier::Config for Runtime {
+impl pallet_bridge_grandpa::Config for Runtime {
type BridgedChain = bp_millau::Millau;
- type HeaderChain = pallet_substrate_bridge::Module;
- type AncestryProof = Vec;
- type AncestryChecker = bp_header_chain::LinearAncestryChecker;
type MaxRequests = MaxRequests;
+ type HeadersToKeep = HeadersToKeep;
+ type WeightInfo = pallet_bridge_grandpa::weights::RialtoWeight;
}
impl pallet_shift_session_manager::Config for Runtime {}
parameter_types! {
- pub const MaxMessagesToPruneAtOnce: bp_message_lane::MessageNonce = 8;
- pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_message_lane::MessageNonce =
+ pub const MaxMessagesToPruneAtOnce: bp_messages::MessageNonce = 8;
+ pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce =
bp_rialto::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE;
- pub const MaxUnconfirmedMessagesAtInboundLane: bp_message_lane::MessageNonce =
+ pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce =
bp_rialto::MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE;
// `IdentityFee` is used by Rialto => we may use weight directly
pub const GetDeliveryConfirmationTransactionFee: Balance =
@@ -440,11 +443,13 @@ parameter_types! {
pub const RootAccountForPayments: Option = None;
}
-pub(crate) type WithMillauMessageLaneInstance = pallet_message_lane::DefaultInstance;
-impl pallet_message_lane::Config for Runtime {
+/// Instance of the messages pallet used to relay messages to/from Millau chain.
+pub type WithMillauMessagesInstance = pallet_bridge_messages::DefaultInstance;
+
+impl pallet_bridge_messages::Config for Runtime {
type Event = Event;
- type WeightInfo = pallet_message_lane::weights::RialtoWeight;
- type Parameter = millau_messages::RialtoToMillauMessageLaneParameter;
+ type WeightInfo = pallet_bridge_messages::weights::RialtoWeight;
+ type Parameter = millau_messages::RialtoToMillauMessagesParameter;
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane;
@@ -460,7 +465,7 @@ impl pallet_message_lane::Config for Runtime {
type TargetHeaderChain = crate::millau_messages::Millau;
type LaneMessageVerifier = crate::millau_messages::ToMillauMessageVerifier;
- type MessageDeliveryAndDispatchPayment = pallet_message_lane::instant_payments::InstantCurrencyPayments<
+ type MessageDeliveryAndDispatchPayment = pallet_bridge_messages::instant_payments::InstantCurrencyPayments<
Runtime,
pallet_balances::Pallet,
GetDeliveryConfirmationTransactionFee,
@@ -481,10 +486,9 @@ construct_runtime!(
BridgeKovan: pallet_bridge_eth_poa::::{Pallet, Call, Config, Storage, ValidateUnsigned},
BridgeRialtoCurrencyExchange: pallet_bridge_currency_exchange::::{Pallet, Call},
BridgeKovanCurrencyExchange: pallet_bridge_currency_exchange::::{Pallet, Call},
- BridgeMillau: pallet_substrate_bridge::{Pallet, Call, Storage, Config},
- BridgeFinalityVerifier: pallet_finality_verifier::{Pallet, Call},
- BridgeCallDispatch: pallet_bridge_call_dispatch::{Pallet, Event},
- BridgeMillauMessageLane: pallet_message_lane::{Pallet, Call, Storage, Event},
+ BridgeMillauGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage},
+ BridgeDispatch: pallet_bridge_dispatch::{Pallet, Event},
+ BridgeMillauMessages: pallet_bridge_messages::{Pallet, Call, Storage, Event},
System: frame_system::{Pallet, Call, Config, Storage, Event},
RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage},
Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent},
@@ -522,6 +526,8 @@ pub type SignedExtra = (
pub type SignedPayload = generic::SignedPayload;
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic;
+/// Extrinsic type that has already been checked.
+pub type CheckedExtrinsic = generic::CheckedExtrinsic;
/// Executive: handles dispatch to the various modules.
pub type Executive =
frame_executive::Executive, Runtime, AllPallets>;
@@ -533,7 +539,7 @@ impl_runtime_apis! {
}
fn execute_block(block: Block) {
- Executive::execute_block(block)
+ Executive::execute_block(block);
}
fn initialize_block(header: &::Header) {
@@ -618,26 +624,14 @@ impl_runtime_apis! {
}
}
- impl bp_millau::MillauHeaderApi for Runtime {
- fn best_blocks() -> Vec<(bp_millau::BlockNumber, bp_millau::Hash)> {
- BridgeMillau::best_headers()
- }
-
- fn finalized_block() -> (bp_millau::BlockNumber, bp_millau::Hash) {
- let header = BridgeMillau::best_finalized();
+ impl bp_millau::MillauFinalityApi for Runtime {
+ fn best_finalized() -> (bp_millau::BlockNumber, bp_millau::Hash) {
+ let header = BridgeMillauGrandpa::best_finalized();
(header.number, header.hash())
}
- fn incomplete_headers() -> Vec<(bp_millau::BlockNumber, bp_millau::Hash)> {
- BridgeMillau::require_justifications()
- }
-
- fn is_known_block(hash: bp_millau::Hash) -> bool {
- BridgeMillau::is_known_header(hash)
- }
-
- fn is_finalized_block(hash: bp_millau::Hash) -> bool {
- BridgeMillau::is_finalized_header(hash)
+ fn is_known_header(hash: bp_millau::Hash) -> bool {
+ BridgeMillauGrandpa::is_known_header(hash)
}
}
@@ -669,8 +663,8 @@ impl_runtime_apis! {
}
impl sp_consensus_aura::AuraApi for Runtime {
- fn slot_duration() -> u64 {
- Aura::slot_duration()
+ fn slot_duration() -> sp_consensus_aura::SlotDuration {
+ sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration())
}
fn authorities() -> Vec {
@@ -678,6 +672,18 @@ impl_runtime_apis! {
}
}
+ impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi<
+ Block,
+ Balance,
+ > for Runtime {
+ fn query_info(uxt: ::Extrinsic, len: u32) -> RuntimeDispatchInfo {
+ TransactionPayment::query_info(uxt, len)
+ }
+ fn query_fee_details(uxt: ::Extrinsic, len: u32) -> FeeDetails {
+ TransactionPayment::query_fee_details(uxt, len)
+ }
+ }
+
impl sp_session::SessionKeys for Runtime {
fn generate_session_keys(seed: Option>) -> Vec {
SessionKeys::generate(seed)
@@ -723,7 +729,7 @@ impl_runtime_apis! {
impl bp_millau::ToMillauOutboundLaneApi for Runtime {
fn estimate_message_delivery_and_dispatch_fee(
- _lane_id: bp_message_lane::LaneId,
+ _lane_id: bp_messages::LaneId,
payload: ToMillauMessagePayload,
) -> Option {
estimate_message_dispatch_and_delivery_fee::(
@@ -733,12 +739,12 @@ impl_runtime_apis! {
}
fn messages_dispatch_weight(
- lane: bp_message_lane::LaneId,
- begin: bp_message_lane::MessageNonce,
- end: bp_message_lane::MessageNonce,
- ) -> Vec<(bp_message_lane::MessageNonce, Weight, u32)> {
+ lane: bp_messages::LaneId,
+ begin: bp_messages::MessageNonce,
+ end: bp_messages::MessageNonce,
+ ) -> Vec<(bp_messages::MessageNonce, Weight, u32)> {
(begin..=end).filter_map(|nonce| {
- let encoded_payload = BridgeMillauMessageLane::outbound_message_payload(lane, nonce)?;
+ let encoded_payload = BridgeMillauMessages::outbound_message_payload(lane, nonce)?;
let decoded_payload = millau_messages::ToMillauMessagePayload::decode(
&mut &encoded_payload[..]
).ok()?;
@@ -747,26 +753,26 @@ impl_runtime_apis! {
.collect()
}
- fn latest_received_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeMillauMessageLane::outbound_latest_received_nonce(lane)
+ fn latest_received_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeMillauMessages::outbound_latest_received_nonce(lane)
}
- fn latest_generated_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeMillauMessageLane::outbound_latest_generated_nonce(lane)
+ fn latest_generated_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeMillauMessages::outbound_latest_generated_nonce(lane)
}
}
impl bp_millau::FromMillauInboundLaneApi for Runtime {
- fn latest_received_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeMillauMessageLane::inbound_latest_received_nonce(lane)
+ fn latest_received_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeMillauMessages::inbound_latest_received_nonce(lane)
}
- fn latest_confirmed_nonce(lane: bp_message_lane::LaneId) -> bp_message_lane::MessageNonce {
- BridgeMillauMessageLane::inbound_latest_confirmed_nonce(lane)
+ fn latest_confirmed_nonce(lane: bp_messages::LaneId) -> bp_messages::MessageNonce {
+ BridgeMillauMessages::inbound_latest_confirmed_nonce(lane)
}
- fn unrewarded_relayers_state(lane: bp_message_lane::LaneId) -> bp_message_lane::UnrewardedRelayersState {
- BridgeMillauMessageLane::inbound_unrewarded_relayers_state(lane)
+ fn unrewarded_relayers_state(lane: bp_messages::LaneId) -> bp_messages::UnrewardedRelayersState {
+ BridgeMillauMessages::inbound_unrewarded_relayers_state(lane)
}
}
@@ -776,6 +782,7 @@ impl_runtime_apis! {
config: frame_benchmarking::BenchmarkConfig,
) -> Result, sp_runtime::RuntimeString> {
use frame_benchmarking::{Benchmarking, BenchmarkBatch, TrackedStorageKey, add_benchmark};
+
let whitelist: Vec = vec![
// Block Number
hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(),
@@ -793,7 +800,7 @@ impl_runtime_apis! {
let params = (&config, &whitelist);
use pallet_bridge_currency_exchange::benchmarking::{
- Module as BridgeCurrencyExchangeBench,
+ Pallet as BridgeCurrencyExchangeBench,
Config as BridgeCurrencyExchangeConfig,
ProofParams as BridgeCurrencyExchangeProofParams,
};
@@ -834,16 +841,16 @@ impl_runtime_apis! {
use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge};
use bridge_runtime_common::messages;
- use pallet_message_lane::benchmarking::{
- Module as MessageLaneBench,
- Config as MessageLaneConfig,
- MessageDeliveryProofParams as MessageLaneMessageDeliveryProofParams,
- MessageParams as MessageLaneMessageParams,
- MessageProofParams as MessageLaneMessageProofParams,
- ProofSize as MessageLaneProofSize,
+ use pallet_bridge_messages::benchmarking::{
+ Pallet as MessagesBench,
+ Config as MessagesConfig,
+ MessageDeliveryProofParams,
+ MessageParams,
+ MessageProofParams,
+ ProofSize as MessagesProofSize,
};
- impl MessageLaneConfig for Runtime {
+ impl MessagesConfig for Runtime {
fn maximal_message_size() -> u32 {
messages::source::maximal_message_size::()
}
@@ -864,10 +871,10 @@ impl_runtime_apis! {
}
fn prepare_outbound_message(
- params: MessageLaneMessageParams,
+ params: MessageParams,
) -> (millau_messages::ToMillauMessagePayload, Balance) {
let message_payload = vec![0; params.size as usize];
- let dispatch_origin = pallet_bridge_call_dispatch::CallOrigin::SourceAccount(
+ let dispatch_origin = pallet_bridge_dispatch::CallOrigin::SourceAccount(
params.sender_account,
);
@@ -877,25 +884,25 @@ impl_runtime_apis! {
origin: dispatch_origin,
call: message_payload,
};
- (message, pallet_message_lane::benchmarking::MESSAGE_FEE.into())
+ (message, pallet_bridge_messages::benchmarking::MESSAGE_FEE.into())
}
fn prepare_message_proof(
- params: MessageLaneMessageProofParams,
+ params: MessageProofParams,
) -> (millau_messages::FromMillauMessagesProof, Weight) {
use crate::millau_messages::{Millau, WithMillauMessageBridge};
- use bp_message_lane::MessageKey;
+ use bp_messages::MessageKey;
use bridge_runtime_common::{
- messages::ChainWithMessageLanes,
+ messages::ChainWithMessages,
messages_benchmarking::{ed25519_sign, prepare_message_proof},
};
use codec::Encode;
use frame_support::weights::GetDispatchInfo;
- use pallet_message_lane::storage_keys;
+ use pallet_bridge_messages::storage_keys;
use sp_runtime::traits::Header;
let remark = match params.size {
- MessageLaneProofSize::Minimal(ref size) => vec![0u8; *size as _],
+ MessagesProofSize::Minimal(ref size) => vec![0u8; *size as _],
_ => vec![],
};
let call = Call::System(SystemCall::remark(remark));
@@ -913,15 +920,16 @@ impl_runtime_apis! {
let make_millau_message_key = |message_key: MessageKey| storage_keys::message_key::<
Runtime,
- ::MessageLaneInstance,
+ ::MessagesInstance,
>(
&message_key.lane_id, message_key.nonce,
).0;
let make_millau_outbound_lane_data_key = |lane_id| storage_keys::outbound_lane_data_key::<
- ::MessageLaneInstance,
+ ::MessagesInstance,
>(
&lane_id,
).0;
+
let make_millau_header = |state_root| bp_millau::Header::new(
0,
Default::default(),
@@ -930,16 +938,16 @@ impl_runtime_apis! {
Default::default(),
);
- prepare_message_proof::(
+ prepare_message_proof::(
params,
make_millau_message_key,
make_millau_outbound_lane_data_key,
make_millau_header,
call_weight,
- pallet_bridge_call_dispatch::MessagePayload {
+ pallet_bridge_dispatch::MessagePayload {
spec_version: VERSION.spec_version,
weight: call_weight,
- origin: pallet_bridge_call_dispatch::CallOrigin::<
+ origin: pallet_bridge_dispatch::CallOrigin::<
bp_millau::AccountId,
MultiSigner,
Signature,
@@ -954,20 +962,20 @@ impl_runtime_apis! {
}
fn prepare_message_delivery_proof(
- params: MessageLaneMessageDeliveryProofParams,
+ params: MessageDeliveryProofParams,
) -> millau_messages::ToMillauMessagesDeliveryProof {
use crate::millau_messages::{Millau, WithMillauMessageBridge};
use bridge_runtime_common::{
- messages::ChainWithMessageLanes,
+ messages::ChainWithMessages,
messages_benchmarking::prepare_message_delivery_proof,
};
use sp_runtime::traits::Header;
- prepare_message_delivery_proof::(
+ prepare_message_delivery_proof::(
params,
- |lane_id| pallet_message_lane::storage_keys::inbound_lane_data_key::<
+ |lane_id| pallet_bridge_messages::storage_keys::inbound_lane_data_key::<
Runtime,
- ::MessageLaneInstance,
+ ::MessagesInstance,
>(
&lane_id,
).0,
@@ -982,7 +990,6 @@ impl_runtime_apis! {
}
}
- add_benchmark!(params, batches, pallet_bridge_eth_poa, BridgeKovan);
add_benchmark!(
params,
batches,
@@ -992,9 +999,10 @@ impl_runtime_apis! {
add_benchmark!(
params,
batches,
- pallet_message_lane,
- MessageLaneBench::
+ pallet_bridge_messages,
+ MessagesBench::
);
+ add_benchmark!(params, batches, pallet_bridge_grandpa, BridgeMillauGrandpa);
if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
Ok(batches)
@@ -1017,7 +1025,7 @@ where
AccountId: codec::Encode,
SpecVersion: codec::Encode,
{
- pallet_bridge_call_dispatch::account_ownership_digest(
+ pallet_bridge_dispatch::account_ownership_digest(
millau_call,
rialto_account_id,
millau_spec_version,
@@ -1068,9 +1076,9 @@ mod tests {
#[test]
fn ensure_rialto_message_lane_weights_are_correct() {
- type Weights = pallet_message_lane::weights::RialtoWeight;
+ type Weights = pallet_bridge_messages::weights::RialtoWeight;
- pallet_message_lane::ensure_weights_are_correct::(
+ pallet_bridge_messages::ensure_weights_are_correct::(
bp_rialto::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT,
bp_rialto::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT,
bp_rialto::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
@@ -1079,34 +1087,24 @@ mod tests {
let max_incoming_message_proof_size = bp_millau::EXTRA_STORAGE_PROOF_SIZE.saturating_add(
messages::target::maximal_incoming_message_size(bp_rialto::max_extrinsic_size()),
);
- pallet_message_lane::ensure_able_to_receive_message::(
+ pallet_bridge_messages::ensure_able_to_receive_message::(
bp_rialto::max_extrinsic_size(),
bp_rialto::max_extrinsic_weight(),
max_incoming_message_proof_size,
- bridge_runtime_common::messages::transaction_weight_without_multiplier(
- bp_rialto::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- max_incoming_message_proof_size as _,
- 0,
- ),
messages::target::maximal_incoming_message_dispatch_weight(bp_rialto::max_extrinsic_weight()),
);
- let max_incoming_inbound_lane_data_proof_size = bp_message_lane::InboundLaneData::<()>::encoded_size_hint(
+ let max_incoming_inbound_lane_data_proof_size = bp_messages::InboundLaneData::<()>::encoded_size_hint(
bp_rialto::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE,
bp_millau::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE as _,
)
.unwrap_or(u32::MAX);
- pallet_message_lane::ensure_able_to_receive_confirmation::(
+ pallet_bridge_messages::ensure_able_to_receive_confirmation::(
bp_rialto::max_extrinsic_size(),
bp_rialto::max_extrinsic_weight(),
max_incoming_inbound_lane_data_proof_size,
bp_millau::MAX_UNREWARDED_RELAYER_ENTRIES_AT_INBOUND_LANE,
bp_millau::MAX_UNCONFIRMED_MESSAGES_AT_INBOUND_LANE,
- bridge_runtime_common::messages::transaction_weight_without_multiplier(
- bp_rialto::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- max_incoming_inbound_lane_data_proof_size as _,
- 0,
- ),
);
}
diff --git a/polkadot/bridges/bin/rialto/runtime/src/millau_messages.rs b/polkadot/bridges/bin/rialto/runtime/src/millau_messages.rs
index 9fb57ee861..8ee2094660 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/millau_messages.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/millau_messages.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -14,52 +14,32 @@
// You should have received a copy of the GNU General Public License
// along with Parity Bridges Common. If not, see .
-//! Everything required to serve Millau <-> Rialto message lanes.
+//! Everything required to serve Millau <-> Rialto messages.
use crate::Runtime;
-use bp_message_lane::{
+use bp_messages::{
source_chain::TargetHeaderChain,
target_chain::{ProvedMessages, SourceHeaderChain},
- InboundLaneData, LaneId, Message, MessageNonce, Parameter as MessageLaneParameter,
+ InboundLaneData, LaneId, Message, MessageNonce, Parameter as MessagesParameter,
};
use bp_runtime::{InstanceId, MILLAU_BRIDGE_INSTANCE};
-use bridge_runtime_common::messages::{self, ChainWithMessageLanes, MessageBridge};
+use bridge_runtime_common::messages::{self, MessageBridge, MessageTransaction};
use codec::{Decode, Encode};
use frame_support::{
parameter_types,
- weights::{DispatchClass, Weight, WeightToFeePolynomial},
+ weights::{DispatchClass, Weight},
RuntimeDebug,
};
-use sp_core::storage::StorageKey;
use sp_runtime::{FixedPointNumber, FixedU128};
use sp_std::{convert::TryFrom, ops::RangeInclusive};
+/// Initial value of `MillauToRialtoConversionRate` parameter.
+pub const INITIAL_MILLAU_TO_RIALTO_CONVERSION_RATE: FixedU128 = FixedU128::from_inner(FixedU128::DIV);
+
parameter_types! {
/// Millau to Rialto conversion rate. Initially we treat both tokens as equal.
- storage MillauToRialtoConversionRate: FixedU128 = 1.into();
-}
-
-/// Storage key of the Rialto -> Millau message in the runtime storage.
-pub fn message_key(lane: &LaneId, nonce: MessageNonce) -> StorageKey {
- pallet_message_lane::storage_keys::message_key::::MessageLaneInstance>(
- lane, nonce,
- )
-}
-
-/// Storage key of the Rialto -> Millau message lane state in the runtime storage.
-pub fn outbound_lane_data_key(lane: &LaneId) -> StorageKey {
- pallet_message_lane::storage_keys::outbound_lane_data_key::<::MessageLaneInstance>(
- lane,
- )
-}
-
-/// Storage key of the Millau -> Rialto message lane state in the runtime storage.
-pub fn inbound_lane_data_key(lane: &LaneId) -> StorageKey {
- pallet_message_lane::storage_keys::inbound_lane_data_key::<
- Runtime,
- ::MessageLaneInstance,
- >(lane)
+ pub storage MillauToRialtoConversionRate: FixedU128 = INITIAL_MILLAU_TO_RIALTO_CONVERSION_RATE;
}
/// Message payload for Rialto -> Millau messages.
@@ -78,7 +58,7 @@ pub type FromMillauEncodedCall = messages::target::FromBridgedChainEncodedMessag
pub type FromMillauMessageDispatch = messages::target::FromBridgedChainMessageDispatch<
WithMillauMessageBridge,
crate::Runtime,
- pallet_bridge_call_dispatch::DefaultInstance,
+ pallet_bridge_dispatch::DefaultInstance,
>;
/// Messages proof for Millau -> Rialto messages.
@@ -99,59 +79,6 @@ impl MessageBridge for WithMillauMessageBridge {
type ThisChain = Rialto;
type BridgedChain = Millau;
- fn maximal_extrinsic_size_on_target_chain() -> u32 {
- bp_millau::max_extrinsic_size()
- }
-
- fn weight_limits_of_message_on_bridged_chain(_message_payload: &[u8]) -> RangeInclusive {
- // we don't want to relay too large messages + keep reserve for future upgrades
- let upper_limit = messages::target::maximal_incoming_message_dispatch_weight(bp_millau::max_extrinsic_weight());
-
- // we're charging for payload bytes in `WithMillauMessageBridge::weight_of_delivery_transaction` function
- //
- // this bridge may be used to deliver all kind of messages, so we're not making any assumptions about
- // minimal dispatch weight here
-
- 0..=upper_limit
- }
-
- fn weight_of_delivery_transaction(message_payload: &[u8]) -> Weight {
- let message_payload_len = u32::try_from(message_payload.len())
- .map(Into::into)
- .unwrap_or(Weight::MAX);
- let extra_bytes_in_payload =
- message_payload_len.saturating_sub(pallet_message_lane::EXPECTED_DEFAULT_MESSAGE_LENGTH.into());
- messages::transaction_weight_without_multiplier(
- bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- message_payload_len.saturating_add(bp_rialto::EXTRA_STORAGE_PROOF_SIZE as _),
- extra_bytes_in_payload
- .saturating_mul(bp_millau::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
- .saturating_add(bp_millau::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT),
- )
- }
-
- fn weight_of_delivery_confirmation_transaction_on_this_chain() -> Weight {
- let inbounded_data_size: Weight =
- InboundLaneData::::encoded_size_hint(bp_millau::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE, 1)
- .map(Into::into)
- .unwrap_or(Weight::MAX);
-
- messages::transaction_weight_without_multiplier(
- bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
- inbounded_data_size.saturating_add(bp_millau::EXTRA_STORAGE_PROOF_SIZE as _),
- bp_rialto::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
- )
- }
-
- fn this_weight_to_this_balance(weight: Weight) -> bp_rialto::Balance {
- ::WeightToFee::calc(&weight)
- }
-
- fn bridged_weight_to_bridged_balance(weight: Weight) -> bp_millau::Balance {
- // we're using the same weights in both chains now
- ::WeightToFee::calc(&weight) as _
- }
-
fn bridged_balance_to_this_balance(bridged_balance: bp_millau::Balance) -> bp_rialto::Balance {
bp_rialto::Balance::try_from(MillauToRialtoConversionRate::get().saturating_mul_int(bridged_balance))
.unwrap_or(bp_rialto::Balance::MAX)
@@ -162,42 +89,114 @@ impl MessageBridge for WithMillauMessageBridge {
#[derive(RuntimeDebug, Clone, Copy)]
pub struct Rialto;
-impl messages::ChainWithMessageLanes for Rialto {
+impl messages::ChainWithMessages for Rialto {
type Hash = bp_rialto::Hash;
type AccountId = bp_rialto::AccountId;
type Signer = bp_rialto::AccountSigner;
type Signature = bp_rialto::Signature;
- type Call = crate::Call;
type Weight = Weight;
type Balance = bp_rialto::Balance;
- type MessageLaneInstance = crate::WithMillauMessageLaneInstance;
+ type MessagesInstance = crate::WithMillauMessagesInstance;
}
-impl messages::ThisChainWithMessageLanes for Rialto {
+impl messages::ThisChainWithMessages for Rialto {
+ type Call = crate::Call;
+
fn is_outbound_lane_enabled(lane: &LaneId) -> bool {
- *lane == LaneId::default()
+ *lane == [0, 0, 0, 0] || *lane == [0, 0, 0, 1]
}
fn maximal_pending_messages_at_outbound_lane() -> MessageNonce {
MessageNonce::MAX
}
+
+ fn estimate_delivery_confirmation_transaction() -> MessageTransaction {
+ let inbound_data_size =
+ InboundLaneData::::encoded_size_hint(bp_rialto::MAXIMAL_ENCODED_ACCOUNT_ID_SIZE, 1)
+ .unwrap_or(u32::MAX);
+
+ MessageTransaction {
+ dispatch_weight: bp_rialto::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT,
+ size: inbound_data_size
+ .saturating_add(bp_millau::EXTRA_STORAGE_PROOF_SIZE)
+ .saturating_add(bp_rialto::TX_EXTRA_BYTES),
+ }
+ }
+
+ fn transaction_payment(transaction: MessageTransaction) -> bp_rialto::Balance {
+ // in our testnets, both per-byte fee and weight-to-fee are 1:1
+ messages::transaction_payment(
+ bp_rialto::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
+ 1,
+ FixedU128::zero(),
+ |weight| weight as _,
+ transaction,
+ )
+ }
}
/// Millau chain from message lane point of view.
#[derive(RuntimeDebug, Clone, Copy)]
pub struct Millau;
-impl messages::ChainWithMessageLanes for Millau {
+impl messages::ChainWithMessages for Millau {
type Hash = bp_millau::Hash;
type AccountId = bp_millau::AccountId;
type Signer = bp_millau::AccountSigner;
type Signature = bp_millau::Signature;
- type Call = (); // unknown to us
type Weight = Weight;
type Balance = bp_millau::Balance;
- type MessageLaneInstance = pallet_message_lane::DefaultInstance;
+ type MessagesInstance = pallet_bridge_messages::DefaultInstance;
+}
+
+impl messages::BridgedChainWithMessages for Millau {
+ fn maximal_extrinsic_size() -> u32 {
+ bp_millau::max_extrinsic_size()
+ }
+
+ fn message_weight_limits(_message_payload: &[u8]) -> RangeInclusive {
+ // we don't want to relay too large messages + keep reserve for future upgrades
+ let upper_limit = messages::target::maximal_incoming_message_dispatch_weight(bp_millau::max_extrinsic_weight());
+
+ // we're charging for payload bytes in `WithMillauMessageBridge::transaction_payment` function
+ //
+ // this bridge may be used to deliver all kind of messages, so we're not making any assumptions about
+ // minimal dispatch weight here
+
+ 0..=upper_limit
+ }
+
+ fn estimate_delivery_transaction(
+ message_payload: &[u8],
+ message_dispatch_weight: Weight,
+ ) -> MessageTransaction {
+ let message_payload_len = u32::try_from(message_payload.len()).unwrap_or(u32::MAX);
+ let extra_bytes_in_payload = Weight::from(message_payload_len)
+ .saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH.into());
+
+ MessageTransaction {
+ dispatch_weight: extra_bytes_in_payload
+ .saturating_mul(bp_millau::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
+ .saturating_add(bp_millau::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
+ .saturating_add(message_dispatch_weight),
+ size: message_payload_len
+ .saturating_add(bp_rialto::EXTRA_STORAGE_PROOF_SIZE)
+ .saturating_add(bp_millau::TX_EXTRA_BYTES),
+ }
+ }
+
+ fn transaction_payment(transaction: MessageTransaction) -> bp_millau::Balance {
+ // in our testnets, both per-byte fee and weight-to-fee are 1:1
+ messages::transaction_payment(
+ bp_millau::BlockWeights::get().get(DispatchClass::Normal).base_extrinsic,
+ 1,
+ FixedU128::zero(),
+ |weight| weight as _,
+ transaction,
+ )
+ }
}
impl TargetHeaderChain for Millau {
@@ -238,15 +237,15 @@ impl SourceHeaderChain for Millau {
/// Rialto -> Millau message lane pallet parameters.
#[derive(RuntimeDebug, Clone, Encode, Decode, PartialEq, Eq)]
-pub enum RialtoToMillauMessageLaneParameter {
+pub enum RialtoToMillauMessagesParameter {
/// The conversion formula we use is: `RialtoTokens = MillauTokens * conversion_rate`.
MillauToRialtoConversionRate(FixedU128),
}
-impl MessageLaneParameter for RialtoToMillauMessageLaneParameter {
+impl MessagesParameter for RialtoToMillauMessagesParameter {
fn save(&self) {
match *self {
- RialtoToMillauMessageLaneParameter::MillauToRialtoConversionRate(ref conversion_rate) => {
+ RialtoToMillauMessagesParameter::MillauToRialtoConversionRate(ref conversion_rate) => {
MillauToRialtoConversionRate::set(conversion_rate)
}
}
diff --git a/polkadot/bridges/bin/rialto/runtime/src/rialto_poa.rs b/polkadot/bridges/bin/rialto/runtime/src/rialto_poa.rs
index 54ac8e2571..83b263975a 100644
--- a/polkadot/bridges/bin/rialto/runtime/src/rialto_poa.rs
+++ b/polkadot/bridges/bin/rialto/runtime/src/rialto_poa.rs
@@ -1,4 +1,4 @@
-// Copyright 2020 Parity Technologies (UK) Ltd.
+// Copyright 2020-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/runtime-common/Cargo.toml b/polkadot/bridges/bin/runtime-common/Cargo.toml
index 69b618e7da..83803d06de 100644
--- a/polkadot/bridges/bin/runtime-common/Cargo.toml
+++ b/polkadot/bridges/bin/runtime-common/Cargo.toml
@@ -15,11 +15,11 @@ hash-db = { version = "0.15.2", default-features = false }
# Bridge dependencies
bp-message-dispatch = { path = "../../primitives/message-dispatch", default-features = false }
-bp-message-lane = { path = "../../primitives/message-lane", default-features = false }
+bp-messages = { path = "../../primitives/messages", default-features = false }
bp-runtime = { path = "../../primitives/runtime", default-features = false }
-pallet-bridge-call-dispatch = { path = "../../modules/call-dispatch", default-features = false }
-pallet-message-lane = { path = "../../modules/message-lane", default-features = false }
-pallet-substrate-bridge = { path = "../../modules/substrate", default-features = false }
+pallet-bridge-dispatch = { path = "../../modules/dispatch", default-features = false }
+pallet-bridge-grandpa = { path = "../../modules/grandpa", default-features = false }
+pallet-bridge-messages = { path = "../../modules/messages", default-features = false }
# Substrate dependencies
@@ -34,14 +34,14 @@ sp-trie = { git = "https://github.com/paritytech/substrate", branch = "master" ,
default = ["std"]
std = [
"bp-message-dispatch/std",
- "bp-message-lane/std",
+ "bp-messages/std",
"bp-runtime/std",
"codec/std",
"frame-support/std",
"hash-db/std",
- "pallet-bridge-call-dispatch/std",
- "pallet-message-lane/std",
- "pallet-substrate-bridge/std",
+ "pallet-bridge-dispatch/std",
+ "pallet-bridge-grandpa/std",
+ "pallet-bridge-messages/std",
"sp-core/std",
"sp-runtime/std",
"sp-state-machine/std",
@@ -50,7 +50,7 @@ std = [
]
runtime-benchmarks = [
"ed25519-dalek/u64_backend",
- "pallet-message-lane/runtime-benchmarks",
- "pallet-substrate-bridge/runtime-benchmarks",
+ "pallet-bridge-grandpa/runtime-benchmarks",
+ "pallet-bridge-messages/runtime-benchmarks",
"sp-state-machine",
]
diff --git a/polkadot/bridges/bin/runtime-common/README.md b/polkadot/bridges/bin/runtime-common/README.md
index 58fe92c9ca..b375f48309 100644
--- a/polkadot/bridges/bin/runtime-common/README.md
+++ b/polkadot/bridges/bin/runtime-common/README.md
@@ -1,22 +1,22 @@
-# Helpers for Message Lane Module Integration
+# Helpers for Messages Module Integration
The [`messages`](./src/messages.rs) module of this crate contains a bunch of helpers for integrating
-message lane module into your runtime. Basic prerequisites of these helpers are:
+messages module into your runtime. Basic prerequisites of these helpers are:
- we're going to bridge Substrate-based chain with another Substrate-based chain;
-- both chains have [message lane module](../../modules/message-lane/README.md), Substrate bridge
- module and the [call dispatch module](../../modules/call-dispatch/README.md);
+- both chains have [messages module](../../modules/messages/README.md), Substrate bridge
+ module and the [call dispatch module](../../modules/dispatch/README.md);
- all message lanes are identical and may be used to transfer the same messages;
- the messages sent over the bridge are dispatched using
- [call dispatch module](../../modules/call-dispatch/README.md);
-- the messages are `pallet_bridge_call_dispatch::MessagePayload` structures, where `call` field is
+ [call dispatch module](../../modules/dispatch/README.md);
+- the messages are `pallet_bridge_dispatch::MessagePayload` structures, where `call` field is
encoded `Call` of the target chain. This means that the `Call` is opaque to the
- [message lane module](../../modules/message-lane/README.md) instance at the source chain.
+ [messages module](../../modules/messages/README.md) instance at the source chain.
It is pre-encoded by the message submitter;
-- all proofs in the [message lane module](../../modules/message-lane/README.md) transactions are
+- all proofs in the [messages module](../../modules/messages/README.md) transactions are
based on the storage proofs from the bridged chain: storage proof of the outbound message (value
- from the `pallet_message_lane::Store::MessagePayload` map), storage proof of the outbound lane
- state (value from the `pallet_message_lane::Store::OutboundLanes` map) and storage proof of the
- inbound lane state (value from the `pallet_message_lane::Store::InboundLanes` map);
+ from the `pallet_bridge_messages::Store::MessagePayload` map), storage proof of the outbound lane
+ state (value from the `pallet_bridge_messages::Store::OutboundLanes` map) and storage proof of the
+ inbound lane state (value from the `pallet_bridge_messages::Store::InboundLanes` map);
- storage proofs are built at the finalized headers of the corresponding chain. So all message lane
transactions with proofs are verifying storage proofs against finalized chain headers from
Substrate bridge module.
@@ -27,23 +27,69 @@ message lane module into your runtime. Basic prerequisites of these helpers are:
## Contents
- [`MessageBridge` Trait](#messagebridge-trait)
-- [`ChainWithMessageLanes` Trait ](#chainwithmessagelanes-trait)
+- [`ChainWithMessages` Trait ](#ChainWithMessages-trait)
- [Helpers for the Source Chain](#helpers-for-the-source-chain)
- [Helpers for the Target Chain](#helpers-for-the-target-chain)
## `MessageBridge` Trait
-The essence of your integration will be a struct that implements a `MessageBridge` trait. Let's
-review every method and give some implementation hints here:
+The essence of your integration will be a struct that implements a `MessageBridge` trait. It has
+single method (`MessageBridge::bridged_balance_to_this_balance`), used to convert from bridged chain
+tokens into this chain tokens. The bridge also requires two associated types to be specified -
+`ThisChain` and `BridgedChain`.
-- `MessageBridge::maximal_extrinsic_size_on_target_chain`: you will need to return the maximal
- extrinsic size of the target chain from this function. This may be the constant that is updated
- when your runtime is upgraded, or you may use the
- [message lane parameters functionality](../../modules/message-lane/README.md#Non-Essential-Functionality)
- to allow the pallet owner to update this value more frequently (you may also want to use this
- functionality for all constants that are used in other methods described below).
+Worth to say that if you're going to use hardcoded constant (conversion rate) in the
+`MessageBridge::bridged_balance_to_this_balance` method (or in any other method of
+`ThisChainWithMessages` or `BridgedChainWithMessages` traits), then you should take a
+look at the
+[messages parameters functionality](../../modules/messages/README.md#Non-Essential-Functionality).
+They allow pallet owner to update constants more frequently than runtime upgrade happens.
-- `MessageBridge::weight_limits_of_message_on_bridged_chain`: you'll need to return a range of
+## `ChainWithMessages` Trait
+
+The trait is quite simple and can easily be implemented - you just need to specify types used at the
+corresponding chain. There is single exception, though (it may be changed in the future):
+
+- `ChainWithMessages::MessagesInstance`: this is used to compute runtime storage keys. There
+ may be several instances of messages pallet, included in the Runtime. Every instance stores
+ messages and these messages stored under different keys. When we are verifying storage proofs from
+ the bridged chain, we should know which instance we're talking to. This is fine, but there's
+ significant inconvenience with that - this chain runtime must have the same messages pallet
+ instance. This does not necessarily mean that we should use the same instance on both chains -
+ this instance may be used to bridge with another chain/instance, or may not be used at all.
+
+## `ThisChainWithMessages` Trait
+
+This trait represents this chain from bridge point of view. Let's review every method of this trait:
+
+- `ThisChainWithMessages::is_outbound_lane_enabled`: is used to check whether given lane accepts
+ outbound messages.
+
+- `ThisChainWithMessages::maximal_pending_messages_at_outbound_lane`: you should return maximal
+ number of pending (undelivered) messages from this function. Returning small values would require
+ relayers to operate faster and could make message sending logic more complicated. On the other
+ hand, returning large values could lead to chain state growth.
+
+- `ThisChainWithMessages::estimate_delivery_confirmation_transaction`: you'll need to return
+ estimated size and dispatch weight of the delivery confirmation transaction (that happens on
+ this chain) from this function.
+
+- `ThisChainWithMessages::transaction_payment`: you'll need to return fee that the submitter
+ must pay for given transaction on this chain. Normally, you would use transaction payment pallet
+ for this. However, if your chain has non-zero fee multiplier set, this would mean that the
+ payment will be computed using current value of this multiplier. But since this transaction
+ will be submitted in the future, you may want to choose other value instead. Otherwise,
+ non-altruistic relayer may choose not to submit this transaction until number of transactions
+ will decrease.
+
+## `BridgedChainWithMessages` Trait
+
+This trait represents this chain from bridge point of view. Let's review every method of this trait:
+
+- `BridgedChainWithMessages::maximal_extrinsic_size`: you will need to return the maximal
+ extrinsic size of the target chain from this function.
+
+- `MessageBridge::message_weight_limits`: you'll need to return a range of
dispatch weights that the outbound message may take at the target chain. Please keep in mind that
our helpers assume that the message is an encoded call of the target chain. But we never decode
this call at the source chain. So you can't simply get dispatch weight from pre-dispatch
@@ -55,66 +101,13 @@ review every method and give some implementation hints here:
maximal weight of extrinsic at the target chain. In our test chains, we reject all messages that
have declared dispatch weight larger than 50% of the maximal bridged extrinsic weight.
-- `MessageBridge::weight_of_delivery_transaction`: you will need to return the maximal weight of the
- delivery transaction that delivers a given message to the target chain. There are three main
- things to notice:
+- `MessageBridge::estimate_delivery_transaction`: you will need to return estimated dispatch weight and
+ size of the delivery transaction that delivers a given message to the target chain.
- 1. weight, returned from this function is then used to compute the fee that the
- message sender needs to pay for the delivery transaction. So it shall not be a simple dispatch
- weight of delivery call - it should be the "weight" of the transaction itself, including per-byte
- "weight", "weight" of signed extras and etc.
- 1. the delivery transaction brings storage proof of
- the message, not the message itself. So your transaction will include extra bytes. We suggest
- computing the size of single empty value storage proof at the source chain, increase this value a
- bit and hardcode it in the source chain runtime code. This size then must be added to the size of
- payload and included in the weight computation;
- 1. before implementing this function, please take
- a look at the
- [weight formula of delivery transaction](../../modules/message-lane/README.md#Weight-of-receive_messages_proof-call).
- It adds some extra weight for every additional byte of the proof (everything above
- `pallet_message_lane::EXPECTED_DEFAULT_MESSAGE_LENGTH`), so it's not trivial. Even better, please
- refer to [our implementation](../millau/runtime/src/rialto_messages.rs) for test chains for
- details.
-
-- `MessageBridge::weight_of_delivery_confirmation_transaction_on_this_chain`: you'll need to return
- the maximal weight of a single message delivery confirmation transaction on this chain. All points
- from the previous paragraph are also relevant here.
-
-- `MessageBridge::this_weight_to_this_balance`: this function needs to convert weight units into fee
- units on this chain. Most probably this can be done by calling
- `pallet_transaction_payment::Config::WeightToFee::calc()` for passed weight.
-
-- `MessageBridge::bridged_weight_to_bridged_balance`: this function needs to convert weight units
- into fee units on the target chain. The best case is when you have the same conversion formula on
- both chains - then you may just call the same formula from the previous paragraph. Otherwise,
- you'll need to hardcode this formula into your runtime.
-
-- `MessageBridge::bridged_balance_to_this_balance`: this may be the easiest method to implement and
- the hardest to maintain at the same time. If you don't have any automatic methods to determine
- conversion rate, then you'll probably need to maintain it by yourself (by updating conversion
- rate, stored in runtime storage). This means that if you're too late with an update, then you risk
- to accept messages with lower-than-expected fee. So it may be wise to have some reserve in this
- conversion rate, even if that means larger delivery and dispatch fees.
-
-## `ChainWithMessageLanes` Trait
-
-Apart from its methods, `MessageBridge` also has two associated types that are implementing the
-`ChainWithMessageLanes` trait. One is for this chain and the other is for the bridged chain. The
-trait is quite simple and can easily be implemented - you just need to specify types used at the
-corresponding chain. There are two exceptions, though. Both may be changed in the future. Here they
-are:
-
-- `ChainWithMessageLanes::Call`: it isn't a good idea to reference bridged chain runtime from your
- runtime (cyclic references + maintaining on upgrades). So you can't know the type of bridged chain
- call in your runtime. This type isn't actually used at this chain, so you may use `()` instead.
-
-- `ChainWithMessageLanes::MessageLaneInstance`: this is used to compute runtime storage keys. There
- may be several instances of message lane pallet, included in the Runtime. Every instance stores
- messages and these messages stored under different keys. When we are verifying storage proofs from
- the bridged chain, we should know which instance we're talking to. This is fine, but there's
- significant inconvenience with that - this chain runtime must have the same message lane pallet
- instance. This does not necessarily mean that we should use the same instance on both chains -
- this instance may be used to bridge with another chain/instance, or may not be used at all.
+- `MessageBridge::transaction_payment`: you'll need to return fee that the submitter
+ must pay for given transaction on bridged chain. The best case is when you have the same conversion
+ formula on both chains - then you may just reuse the `ThisChainWithMessages::transaction_payment`
+ implementation. Otherwise, you'll need to hardcode this formula into your runtime.
## Helpers for the Source Chain
@@ -125,10 +118,10 @@ are: `maximal_message_size`, `verify_chain_message`, `verify_messages_delivery_p
`estimate_message_dispatch_and_delivery_fee`.
`FromThisChainMessagePayload` is a message that the sender sends through our bridge. It is the
-`pallet_bridge_call_dispatch::MessagePayload`, where `call` field is encoded target chain call. So
+`pallet_bridge_dispatch::MessagePayload`, where `call` field is encoded target chain call. So
at this chain we don't see internals of this call - we just know its size.
-`FromThisChainMessageVerifier` is an implementation of `bp_message_lane::LaneMessageVerifier`. It
+`FromThisChainMessageVerifier` is an implementation of `bp_messages::LaneMessageVerifier`. It
has following checks in its `verify_message` method:
1. it'll verify that the used outbound lane is enabled in our runtime;
@@ -138,8 +131,8 @@ has following checks in its `verify_message` method:
1. it'll reject a message if it has the wrong dispatch origin declared. Like if the submitter is not
the root of this chain, but it tries to dispatch the message at the target chain using
- `pallet_bridge_call_dispatch::CallOrigin::SourceRoot` origin. Or he has provided wrong signature
- in the `pallet_bridge_call_dispatch::CallOrigin::TargetAccount` origin;
+ `pallet_bridge_dispatch::CallOrigin::SourceRoot` origin. Or he has provided wrong signature
+ in the `pallet_bridge_dispatch::CallOrigin::TargetAccount` origin;
1. it'll reject a message if the delivery and dispatch fee that the submitter wants to pay is lesser
than the fee that is computed using the `estimate_message_dispatch_and_delivery_fee` function.
@@ -174,10 +167,10 @@ The helpers for the target chain reside in the `target` submodule of the
`FromBridgedChainMessagePayload` corresponds to the `FromThisChainMessagePayload` at the bridged
chain. We expect that messages with this payload are stored in the `OutboundMessages` storage map of
-the [message lane module](../../modules/message-lane/README.md). This map is used to build
+the [messages module](../../modules/messages/README.md). This map is used to build
`FromBridgedChainMessagesProof`. The proof holds the lane id, range of message nonces included in
the proof, storage proof of `OutboundMessages` entries and the hash of bridged chain header that has
been used to build the proof. Additionally, there's storage proof may contain the proof of outbound
lane state. It may be required to prune `relayers` entries at this chain (see
-[message lane module documentation](../../modules/message-lane/README.md#What-about-other-Constants-in-the-Message-Lane-Module-Configuration-Trait)
+[messages module documentation](../../modules/messages/README.md#What-about-other-Constants-in-the-Messages-Module-Configuration-Trait)
for details). This proof is verified by the `verify_messages_proof` function.
diff --git a/polkadot/bridges/bin/runtime-common/src/lib.rs b/polkadot/bridges/bin/runtime-common/src/lib.rs
index 2842e3b659..ae7efb4a41 100644
--- a/polkadot/bridges/bin/runtime-common/src/lib.rs
+++ b/polkadot/bridges/bin/runtime-common/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
diff --git a/polkadot/bridges/bin/runtime-common/src/messages.rs b/polkadot/bridges/bin/runtime-common/src/messages.rs
index 04b2317749..8e83c0f94a 100644
--- a/polkadot/bridges/bin/runtime-common/src/messages.rs
+++ b/polkadot/bridges/bin/runtime-common/src/messages.rs
@@ -1,4 +1,4 @@
-// Copyright 2019-2020 Parity Technologies (UK) Ltd.
+// Copyright 2019-2021 Parity Technologies (UK) Ltd.
// This file is part of Parity Bridges Common.
// Parity Bridges Common is free software: you can redistribute it and/or modify
@@ -21,17 +21,19 @@
//! of to elements - message lane id and message nonce.
use bp_message_dispatch::MessageDispatch as _;
-use bp_message_lane::{
+use bp_messages::{
source_chain::{LaneMessageVerifier, Sender},
target_chain::{DispatchMessage, MessageDispatch, ProvedLaneMessages, ProvedMessages},
InboundLaneData, LaneId, Message, MessageData, MessageKey, MessageNonce, OutboundLaneData,
};
-use bp_runtime::{InstanceId, Size};
+use bp_runtime::{InstanceId, Size, StorageProofChecker};
use codec::{Decode, Encode};
use frame_support::{traits::Instance, weights::Weight, RuntimeDebug};
use hash_db::Hasher;
-use pallet_substrate_bridge::StorageProofChecker;
-use sp_runtime::traits::{CheckedAdd, CheckedDiv, CheckedMul};
+use sp_runtime::{
+ traits::{AtLeast32BitUnsigned, CheckedAdd, CheckedDiv, CheckedMul},
+ FixedPointNumber, FixedPointOperand, FixedU128,
+};
use sp_std::{cmp::PartialOrd, convert::TryFrom, fmt::Debug, marker::PhantomData, ops::RangeInclusive, vec::Vec};
use sp_trie::StorageProof;
@@ -44,44 +46,16 @@ pub trait MessageBridge {
const RELAYER_FEE_PERCENT: u32;
/// This chain in context of message bridge.
- type ThisChain: ThisChainWithMessageLanes;
+ type ThisChain: ThisChainWithMessages;
/// Bridged chain in context of message bridge.
- type BridgedChain: ChainWithMessageLanes;
+ type BridgedChain: BridgedChainWithMessages;
- /// Maximal extrinsic size on target chain.
- fn maximal_extrinsic_size_on_target_chain() -> u32;
-
- /// Returns feasible weights range for given message payload on the target chain.
- ///
- /// If message is being sent with the weight that is out of this range, then it
- /// should be rejected.
- ///
- /// Weights returned from this function shall not include transaction overhead
- /// (like weight of signature and signed extensions verification), because they're
- /// already accounted by the `weight_of_delivery_transaction`. So this function should
- /// return pure call dispatch weights range.
- fn weight_limits_of_message_on_bridged_chain(
- message_payload: &[u8],
- ) -> RangeInclusive>>;
-
- /// Maximal weight of single message delivery transaction on Bridged chain.
- fn weight_of_delivery_transaction(message_payload: &[u8]) -> WeightOf>;
-
- /// Maximal weight of single message delivery confirmation transaction on This chain.
- fn weight_of_delivery_confirmation_transaction_on_this_chain() -> WeightOf>;
-
- /// Convert weight of This chain to the fee (paid in Balance) of This chain.
- fn this_weight_to_this_balance(weight: WeightOf>) -> BalanceOf>;
-
- /// Convert weight of the Bridged chain to the fee (paid in Balance) of the Bridged chain.
- fn bridged_weight_to_bridged_balance(weight: WeightOf>) -> BalanceOf>;
-
- /// Convert Bridged chain Balance into This chain Balance.
+ /// Convert Bridged chain balance into This chain balance.
fn bridged_balance_to_this_balance(bridged_balance: BalanceOf>) -> BalanceOf>;
}
-/// Chain that has `message-lane` and `call-dispatch` modules.
-pub trait ChainWithMessageLanes {
+/// Chain that has `pallet-bridge-messages` and `dispatch` modules.
+pub trait ChainWithMessages {
/// Hash used in the chain.
type Hash: Decode;
/// Accound id on the chain.
@@ -90,8 +64,6 @@ pub trait ChainWithMessageLanes {
type Signer: Decode;
/// Signature type used on the chain.
type Signature: Decode;
- /// Call type on the chain.
- type Call: Encode + Decode;
/// Type of weight that is used on the chain. This would almost always be a regular
/// `frame_support::weight::Weight`. But since the meaning of weight on different chains
/// may be different, the `WeightOf<>` construct is used to avoid confusion between
@@ -100,58 +72,104 @@ pub trait ChainWithMessageLanes {
/// Type of balances that is used on the chain.
type Balance: Encode + Decode + CheckedAdd + CheckedDiv + CheckedMul + PartialOrd + From + Copy;
- /// Instance of the message-lane pallet.
- type MessageLaneInstance: Instance;
+ /// Instance of the `pallet-bridge-messages` pallet.
+ type MessagesInstance: Instance;
}
-/// This chain that has `message-lane` and `call-dispatch` modules.
-pub trait ThisChainWithMessageLanes: ChainWithMessageLanes {
+/// Message related transaction parameters estimation.
+#[derive(RuntimeDebug)]
+pub struct MessageTransaction {
+ /// The estimated dispatch weight of the transaction.
+ pub dispatch_weight: Weight,
+ /// The estimated size of the encoded transaction.
+ pub size: u32,
+}
+
+/// This chain that has `pallet-bridge-messages` and `dispatch` modules.
+pub trait ThisChainWithMessages: ChainWithMessages {
+ /// Call type on the chain.
+ type Call: Encode + Decode;
+
/// Are we accepting any messages to the given lane?
fn is_outbound_lane_enabled(lane: &LaneId) -> bool;
- /// Maximal number of pending (not yet delivered) messages at this chain.
+ /// Maximal number of pending (not yet delivered) messages at This chain.
///
/// Any messages over this limit, will be rejected.
fn maximal_pending_messages_at_outbound_lane() -> MessageNonce;
+
+ /// Estimate size and weight of single message delivery confirmation transaction at This chain.
+ fn estimate_delivery_confirmation_transaction() -> MessageTransaction>;
+
+ /// Returns minimal transaction fee that must be paid for given transaction at This chain.
+ fn transaction_payment(transaction: MessageTransaction>) -> BalanceOf;
+}
+
+/// Bridged chain that has `pallet-bridge-messages` and `dispatch` modules.
+pub trait BridgedChainWithMessages: ChainWithMessages {
+ /// Maximal extrinsic size at Bridged chain.
+ fn maximal_extrinsic_size() -> u32;
+
+ /// Returns feasible weights range for given message payload at the Bridged chain.
+ ///
+ /// If message is being sent with the weight that is out of this range, then it
+ /// should be rejected.
+ ///
+ /// Weights returned from this function shall not include transaction overhead
+ /// (like weight of signature and signed extensions verification), because they're
+ /// already accounted by the `weight_of_delivery_transaction`. So this function should
+ /// return pure call dispatch weights range.
+ fn message_weight_limits(message_payload: &[u8]) -> RangeInclusive;
+
+ /// Estimate size and weight of single message delivery transaction at the Bridged chain.
+ fn estimate_delivery_transaction(
+ message_payload: &[u8],
+ message_dispatch_weight: WeightOf,
+ ) -> MessageTransaction>;
+
+ /// Returns minimal transaction fee that must be paid for given transaction at the Bridged chain.
+ fn transaction_payment(transaction: MessageTransaction>) -> BalanceOf;
}
pub(crate) type ThisChain = ::ThisChain;
pub(crate) type BridgedChain = ::BridgedChain;
-pub(crate) type HashOf = ::Hash;
-pub(crate) type AccountIdOf = ::AccountId;
-pub(crate) type SignerOf = ::Signer;
-pub(crate) type SignatureOf = ::Signature;
-pub(crate) type WeightOf = ::Weight;
-pub(crate) type BalanceOf