[testnet] Add AssetHubRococo <-> AssetHubWestend asset bridging support (#1967)

## Summary

Asset bridging support for AssetHub**Rococo** <-> AssetHub**Wococo** was
added [here](https://github.com/paritytech/polkadot-sdk/pull/1215), so
now we aim to bridge AssetHub**Rococo** and AssetHub**Westend**. (And
perhaps retire AssetHubWococo and the Wococo chains).

## Solution

**bridge-hub-westend-runtime**
- added new runtime as a copy of `bridge-hub-rococo-runtime`
- added support for bridging to `BridgeHubRococo`
- added tests and benchmarks

**bridge-hub-rococo-runtime**
- added support for bridging to `BridgeHubWestend`
- added tests and benchmarks
- internal refactoring by splitting bridge configuration per network,
e.g., `bridge_to_whatevernetwork_config.rs`.

**asset-hub-rococo-runtime**
- added support for asset bridging to `AssetHubWestend` (allows to
receive only WNDs)
- added new xcm router for `Westend`
- added tests and benchmarks

**asset-hub-westend-runtime**
- added support for asset bridging to `AssetHubRococo` (allows to
receive only ROCs)
- added new xcm router for `Rococo`
- added tests and benchmarks

## Deployment

All changes will be deployed as a part of
https://github.com/paritytech/polkadot-sdk/issues/1988.

## TODO

- [x] benchmarks for all pallet instances
- [x] integration tests
- [x] local run scripts


Relates to:
https://github.com/paritytech/parity-bridges-common/issues/2602
Relates to: https://github.com/paritytech/polkadot-sdk/issues/1988

---------

Co-authored-by: command-bot <>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
This commit is contained in:
Branislav Kontur
2023-11-02 00:39:49 +01:00
committed by GitHub
parent c66ae375e6
commit 1b1fab0da3
112 changed files with 10028 additions and 1638 deletions
Generated
+126 -1
View File
@@ -905,6 +905,7 @@ dependencies = [
"asset-test-utils",
"assets-common",
"bp-asset-hub-rococo",
"bp-asset-hub-westend",
"bp-asset-hub-wococo",
"bp-bridge-hub-rococo",
"bp-bridge-hub-wococo",
@@ -1015,6 +1016,9 @@ version = "0.9.420"
dependencies = [
"asset-test-utils",
"assets-common",
"bp-asset-hub-rococo",
"bp-asset-hub-westend",
"bp-bridge-hub-westend",
"cumulus-pallet-aura-ext",
"cumulus-pallet-dmp-queue",
"cumulus-pallet-parachain-system",
@@ -1052,6 +1056,7 @@ dependencies = [
"pallet-utility",
"pallet-xcm",
"pallet-xcm-benchmarks",
"pallet-xcm-bridge-hub-router",
"parachains-common",
"parity-scale-codec",
"polkadot-core-primitives",
@@ -1066,7 +1071,6 @@ dependencies = [
"sp-core",
"sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-offchain",
"sp-runtime",
"sp-session",
@@ -1682,6 +1686,16 @@ dependencies = [
"scale-info",
]
[[package]]
name = "bp-asset-hub-westend"
version = "0.1.0"
dependencies = [
"bp-xcm-bridge-hub-router",
"frame-support",
"parity-scale-codec",
"scale-info",
]
[[package]]
name = "bp-asset-hub-wococo"
version = "0.1.0"
@@ -1745,6 +1759,19 @@ dependencies = [
"sp-std",
]
[[package]]
name = "bp-bridge-hub-westend"
version = "0.1.0"
dependencies = [
"bp-bridge-hub-cumulus",
"bp-messages",
"bp-runtime",
"frame-support",
"sp-api",
"sp-runtime",
"sp-std",
]
[[package]]
name = "bp-bridge-hub-wococo"
version = "0.1.0"
@@ -1937,6 +1964,18 @@ dependencies = [
"sp-trie",
]
[[package]]
name = "bp-westend"
version = "0.1.0"
dependencies = [
"bp-header-chain",
"bp-polkadot-core",
"bp-runtime",
"frame-support",
"sp-api",
"sp-std",
]
[[package]]
name = "bp-wococo"
version = "0.1.0"
@@ -2114,8 +2153,10 @@ name = "bridge-hub-rococo-runtime"
version = "0.1.0"
dependencies = [
"bp-asset-hub-rococo",
"bp-asset-hub-westend",
"bp-asset-hub-wococo",
"bp-bridge-hub-rococo",
"bp-bridge-hub-westend",
"bp-bridge-hub-wococo",
"bp-header-chain",
"bp-messages",
@@ -2124,6 +2165,7 @@ dependencies = [
"bp-relayers",
"bp-rococo",
"bp-runtime",
"bp-westend",
"bp-wococo",
"bridge-hub-test-utils",
"bridge-runtime-common",
@@ -2239,6 +2281,88 @@ dependencies = [
"staging-xcm-executor",
]
[[package]]
name = "bridge-hub-westend-runtime"
version = "0.1.0"
dependencies = [
"bp-asset-hub-westend",
"bp-bridge-hub-rococo",
"bp-bridge-hub-westend",
"bp-header-chain",
"bp-messages",
"bp-parachains",
"bp-polkadot-core",
"bp-relayers",
"bp-rococo",
"bp-runtime",
"bp-westend",
"bridge-hub-test-utils",
"bridge-runtime-common",
"cumulus-pallet-aura-ext",
"cumulus-pallet-dmp-queue",
"cumulus-pallet-parachain-system",
"cumulus-pallet-session-benchmarking",
"cumulus-pallet-xcm",
"cumulus-pallet-xcmp-queue",
"cumulus-primitives-core",
"cumulus-primitives-utility",
"frame-benchmarking",
"frame-executive",
"frame-support",
"frame-system",
"frame-system-benchmarking",
"frame-system-rpc-runtime-api",
"frame-try-runtime",
"hex-literal",
"log",
"pallet-aura",
"pallet-authorship",
"pallet-balances",
"pallet-bridge-grandpa",
"pallet-bridge-messages",
"pallet-bridge-parachains",
"pallet-bridge-relayers",
"pallet-collator-selection",
"pallet-multisig",
"pallet-session",
"pallet-timestamp",
"pallet-transaction-payment",
"pallet-transaction-payment-rpc-runtime-api",
"pallet-utility",
"pallet-xcm",
"pallet-xcm-benchmarks",
"parachains-common",
"parity-scale-codec",
"polkadot-core-primitives",
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"scale-info",
"serde",
"smallvec",
"sp-api",
"sp-block-builder",
"sp-consensus-aura",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
"sp-io",
"sp-keyring",
"sp-offchain",
"sp-runtime",
"sp-session",
"sp-std",
"sp-storage",
"sp-transaction-pool",
"sp-version",
"staging-parachain-info",
"staging-xcm",
"staging-xcm-builder",
"staging-xcm-executor",
"static_assertions",
"substrate-wasm-builder",
"westend-runtime-constants",
]
[[package]]
name = "bridge-runtime-common"
version = "0.1.0"
@@ -12524,6 +12648,7 @@ dependencies = [
"bridge-hub-kusama-runtime",
"bridge-hub-polkadot-runtime",
"bridge-hub-rococo-runtime",
"bridge-hub-westend-runtime",
"clap 4.4.6",
"collectives-polkadot-runtime",
"color-print",