mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 03:01:07 +00:00
BridgeHub fixes and cleaning
This commit is contained in:
Generated
+370
-137
@@ -717,10 +717,12 @@ dependencies = [
|
||||
name = "bp-bridge-hub-rococo"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages",
|
||||
"bp-polkadot-core",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"sp-api",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -728,17 +730,19 @@ name = "bp-bridge-hub-wococo"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-bridge-hub-rococo",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"sp-api",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-header-chain"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"assert_matches",
|
||||
"bp-runtime 0.1.0",
|
||||
"bp-test-utils 0.1.0",
|
||||
"bp-runtime",
|
||||
"bp-test-utils",
|
||||
"finality-grandpa",
|
||||
"frame-support",
|
||||
"hex",
|
||||
@@ -752,41 +756,12 @@ dependencies = [
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-header-chain"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"bp-runtime 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"finality-grandpa",
|
||||
"frame-support",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"serde",
|
||||
"sp-core",
|
||||
"sp-finality-grandpa",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-message-dispatch"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"bp-runtime 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"frame-support",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-messages"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"bp-runtime 0.1.0",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"hex",
|
||||
"hex-literal",
|
||||
@@ -799,28 +774,34 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-messages"
|
||||
name = "bp-millau"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"bp-runtime 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"fixed-hash 0.7.0",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"impl-trait-for-tuples",
|
||||
"parity-scale-codec",
|
||||
"hash256-std-hasher",
|
||||
"impl-codec",
|
||||
"impl-serde 0.3.2",
|
||||
"parity-util-mem",
|
||||
"scale-info",
|
||||
"serde",
|
||||
"sp-api",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-parachains"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-polkadot-core 0.1.0",
|
||||
"bp-runtime 0.1.0",
|
||||
"bp-polkadot-core",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
@@ -831,8 +812,8 @@ dependencies = [
|
||||
name = "bp-polkadot-core"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages 0.1.0",
|
||||
"bp-runtime 0.1.0",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"hex",
|
||||
@@ -845,24 +826,6 @@ dependencies = [
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-polkadot-core"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"bp-messages 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bp-runtime 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-api",
|
||||
"sp-core",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"sp-version",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-relayers"
|
||||
version = "0.1.0"
|
||||
@@ -874,6 +837,34 @@ dependencies = [
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-rialto"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"sp-api",
|
||||
"sp-core",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-rialto-parachain"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"sp-api",
|
||||
"sp-core",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-rococo"
|
||||
version = "0.1.0"
|
||||
@@ -902,31 +893,14 @@ dependencies = [
|
||||
"sp-state-machine",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-runtime"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"frame-support",
|
||||
"hash-db",
|
||||
"num-traits",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-state-machine",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
"trie-db",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-test-utils"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-header-chain 0.1.0",
|
||||
"bp-header-chain",
|
||||
"ed25519-dalek",
|
||||
"finality-grandpa",
|
||||
"parity-scale-codec",
|
||||
@@ -937,18 +911,12 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-test-utils"
|
||||
name = "bp-westend"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#81128ab75395e256ae8ef50994d46101d0e67cea"
|
||||
dependencies = [
|
||||
"bp-header-chain 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"ed25519-dalek",
|
||||
"finality-grandpa",
|
||||
"parity-scale-codec",
|
||||
"sp-application-crypto",
|
||||
"sp-finality-grandpa",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"bp-polkadot-core",
|
||||
"bp-runtime",
|
||||
"sp-api",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -972,6 +940,7 @@ dependencies = [
|
||||
"bp-rococo",
|
||||
"bp-runtime",
|
||||
"bp-wococo",
|
||||
"bridge-runtime-common",
|
||||
"cumulus-pallet-aura-ext",
|
||||
"cumulus-pallet-dmp-queue",
|
||||
"cumulus-pallet-parachain-system",
|
||||
@@ -993,8 +962,13 @@ dependencies = [
|
||||
"pallet-aura",
|
||||
"pallet-authorship",
|
||||
"pallet-balances",
|
||||
"pallet-bridge-grandpa",
|
||||
"pallet-bridge-messages",
|
||||
"pallet-bridge-parachains",
|
||||
"pallet-bridge-relayers",
|
||||
"pallet-collator-selection",
|
||||
"pallet-session",
|
||||
"pallet-shift-session-manager",
|
||||
"pallet-sudo",
|
||||
"pallet-timestamp",
|
||||
"pallet-transaction-payment",
|
||||
@@ -1003,8 +977,10 @@ dependencies = [
|
||||
"parachain-info",
|
||||
"parachains-common",
|
||||
"parity-scale-codec",
|
||||
"polkadot-parachain 0.9.27",
|
||||
"polkadot-core-primitives",
|
||||
"polkadot-parachain 0.9.31",
|
||||
"polkadot-runtime-common",
|
||||
"polkadot-runtime-constants",
|
||||
"scale-info",
|
||||
"serde",
|
||||
"smallvec",
|
||||
@@ -1026,6 +1002,38 @@ dependencies = [
|
||||
"xcm-executor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bridge-runtime-common"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages",
|
||||
"bp-parachains",
|
||||
"bp-polkadot-core",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"hash-db",
|
||||
"log",
|
||||
"millau-runtime",
|
||||
"pallet-balances",
|
||||
"pallet-bridge-grandpa",
|
||||
"pallet-bridge-messages",
|
||||
"pallet-bridge-parachains",
|
||||
"pallet-xcm",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-api",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
"static_assertions",
|
||||
"xcm",
|
||||
"xcm-builder",
|
||||
"xcm-executor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bs58"
|
||||
version = "0.4.0"
|
||||
@@ -2930,6 +2938,19 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"humantime",
|
||||
"log",
|
||||
"regex",
|
||||
"termcolor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.9.1"
|
||||
@@ -2970,6 +2991,33 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ethbloom"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60"
|
||||
dependencies = [
|
||||
"crunchy",
|
||||
"fixed-hash 0.8.0",
|
||||
"impl-rlp",
|
||||
"impl-serde 0.4.0",
|
||||
"tiny-keccak",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ethereum-types"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "81224dc661606574f5a0f28c9947d0ee1d93ff11c5f1c4e7272f52e8c0b5483c"
|
||||
dependencies = [
|
||||
"ethbloom",
|
||||
"fixed-hash 0.8.0",
|
||||
"impl-rlp",
|
||||
"impl-serde 0.4.0",
|
||||
"primitive-types",
|
||||
"uint",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "event-listener"
|
||||
version = "2.5.3"
|
||||
@@ -3081,7 +3129,7 @@ version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"env_logger 0.9.1",
|
||||
"log",
|
||||
]
|
||||
|
||||
@@ -3113,6 +3161,18 @@ dependencies = [
|
||||
"scale-info",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fixed-hash"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"rand 0.8.5",
|
||||
"rustc-hex",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fixed-hash"
|
||||
version = "0.8.0"
|
||||
@@ -3990,6 +4050,24 @@ dependencies = [
|
||||
"parity-scale-codec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "impl-rlp"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808"
|
||||
dependencies = [
|
||||
"rlp",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "impl-serde"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "impl-serde"
|
||||
version = "0.4.0"
|
||||
@@ -5101,6 +5179,68 @@ dependencies = [
|
||||
"thrift",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "millau-runtime"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"beefy-primitives",
|
||||
"bp-messages",
|
||||
"bp-millau",
|
||||
"bp-polkadot-core",
|
||||
"bp-relayers",
|
||||
"bp-rialto",
|
||||
"bp-rialto-parachain",
|
||||
"bp-runtime",
|
||||
"bp-westend",
|
||||
"bridge-runtime-common",
|
||||
"env_logger 0.8.4",
|
||||
"frame-benchmarking",
|
||||
"frame-executive",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"frame-system-rpc-runtime-api",
|
||||
"hex-literal",
|
||||
"log",
|
||||
"pallet-aura",
|
||||
"pallet-balances",
|
||||
"pallet-beefy",
|
||||
"pallet-beefy-mmr",
|
||||
"pallet-bridge-grandpa",
|
||||
"pallet-bridge-messages",
|
||||
"pallet-bridge-parachains",
|
||||
"pallet-bridge-relayers",
|
||||
"pallet-grandpa",
|
||||
"pallet-mmr",
|
||||
"pallet-randomness-collective-flip",
|
||||
"pallet-session",
|
||||
"pallet-shift-session-manager",
|
||||
"pallet-sudo",
|
||||
"pallet-timestamp",
|
||||
"pallet-transaction-payment",
|
||||
"pallet-transaction-payment-rpc-runtime-api",
|
||||
"pallet-xcm",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-api",
|
||||
"sp-block-builder",
|
||||
"sp-consensus-aura",
|
||||
"sp-core",
|
||||
"sp-inherents",
|
||||
"sp-io",
|
||||
"sp-mmr-primitives",
|
||||
"sp-offchain",
|
||||
"sp-runtime",
|
||||
"sp-session",
|
||||
"sp-std",
|
||||
"sp-transaction-pool",
|
||||
"sp-version",
|
||||
"static_assertions",
|
||||
"substrate-wasm-builder",
|
||||
"xcm",
|
||||
"xcm-builder",
|
||||
"xcm-executor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "minimal-lexical"
|
||||
version = "0.2.1"
|
||||
@@ -5585,7 +5725,7 @@ checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
|
||||
[[package]]
|
||||
name = "pallet-alliance"
|
||||
version = "4.0.0-dev"
|
||||
source = "git+https://github.com/paritytech/substrate?branch=master#4e1e17cccd499dfe49e8c1bed01957953aa4c839"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"array-bytes",
|
||||
"frame-benchmarking",
|
||||
@@ -5606,7 +5746,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "pallet-asset-tx-payment"
|
||||
version = "4.0.0-dev"
|
||||
source = "git+https://github.com/paritytech/substrate?branch=master#4e1e17cccd499dfe49e8c1bed01957953aa4c839"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
@@ -5623,7 +5763,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "pallet-assets"
|
||||
version = "4.0.0-dev"
|
||||
source = "git+https://github.com/paritytech/substrate?branch=master#4e1e17cccd499dfe49e8c1bed01957953aa4c839"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
@@ -5797,6 +5937,94 @@ dependencies = [
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-bridge-grandpa"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-header-chain",
|
||||
"bp-runtime",
|
||||
"bp-test-utils",
|
||||
"finality-grandpa",
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"log",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-core",
|
||||
"sp-finality-grandpa",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-bridge-messages"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"bp-test-utils",
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"log",
|
||||
"num-traits",
|
||||
"pallet-balances",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-bridge-parachains"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-header-chain",
|
||||
"bp-parachains",
|
||||
"bp-polkadot-core",
|
||||
"bp-runtime",
|
||||
"bp-test-utils",
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"log",
|
||||
"pallet-bridge-grandpa",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"sp-trie",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-bridge-relayers"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-messages",
|
||||
"bp-relayers",
|
||||
"bp-runtime",
|
||||
"frame-benchmarking",
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"log",
|
||||
"pallet-balances",
|
||||
"pallet-bridge-messages",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-arithmetic",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-child-bounties"
|
||||
version = "4.0.0-dev"
|
||||
@@ -6424,6 +6652,21 @@ dependencies = [
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-shift-session-manager"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"frame-support",
|
||||
"frame-system",
|
||||
"pallet-session",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sp-core",
|
||||
"sp-runtime",
|
||||
"sp-staking",
|
||||
"sp-std",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pallet-society"
|
||||
version = "4.0.0-dev"
|
||||
@@ -6934,8 +7177,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"ethereum-types",
|
||||
"hashbrown",
|
||||
"impl-trait-for-tuples",
|
||||
"lru 0.8.1",
|
||||
"parity-util-mem-derive",
|
||||
"parking_lot 0.12.1",
|
||||
"primitive-types",
|
||||
@@ -8072,7 +8317,7 @@ name = "polkadot-performance-test"
|
||||
version = "0.9.31"
|
||||
source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges#9fc6b88ccc7abc1418ff5260e8cc492e647306a0"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"env_logger 0.9.1",
|
||||
"kusama-runtime",
|
||||
"log",
|
||||
"polkadot-erasure-coding",
|
||||
@@ -8711,9 +8956,10 @@ version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5cfd65aea0c5fa0bfcc7c9e7ca828c921ef778f43d325325ec84bda371bfa75a"
|
||||
dependencies = [
|
||||
"fixed-hash",
|
||||
"fixed-hash 0.8.0",
|
||||
"impl-codec",
|
||||
"impl-serde",
|
||||
"impl-rlp",
|
||||
"impl-serde 0.4.0",
|
||||
"scale-info",
|
||||
"uint",
|
||||
]
|
||||
@@ -9148,7 +9394,7 @@ name = "remote-externalities"
|
||||
version = "0.10.0-dev"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"env_logger 0.9.1",
|
||||
"log",
|
||||
"parity-scale-codec",
|
||||
"serde",
|
||||
@@ -9205,6 +9451,16 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rlp"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"rustc-hex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rocksdb"
|
||||
version = "0.19.0"
|
||||
@@ -9269,11 +9525,6 @@ source = "git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-
|
||||
dependencies = [
|
||||
"beefy-merkle-tree",
|
||||
"beefy-primitives",
|
||||
"bp-messages 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bp-rococo 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bp-runtime 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bp-wococo 0.1.0 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"bridge-runtime-common",
|
||||
"frame-benchmarking",
|
||||
"frame-executive",
|
||||
"frame-support",
|
||||
@@ -9901,7 +10152,6 @@ dependencies = [
|
||||
"sc-allocator",
|
||||
"sp-maybe-compressed-blob",
|
||||
"sp-sandbox",
|
||||
"sp-serializer 4.0.0-dev (git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges)",
|
||||
"sp-wasm-interface",
|
||||
"thiserror",
|
||||
"wasm-instrument",
|
||||
@@ -11296,7 +11546,7 @@ dependencies = [
|
||||
"futures",
|
||||
"hash-db",
|
||||
"hash256-std-hasher",
|
||||
"impl-serde",
|
||||
"impl-serde 0.4.0",
|
||||
"lazy_static",
|
||||
"libsecp256k1",
|
||||
"log",
|
||||
@@ -11607,16 +11857,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "sp-serializer"
|
||||
version = "4.0.0-dev"
|
||||
source = "git+https://github.com/paritytech/substrate?branch=master#4e1e17cccd499dfe49e8c1bed01957953aa4c839"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sp-serializer"
|
||||
version = "4.0.0-dev"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#aa7520bd0a2094204a6c0b33865aa264e6d686a5"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -11679,7 +11920,7 @@ name = "sp-storage"
|
||||
version = "6.0.0"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"impl-serde",
|
||||
"impl-serde 0.4.0",
|
||||
"parity-scale-codec",
|
||||
"ref-cast",
|
||||
"serde",
|
||||
@@ -11781,7 +12022,7 @@ name = "sp-version"
|
||||
version = "5.0.0"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
dependencies = [
|
||||
"impl-serde",
|
||||
"impl-serde 0.4.0",
|
||||
"parity-scale-codec",
|
||||
"parity-wasm",
|
||||
"scale-info",
|
||||
@@ -12472,6 +12713,15 @@ dependencies = [
|
||||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tiny-keccak"
|
||||
version = "2.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
|
||||
dependencies = [
|
||||
"crunchy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinytemplate"
|
||||
version = "1.2.1"
|
||||
@@ -13464,7 +13714,7 @@ dependencies = [
|
||||
"sp-transaction-pool",
|
||||
"sp-version",
|
||||
"substrate-wasm-builder",
|
||||
"westend-runtime-constants 0.9.31 (git+https://github.com/paritytech//polkadot?branch=locked-for-gav-xcm-v3-and-bridges)",
|
||||
"westend-runtime-constants",
|
||||
"xcm",
|
||||
"xcm-builder",
|
||||
"xcm-executor",
|
||||
@@ -13482,18 +13732,6 @@ dependencies = [
|
||||
"sp-runtime",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "westend-runtime-constants"
|
||||
version = "0.9.31"
|
||||
source = "git+https://github.com/paritytech/polkadot?branch=master#40aefb4ac396bcd098755c6d57dac7b284a343e7"
|
||||
dependencies = [
|
||||
"frame-support",
|
||||
"polkadot-primitives",
|
||||
"polkadot-runtime-common",
|
||||
"smallvec",
|
||||
"sp-runtime",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "westmint-runtime"
|
||||
version = "1.0.0"
|
||||
@@ -13553,7 +13791,7 @@ dependencies = [
|
||||
"sp-transaction-pool",
|
||||
"sp-version",
|
||||
"substrate-wasm-builder",
|
||||
"westend-runtime-constants 0.9.31 (git+https://github.com/paritytech/polkadot?branch=master)",
|
||||
"westend-runtime-constants",
|
||||
"xcm",
|
||||
"xcm-builder",
|
||||
"xcm-executor",
|
||||
@@ -13851,8 +14089,3 @@ dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[patch.unused]]
|
||||
name = "node-inspect"
|
||||
version = "0.9.0-dev"
|
||||
source = "git+https://github.com/paritytech//substrate?branch=sv-locked-for-gav-xcm-v3-and-bridges#87f3fdea8f227d33322c439d45a9e1796637e972"
|
||||
|
||||
+9
-1
@@ -1,14 +1,18 @@
|
||||
[workspace]
|
||||
members = [
|
||||
"bridges/bin/runtime-common",
|
||||
"bridges/modules/grandpa",
|
||||
"bridges/modules/messages",
|
||||
"bridges/modules/parachains",
|
||||
"bridges/modules/relayers",
|
||||
"bridges/modules/shift-session-manager",
|
||||
"bridges/primitives/messages",
|
||||
"bridges/primitives/polkadot-core",
|
||||
"bridges/primitives/runtime",
|
||||
"bridges/primitives/chain-bridge-hub-rococo",
|
||||
"bridges/primitives/chain-bridge-hub-wococo",
|
||||
"bridges/primitives/chain-rococo",
|
||||
"bridges/primitives/chain-wococo",
|
||||
"client/cli",
|
||||
"client/consensus/aura",
|
||||
"client/consensus/common",
|
||||
@@ -89,7 +93,9 @@ frame-system = { git = "https://github.com/paritytech//substrate", branch = "sv-
|
||||
frame-system-benchmarking = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
frame-system-rpc-runtime-api = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
frame-try-runtime = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
node-inspect = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-alliance = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-assets = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-asset-tx-payment = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-aura = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-authority-discovery = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
pallet-authorship = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
@@ -221,6 +227,7 @@ sp-rpc = { git = "https://github.com/paritytech//substrate", branch = "sv-locked
|
||||
sp-runtime = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-runtime-interface = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-runtime-interface-proc-macro = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-serializer = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-session = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-staking = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
sp-state-machine = { git = "https://github.com/paritytech//substrate", branch = "sv-locked-for-gav-xcm-v3-and-bridges" }
|
||||
@@ -296,6 +303,7 @@ polkadot-test-runtime = { git = "https://github.com/paritytech//polkadot", branc
|
||||
slot-range-helper = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
tracing-gum = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
tracing-gum-proc-macro = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
westend-runtime-constants = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
xcm = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
xcm-builder = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
xcm-executor = { git = "https://github.com/paritytech//polkadot", branch = "locked-for-gav-xcm-v3-and-bridges" }
|
||||
|
||||
@@ -31,7 +31,7 @@ cp target/release/polkadot ~/local_bridge_testing/bin/polkadot
|
||||
|
||||
# 2. Build cumulus polkadot-parachain binary
|
||||
cd <cumulus-git-repo-dir>
|
||||
cargo build --release --locked -p polkadot-parachain@0.9.230
|
||||
cargo build --release --locked -p polkadot-parachain@0.9.300
|
||||
cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain
|
||||
|
||||
# 3. Build substrate-relay binary
|
||||
|
||||
@@ -47,8 +47,10 @@ sp-version = { git = "https://github.com/paritytech/substrate", default-features
|
||||
|
||||
# Polkadot
|
||||
pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" }
|
||||
@@ -128,8 +130,10 @@ std = [
|
||||
"pallet-xcm/std",
|
||||
"parachain-info/std",
|
||||
"parachains-common/std",
|
||||
"polkadot-core-primitives/std",
|
||||
"polkadot-parachain/std",
|
||||
"polkadot-runtime-common/std",
|
||||
"polkadot-runtime-constants/std",
|
||||
"sp-api/std",
|
||||
"sp-block-builder/std",
|
||||
"sp-consensus-aura/std",
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::universal_exports::HaulBlob;
|
||||
use bp_messages::{
|
||||
source_chain::MessagesBridge,
|
||||
target_chain::{DispatchMessage, MessageDispatch},
|
||||
@@ -24,6 +23,7 @@ use bp_runtime::{messages::MessageDispatchResult, AccountIdOf, BalanceOf, Chain}
|
||||
use codec::Encode;
|
||||
use frame_support::{dispatch::Weight, parameter_types};
|
||||
use xcm::latest::prelude::*;
|
||||
use xcm_builder::{DispatchBlob, DispatchBlobError, HaulBlob};
|
||||
|
||||
// TODO:check-parameter - we could possibly use BridgeMessage from xcm:v3 stuff
|
||||
/// PLain "XCM" payload, which we transfer through bridge
|
||||
@@ -45,9 +45,9 @@ pub struct XcmBlobMessageDispatch<SourceBridgeHubChain, TargetBridgeHubChain, Di
|
||||
impl<
|
||||
SourceBridgeHubChain: Chain,
|
||||
TargetBridgeHubChain: Chain,
|
||||
DispatchBlob: crate::universal_exports::DispatchBlob,
|
||||
BlobDispatcher: DispatchBlob,
|
||||
> MessageDispatch<AccountIdOf<SourceBridgeHubChain>, BalanceOf<TargetBridgeHubChain>>
|
||||
for XcmBlobMessageDispatch<SourceBridgeHubChain, TargetBridgeHubChain, DispatchBlob>
|
||||
for XcmBlobMessageDispatch<SourceBridgeHubChain, TargetBridgeHubChain, BlobDispatcher>
|
||||
{
|
||||
type DispatchPayload = XcmAsPlainPayload;
|
||||
|
||||
@@ -57,7 +57,7 @@ impl<
|
||||
log::error!(
|
||||
"[XcmBlobMessageDispatch] TODO: change here to XCMv3 dispatch_weight with XcmExecutor - message: ?...?",
|
||||
);
|
||||
0
|
||||
Weight::zero()
|
||||
}
|
||||
|
||||
fn dispatch(
|
||||
@@ -71,14 +71,23 @@ impl<
|
||||
log::error!("[XcmBlobMessageDispatch] payload error: {:?}", e);
|
||||
return MessageDispatchResult {
|
||||
dispatch_result: false,
|
||||
unspent_weight: 0,
|
||||
unspent_weight: Weight::zero(),
|
||||
dispatch_fee_paid_during_dispatch: false,
|
||||
}
|
||||
},
|
||||
};
|
||||
let dispatch_result = match DispatchBlob::dispatch_blob(payload) {
|
||||
let dispatch_result = match BlobDispatcher::dispatch_blob(payload) {
|
||||
Ok(_) => true,
|
||||
Err(e) => {
|
||||
let e= match e {
|
||||
DispatchBlobError::Unbridgable => "DispatchBlobError::Unbridgable",
|
||||
DispatchBlobError::InvalidEncoding => "DispatchBlobError::InvalidEncoding",
|
||||
DispatchBlobError::UnsupportedLocationVersion => "DispatchBlobError::UnsupportedLocationVersion",
|
||||
DispatchBlobError::UnsupportedXcmVersion => "DispatchBlobError::UnsupportedXcmVersion",
|
||||
DispatchBlobError::RoutingError => "DispatchBlobError::RoutingError",
|
||||
DispatchBlobError::NonUniversalDestination => "DispatchBlobError::NonUniversalDestination",
|
||||
DispatchBlobError::WrongGlobal => "DispatchBlobError::WrongGlobal",
|
||||
};
|
||||
log::error!(
|
||||
"[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob failed, error: {:?}",
|
||||
e
|
||||
@@ -89,7 +98,7 @@ impl<
|
||||
MessageDispatchResult {
|
||||
dispatch_result,
|
||||
dispatch_fee_paid_during_dispatch: false,
|
||||
unspent_weight: 0,
|
||||
unspent_weight: Weight::zero(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -102,8 +111,7 @@ pub trait XcmBlobHauler {
|
||||
|
||||
/// Runtime message sender adapter.
|
||||
type MessageSender: MessagesBridge<
|
||||
super::Origin,
|
||||
AccountIdOf<Self::SenderChain>,
|
||||
super::RuntimeOrigin,
|
||||
BalanceOf<Self::SenderChain>,
|
||||
XcmAsPlainPayload,
|
||||
>;
|
||||
@@ -115,15 +123,16 @@ pub trait XcmBlobHauler {
|
||||
fn xcm_lane() -> LaneId;
|
||||
}
|
||||
|
||||
impl<T: XcmBlobHauler> HaulBlob for T {
|
||||
pub struct XcmBlobHaulerAdapter<XcmBlobHauler>(sp_std::marker::PhantomData<XcmBlobHauler>);
|
||||
impl<H: XcmBlobHauler> HaulBlob for XcmBlobHaulerAdapter<H> {
|
||||
fn haul_blob(blob: sp_std::prelude::Vec<u8>) {
|
||||
let lane = T::xcm_lane();
|
||||
let lane = H::xcm_lane();
|
||||
// TODO:check-parameter - fee could be taken from BridgeMessage - or add as optional fo send_message
|
||||
// TODO:check-parameter - or add here something like PriceForSiblingDelivery
|
||||
let fee = <T::SenderChain as Chain>::Balance::from(0u8);
|
||||
let fee = <H::SenderChain as Chain>::Balance::from(0u8);
|
||||
|
||||
let result = T::MessageSender::send_message(
|
||||
pallet_xcm::Origin::from(MultiLocation::from(T::message_sender_origin())).into(),
|
||||
let result = H::MessageSender::send_message(
|
||||
pallet_xcm::Origin::from(MultiLocation::from(H::message_sender_origin())).into(),
|
||||
lane,
|
||||
blob,
|
||||
fee,
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::{
|
||||
universal_exports::{BridgeBlobDispatcher, HaulBlobExporter},
|
||||
ParachainInfo, Runtime, WithBridgeHubWococoMessagesInstance, XcmAsPlainPayload, XcmBlobHauler,
|
||||
XcmRouter,
|
||||
};
|
||||
use crate::{ParachainInfo, Runtime, WithBridgeHubWococoMessagesInstance, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter, XcmRouter};
|
||||
use bp_messages::{
|
||||
source_chain::TargetHeaderChain,
|
||||
target_chain::{ProvedMessages, SourceHeaderChain},
|
||||
@@ -31,7 +27,7 @@ use bridge_runtime_common::{
|
||||
messages::{
|
||||
target::FromBridgedChainMessagesProof, BasicConfirmationTransactionEstimation,
|
||||
BridgedChain, ChainWithMessages, MessageBridge, MessageTransaction, ThisChain,
|
||||
ThisChainWithMessages, WeightOf,
|
||||
ThisChainWithMessages,
|
||||
},
|
||||
};
|
||||
use frame_support::{dispatch::Weight, parameter_types, RuntimeDebug};
|
||||
@@ -40,6 +36,7 @@ use xcm::{
|
||||
latest::prelude::*,
|
||||
prelude::{InteriorMultiLocation, NetworkId},
|
||||
};
|
||||
use xcm_builder::{BridgeBlobDispatcher, HaulBlobExporter};
|
||||
|
||||
// TODO:check-parameter
|
||||
parameter_types! {
|
||||
@@ -58,7 +55,7 @@ pub type OnBridgeHubRococoBlobDispatcher =
|
||||
|
||||
/// Export XCM messages to be relayed to the otherside
|
||||
pub type ToBridgeHubWococoHaulBlobExporter =
|
||||
HaulBlobExporter<ToBridgeHubWococoXcmBlobHauler, WococoGlobalConsensusNetwork, ()>;
|
||||
HaulBlobExporter<XcmBlobHaulerAdapter<ToBridgeHubWococoXcmBlobHauler>, WococoGlobalConsensusNetwork, ()>;
|
||||
pub struct ToBridgeHubWococoXcmBlobHauler;
|
||||
pub const DEFAULT_XCM_LANE_TO_BRIDGE_HUB_WOCOCO: LaneId = [0, 0, 0, 2];
|
||||
impl XcmBlobHauler for ToBridgeHubWococoXcmBlobHauler {
|
||||
@@ -114,7 +111,6 @@ impl ChainWithMessages for BridgeHubWococo {
|
||||
type AccountId = bp_bridge_hub_wococo::AccountId;
|
||||
type Signer = bp_bridge_hub_wococo::AccountSigner;
|
||||
type Signature = bp_bridge_hub_wococo::Signature;
|
||||
type Weight = Weight;
|
||||
type Balance = bp_bridge_hub_wococo::Balance;
|
||||
}
|
||||
|
||||
@@ -168,18 +164,18 @@ impl messages::BridgedChainWithMessages for BridgeHubWococo {
|
||||
fn estimate_delivery_transaction(
|
||||
message_payload: &[u8],
|
||||
include_pay_dispatch_fee_cost: bool,
|
||||
message_dispatch_weight: WeightOf<Self>,
|
||||
) -> MessageTransaction<WeightOf<Self>> {
|
||||
message_dispatch_weight: Weight,
|
||||
) -> MessageTransaction<Weight> {
|
||||
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());
|
||||
let extra_bytes_in_payload = message_payload_len
|
||||
.saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH);
|
||||
|
||||
MessageTransaction {
|
||||
dispatch_weight: extra_bytes_in_payload
|
||||
.saturating_mul(bp_bridge_hub_wococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
|
||||
dispatch_weight: bp_bridge_hub_wococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT
|
||||
.saturating_mul(extra_bytes_in_payload as u64)
|
||||
.saturating_add(bp_bridge_hub_wococo::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
|
||||
.saturating_sub(if include_pay_dispatch_fee_cost {
|
||||
0
|
||||
Weight::from_ref_time(0)
|
||||
} else {
|
||||
bp_bridge_hub_wococo::PAY_INBOUND_DISPATCH_FEE_WEIGHT
|
||||
})
|
||||
@@ -191,7 +187,7 @@ impl messages::BridgedChainWithMessages for BridgeHubWococo {
|
||||
}
|
||||
|
||||
fn transaction_payment(
|
||||
transaction: MessageTransaction<WeightOf<Self>>,
|
||||
transaction: MessageTransaction<Weight>,
|
||||
) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubWococo::BridgedChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
@@ -211,21 +207,20 @@ impl ChainWithMessages for BridgeHubRococo {
|
||||
type AccountId = bp_bridge_hub_rococo::AccountId;
|
||||
type Signer = bp_bridge_hub_rococo::AccountSigner;
|
||||
type Signature = bp_bridge_hub_rococo::Signature;
|
||||
type Weight = Weight;
|
||||
type Balance = bp_bridge_hub_rococo::Balance;
|
||||
}
|
||||
|
||||
impl ThisChainWithMessages for BridgeHubRococo {
|
||||
type Origin = crate::Origin;
|
||||
type Call = crate::Call;
|
||||
type RuntimeOrigin = crate::RuntimeOrigin;
|
||||
type RuntimeCall = crate::RuntimeCall;
|
||||
type ConfirmationTransactionEstimation = BasicConfirmationTransactionEstimation<
|
||||
Self::AccountId,
|
||||
{ bp_bridge_hub_rococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT },
|
||||
{ bp_bridge_hub_rococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT.ref_time() },
|
||||
{ bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE },
|
||||
{ bp_bridge_hub_rococo::TX_EXTRA_BYTES },
|
||||
>;
|
||||
|
||||
fn is_message_accepted(origin: &Self::Origin, lane: &LaneId) -> bool {
|
||||
fn is_message_accepted(origin: &Self::RuntimeOrigin, lane: &LaneId) -> bool {
|
||||
log::info!("[BridgeHubRococo::ThisChainWithMessages] is_message_accepted - origin: {:?}, lane: {:?}", origin, lane);
|
||||
lane == &DEFAULT_XCM_LANE_TO_BRIDGE_HUB_WOCOCO
|
||||
}
|
||||
@@ -238,7 +233,7 @@ impl ThisChainWithMessages for BridgeHubRococo {
|
||||
}
|
||||
|
||||
fn transaction_payment(
|
||||
transaction: MessageTransaction<WeightOf<Self>>,
|
||||
transaction: MessageTransaction<Weight>,
|
||||
) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubRococo::ThisChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
|
||||
@@ -14,11 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::{
|
||||
universal_exports::{BridgeBlobDispatcher, HaulBlobExporter},
|
||||
ParachainInfo, Runtime, WithBridgeHubRococoMessagesInstance, XcmAsPlainPayload, XcmBlobHauler,
|
||||
XcmRouter,
|
||||
};
|
||||
use crate::{ParachainInfo, Runtime, WithBridgeHubRococoMessagesInstance, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter, XcmRouter};
|
||||
use bp_messages::{
|
||||
source_chain::TargetHeaderChain,
|
||||
target_chain::{ProvedMessages, SourceHeaderChain},
|
||||
@@ -31,7 +27,7 @@ use bridge_runtime_common::{
|
||||
messages::{
|
||||
target::FromBridgedChainMessagesProof, BasicConfirmationTransactionEstimation,
|
||||
BridgedChain, ChainWithMessages, MessageBridge, MessageTransaction, ThisChain,
|
||||
ThisChainWithMessages, WeightOf,
|
||||
ThisChainWithMessages,
|
||||
},
|
||||
};
|
||||
use frame_support::{dispatch::Weight, parameter_types, RuntimeDebug};
|
||||
@@ -40,6 +36,7 @@ use xcm::{
|
||||
latest::prelude::*,
|
||||
prelude::{InteriorMultiLocation, NetworkId},
|
||||
};
|
||||
use xcm_builder::{BridgeBlobDispatcher, HaulBlobExporter};
|
||||
|
||||
// TODO:check-parameter
|
||||
parameter_types! {
|
||||
@@ -58,7 +55,7 @@ pub type OnBridgeHubWococoBlobDispatcher =
|
||||
|
||||
/// Export XCM messages to be relayed to the otherside
|
||||
pub type ToBridgeHubRococoHaulBlobExporter =
|
||||
HaulBlobExporter<ToBridgeHubRococoXcmBlobHauler, RococoGlobalConsensusNetwork, ()>;
|
||||
HaulBlobExporter<XcmBlobHaulerAdapter<ToBridgeHubRococoXcmBlobHauler>, RococoGlobalConsensusNetwork, ()>;
|
||||
pub struct ToBridgeHubRococoXcmBlobHauler;
|
||||
pub const DEFAULT_XCM_LANE_TO_BRIDGE_HUB_ROCOCO: LaneId = [0, 0, 0, 1];
|
||||
impl XcmBlobHauler for ToBridgeHubRococoXcmBlobHauler {
|
||||
@@ -114,7 +111,6 @@ impl ChainWithMessages for BridgeHubRococo {
|
||||
type AccountId = bp_bridge_hub_rococo::AccountId;
|
||||
type Signer = bp_bridge_hub_rococo::AccountSigner;
|
||||
type Signature = bp_bridge_hub_rococo::Signature;
|
||||
type Weight = Weight;
|
||||
type Balance = bp_bridge_hub_rococo::Balance;
|
||||
}
|
||||
|
||||
@@ -168,18 +164,18 @@ impl messages::BridgedChainWithMessages for BridgeHubRococo {
|
||||
fn estimate_delivery_transaction(
|
||||
message_payload: &[u8],
|
||||
include_pay_dispatch_fee_cost: bool,
|
||||
message_dispatch_weight: WeightOf<Self>,
|
||||
) -> MessageTransaction<WeightOf<Self>> {
|
||||
message_dispatch_weight: Weight,
|
||||
) -> MessageTransaction<Weight> {
|
||||
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());
|
||||
let extra_bytes_in_payload = message_payload_len
|
||||
.saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH);
|
||||
|
||||
MessageTransaction {
|
||||
dispatch_weight: extra_bytes_in_payload
|
||||
.saturating_mul(bp_bridge_hub_rococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT)
|
||||
dispatch_weight: bp_bridge_hub_rococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT
|
||||
.saturating_mul(extra_bytes_in_payload as u64)
|
||||
.saturating_add(bp_bridge_hub_rococo::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
|
||||
.saturating_sub(if include_pay_dispatch_fee_cost {
|
||||
0
|
||||
Weight::from_ref_time(0)
|
||||
} else {
|
||||
bp_bridge_hub_rococo::PAY_INBOUND_DISPATCH_FEE_WEIGHT
|
||||
})
|
||||
@@ -190,9 +186,7 @@ impl messages::BridgedChainWithMessages for BridgeHubRococo {
|
||||
}
|
||||
}
|
||||
|
||||
fn transaction_payment(
|
||||
transaction: MessageTransaction<WeightOf<Self>>,
|
||||
) -> messages::BalanceOf<Self> {
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubRococo::BridgedChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
@@ -211,21 +205,20 @@ impl ChainWithMessages for BridgeHubWococo {
|
||||
type AccountId = bp_bridge_hub_wococo::AccountId;
|
||||
type Signer = bp_bridge_hub_wococo::AccountSigner;
|
||||
type Signature = bp_bridge_hub_wococo::Signature;
|
||||
type Weight = Weight;
|
||||
type Balance = bp_bridge_hub_wococo::Balance;
|
||||
}
|
||||
|
||||
impl ThisChainWithMessages for BridgeHubWococo {
|
||||
type Origin = crate::Origin;
|
||||
type Call = crate::Call;
|
||||
type RuntimeOrigin = crate::RuntimeOrigin;
|
||||
type RuntimeCall = crate::RuntimeCall;
|
||||
type ConfirmationTransactionEstimation = BasicConfirmationTransactionEstimation<
|
||||
Self::AccountId,
|
||||
{ bp_bridge_hub_wococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT },
|
||||
{ bp_bridge_hub_wococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT.ref_time() },
|
||||
{ bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE },
|
||||
{ bp_bridge_hub_wococo::TX_EXTRA_BYTES },
|
||||
>;
|
||||
|
||||
fn is_message_accepted(origin: &Self::Origin, lane: &LaneId) -> bool {
|
||||
fn is_message_accepted(origin: &Self::RuntimeOrigin, lane: &LaneId) -> bool {
|
||||
log::info!("[BridgeHubWococo::ThisChainWithMessages] is_message_accepted - origin: {:?}, lane: {:?}", origin, lane);
|
||||
lane == &DEFAULT_XCM_LANE_TO_BRIDGE_HUB_ROCOCO
|
||||
}
|
||||
@@ -237,9 +230,7 @@ impl ThisChainWithMessages for BridgeHubWococo {
|
||||
MessageNonce::MAX / 2
|
||||
}
|
||||
|
||||
fn transaction_payment(
|
||||
transaction: MessageTransaction<WeightOf<Self>>,
|
||||
) -> messages::BalanceOf<Self> {
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubWococo::ThisChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
// Copyright (C) 2022 Parity Technologies (UK) Ltd.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
pub mod currency {
|
||||
use polkadot_core_primitives::Balance;
|
||||
use polkadot_runtime_constants as constants;
|
||||
|
||||
/// The existential deposit. Set to 1/10 of its parent Relay Chain (v9010).
|
||||
pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10;
|
||||
|
||||
pub const CENTS: Balance = constants::currency::CENTS;
|
||||
}
|
||||
|
||||
pub mod fee {
|
||||
use frame_support::weights::{
|
||||
constants::ExtrinsicBaseWeight, WeightToFeeCoefficient, WeightToFeeCoefficients,
|
||||
WeightToFeePolynomial,
|
||||
};
|
||||
use polkadot_core_primitives::Balance;
|
||||
use smallvec::smallvec;
|
||||
pub use sp_runtime::Perbill;
|
||||
|
||||
/// The block saturation level. Fees will be updates based on this value.
|
||||
pub const TARGET_BLOCK_FULLNESS: Perbill = Perbill::from_percent(25);
|
||||
|
||||
/// Handles converting a weight scalar to a fee value, based on the scale and granularity of the
|
||||
/// node's balance type.
|
||||
///
|
||||
/// This should typically create a mapping between the following ranges:
|
||||
/// - [0, MAXIMUM_BLOCK_WEIGHT]
|
||||
/// - [Balance::min, Balance::max]
|
||||
///
|
||||
/// Yet, it can be used for any other sort of change to weight-fee. Some examples being:
|
||||
/// - Setting it to `0` will essentially disable the weight fee.
|
||||
/// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged.
|
||||
pub struct WeightToFee;
|
||||
impl WeightToFeePolynomial for WeightToFee {
|
||||
type Balance = Balance;
|
||||
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
|
||||
// in Polkadot, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT:
|
||||
// in Statemint, we map to 1/10 of that, or 1/100 CENT
|
||||
let p = super::currency::CENTS;
|
||||
let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time());
|
||||
smallvec![WeightToFeeCoefficient {
|
||||
degree: 1,
|
||||
negative: false,
|
||||
coeff_frac: Perbill::from_rational(p % q, q),
|
||||
coeff_integer: p / q,
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,11 +25,13 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
|
||||
pub mod bridge_common_config;
|
||||
pub mod bridge_hub_rococo_config;
|
||||
pub mod bridge_hub_wococo_config;
|
||||
pub mod constants;
|
||||
mod weights;
|
||||
pub mod xcm_config;
|
||||
|
||||
use codec::Decode;
|
||||
use bridge_common_config::*;
|
||||
use constants::currency::*;
|
||||
use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases;
|
||||
use smallvec::smallvec;
|
||||
use sp_api::impl_runtime_apis;
|
||||
@@ -48,9 +50,10 @@ use sp_version::RuntimeVersion;
|
||||
|
||||
use frame_support::{
|
||||
construct_runtime, parameter_types,
|
||||
dispatch::DispatchClass,
|
||||
traits::Everything,
|
||||
weights::{
|
||||
constants::WEIGHT_PER_SECOND, ConstantMultiplier, DispatchClass, Weight,
|
||||
ConstantMultiplier, Weight,
|
||||
WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial,
|
||||
},
|
||||
PalletId,
|
||||
@@ -77,7 +80,7 @@ use crate::{
|
||||
bridge_hub_wococo_config::OnBridgeHubWococoBlobDispatcher,
|
||||
xcm_config::XcmRouter,
|
||||
};
|
||||
use parachains_common::{AccountId, Signature};
|
||||
use parachains_common::{AccountId, Signature, AVERAGE_ON_INITIALIZE_RATIO, NORMAL_DISPATCH_RATIO, MAXIMUM_BLOCK_WEIGHT};
|
||||
use xcm::latest::prelude::BodyId;
|
||||
use xcm_executor::XcmExecutor;
|
||||
|
||||
@@ -123,10 +126,10 @@ pub type SignedExtra = (
|
||||
);
|
||||
|
||||
/// Unchecked extrinsic type as expected by this runtime.
|
||||
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, Call, Signature, SignedExtra>;
|
||||
pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
|
||||
|
||||
/// Extrinsic type that has already been checked.
|
||||
pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, Call, SignedExtra>;
|
||||
pub type CheckedExtrinsic = generic::CheckedExtrinsic<AccountId, RuntimeCall, SignedExtra>;
|
||||
|
||||
/// Executive: handles dispatch to the various modules.
|
||||
pub type Executive = frame_executive::Executive<
|
||||
@@ -154,7 +157,7 @@ impl WeightToFeePolynomial for WeightToFee {
|
||||
// in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIUNIT:
|
||||
// in our template, we map to 1/10 of that, or 1/10 MILLIUNIT
|
||||
let p = MILLIUNIT / 10;
|
||||
let q = 100 * Balance::from(ExtrinsicBaseWeight::get());
|
||||
let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time());
|
||||
smallvec![WeightToFeeCoefficient {
|
||||
degree: 1,
|
||||
negative: false,
|
||||
@@ -223,19 +226,6 @@ pub const UNIT: Balance = 1_000_000_000_000;
|
||||
pub const MILLIUNIT: Balance = 1_000_000_000;
|
||||
pub const MICROUNIT: Balance = 1_000_000;
|
||||
|
||||
/// The existential deposit. Set to 1/10 of the Connected Relay Chain.
|
||||
pub const EXISTENTIAL_DEPOSIT: Balance = MILLIUNIT;
|
||||
|
||||
/// We assume that ~5% of the block weight is consumed by `on_initialize` handlers. This is
|
||||
/// used to limit the maximal weight of a single extrinsic.
|
||||
const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5);
|
||||
|
||||
/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by
|
||||
/// `Operational` extrinsics.
|
||||
const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
|
||||
|
||||
/// We allow for 0.5 of a second of compute with a 12 second average block time.
|
||||
const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2;
|
||||
|
||||
/// The version information used to identify this runtime when compiled natively.
|
||||
#[cfg(feature = "std")]
|
||||
@@ -262,11 +252,6 @@ pub mod runtime_api {
|
||||
|
||||
parameter_types! {
|
||||
pub const Version: RuntimeVersion = VERSION;
|
||||
|
||||
// This part is copied from Substrate's `bin/node/runtime/src/lib.rs`.
|
||||
// The `RuntimeBlockLength` and `RuntimeBlockWeights` exist here because the
|
||||
// `DeletionWeightLimit` and `DeletionQueueDepth` depend on those to parameterize
|
||||
// the lazy contract deletion.
|
||||
pub RuntimeBlockLength: BlockLength =
|
||||
BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO);
|
||||
pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder()
|
||||
@@ -296,7 +281,7 @@ impl frame_system::Config for Runtime {
|
||||
/// The identifier used to distinguish between accounts.
|
||||
type AccountId = AccountId;
|
||||
/// The aggregated dispatch type that is available for extrinsics.
|
||||
type Call = Call;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
/// The lookup mechanism to get account ID from whatever is passed in dispatchers.
|
||||
type Lookup = AccountIdLookup<AccountId, ()>;
|
||||
/// The index type for storing how many extrinsics an account has signed.
|
||||
@@ -310,9 +295,9 @@ impl frame_system::Config for Runtime {
|
||||
/// The header type.
|
||||
type Header = generic::Header<BlockNumber, BlakeTwo256>;
|
||||
/// The ubiquitous event type.
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
/// The ubiquitous origin type.
|
||||
type Origin = Origin;
|
||||
type RuntimeOrigin = RuntimeOrigin;
|
||||
/// Maximum number of block number to block hash mappings to keep (oldest pruned first).
|
||||
type BlockHashCount = BlockHashCount;
|
||||
/// Runtime version.
|
||||
@@ -365,7 +350,6 @@ impl pallet_authorship::Config for Runtime {
|
||||
type EventHandler = (CollatorSelection,);
|
||||
}
|
||||
|
||||
// TODO:check-parameter
|
||||
parameter_types! {
|
||||
pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT;
|
||||
pub const MaxLocks: u32 = 50;
|
||||
@@ -377,11 +361,11 @@ impl pallet_balances::Config for Runtime {
|
||||
/// The type for recording an account's balance.
|
||||
type Balance = Balance;
|
||||
/// The ubiquitous event type.
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type DustRemoval = ();
|
||||
type ExistentialDeposit = ExistentialDeposit;
|
||||
type AccountStore = System;
|
||||
type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
|
||||
type WeightInfo = weights::pallet_balances::WeightInfo<Runtime>;
|
||||
type MaxReserves = MaxReserves;
|
||||
type ReserveIdentifier = [u8; 8];
|
||||
}
|
||||
@@ -394,7 +378,7 @@ parameter_types! {
|
||||
}
|
||||
|
||||
impl pallet_transaction_payment::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter<Balances, ()>;
|
||||
type WeightToFee = WeightToFee;
|
||||
type LengthToFee = ConstantMultiplier<Balance, TransactionByteFee>;
|
||||
@@ -403,12 +387,12 @@ impl pallet_transaction_payment::Config for Runtime {
|
||||
}
|
||||
|
||||
parameter_types! {
|
||||
pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
|
||||
pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4;
|
||||
pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4);
|
||||
pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4);
|
||||
}
|
||||
|
||||
impl cumulus_pallet_parachain_system::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type OnSystemEvent = ();
|
||||
type SelfParaId = parachain_info::Pallet<Runtime>;
|
||||
type OutboundXcmpMessageSource = XcmpQueue;
|
||||
@@ -424,7 +408,7 @@ impl parachain_info::Config for Runtime {}
|
||||
impl cumulus_pallet_aura_ext::Config for Runtime {}
|
||||
|
||||
impl cumulus_pallet_xcmp_queue::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type XcmExecutor = XcmExecutor<XcmConfig>;
|
||||
type ChannelInfo = ParachainSystem;
|
||||
type VersionWrapper = PolkadotXcm;
|
||||
@@ -436,7 +420,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime {
|
||||
}
|
||||
|
||||
impl cumulus_pallet_dmp_queue::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type XcmExecutor = XcmExecutor<XcmConfig>;
|
||||
type ExecuteOverweightOrigin = EnsureRoot<AccountId>;
|
||||
}
|
||||
@@ -448,7 +432,7 @@ parameter_types! {
|
||||
}
|
||||
|
||||
impl pallet_session::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type ValidatorId = <Self as frame_system::Config>::AccountId;
|
||||
// we don't have stash and controller, thus we don't need the convert as well.
|
||||
type ValidatorIdOf = pallet_collator_selection::IdentityCollator;
|
||||
@@ -480,7 +464,7 @@ parameter_types! {
|
||||
pub type CollatorSelectionUpdateOrigin = EnsureRoot<AccountId>;
|
||||
|
||||
impl pallet_collator_selection::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type Currency = Balances;
|
||||
type UpdateOrigin = CollatorSelectionUpdateOrigin;
|
||||
type PotId = PotId;
|
||||
@@ -496,8 +480,8 @@ impl pallet_collator_selection::Config for Runtime {
|
||||
}
|
||||
|
||||
impl pallet_sudo::Config for Runtime {
|
||||
type Call = Call;
|
||||
type Event = Event;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
}
|
||||
|
||||
// Add bridge pallets (GPA)
|
||||
@@ -508,8 +492,9 @@ impl pallet_bridge_grandpa::Config<BridgeGrandpaWococoInstance> for Runtime {
|
||||
type BridgedChain = bp_wococo::Wococo;
|
||||
type MaxRequests = MaxRequests;
|
||||
type HeadersToKeep = HeadersToKeep;
|
||||
// TODO:check-parameter
|
||||
type WeightInfo = ();
|
||||
type MaxBridgedAuthorities = frame_support::traits::ConstU32<{bp_wococo::MAX_AUTHORITIES_COUNT}>;
|
||||
type MaxBridgedHeaderSize = frame_support::traits::ConstU32<{bp_wococo::MAX_HEADER_SIZE}>;
|
||||
type WeightInfo = pallet_bridge_grandpa::weights::BridgeWeight<Runtime>;
|
||||
}
|
||||
|
||||
/// Add granda bridge pallet to track Rococo relay chain
|
||||
@@ -518,8 +503,9 @@ impl pallet_bridge_grandpa::Config<BridgeGrandpaRococoInstance> for Runtime {
|
||||
type BridgedChain = bp_rococo::Rococo;
|
||||
type MaxRequests = MaxRequests;
|
||||
type HeadersToKeep = HeadersToKeep;
|
||||
// TODO:check-parameter
|
||||
type WeightInfo = ();
|
||||
type MaxBridgedAuthorities = frame_support::traits::ConstU32<{bp_rococo::MAX_AUTHORITIES_COUNT}>;
|
||||
type MaxBridgedHeaderSize = frame_support::traits::ConstU32<{bp_rococo::MAX_HEADER_SIZE}>;
|
||||
type WeightInfo = pallet_bridge_grandpa::weights::BridgeWeight<Runtime>;
|
||||
}
|
||||
|
||||
pub const ROCOCO_BRIDGE_PARA_PALLET_NAME: &str = "Paras";
|
||||
@@ -533,33 +519,32 @@ parameter_types! {
|
||||
/// Add parachain bridge pallet to track Wococo bridge hub parachain
|
||||
pub type BridgeParachainWococoInstance = pallet_bridge_parachains::Instance1;
|
||||
impl pallet_bridge_parachains::Config<BridgeParachainWococoInstance> for Runtime {
|
||||
type Event = Event;
|
||||
// TODO:check-parameter
|
||||
type WeightInfo = ();
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_parachains::weights::BridgeWeight<Runtime>;
|
||||
type BridgesGrandpaPalletInstance = BridgeGrandpaWococoInstance;
|
||||
type ParasPalletName = WococoBridgeParachainPalletName;
|
||||
type TrackedParachains = Everything;
|
||||
type HeadsToKeep = ParachainHeadsToKeep;
|
||||
type MaxParaHeadSize = frame_support::traits::ConstU32<{bp_wococo::MAX_NESTED_PARACHAIN_HEAD_SIZE}>;
|
||||
}
|
||||
|
||||
/// Add parachain bridge pallet to track Rococo bridge hub parachain
|
||||
pub type BridgeParachainRococoInstance = pallet_bridge_parachains::Instance2;
|
||||
impl pallet_bridge_parachains::Config<BridgeParachainRococoInstance> for Runtime {
|
||||
type Event = Event;
|
||||
// TODO:check-parameter
|
||||
type WeightInfo = ();
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_parachains::weights::BridgeWeight<Runtime>;
|
||||
type BridgesGrandpaPalletInstance = BridgeGrandpaRococoInstance;
|
||||
type ParasPalletName = RococoBridgeParachainPalletName;
|
||||
type TrackedParachains = Everything;
|
||||
type HeadsToKeep = ParachainHeadsToKeep;
|
||||
type MaxParaHeadSize = frame_support::traits::ConstU32<{bp_rococo::MAX_NESTED_PARACHAIN_HEAD_SIZE}>;
|
||||
}
|
||||
|
||||
/// Add XCM messages support for BrigdeHubRococo to support Rococo->Wococo XCM messages
|
||||
pub type WithBridgeHubWococoMessagesInstance = pallet_bridge_messages::Instance1;
|
||||
impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Runtime {
|
||||
type Event = Event;
|
||||
// TODO:check-parameter - copy of MillauWeigth + refactor
|
||||
type WeightInfo = ();
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_messages::weights::BridgeWeight<Runtime>;
|
||||
type BridgedChainId = bridge_hub_rococo_config::BridgeHubWococoChainId;
|
||||
type Parameter = ();
|
||||
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
|
||||
@@ -593,9 +578,8 @@ impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Run
|
||||
/// Add XCM messages support for BrigdeHubWococo to support Wococo->Rococo XCM messages
|
||||
pub type WithBridgeHubRococoMessagesInstance = pallet_bridge_messages::Instance2;
|
||||
impl pallet_bridge_messages::Config<WithBridgeHubRococoMessagesInstance> for Runtime {
|
||||
type Event = Event;
|
||||
// TODO:check-parameter - copy of MillauWeigth + refactor
|
||||
type WeightInfo = ();
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_messages::weights::BridgeWeight<Runtime>;
|
||||
type BridgedChainId = bridge_hub_wococo_config::BridgeHubRococoChainId;
|
||||
type Parameter = ();
|
||||
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
|
||||
@@ -692,6 +676,10 @@ mod benches {
|
||||
[pallet_timestamp, Timestamp]
|
||||
[pallet_collator_selection, CollatorSelection]
|
||||
[cumulus_pallet_xcmp_queue, XcmpQueue]
|
||||
// XCM
|
||||
// NOTE: Make sure you point to the individual modules below.
|
||||
[pallet_xcm_benchmarks::fungible, XcmBalances]
|
||||
[pallet_xcm_benchmarks::generic, XcmGeneric]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -836,7 +824,7 @@ impl_runtime_apis! {
|
||||
fn estimate_message_delivery_and_dispatch_fee(
|
||||
_lane_id: bp_messages::LaneId,
|
||||
payload: XcmAsPlainPayload,
|
||||
_conversion_rate: Option<frame_support::sp_runtime::FixedU128>,
|
||||
conversion_rate: Option<frame_support::sp_runtime::FixedU128>,
|
||||
) -> Option<Balance> {
|
||||
None
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ pub mod constants {
|
||||
|
||||
parameter_types! {
|
||||
/// Importing a block with 0 Extrinsics.
|
||||
pub const BlockExecutionWeight: Weight = 5_000_000 * constants::WEIGHT_PER_NANOS;
|
||||
pub const BlockExecutionWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(5_000_000);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Cumulus is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Cumulus is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! Autogenerated weights for `cumulus_pallet_xcmp_queue`
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2022-08-09, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./artifacts/polkadot-parachain
|
||||
// benchmark
|
||||
// pallet
|
||||
// --chain=statemint-dev
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --pallet=cumulus_pallet_xcmp_queue
|
||||
// --extrinsic=*
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --json
|
||||
// --header=./file_header.txt
|
||||
// --output=./parachains/runtimes/assets/statemint/src/weights
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use frame_support::{traits::Get, weights::Weight};
|
||||
use sp_std::marker::PhantomData;
|
||||
|
||||
/// Weight functions for `cumulus_pallet_xcmp_queue`.
|
||||
pub struct WeightInfo<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo<T> {
|
||||
// Storage: XcmpQueue QueueConfig (r:1 w:1)
|
||||
fn set_config_with_u32() -> Weight {
|
||||
Weight::from_ref_time(5_192_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: XcmpQueue QueueConfig (r:1 w:1)
|
||||
fn set_config_with_weight() -> Weight {
|
||||
Weight::from_ref_time(5_363_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ pub mod constants {
|
||||
|
||||
parameter_types! {
|
||||
/// Executing a NO-OP `System::remarks` Extrinsic.
|
||||
pub const ExtrinsicBaseWeight: Weight = 125_000 * constants::WEIGHT_PER_NANOS;
|
||||
pub const ExtrinsicBaseWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(125_000);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -18,9 +18,12 @@
|
||||
//! Expose the auto generated weight files.
|
||||
|
||||
pub mod block_weights;
|
||||
pub mod cumulus_pallet_xcmp_queue;
|
||||
pub mod extrinsic_weights;
|
||||
pub mod paritydb_weights;
|
||||
pub mod pallet_balances;
|
||||
pub mod rocksdb_weights;
|
||||
pub mod xcm;
|
||||
|
||||
pub use block_weights::constants::BlockExecutionWeight;
|
||||
pub use extrinsic_weights::constants::ExtrinsicBaseWeight;
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
// Copyright 2021 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Cumulus is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Cumulus is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! Autogenerated weights for `pallet_balances`
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2022-09-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./artifacts/polkadot-parachain
|
||||
// benchmark
|
||||
// pallet
|
||||
// --chain=statemint-dev
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --pallet=pallet_balances
|
||||
// --extrinsic=*
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --json
|
||||
// --header=./file_header.txt
|
||||
// --output=./parachains/runtimes/assets/statemint/src/weights/pallet_balances.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use frame_support::{traits::Get, weights::{Weight}};
|
||||
use sp_std::marker::PhantomData;
|
||||
|
||||
/// Weight functions for `pallet_balances`.
|
||||
pub struct WeightInfo<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> pallet_balances::WeightInfo for WeightInfo<T> {
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer() -> Weight {
|
||||
Weight::from_ref_time(48_009_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_keep_alive() -> Weight {
|
||||
Weight::from_ref_time(35_939_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_creating() -> Weight {
|
||||
Weight::from_ref_time(26_600_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_killing() -> Weight {
|
||||
Weight::from_ref_time(30_092_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:2 w:2)
|
||||
fn force_transfer() -> Weight {
|
||||
Weight::from_ref_time(47_435_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_all() -> Weight {
|
||||
Weight::from_ref_time(41_179_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn force_unreserve() -> Weight {
|
||||
Weight::from_ref_time(22_413_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
}
|
||||
@@ -25,8 +25,8 @@ pub mod constants {
|
||||
/// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights
|
||||
/// are available for brave runtime engineers who may want to try this out as default.
|
||||
pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight {
|
||||
read: 8_000 * constants::WEIGHT_PER_NANOS,
|
||||
write: 50_000 * constants::WEIGHT_PER_NANOS,
|
||||
read: 8_000 * constants::WEIGHT_PER_NANOS.ref_time(),
|
||||
write: 50_000 * constants::WEIGHT_PER_NANOS.ref_time(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ pub mod constants {
|
||||
/// By default, Substrate uses `RocksDB`, so this will be the weight used throughout
|
||||
/// the runtime.
|
||||
pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight {
|
||||
read: 25_000 * constants::WEIGHT_PER_NANOS,
|
||||
write: 100_000 * constants::WEIGHT_PER_NANOS,
|
||||
read: 25_000 * constants::WEIGHT_PER_NANOS.ref_time(),
|
||||
write: 100_000 * constants::WEIGHT_PER_NANOS.ref_time(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Cumulus is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Cumulus is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
mod pallet_xcm_benchmarks_fungible;
|
||||
mod pallet_xcm_benchmarks_generic;
|
||||
|
||||
use crate::Runtime;
|
||||
use frame_support::weights::Weight;
|
||||
use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight;
|
||||
use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric;
|
||||
use sp_std::{cmp, prelude::*};
|
||||
use xcm::{
|
||||
latest::{prelude::*, Weight as XCMWeight},
|
||||
DoubleEncoded,
|
||||
};
|
||||
|
||||
trait WeighMultiAssets {
|
||||
fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight;
|
||||
}
|
||||
|
||||
const MAX_ASSETS: u32 = 100;
|
||||
|
||||
impl WeighMultiAssets for MultiAssetFilter {
|
||||
fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight {
|
||||
let weight = match self {
|
||||
Self::Definite(assets) =>
|
||||
weight.saturating_mul(assets.inner().into_iter().count() as u64),
|
||||
Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64),
|
||||
};
|
||||
weight.ref_time()
|
||||
}
|
||||
}
|
||||
|
||||
impl WeighMultiAssets for MultiAssets {
|
||||
fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight {
|
||||
weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time()
|
||||
}
|
||||
}
|
||||
|
||||
pub struct BridgeHubXcmWeight<Call>(core::marker::PhantomData<Call>);
|
||||
impl<Call> XcmWeightInfo<Call> for BridgeHubXcmWeight<Call> {
|
||||
fn withdraw_asset(assets: &MultiAssets) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::withdraw_asset())
|
||||
}
|
||||
// Currently there is no trusted reserve
|
||||
fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight {
|
||||
u64::MAX
|
||||
}
|
||||
fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::receive_teleported_asset())
|
||||
}
|
||||
fn query_response(
|
||||
_query_id: &u64,
|
||||
_response: &Response,
|
||||
_max_weight: &u64,
|
||||
_querier: &Option<MultiLocation>,
|
||||
) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::query_response().ref_time()
|
||||
}
|
||||
fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::transfer_asset())
|
||||
}
|
||||
fn transfer_reserve_asset(
|
||||
assets: &MultiAssets,
|
||||
_dest: &MultiLocation,
|
||||
_xcm: &Xcm<()>,
|
||||
) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::transfer_reserve_asset())
|
||||
}
|
||||
fn transact(
|
||||
_origin_type: &OriginKind,
|
||||
_require_weight_at_most: &u64,
|
||||
_call: &DoubleEncoded<Call>,
|
||||
) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::transact().ref_time()
|
||||
}
|
||||
fn hrmp_new_channel_open_request(
|
||||
_sender: &u32,
|
||||
_max_message_size: &u32,
|
||||
_max_capacity: &u32,
|
||||
) -> XCMWeight {
|
||||
// XCM Executor does not currently support HRMP channel operations
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight {
|
||||
// XCM Executor does not currently support HRMP channel operations
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight {
|
||||
// XCM Executor does not currently support HRMP channel operations
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn clear_origin() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::clear_origin().ref_time()
|
||||
}
|
||||
fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::descend_origin().ref_time()
|
||||
}
|
||||
fn report_error(_query_response_info: &QueryResponseInfo) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::report_error().ref_time()
|
||||
}
|
||||
|
||||
fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> XCMWeight {
|
||||
// Hardcoded till the XCM pallet is fixed
|
||||
let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time();
|
||||
let weight = assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::deposit_asset());
|
||||
cmp::min(hardcoded_weight, weight)
|
||||
}
|
||||
fn deposit_reserve_asset(
|
||||
assets: &MultiAssetFilter,
|
||||
_dest: &MultiLocation,
|
||||
_xcm: &Xcm<()>,
|
||||
) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::deposit_reserve_asset())
|
||||
}
|
||||
fn exchange_asset(
|
||||
_give: &MultiAssetFilter,
|
||||
_receive: &MultiAssets,
|
||||
_maximal: &bool,
|
||||
) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn initiate_reserve_withdraw(
|
||||
assets: &MultiAssetFilter,
|
||||
_reserve: &MultiLocation,
|
||||
_xcm: &Xcm<()>,
|
||||
) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmGeneric::<Runtime>::initiate_reserve_withdraw())
|
||||
}
|
||||
fn initiate_teleport(
|
||||
assets: &MultiAssetFilter,
|
||||
_dest: &MultiLocation,
|
||||
_xcm: &Xcm<()>,
|
||||
) -> XCMWeight {
|
||||
// Hardcoded till the XCM pallet is fixed
|
||||
let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time();
|
||||
let weight = assets.weigh_multi_assets(XcmFungibleWeight::<Runtime>::initiate_teleport());
|
||||
cmp::min(hardcoded_weight, weight)
|
||||
}
|
||||
fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::report_holding().ref_time()
|
||||
}
|
||||
fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::buy_execution().ref_time()
|
||||
}
|
||||
fn refund_surplus() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::refund_surplus().ref_time()
|
||||
}
|
||||
fn set_error_handler(_xcm: &Xcm<Call>) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::set_error_handler().ref_time()
|
||||
}
|
||||
fn set_appendix(_xcm: &Xcm<Call>) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::set_appendix().ref_time()
|
||||
}
|
||||
fn clear_error() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::clear_error().ref_time()
|
||||
}
|
||||
fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::claim_asset().ref_time()
|
||||
}
|
||||
fn trap(_code: &u64) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::trap().ref_time()
|
||||
}
|
||||
fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::subscribe_version().ref_time()
|
||||
}
|
||||
fn unsubscribe_version() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::unsubscribe_version().ref_time()
|
||||
}
|
||||
fn burn_asset(assets: &MultiAssets) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmGeneric::<Runtime>::burn_asset())
|
||||
}
|
||||
fn expect_asset(assets: &MultiAssets) -> XCMWeight {
|
||||
assets.weigh_multi_assets(XcmGeneric::<Runtime>::expect_asset())
|
||||
}
|
||||
fn expect_origin(_origin: &Option<MultiLocation>) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::expect_origin().ref_time()
|
||||
}
|
||||
fn expect_error(_error: &Option<(u32, XcmError)>) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::expect_error().ref_time()
|
||||
}
|
||||
fn query_pallet(_module_name: &Vec<u8>, _response_info: &QueryResponseInfo) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::query_pallet().ref_time()
|
||||
}
|
||||
fn expect_pallet(
|
||||
_index: &u32,
|
||||
_name: &Vec<u8>,
|
||||
_module_name: &Vec<u8>,
|
||||
_crate_major: &u32,
|
||||
_min_crate_minor: &u32,
|
||||
) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::expect_pallet().ref_time()
|
||||
}
|
||||
fn report_transact_status(_response_info: &QueryResponseInfo) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::report_transact_status().ref_time()
|
||||
}
|
||||
fn clear_transact_status() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::clear_transact_status().ref_time()
|
||||
}
|
||||
fn universal_origin(_: &Junction) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> XCMWeight {
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn set_fees_mode(_: &bool) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::set_fees_mode().ref_time()
|
||||
}
|
||||
fn set_topic(_topic: &[u8; 32]) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::set_topic().ref_time()
|
||||
}
|
||||
fn clear_topic() -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::clear_topic().ref_time()
|
||||
}
|
||||
fn alias_origin(_: &MultiLocation) -> XCMWeight {
|
||||
// XCM Executor does not currently support alias origin operations
|
||||
Weight::MAX.ref_time()
|
||||
}
|
||||
fn unpaid_execution(_: &WeightLimit, _: &Option<MultiLocation>) -> XCMWeight {
|
||||
XcmGeneric::<Runtime>::unpaid_execution().ref_time()
|
||||
}
|
||||
}
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Cumulus is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Cumulus is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2022-09-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./artifacts/polkadot-parachain
|
||||
// benchmark
|
||||
// pallet
|
||||
// --template=./templates/xcm-bench-template.hbs
|
||||
// --chain=statemint-dev
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --pallet=pallet_xcm_benchmarks::fungible
|
||||
// --extrinsic=*
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --json
|
||||
// --header=./file_header.txt
|
||||
// --output=./parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use frame_support::{traits::Get, weights::Weight};
|
||||
use sp_std::marker::PhantomData;
|
||||
|
||||
/// Weights for `pallet_xcm_benchmarks::fungible`.
|
||||
pub struct WeightInfo<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> WeightInfo<T> {
|
||||
// Storage: System Account (r:1 w:1)
|
||||
pub(crate) fn withdraw_asset() -> Weight {
|
||||
Weight::from_ref_time(33_878_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:2 w:2)
|
||||
pub(crate) fn transfer_asset() -> Weight {
|
||||
Weight::from_ref_time(39_130_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
// Storage: System Account (r:2 w:2)
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn transfer_reserve_asset() -> Weight {
|
||||
Weight::from_ref_time(54_404_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(8 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as u64))
|
||||
}
|
||||
pub(crate) fn receive_teleported_asset() -> Weight {
|
||||
Weight::from_ref_time(6_586_000 as u64)
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
pub(crate) fn deposit_asset() -> Weight {
|
||||
Weight::from_ref_time(34_055_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn deposit_reserve_asset() -> Weight {
|
||||
Weight::from_ref_time(50_905_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(7 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
}
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn initiate_teleport() -> Weight {
|
||||
Weight::from_ref_time(26_715_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
}
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Cumulus is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Cumulus is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2022-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
// ./artifacts/polkadot-parachain
|
||||
// benchmark
|
||||
// pallet
|
||||
// --template=./templates/xcm-bench-template.hbs
|
||||
// --chain=statemint-dev
|
||||
// --execution=wasm
|
||||
// --wasm-execution=compiled
|
||||
// --pallet=pallet_xcm_benchmarks::generic
|
||||
// --extrinsic=*
|
||||
// --steps=50
|
||||
// --repeat=20
|
||||
// --json
|
||||
// --header=./file_header.txt
|
||||
// --template=./templates/xcm-bench-template.hbs
|
||||
// --output=./parachains/runtimes/assets/statemint/src/weights/xcm/
|
||||
|
||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||
#![allow(unused_parens)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
use frame_support::{traits::Get, weights::Weight};
|
||||
use sp_std::marker::PhantomData;
|
||||
|
||||
/// Weights for `pallet_xcm_benchmarks::generic`.
|
||||
pub struct WeightInfo<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> WeightInfo<T> {
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn report_holding() -> Weight {
|
||||
Weight::from_ref_time(1_305_689_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
pub(crate) fn buy_execution() -> Weight {
|
||||
Weight::from_ref_time(8_843_000 as u64)
|
||||
}
|
||||
// Storage: PolkadotXcm Queries (r:1 w:0)
|
||||
pub(crate) fn query_response() -> Weight {
|
||||
Weight::from_ref_time(19_216_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
}
|
||||
pub(crate) fn transact() -> Weight {
|
||||
Weight::from_ref_time(22_708_000 as u64)
|
||||
}
|
||||
pub(crate) fn refund_surplus() -> Weight {
|
||||
Weight::from_ref_time(9_040_000 as u64)
|
||||
}
|
||||
pub(crate) fn set_error_handler() -> Weight {
|
||||
Weight::from_ref_time(6_222_000 as u64)
|
||||
}
|
||||
pub(crate) fn set_appendix() -> Weight {
|
||||
Weight::from_ref_time(6_411_000 as u64)
|
||||
}
|
||||
pub(crate) fn clear_error() -> Weight {
|
||||
Weight::from_ref_time(6_222_000 as u64)
|
||||
}
|
||||
pub(crate) fn descend_origin() -> Weight {
|
||||
Weight::from_ref_time(7_112_000 as u64)
|
||||
}
|
||||
pub(crate) fn clear_origin() -> Weight {
|
||||
Weight::from_ref_time(6_340_000 as u64)
|
||||
}
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn report_error() -> Weight {
|
||||
Weight::from_ref_time(22_943_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
// Storage: PolkadotXcm AssetTraps (r:1 w:1)
|
||||
pub(crate) fn claim_asset() -> Weight {
|
||||
Weight::from_ref_time(13_178_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
pub(crate) fn trap() -> Weight {
|
||||
Weight::from_ref_time(6_333_000 as u64)
|
||||
}
|
||||
// Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn subscribe_version() -> Weight {
|
||||
Weight::from_ref_time(31_798_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as u64))
|
||||
}
|
||||
// Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1)
|
||||
pub(crate) fn unsubscribe_version() -> Weight {
|
||||
Weight::from_ref_time(9_728_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().writes(1 as u64))
|
||||
}
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn initiate_reserve_withdraw() -> Weight {
|
||||
Weight::from_ref_time(1_583_652_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
pub(crate) fn burn_asset() -> Weight {
|
||||
Weight::from_ref_time(497_448_000 as u64)
|
||||
}
|
||||
pub(crate) fn expect_asset() -> Weight {
|
||||
Weight::from_ref_time(38_383_000 as u64)
|
||||
}
|
||||
pub(crate) fn expect_origin() -> Weight {
|
||||
Weight::from_ref_time(6_308_000 as u64)
|
||||
}
|
||||
pub(crate) fn expect_error() -> Weight {
|
||||
Weight::from_ref_time(6_327_000 as u64)
|
||||
}
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn query_pallet() -> Weight {
|
||||
Weight::from_ref_time(26_011_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
pub(crate) fn expect_pallet() -> Weight {
|
||||
Weight::from_ref_time(8_008_000 as u64)
|
||||
}
|
||||
// Storage: ParachainInfo ParachainId (r:1 w:0)
|
||||
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
||||
// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
||||
// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
||||
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
|
||||
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
|
||||
pub(crate) fn report_transact_status() -> Weight {
|
||||
Weight::from_ref_time(22_963_000 as u64)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as u64))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as u64))
|
||||
}
|
||||
pub(crate) fn clear_transact_status() -> Weight {
|
||||
Weight::from_ref_time(6_378_000 as u64)
|
||||
}
|
||||
pub(crate) fn set_topic() -> Weight {
|
||||
Weight::from_ref_time(6_313_000 as u64)
|
||||
}
|
||||
pub(crate) fn clear_topic() -> Weight {
|
||||
Weight::from_ref_time(6_324_000 as u64)
|
||||
}
|
||||
pub(crate) fn set_fees_mode() -> Weight {
|
||||
Weight::from_ref_time(6_336_000 as u64)
|
||||
}
|
||||
pub(crate) fn unpaid_execution() -> Weight { Weight::from_ref_time(3_111_000 as u64) }
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use super::{
|
||||
AccountId, Balance, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm,
|
||||
AccountId, Balance, Balances, RuntimeCall, RuntimeEvent, RuntimeOrigin, ParachainInfo, ParachainSystem, PolkadotXcm,
|
||||
Runtime, XcmpQueue,
|
||||
};
|
||||
use crate::{
|
||||
@@ -25,25 +25,19 @@ use crate::{
|
||||
use frame_support::{
|
||||
match_types, parameter_types,
|
||||
traits::{Everything, Nothing},
|
||||
weights::{IdentityFee, Weight},
|
||||
weights::IdentityFee,
|
||||
};
|
||||
use pallet_xcm::XcmPassthrough;
|
||||
use polkadot_parachain::primitives::Sibling;
|
||||
use xcm::latest::prelude::*;
|
||||
use xcm_builder::{
|
||||
AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter,
|
||||
EnsureXcmOrigin, FixedWeightBounds, IsConcrete, NativeAsset, ParentIsPreset,
|
||||
RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
|
||||
SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
|
||||
UsingComponents,
|
||||
};
|
||||
use xcm_builder::{AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, IsConcrete, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds};
|
||||
use xcm_executor::{traits::ExportXcm, XcmExecutor};
|
||||
|
||||
parameter_types! {
|
||||
pub const RelayLocation: MultiLocation = MultiLocation::parent();
|
||||
// TODO: hack: hardcoded Polkadot?
|
||||
pub const RelayNetwork: NetworkId = NetworkId::Rococo;
|
||||
pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into();
|
||||
pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into();
|
||||
pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into();
|
||||
pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into()));
|
||||
}
|
||||
@@ -81,25 +75,23 @@ pub type XcmOriginToTransactDispatchOrigin = (
|
||||
// Sovereign account converter; this attempts to derive an `AccountId` from the origin location
|
||||
// using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for
|
||||
// foreign chains who want to have a local sovereign account on this chain which they control.
|
||||
SovereignSignedViaLocation<LocationToAccountId, Origin>,
|
||||
SovereignSignedViaLocation<LocationToAccountId, RuntimeOrigin>,
|
||||
// Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when
|
||||
// recognized.
|
||||
RelayChainAsNative<RelayChainOrigin, Origin>,
|
||||
RelayChainAsNative<RelayChainOrigin, RuntimeOrigin>,
|
||||
// Native converter for sibling Parachains; will convert to a `SiblingPara` origin when
|
||||
// recognized.
|
||||
SiblingParachainAsNative<cumulus_pallet_xcm::Origin, Origin>,
|
||||
SiblingParachainAsNative<cumulus_pallet_xcm::Origin, RuntimeOrigin>,
|
||||
// Native signed account converter; this just converts an `AccountId32` origin into a normal
|
||||
// `Origin::Signed` origin of the same 32-byte value.
|
||||
SignedAccountId32AsNative<RelayNetwork, Origin>,
|
||||
SignedAccountId32AsNative<RelayNetwork, RuntimeOrigin>,
|
||||
// Xcm origins can be represented natively under the Xcm pallet's Xcm origin.
|
||||
XcmPassthrough<Origin>,
|
||||
XcmPassthrough<RuntimeOrigin>,
|
||||
);
|
||||
|
||||
parameter_types! {
|
||||
// One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate.
|
||||
pub UnitWeightCost: Weight = 1_000_000_000;
|
||||
pub const MaxInstructions: u32 = 100;
|
||||
pub MaxAssetsIntoHolding: u32 = 64;
|
||||
pub const MaxAssetsIntoHolding: u32 = 64;
|
||||
}
|
||||
|
||||
match_types! {
|
||||
@@ -200,12 +192,15 @@ pub type Barrier = (
|
||||
// ^^^ Parent & its unit plurality gets free execution
|
||||
);
|
||||
|
||||
/// XCM weigher type.
|
||||
pub type XcmWeigher = FixedWeightBounds<UnitWeightCost, Call, MaxInstructions>;
|
||||
type XcmWeigher = WeightInfoBounds<
|
||||
crate::weights::xcm::BridgeHubXcmWeight<RuntimeCall>,
|
||||
RuntimeCall,
|
||||
MaxInstructions,
|
||||
>;
|
||||
|
||||
pub struct XcmConfig;
|
||||
impl xcm_executor::Config for XcmConfig {
|
||||
type Call = Call;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
type XcmSender = XcmRouter;
|
||||
type AssetTransactor = LocalAssetTransactor;
|
||||
type OriginConverter = XcmOriginToTransactDispatchOrigin;
|
||||
@@ -226,11 +221,11 @@ impl xcm_executor::Config for XcmConfig {
|
||||
type FeeManager = ();
|
||||
type MessageExporter = BridgeHubRococoOrBridgeHubWococoSwitchExporter;
|
||||
type UniversalAliases = Nothing;
|
||||
type CallDispatcher = Call;
|
||||
type CallDispatcher = RuntimeCall;
|
||||
}
|
||||
|
||||
/// No local origins on this chain are allowed to dispatch XCM sends/executions.
|
||||
pub type LocalOriginToLocation = SignedToAccountId32<Origin, AccountId, RelayNetwork>;
|
||||
pub type LocalOriginToLocation = SignedToAccountId32<RuntimeOrigin, AccountId, RelayNetwork>;
|
||||
|
||||
/// The means for routing XCM messages which are not for local execution into the right message
|
||||
/// queues.
|
||||
@@ -242,17 +237,17 @@ pub type XcmRouter = (
|
||||
);
|
||||
|
||||
impl pallet_xcm::Config for Runtime {
|
||||
type Event = Event;
|
||||
type SendXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type SendXcmOrigin = EnsureXcmOrigin<RuntimeOrigin, LocalOriginToLocation>;
|
||||
type XcmRouter = XcmRouter;
|
||||
type ExecuteXcmOrigin = EnsureXcmOrigin<Origin, LocalOriginToLocation>;
|
||||
type ExecuteXcmOrigin = EnsureXcmOrigin<RuntimeOrigin, LocalOriginToLocation>;
|
||||
type XcmExecuteFilter = Everything;
|
||||
type XcmExecutor = XcmExecutor<XcmConfig>;
|
||||
type XcmTeleportFilter = Everything;
|
||||
type XcmReserveTransferFilter = Everything;
|
||||
type Weigher = XcmWeigher;
|
||||
type Origin = Origin;
|
||||
type Call = Call;
|
||||
type RuntimeOrigin = RuntimeOrigin;
|
||||
type RuntimeCall = RuntimeCall;
|
||||
const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100;
|
||||
type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion;
|
||||
type Currency = Balances;
|
||||
@@ -264,7 +259,7 @@ impl pallet_xcm::Config for Runtime {
|
||||
}
|
||||
|
||||
impl cumulus_pallet_xcm::Config for Runtime {
|
||||
type Event = Event;
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type XcmExecutor = XcmExecutor<XcmConfig>;
|
||||
}
|
||||
|
||||
@@ -276,15 +271,16 @@ impl ExportXcm for BridgeHubRococoOrBridgeHubWococoSwitchExporter {
|
||||
fn validate(
|
||||
network: NetworkId,
|
||||
channel: u32,
|
||||
universal_source: &mut Option<InteriorMultiLocation>,
|
||||
destination: &mut Option<InteriorMultiLocation>,
|
||||
message: &mut Option<Xcm<()>>,
|
||||
) -> SendResult<Self::Ticket> {
|
||||
match network {
|
||||
Rococo =>
|
||||
ToBridgeHubRococoHaulBlobExporter::validate(network, channel, destination, message)
|
||||
ToBridgeHubRococoHaulBlobExporter::validate(network, channel, universal_source, destination, message)
|
||||
.map(|result| ((Rococo, result.0), result.1)),
|
||||
Wococo =>
|
||||
ToBridgeHubWococoHaulBlobExporter::validate(network, channel, destination, message)
|
||||
ToBridgeHubWococoHaulBlobExporter::validate(network, channel, universal_source, destination, message)
|
||||
.map(|result| ((Wococo, result.0), result.1)),
|
||||
_ => unimplemented!("Unsupported network: {:?}", network),
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@ use sp_core::hexdisplay::HexDisplay;
|
||||
use sp_runtime::traits::{AccountIdConversion, Block as BlockT};
|
||||
use std::{net::SocketAddr, path::PathBuf};
|
||||
|
||||
use crate::chain_spec::bridge_hubs::BridgeHubRuntimeType;
|
||||
|
||||
/// Helper enum that is used for better distinction of different parachain/runtime configuration
|
||||
/// (it is based/calculated on ChainSpec's ID attribute)
|
||||
#[derive(Debug, PartialEq, Default)]
|
||||
|
||||
Reference in New Issue
Block a user