diff --git a/Cargo.lock b/Cargo.lock
index 0b11d9005..5ea406367 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -576,7 +576,7 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
[[package]]
name = "asset-test-utils"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
@@ -605,7 +605,7 @@ dependencies = [
[[package]]
name = "assets-common"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -933,7 +933,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "binary-merkle-tree"
version = "15.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hash-db",
"log",
@@ -1176,7 +1176,7 @@ dependencies = [
[[package]]
name = "bp-header-chain"
version = "0.18.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-runtime",
"finality-grandpa",
@@ -1193,7 +1193,7 @@ dependencies = [
[[package]]
name = "bp-messages"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-runtime",
@@ -1209,7 +1209,7 @@ dependencies = [
[[package]]
name = "bp-parachains"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-polkadot-core",
@@ -1226,7 +1226,7 @@ dependencies = [
[[package]]
name = "bp-polkadot-core"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-messages",
"bp-runtime",
@@ -1244,7 +1244,7 @@ dependencies = [
[[package]]
name = "bp-relayers"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-messages",
@@ -1262,7 +1262,7 @@ dependencies = [
[[package]]
name = "bp-runtime"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -1285,7 +1285,7 @@ dependencies = [
[[package]]
name = "bp-test-utils"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-parachains",
@@ -1305,7 +1305,7 @@ dependencies = [
[[package]]
name = "bp-xcm-bridge-hub"
version = "0.4.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-messages",
"bp-runtime",
@@ -1322,7 +1322,7 @@ dependencies = [
[[package]]
name = "bp-xcm-bridge-hub-router"
version = "0.14.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -1334,7 +1334,7 @@ dependencies = [
[[package]]
name = "bridge-hub-common"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -1351,7 +1351,7 @@ dependencies = [
[[package]]
name = "bridge-runtime-common"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-messages",
@@ -2585,7 +2585,7 @@ dependencies = [
[[package]]
name = "cumulus-client-cli"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"clap 4.5.13",
"parity-scale-codec",
@@ -2602,7 +2602,7 @@ dependencies = [
[[package]]
name = "cumulus-client-collator"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-client-consensus-common",
"cumulus-client-network",
@@ -2625,7 +2625,7 @@ dependencies = [
[[package]]
name = "cumulus-client-consensus-aura"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-client-collator",
@@ -2670,7 +2670,7 @@ dependencies = [
[[package]]
name = "cumulus-client-consensus-common"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-client-pov-recovery",
@@ -2700,7 +2700,7 @@ dependencies = [
[[package]]
name = "cumulus-client-consensus-proposer"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"anyhow",
"async-trait",
@@ -2715,7 +2715,7 @@ dependencies = [
[[package]]
name = "cumulus-client-network"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-relay-chain-interface",
@@ -2741,7 +2741,7 @@ dependencies = [
[[package]]
name = "cumulus-client-parachain-inherent"
version = "0.12.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -2763,7 +2763,7 @@ dependencies = [
[[package]]
name = "cumulus-client-pov-recovery"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -2789,7 +2789,7 @@ dependencies = [
[[package]]
name = "cumulus-client-service"
version = "0.19.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-client-cli",
"cumulus-client-collator",
@@ -2826,7 +2826,7 @@ dependencies = [
[[package]]
name = "cumulus-pallet-parachain-system"
version = "0.17.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bytes",
"cumulus-pallet-parachain-system-proc-macro",
@@ -2862,7 +2862,7 @@ dependencies = [
[[package]]
name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.6.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
@@ -2873,7 +2873,7 @@ dependencies = [
[[package]]
name = "cumulus-pallet-session-benchmarking"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -2886,7 +2886,7 @@ dependencies = [
[[package]]
name = "cumulus-pallet-xcm"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -2901,7 +2901,7 @@ dependencies = [
[[package]]
name = "cumulus-pallet-xcmp-queue"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bounded-collections 0.2.0",
"bp-xcm-bridge-hub-router",
@@ -2926,7 +2926,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-aura"
version = "0.15.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-api",
"sp-consensus-aura",
@@ -2935,7 +2935,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-core"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"polkadot-core-primitives",
@@ -2951,7 +2951,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-parachain-inherent"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -2965,7 +2965,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-proof-size-hostfunction"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-externalities",
"sp-runtime-interface",
@@ -2975,7 +2975,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-storage-weight-reclaim"
version = "8.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-proof-size-hostfunction",
@@ -2991,7 +2991,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-timestamp"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"sp-inherents",
@@ -3001,7 +3001,7 @@ dependencies = [
[[package]]
name = "cumulus-primitives-utility"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -3018,7 +3018,7 @@ dependencies = [
[[package]]
name = "cumulus-relay-chain-inprocess-interface"
version = "0.19.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -3042,7 +3042,7 @@ dependencies = [
[[package]]
name = "cumulus-relay-chain-interface"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -3061,7 +3061,7 @@ dependencies = [
[[package]]
name = "cumulus-relay-chain-minimal-node"
version = "0.19.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-trait",
@@ -3096,7 +3096,7 @@ dependencies = [
[[package]]
name = "cumulus-relay-chain-rpc-interface"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"cumulus-primitives-core",
@@ -3135,7 +3135,7 @@ dependencies = [
[[package]]
name = "cumulus-test-relay-sproof-builder"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"parity-scale-codec",
@@ -3351,6 +3351,7 @@ dependencies = [
"test-relay-sproof-builder",
"tp-author-noting-inherent",
"tp-traits",
+ "tp-xcm-commons",
"tp-xcm-core-buyer",
"westend-runtime",
"westend-runtime-constants",
@@ -3366,11 +3367,14 @@ dependencies = [
"alloy-sol-types",
"binary-merkle-tree",
"bitvec",
+ "container-chain-template-frontier-runtime",
+ "container-chain-template-simple-runtime",
"cumulus-pallet-parachain-system",
"cumulus-primitives-core",
"dancelight-runtime-constants",
"dp-consensus",
"dp-container-chain-genesis-data",
+ "emulated-integration-tests-common",
"finality-grandpa",
"frame-benchmarking",
"frame-executive",
@@ -3448,6 +3452,9 @@ dependencies = [
"polkadot-runtime-common",
"polkadot-runtime-parachains",
"rand",
+ "rococo-runtime",
+ "rococo-runtime-constants",
+ "sc-consensus-grandpa",
"scale-info",
"separator",
"serde",
@@ -3502,6 +3509,10 @@ dependencies = [
"tp-author-noting-inherent",
"tp-bridge",
"tp-traits",
+ "tp-xcm-commons",
+ "westend-runtime",
+ "westend-runtime-constants",
+ "xcm-emulator",
"xcm-runtime-apis",
]
@@ -4048,7 +4059,7 @@ dependencies = [
[[package]]
name = "emulated-integration-tests-common"
version = "14.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"asset-test-utils",
"bp-messages",
@@ -4925,7 +4936,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "fork-tree"
version = "13.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
]
@@ -5052,7 +5063,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
[[package]]
name = "frame-benchmarking"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-support-procedural",
@@ -5076,7 +5087,7 @@ dependencies = [
[[package]]
name = "frame-benchmarking-cli"
version = "43.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"Inflector",
"array-bytes",
@@ -5126,7 +5137,7 @@ dependencies = [
[[package]]
name = "frame-election-provider-solution-type"
version = "14.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
@@ -5137,7 +5148,7 @@ dependencies = [
[[package]]
name = "frame-election-provider-support"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-election-provider-solution-type",
"frame-support",
@@ -5153,7 +5164,7 @@ dependencies = [
[[package]]
name = "frame-executive"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"aquamarine",
"frame-support",
@@ -5183,7 +5194,7 @@ dependencies = [
[[package]]
name = "frame-metadata-hash-extension"
version = "0.6.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"docify",
@@ -5198,7 +5209,7 @@ dependencies = [
[[package]]
name = "frame-remote-externalities"
version = "0.46.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"indicatif",
@@ -5220,7 +5231,7 @@ dependencies = [
[[package]]
name = "frame-support"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"aquamarine",
"array-bytes",
@@ -5261,7 +5272,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural"
version = "30.0.3"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"Inflector",
"cfg-expr",
@@ -5281,7 +5292,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools"
version = "13.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 3.1.0",
@@ -5293,7 +5304,7 @@ dependencies = [
[[package]]
name = "frame-support-procedural-tools-derive"
version = "12.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro2",
"quote",
@@ -5303,7 +5314,7 @@ dependencies = [
[[package]]
name = "frame-system"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cfg-if",
"docify",
@@ -5323,7 +5334,7 @@ dependencies = [
[[package]]
name = "frame-system-benchmarking"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -5337,7 +5348,7 @@ dependencies = [
[[package]]
name = "frame-system-rpc-runtime-api"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"parity-scale-codec",
@@ -5347,7 +5358,7 @@ dependencies = [
[[package]]
name = "frame-try-runtime"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"parity-scale-codec",
@@ -7719,7 +7730,7 @@ dependencies = [
[[package]]
name = "mmr-gadget"
version = "40.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"log",
@@ -7738,7 +7749,7 @@ dependencies = [
[[package]]
name = "mmr-rpc"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -8607,7 +8618,7 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
[[package]]
name = "pallet-asset-conversion"
version = "20.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8625,7 +8636,7 @@ dependencies = [
[[package]]
name = "pallet-asset-rate"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8639,7 +8650,7 @@ dependencies = [
[[package]]
name = "pallet-asset-tx-payment"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8656,7 +8667,7 @@ dependencies = [
[[package]]
name = "pallet-assets"
version = "40.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8772,7 +8783,7 @@ dependencies = [
[[package]]
name = "pallet-authority-discovery"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -8801,7 +8812,7 @@ dependencies = [
[[package]]
name = "pallet-authorship"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -8814,7 +8825,7 @@ dependencies = [
[[package]]
name = "pallet-babe"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8837,7 +8848,7 @@ dependencies = [
[[package]]
name = "pallet-bags-list"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"aquamarine",
"docify",
@@ -8858,7 +8869,7 @@ dependencies = [
[[package]]
name = "pallet-balances"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -8887,7 +8898,7 @@ dependencies = [
[[package]]
name = "pallet-beefy"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -8906,7 +8917,7 @@ dependencies = [
[[package]]
name = "pallet-beefy-mmr"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"binary-merkle-tree",
@@ -8931,7 +8942,7 @@ dependencies = [
[[package]]
name = "pallet-bounties"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -8948,7 +8959,7 @@ dependencies = [
[[package]]
name = "pallet-bridge-grandpa"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-runtime",
@@ -8967,7 +8978,7 @@ dependencies = [
[[package]]
name = "pallet-bridge-messages"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-messages",
@@ -8986,7 +8997,7 @@ dependencies = [
[[package]]
name = "pallet-bridge-parachains"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-parachains",
@@ -9006,7 +9017,7 @@ dependencies = [
[[package]]
name = "pallet-bridge-relayers"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-header-chain",
"bp-messages",
@@ -9030,7 +9041,7 @@ dependencies = [
[[package]]
name = "pallet-broker"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -9077,7 +9088,7 @@ dependencies = [
[[package]]
name = "pallet-child-bounties"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9127,7 +9138,7 @@ dependencies = [
[[package]]
name = "pallet-collator-selection"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9146,7 +9157,7 @@ dependencies = [
[[package]]
name = "pallet-collective"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9180,7 +9191,7 @@ dependencies = [
[[package]]
name = "pallet-conviction-voting"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -9231,7 +9242,7 @@ dependencies = [
[[package]]
name = "pallet-delegated-staking"
version = "5.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -9246,7 +9257,7 @@ dependencies = [
[[package]]
name = "pallet-democracy"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9263,7 +9274,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-multi-phase"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -9285,7 +9296,7 @@ dependencies = [
[[package]]
name = "pallet-election-provider-support-benchmarking"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -9298,7 +9309,7 @@ dependencies = [
[[package]]
name = "pallet-elections-phragmen"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9639,7 +9650,7 @@ dependencies = [
[[package]]
name = "pallet-fast-unstake"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -9676,7 +9687,7 @@ dependencies = [
[[package]]
name = "pallet-grandpa"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9698,7 +9709,7 @@ dependencies = [
[[package]]
name = "pallet-identity"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"enumflags2",
"frame-benchmarking",
@@ -9714,7 +9725,7 @@ dependencies = [
[[package]]
name = "pallet-im-online"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9733,7 +9744,7 @@ dependencies = [
[[package]]
name = "pallet-indices"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9824,7 +9835,7 @@ dependencies = [
[[package]]
name = "pallet-membership"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9840,7 +9851,7 @@ dependencies = [
[[package]]
name = "pallet-message-queue"
version = "41.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"environmental",
"frame-benchmarking",
@@ -9878,7 +9889,7 @@ dependencies = [
[[package]]
name = "pallet-migrations"
version = "8.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -9895,7 +9906,7 @@ dependencies = [
[[package]]
name = "pallet-mmr"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9912,7 +9923,7 @@ dependencies = [
[[package]]
name = "pallet-multisig"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9927,7 +9938,7 @@ dependencies = [
[[package]]
name = "pallet-nis"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -9942,7 +9953,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools"
version = "35.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -9960,7 +9971,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-benchmarking"
version = "36.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -9980,7 +9991,7 @@ dependencies = [
[[package]]
name = "pallet-nomination-pools-runtime-api"
version = "33.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"pallet-nomination-pools",
"parity-scale-codec",
@@ -10005,7 +10016,7 @@ dependencies = [
[[package]]
name = "pallet-offences"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -10021,7 +10032,7 @@ dependencies = [
[[package]]
name = "pallet-offences-benchmarking"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -10044,7 +10055,7 @@ dependencies = [
[[package]]
name = "pallet-parameters"
version = "0.9.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10084,7 +10095,7 @@ dependencies = [
[[package]]
name = "pallet-preimage"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10100,7 +10111,7 @@ dependencies = [
[[package]]
name = "pallet-proxy"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10114,7 +10125,7 @@ dependencies = [
[[package]]
name = "pallet-ranked-collective"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10132,7 +10143,7 @@ dependencies = [
[[package]]
name = "pallet-recovery"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10146,7 +10157,7 @@ dependencies = [
[[package]]
name = "pallet-referenda"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"assert_matches",
"frame-benchmarking",
@@ -10226,7 +10237,7 @@ dependencies = [
[[package]]
name = "pallet-root-testing"
version = "14.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -10240,7 +10251,7 @@ dependencies = [
[[package]]
name = "pallet-scheduler"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10285,7 +10296,7 @@ dependencies = [
[[package]]
name = "pallet-session"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -10306,7 +10317,7 @@ dependencies = [
[[package]]
name = "pallet-session-benchmarking"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10322,7 +10333,7 @@ dependencies = [
[[package]]
name = "pallet-society"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10339,7 +10350,7 @@ dependencies = [
[[package]]
name = "pallet-staking"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-election-provider-support",
@@ -10361,7 +10372,7 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-curve"
version = "12.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
@@ -10372,7 +10383,7 @@ dependencies = [
[[package]]
name = "pallet-staking-reward-fn"
version = "22.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"sp-arithmetic",
@@ -10381,7 +10392,7 @@ dependencies = [
[[package]]
name = "pallet-staking-runtime-api"
version = "24.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -10391,7 +10402,7 @@ dependencies = [
[[package]]
name = "pallet-state-trie-migration"
version = "40.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10442,7 +10453,7 @@ dependencies = [
[[package]]
name = "pallet-sudo"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10457,7 +10468,7 @@ dependencies = [
[[package]]
name = "pallet-timestamp"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10476,7 +10487,7 @@ dependencies = [
[[package]]
name = "pallet-tips"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10494,7 +10505,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -10509,7 +10520,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc"
version = "41.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"pallet-transaction-payment-rpc-runtime-api",
@@ -10525,7 +10536,7 @@ dependencies = [
[[package]]
name = "pallet-transaction-payment-rpc-runtime-api"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"pallet-transaction-payment",
"parity-scale-codec",
@@ -10537,7 +10548,7 @@ dependencies = [
[[package]]
name = "pallet-treasury"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10555,7 +10566,7 @@ dependencies = [
[[package]]
name = "pallet-tx-pause"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-benchmarking",
@@ -10572,7 +10583,7 @@ dependencies = [
[[package]]
name = "pallet-utility"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10587,7 +10598,7 @@ dependencies = [
[[package]]
name = "pallet-vesting"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10601,7 +10612,7 @@ dependencies = [
[[package]]
name = "pallet-whitelist"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10615,7 +10626,7 @@ dependencies = [
[[package]]
name = "pallet-xcm"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bounded-collections 0.2.0",
"frame-benchmarking",
@@ -10639,7 +10650,7 @@ dependencies = [
[[package]]
name = "pallet-xcm-benchmarks"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -10657,7 +10668,7 @@ dependencies = [
[[package]]
name = "pallet-xcm-bridge-hub"
version = "0.13.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-messages",
"bp-runtime",
@@ -10679,7 +10690,7 @@ dependencies = [
[[package]]
name = "pallet-xcm-bridge-hub-router"
version = "0.15.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bp-xcm-bridge-hub-router",
"frame-benchmarking",
@@ -10764,7 +10775,7 @@ dependencies = [
[[package]]
name = "parachains-common"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"cumulus-primitives-utility",
@@ -10794,7 +10805,7 @@ dependencies = [
[[package]]
name = "parachains-runtimes-test-utils"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
@@ -11148,7 +11159,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]]
name = "polkadot-approval-distribution"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"futures 0.3.30",
@@ -11168,7 +11179,7 @@ dependencies = [
[[package]]
name = "polkadot-availability-bitfield-distribution"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"always-assert",
"futures 0.3.30",
@@ -11184,7 +11195,7 @@ dependencies = [
[[package]]
name = "polkadot-availability-distribution"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"derive_more",
"fatality",
@@ -11208,7 +11219,7 @@ dependencies = [
[[package]]
name = "polkadot-availability-recovery"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"fatality",
@@ -11241,7 +11252,7 @@ dependencies = [
[[package]]
name = "polkadot-cli"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cfg-if",
"clap 4.5.13",
@@ -11269,7 +11280,7 @@ dependencies = [
[[package]]
name = "polkadot-collator-protocol"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"fatality",
@@ -11292,7 +11303,7 @@ dependencies = [
[[package]]
name = "polkadot-core-primitives"
version = "15.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -11303,7 +11314,7 @@ dependencies = [
[[package]]
name = "polkadot-dispute-distribution"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"derive_more",
"fatality",
@@ -11328,7 +11339,7 @@ dependencies = [
[[package]]
name = "polkadot-erasure-coding"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"polkadot-node-primitives",
@@ -11342,7 +11353,7 @@ dependencies = [
[[package]]
name = "polkadot-gossip-support"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"futures-timer",
@@ -11364,7 +11375,7 @@ dependencies = [
[[package]]
name = "polkadot-network-bridge"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"always-assert",
"async-trait",
@@ -11387,7 +11398,7 @@ dependencies = [
[[package]]
name = "polkadot-node-collation-generation"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"parity-scale-codec",
@@ -11405,7 +11416,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-approval-voting"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"derive_more",
@@ -11438,7 +11449,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-av-store"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"futures 0.3.30",
@@ -11460,7 +11471,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-backing"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"fatality",
@@ -11480,7 +11491,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-bitfield-signing"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"polkadot-node-subsystem",
@@ -11495,7 +11506,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-candidate-validation"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -11517,7 +11528,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-chain-api"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"polkadot-node-metrics",
@@ -11531,7 +11542,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-chain-selection"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"futures-timer",
@@ -11548,7 +11559,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-dispute-coordinator"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"fatality",
"futures 0.3.30",
@@ -11567,7 +11578,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-parachains-inherent"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -11584,7 +11595,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-prospective-parachains"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"fatality",
"futures 0.3.30",
@@ -11598,7 +11609,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-provisioner"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"fatality",
@@ -11616,7 +11627,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"always-assert",
"array-bytes",
@@ -11645,7 +11656,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-checker"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"polkadot-node-primitives",
@@ -11661,7 +11672,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-common"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cpu-time",
"futures 0.3.30",
@@ -11687,7 +11698,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-execute-worker"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cfg-if",
"cpu-time",
@@ -11705,7 +11716,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-pvf-prepare-worker"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"blake3",
"cfg-if",
@@ -11728,7 +11739,7 @@ dependencies = [
[[package]]
name = "polkadot-node-core-runtime-api"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"polkadot-node-metrics",
@@ -11743,7 +11754,7 @@ dependencies = [
[[package]]
name = "polkadot-node-jaeger"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"lazy_static",
"log",
@@ -11762,7 +11773,7 @@ dependencies = [
[[package]]
name = "polkadot-node-metrics"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bs58 0.5.1",
"futures 0.3.30",
@@ -11781,7 +11792,7 @@ dependencies = [
[[package]]
name = "polkadot-node-network-protocol"
version = "18.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-channel 1.9.0",
"async-trait",
@@ -11807,7 +11818,7 @@ dependencies = [
[[package]]
name = "polkadot-node-primitives"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"bounded-vec",
@@ -11833,7 +11844,7 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"polkadot-node-jaeger",
"polkadot-node-subsystem-types",
@@ -11843,7 +11854,7 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-test-helpers"
version = "1.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -11865,7 +11876,7 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-types"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"bitvec",
@@ -11895,7 +11906,7 @@ dependencies = [
[[package]]
name = "polkadot-node-subsystem-util"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"derive_more",
@@ -11931,7 +11942,7 @@ dependencies = [
[[package]]
name = "polkadot-overseer"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -11953,7 +11964,7 @@ dependencies = [
[[package]]
name = "polkadot-parachain-primitives"
version = "14.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bounded-collections 0.2.0",
"derive_more",
@@ -11969,7 +11980,7 @@ dependencies = [
[[package]]
name = "polkadot-primitives"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"hex-literal 0.4.1",
@@ -11995,7 +12006,7 @@ dependencies = [
[[package]]
name = "polkadot-primitives-test-helpers"
version = "0.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"polkadot-primitives",
"rand",
@@ -12008,7 +12019,7 @@ dependencies = [
[[package]]
name = "polkadot-rpc"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"mmr-rpc",
@@ -12043,7 +12054,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime-common"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitvec",
"frame-benchmarking",
@@ -12093,7 +12104,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime-metrics"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bs58 0.5.1",
"frame-benchmarking",
@@ -12105,7 +12116,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime-parachains"
version = "17.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bitflags 1.3.2",
"bitvec",
@@ -12155,7 +12166,7 @@ dependencies = [
[[package]]
name = "polkadot-service"
version = "19.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"frame-benchmarking",
@@ -12262,7 +12273,7 @@ dependencies = [
[[package]]
name = "polkadot-statement-distribution"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"arrayvec 0.7.4",
"bitvec",
@@ -12285,7 +12296,7 @@ dependencies = [
[[package]]
name = "polkadot-statement-table"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"polkadot-primitives",
@@ -12296,7 +12307,7 @@ dependencies = [
[[package]]
name = "polkadot-test-client"
version = "1.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"parity-scale-codec",
@@ -12324,7 +12335,7 @@ dependencies = [
[[package]]
name = "polkadot-test-runtime"
version = "1.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-election-provider-support",
"frame-executive",
@@ -12380,7 +12391,7 @@ dependencies = [
[[package]]
name = "polkadot-test-service"
version = "1.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-system",
"futures 0.3.30",
@@ -13538,7 +13549,7 @@ dependencies = [
[[package]]
name = "rococo-runtime"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"binary-merkle-tree",
"bitvec",
@@ -13638,7 +13649,7 @@ dependencies = [
[[package]]
name = "rococo-runtime-constants"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -14018,7 +14029,7 @@ dependencies = [
[[package]]
name = "sc-allocator"
version = "29.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"sp-core",
@@ -14029,7 +14040,7 @@ dependencies = [
[[package]]
name = "sc-authority-discovery"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -14059,7 +14070,7 @@ dependencies = [
[[package]]
name = "sc-basic-authorship"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"futures-timer",
@@ -14081,7 +14092,7 @@ dependencies = [
[[package]]
name = "sc-block-builder"
version = "0.42.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"sp-api",
@@ -14096,7 +14107,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"docify",
@@ -14123,7 +14134,7 @@ dependencies = [
[[package]]
name = "sc-chain-spec-derive"
version = "12.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
@@ -14134,7 +14145,7 @@ dependencies = [
[[package]]
name = "sc-cli"
version = "0.47.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"chrono",
@@ -14179,7 +14190,7 @@ dependencies = [
[[package]]
name = "sc-client-api"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"fnv",
"futures 0.3.30",
@@ -14206,7 +14217,7 @@ dependencies = [
[[package]]
name = "sc-client-db"
version = "0.44.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hash-db",
"kvdb",
@@ -14232,7 +14243,7 @@ dependencies = [
[[package]]
name = "sc-consensus"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -14256,7 +14267,7 @@ dependencies = [
[[package]]
name = "sc-consensus-aura"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -14285,7 +14296,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"fork-tree",
@@ -14321,7 +14332,7 @@ dependencies = [
[[package]]
name = "sc-consensus-babe-rpc"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"jsonrpsee",
@@ -14343,7 +14354,7 @@ dependencies = [
[[package]]
name = "sc-consensus-beefy"
version = "24.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-channel 1.9.0",
@@ -14379,7 +14390,7 @@ dependencies = [
[[package]]
name = "sc-consensus-beefy-rpc"
version = "24.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"jsonrpsee",
@@ -14399,7 +14410,7 @@ dependencies = [
[[package]]
name = "sc-consensus-epochs"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"fork-tree",
"parity-scale-codec",
@@ -14412,7 +14423,7 @@ dependencies = [
[[package]]
name = "sc-consensus-grandpa"
version = "0.30.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"ahash 0.8.8",
"array-bytes",
@@ -14456,7 +14467,7 @@ dependencies = [
[[package]]
name = "sc-consensus-grandpa-rpc"
version = "0.30.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"finality-grandpa",
"futures 0.3.30",
@@ -14476,7 +14487,7 @@ dependencies = [
[[package]]
name = "sc-consensus-manual-seal"
version = "0.46.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"assert_matches",
"async-trait",
@@ -14511,7 +14522,7 @@ dependencies = [
[[package]]
name = "sc-consensus-slots"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -14534,7 +14545,7 @@ dependencies = [
[[package]]
name = "sc-executor"
version = "0.40.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"parity-scale-codec",
@@ -14558,7 +14569,7 @@ dependencies = [
[[package]]
name = "sc-executor-common"
version = "0.35.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"polkavm",
@@ -14572,7 +14583,7 @@ dependencies = [
[[package]]
name = "sc-executor-polkavm"
version = "0.32.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"polkavm",
@@ -14583,7 +14594,7 @@ dependencies = [
[[package]]
name = "sc-executor-wasmtime"
version = "0.35.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"anyhow",
"cfg-if",
@@ -14602,7 +14613,7 @@ dependencies = [
[[package]]
name = "sc-informant"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"console",
"futures 0.3.30",
@@ -14619,7 +14630,7 @@ dependencies = [
[[package]]
name = "sc-keystore"
version = "33.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"parking_lot 0.12.3",
@@ -14633,7 +14644,7 @@ dependencies = [
[[package]]
name = "sc-mixnet"
version = "0.15.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"arrayvec 0.7.4",
@@ -14662,7 +14673,7 @@ dependencies = [
[[package]]
name = "sc-network"
version = "0.45.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-channel 1.9.0",
@@ -14713,7 +14724,7 @@ dependencies = [
[[package]]
name = "sc-network-common"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"bitflags 1.3.2",
@@ -14731,7 +14742,7 @@ dependencies = [
[[package]]
name = "sc-network-gossip"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"ahash 0.8.8",
"futures 0.3.30",
@@ -14750,7 +14761,7 @@ dependencies = [
[[package]]
name = "sc-network-light"
version = "0.44.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-channel 1.9.0",
@@ -14771,7 +14782,7 @@ dependencies = [
[[package]]
name = "sc-network-sync"
version = "0.44.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-channel 1.9.0",
@@ -14808,7 +14819,7 @@ dependencies = [
[[package]]
name = "sc-network-test"
version = "0.8.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -14840,7 +14851,7 @@ dependencies = [
[[package]]
name = "sc-network-transactions"
version = "0.44.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"futures 0.3.30",
@@ -14859,7 +14870,7 @@ dependencies = [
[[package]]
name = "sc-network-types"
version = "0.12.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bs58 0.5.1",
"ed25519-dalek",
@@ -14876,7 +14887,7 @@ dependencies = [
[[package]]
name = "sc-offchain"
version = "40.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"bytes",
@@ -14910,7 +14921,7 @@ dependencies = [
[[package]]
name = "sc-proposer-metrics"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"substrate-prometheus-endpoint",
@@ -14919,7 +14930,7 @@ dependencies = [
[[package]]
name = "sc-rpc"
version = "40.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"jsonrpsee",
@@ -14951,7 +14962,7 @@ dependencies = [
[[package]]
name = "sc-rpc-api"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -14971,7 +14982,7 @@ dependencies = [
[[package]]
name = "sc-rpc-server"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"dyn-clone",
"forwarded-header-value",
@@ -14995,7 +15006,7 @@ dependencies = [
[[package]]
name = "sc-rpc-spec-v2"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"futures 0.3.30",
@@ -15027,7 +15038,7 @@ dependencies = [
[[package]]
name = "sc-service"
version = "0.46.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"directories",
@@ -15091,7 +15102,7 @@ dependencies = [
[[package]]
name = "sc-state-db"
version = "0.36.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"parity-scale-codec",
@@ -15102,7 +15113,7 @@ dependencies = [
[[package]]
name = "sc-storage-monitor"
version = "0.22.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"clap 4.5.13",
"fs4",
@@ -15115,7 +15126,7 @@ dependencies = [
[[package]]
name = "sc-sync-state-rpc"
version = "0.45.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -15134,7 +15145,7 @@ dependencies = [
[[package]]
name = "sc-sysinfo"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"derive_more",
"futures 0.3.30",
@@ -15155,7 +15166,7 @@ dependencies = [
[[package]]
name = "sc-telemetry"
version = "25.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"chrono",
"futures 0.3.30",
@@ -15175,7 +15186,7 @@ dependencies = [
[[package]]
name = "sc-tracing"
version = "37.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"chrono",
"console",
@@ -15204,7 +15215,7 @@ dependencies = [
[[package]]
name = "sc-tracing-proc-macro"
version = "11.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
@@ -15215,7 +15226,7 @@ dependencies = [
[[package]]
name = "sc-transaction-pool"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -15246,7 +15257,7 @@ dependencies = [
[[package]]
name = "sc-transaction-pool-api"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -15262,7 +15273,7 @@ dependencies = [
[[package]]
name = "sc-utils"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-channel 1.9.0",
"futures 0.3.30",
@@ -15866,7 +15877,7 @@ dependencies = [
[[package]]
name = "slot-range-helper"
version = "15.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"enumn",
"parity-scale-codec",
@@ -16032,7 +16043,7 @@ dependencies = [
[[package]]
name = "snowbridge-beacon-primitives"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"byte-slice-cast",
"frame-support",
@@ -16054,7 +16065,7 @@ dependencies = [
[[package]]
name = "snowbridge-core"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"ethabi-decode",
"frame-support",
@@ -16077,7 +16088,7 @@ dependencies = [
[[package]]
name = "snowbridge-ethereum"
version = "0.9.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"ethabi-decode",
"ethbloom",
@@ -16112,7 +16123,7 @@ dependencies = [
[[package]]
name = "snowbridge-outbound-queue-merkle-tree"
version = "0.9.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16123,7 +16134,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-ethereum-client"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -16149,7 +16160,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-ethereum-client-fixtures"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hex-literal 0.4.1",
"snowbridge-beacon-primitives",
@@ -16161,7 +16172,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-inbound-queue"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"alloy-primitives",
"alloy-sol-types",
@@ -16189,7 +16200,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-inbound-queue-fixtures"
version = "0.18.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hex-literal 0.4.1",
"snowbridge-beacon-primitives",
@@ -16201,7 +16212,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-outbound-queue"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bridge-hub-common",
"ethabi-decode",
@@ -16223,7 +16234,7 @@ dependencies = [
[[package]]
name = "snowbridge-pallet-system"
version = "0.10.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-benchmarking",
"frame-support",
@@ -16243,7 +16254,7 @@ dependencies = [
[[package]]
name = "snowbridge-router-primitives"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"alloy-primitives",
"alloy-sol-types",
@@ -16316,7 +16327,7 @@ dependencies = [
[[package]]
name = "sp-api"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"hash-db",
@@ -16338,7 +16349,7 @@ dependencies = [
[[package]]
name = "sp-api-proc-macro"
version = "20.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"Inflector",
"blake2 0.10.6",
@@ -16352,7 +16363,7 @@ dependencies = [
[[package]]
name = "sp-application-crypto"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16364,7 +16375,7 @@ dependencies = [
[[package]]
name = "sp-arithmetic"
version = "26.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"integer-sqrt",
@@ -16378,7 +16389,7 @@ dependencies = [
[[package]]
name = "sp-authority-discovery"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16390,7 +16401,7 @@ dependencies = [
[[package]]
name = "sp-block-builder"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-api",
"sp-inherents",
@@ -16400,7 +16411,7 @@ dependencies = [
[[package]]
name = "sp-blockchain"
version = "37.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"parity-scale-codec",
@@ -16419,7 +16430,7 @@ dependencies = [
[[package]]
name = "sp-consensus"
version = "0.40.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"futures 0.3.30",
@@ -16434,7 +16445,7 @@ dependencies = [
[[package]]
name = "sp-consensus-aura"
version = "0.40.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -16450,7 +16461,7 @@ dependencies = [
[[package]]
name = "sp-consensus-babe"
version = "0.40.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -16468,7 +16479,7 @@ dependencies = [
[[package]]
name = "sp-consensus-beefy"
version = "22.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"lazy_static",
"parity-scale-codec",
@@ -16489,7 +16500,7 @@ dependencies = [
[[package]]
name = "sp-consensus-grandpa"
version = "21.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"finality-grandpa",
"log",
@@ -16506,7 +16517,7 @@ dependencies = [
[[package]]
name = "sp-consensus-slots"
version = "0.40.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16517,7 +16528,7 @@ dependencies = [
[[package]]
name = "sp-core"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"bitflags 1.3.2",
@@ -16563,7 +16574,7 @@ dependencies = [
[[package]]
name = "sp-crypto-hashing"
version = "0.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"blake2b_simd",
"byteorder",
@@ -16576,7 +16587,7 @@ dependencies = [
[[package]]
name = "sp-crypto-hashing-proc-macro"
version = "0.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"quote",
"sp-crypto-hashing",
@@ -16586,7 +16597,7 @@ dependencies = [
[[package]]
name = "sp-database"
version = "10.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"kvdb",
"parking_lot 0.12.3",
@@ -16595,7 +16606,7 @@ dependencies = [
[[package]]
name = "sp-debug-derive"
version = "14.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"proc-macro2",
"quote",
@@ -16605,7 +16616,7 @@ dependencies = [
[[package]]
name = "sp-externalities"
version = "0.29.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"environmental",
"parity-scale-codec",
@@ -16615,7 +16626,7 @@ dependencies = [
[[package]]
name = "sp-genesis-builder"
version = "0.15.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16627,7 +16638,7 @@ dependencies = [
[[package]]
name = "sp-inherents"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"impl-trait-for-tuples",
@@ -16640,7 +16651,7 @@ dependencies = [
[[package]]
name = "sp-io"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bytes",
"docify",
@@ -16666,7 +16677,7 @@ dependencies = [
[[package]]
name = "sp-keyring"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-core",
"sp-runtime",
@@ -16676,7 +16687,7 @@ dependencies = [
[[package]]
name = "sp-keystore"
version = "0.40.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"parking_lot 0.12.3",
@@ -16687,7 +16698,7 @@ dependencies = [
[[package]]
name = "sp-maybe-compressed-blob"
version = "11.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"thiserror",
"zstd 0.12.4",
@@ -16696,7 +16707,7 @@ dependencies = [
[[package]]
name = "sp-metadata-ir"
version = "0.7.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-metadata",
"parity-scale-codec",
@@ -16706,7 +16717,7 @@ dependencies = [
[[package]]
name = "sp-mixnet"
version = "0.12.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16717,7 +16728,7 @@ dependencies = [
[[package]]
name = "sp-mmr-primitives"
version = "34.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"log",
"parity-scale-codec",
@@ -16734,7 +16745,7 @@ dependencies = [
[[package]]
name = "sp-npos-elections"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16747,7 +16758,7 @@ dependencies = [
[[package]]
name = "sp-offchain"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-api",
"sp-core",
@@ -16757,7 +16768,7 @@ dependencies = [
[[package]]
name = "sp-panic-handler"
version = "13.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"backtrace",
"lazy_static",
@@ -16767,7 +16778,7 @@ dependencies = [
[[package]]
name = "sp-rpc"
version = "32.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"rustc-hash 1.1.0",
"serde",
@@ -16777,7 +16788,7 @@ dependencies = [
[[package]]
name = "sp-runtime"
version = "39.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"either",
@@ -16803,7 +16814,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface"
version = "28.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bytes",
"impl-trait-for-tuples",
@@ -16822,7 +16833,7 @@ dependencies = [
[[package]]
name = "sp-runtime-interface-proc-macro"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"Inflector",
"expander",
@@ -16835,7 +16846,7 @@ dependencies = [
[[package]]
name = "sp-session"
version = "36.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"scale-info",
@@ -16849,7 +16860,7 @@ dependencies = [
[[package]]
name = "sp-staking"
version = "36.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"impl-trait-for-tuples",
"parity-scale-codec",
@@ -16862,7 +16873,7 @@ dependencies = [
[[package]]
name = "sp-state-machine"
version = "0.43.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hash-db",
"log",
@@ -16882,7 +16893,7 @@ dependencies = [
[[package]]
name = "sp-statement-store"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"aes-gcm",
"curve25519-dalek",
@@ -16906,12 +16917,12 @@ dependencies = [
[[package]]
name = "sp-std"
version = "14.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
[[package]]
name = "sp-storage"
version = "21.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -16923,7 +16934,7 @@ dependencies = [
[[package]]
name = "sp-timestamp"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -16935,7 +16946,7 @@ dependencies = [
[[package]]
name = "sp-tracing"
version = "17.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"tracing",
@@ -16946,7 +16957,7 @@ dependencies = [
[[package]]
name = "sp-transaction-pool"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"sp-api",
"sp-runtime",
@@ -16955,7 +16966,7 @@ dependencies = [
[[package]]
name = "sp-transaction-storage-proof"
version = "34.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"parity-scale-codec",
@@ -16969,7 +16980,7 @@ dependencies = [
[[package]]
name = "sp-trie"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"ahash 0.8.8",
"hash-db",
@@ -16992,7 +17003,7 @@ dependencies = [
[[package]]
name = "sp-version"
version = "37.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"impl-serde",
"parity-scale-codec",
@@ -17009,7 +17020,7 @@ dependencies = [
[[package]]
name = "sp-version-proc-macro"
version = "14.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"parity-scale-codec",
"proc-macro2",
@@ -17020,7 +17031,7 @@ dependencies = [
[[package]]
name = "sp-wasm-interface"
version = "21.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"anyhow",
"impl-trait-for-tuples",
@@ -17032,7 +17043,7 @@ dependencies = [
[[package]]
name = "sp-weights"
version = "31.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"bounded-collections 0.2.0",
"parity-scale-codec",
@@ -17256,7 +17267,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "staging-parachain-info"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"cumulus-primitives-core",
"frame-support",
@@ -17269,12 +17280,12 @@ dependencies = [
[[package]]
name = "staging-tracking-allocator"
version = "2.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
[[package]]
name = "staging-xcm"
version = "14.2.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"bounded-collections 0.2.0",
@@ -17293,7 +17304,7 @@ dependencies = [
[[package]]
name = "staging-xcm-builder"
version = "17.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"frame-system",
@@ -17315,7 +17326,7 @@ dependencies = [
[[package]]
name = "staging-xcm-executor"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"environmental",
"frame-benchmarking",
@@ -17477,7 +17488,7 @@ dependencies = [
[[package]]
name = "substrate-bip39"
version = "0.6.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"hmac 0.12.1",
"pbkdf2",
@@ -17489,12 +17500,12 @@ dependencies = [
[[package]]
name = "substrate-build-script-utils"
version = "11.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
[[package]]
name = "substrate-frame-rpc-system"
version = "39.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"docify",
"frame-system-rpc-runtime-api",
@@ -17514,7 +17525,7 @@ dependencies = [
[[package]]
name = "substrate-prometheus-endpoint"
version = "0.17.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"http-body-util",
"hyper 1.4.1",
@@ -17528,7 +17539,7 @@ dependencies = [
[[package]]
name = "substrate-rpc-client"
version = "0.44.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"async-trait",
"jsonrpsee",
@@ -17541,7 +17552,7 @@ dependencies = [
[[package]]
name = "substrate-state-trie-migration-rpc"
version = "38.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"jsonrpsee",
"parity-scale-codec",
@@ -17558,7 +17569,7 @@ dependencies = [
[[package]]
name = "substrate-test-client"
version = "2.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"async-trait",
@@ -17585,7 +17596,7 @@ dependencies = [
[[package]]
name = "substrate-test-runtime"
version = "2.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"frame-executive",
@@ -17629,7 +17640,7 @@ dependencies = [
[[package]]
name = "substrate-test-runtime-client"
version = "2.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"futures 0.3.30",
"sc-block-builder",
@@ -17647,7 +17658,7 @@ dependencies = [
[[package]]
name = "substrate-wasm-builder"
version = "24.0.1"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"build-helper",
@@ -18370,7 +18381,7 @@ dependencies = [
[[package]]
name = "test-runtime-constants"
version = "1.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -18838,6 +18849,15 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "tp-xcm-commons"
+version = "0.1.0"
+dependencies = [
+ "frame-support",
+ "log",
+ "staging-xcm",
+]
+
[[package]]
name = "tp-xcm-core-buyer"
version = "0.1.0"
@@ -18897,7 +18917,7 @@ dependencies = [
[[package]]
name = "tracing-gum"
version = "16.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"coarsetime",
"polkadot-primitives",
@@ -18908,7 +18928,7 @@ dependencies = [
[[package]]
name = "tracing-gum-proc-macro"
version = "5.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"expander",
"proc-macro-crate 3.1.0",
@@ -19755,7 +19775,7 @@ dependencies = [
[[package]]
name = "westend-runtime"
version = "18.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"binary-merkle-tree",
"bitvec",
@@ -19863,7 +19883,7 @@ dependencies = [
[[package]]
name = "westend-runtime-constants"
version = "17.0.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"polkadot-primitives",
@@ -20262,7 +20282,7 @@ dependencies = [
[[package]]
name = "xcm-emulator"
version = "0.16.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"array-bytes",
"cumulus-pallet-parachain-system",
@@ -20315,7 +20335,7 @@ dependencies = [
[[package]]
name = "xcm-procedural"
version = "10.1.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"Inflector",
"proc-macro2",
@@ -20326,7 +20346,7 @@ dependencies = [
[[package]]
name = "xcm-runtime-apis"
version = "0.4.0"
-source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#f3d164a5c20fba26d080731643b6d1a8380fbdf7"
+source = "git+https://github.com/moondance-labs/polkadot-sdk?branch=tanssi-polkadot-stable2409#772548ddb49afaccf7bcf192a9b0780d00dfad3f"
dependencies = [
"frame-support",
"parity-scale-codec",
diff --git a/Cargo.toml b/Cargo.toml
index c62dc5ee4..8624cbd7e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -102,6 +102,7 @@ tp-author-noting-inherent = { path = "primitives/author-noting-inherent", defaul
tp-bridge = { path = "primitives/bridge", default-features = false }
tp-maths = { path = "primitives/maths", default-features = false }
tp-traits = { path = "primitives/traits", default-features = false }
+tp-xcm-commons = { path = "primitives/xcm-commons", default-features = false }
tp-xcm-core-buyer = { path = "primitives/xcm-core-buyer", default-features = false }
# Dancekit (wasm)
diff --git a/primitives/xcm-commons/Cargo.toml b/primitives/xcm-commons/Cargo.toml
new file mode 100644
index 000000000..20e983340
--- /dev/null
+++ b/primitives/xcm-commons/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+name = "tp-xcm-commons"
+edition = "2021"
+version = "0.1.0"
+[package.authors]
+workspace = true
+[package.repository]
+workspace = true
+
+[lints]
+workspace = true
+
+[dependencies]
+frame-support = { workspace = true }
+log = { workspace = true }
+staging-xcm = { workspace = true }
+
+[features]
+default = [
+ "std",
+]
+std = [
+ "frame-support/std",
+ "log/std",
+ "staging-xcm/std",
+]
diff --git a/primitives/xcm-commons/src/lib.rs b/primitives/xcm-commons/src/lib.rs
new file mode 100644
index 000000000..5f7d76119
--- /dev/null
+++ b/primitives/xcm-commons/src/lib.rs
@@ -0,0 +1,59 @@
+// Copyright (C) Moondance Labs Ltd.
+// This file is part of Tanssi.
+
+// Tanssi 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.
+
+// Tanssi 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 Tanssi. If not, see
+
+#![cfg_attr(not(feature = "std"), no_std)]
+
+use staging_xcm::latest::prelude::*;
+trait Parse {
+ /// Returns the "chain" location part. It could be parent, sibling
+ /// parachain, or child parachain.
+ fn chain_part(&self) -> Option;
+}
+
+impl Parse for Location {
+ fn chain_part(&self) -> Option {
+ match (self.parents, self.first_interior()) {
+ // sibling parachain
+ (1, Some(Parachain(id))) => Some(Location::new(1, [Parachain(*id)])),
+ // parent
+ (1, _) => Some(Location::parent()),
+ // children parachain
+ (0, Some(Parachain(id))) => Some(Location::new(0, [Parachain(*id)])),
+ _ => None,
+ }
+ }
+}
+
+pub struct NativeAssetReserve;
+impl frame_support::traits::ContainsPair for NativeAssetReserve {
+ fn contains(asset: &Asset, origin: &Location) -> bool {
+ log::trace!(target: "xcm::contains", "NativeAssetReserve asset: {:?}, origin: {:?}", asset, origin);
+ let reserve = if asset.id.0.parents == 0
+ && !matches!(asset.id.0.first_interior(), Some(Parachain(_)))
+ {
+ Some(Location::here())
+ } else {
+ asset.id.0.chain_part()
+ };
+
+ if let Some(ref reserve) = reserve {
+ if reserve == origin {
+ return true;
+ }
+ }
+ false
+ }
+}
diff --git a/runtime/dancebox/Cargo.toml b/runtime/dancebox/Cargo.toml
index d93db612c..6fcd53a5d 100644
--- a/runtime/dancebox/Cargo.toml
+++ b/runtime/dancebox/Cargo.toml
@@ -48,6 +48,7 @@ pallet-xcm-core-buyer = { workspace = true }
pallet-xcm-core-buyer-runtime-api = { workspace = true }
tanssi-relay-encoder = { workspace = true }
tanssi-runtime-common = { workspace = true }
+tp-xcm-commons = { workspace = true }
tp-xcm-core-buyer = { workspace = true }
# Moonkit
@@ -271,6 +272,7 @@ std = [
"test-relay-sproof-builder/std",
"tp-author-noting-inherent/std",
"tp-traits/std",
+ "tp-xcm-commons/std",
"tp-xcm-core-buyer/std",
"westend-runtime-constants/std",
"westend-runtime/std",
diff --git a/runtime/dancebox/src/tests/common/xcm/core_buyer.rs b/runtime/dancebox/src/tests/common/xcm/core_buyer.rs
index 1cdb011c7..f0c9dbee0 100644
--- a/runtime/dancebox/src/tests/common/xcm/core_buyer.rs
+++ b/runtime/dancebox/src/tests/common/xcm/core_buyer.rs
@@ -15,18 +15,15 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- core_buyer_common::*,
- mocknets::{DanceboxRococoPara as Dancebox, RococoRelay as Rococo, RococoRelayPallet},
- *,
- },
+ crate::tests::common::xcm::{
+ core_buyer_common::*,
+ mocknets::{DanceboxRococoPara as Dancebox, RococoRelay as Rococo, RococoRelayPallet},
+ *,
},
polkadot_runtime_parachains::on_demand as parachains_assigner_on_demand,
staging_xcm::latest::{MaybeErrorCode, Response},
tp_traits::ParaId,
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
const PARATHREAD_ID: u32 = 3333;
diff --git a/runtime/dancebox/src/tests/common/xcm/core_buyer_common.rs b/runtime/dancebox/src/tests/common/xcm/core_buyer_common.rs
index 8562b5784..ccd622861 100644
--- a/runtime/dancebox/src/tests/common/xcm/core_buyer_common.rs
+++ b/runtime/dancebox/src/tests/common/xcm/core_buyer_common.rs
@@ -16,7 +16,6 @@
use {
crate::{
- assert_expected_events,
tests::common::{
empty_genesis_data, run_to_session, set_dummy_boot_node, start_block,
xcm::{
@@ -42,7 +41,7 @@ use {
staging_xcm::v3::QueryId,
staging_xcm_executor::traits::ConvertLocation,
tp_traits::{ParaId, SlotFrequency},
- xcm_emulator::{Chain, RelayChain},
+ xcm_emulator::{assert_expected_events, Chain, RelayChain},
};
pub const PARATHREAD_ID: u32 = 3333;
diff --git a/runtime/dancebox/src/tests/common/xcm/delivery_fees.rs b/runtime/dancebox/src/tests/common/xcm/delivery_fees.rs
index e4688730f..bbed23d2d 100644
--- a/runtime/dancebox/src/tests/common/xcm/delivery_fees.rs
+++ b/runtime/dancebox/src/tests/common/xcm/delivery_fees.rs
@@ -15,17 +15,14 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
- EthereumSender as FrontierTemplateSender, FrontierTemplatePara as FrontierTemplate,
- FrontierTemplateParaPallet, SimpleTemplatePara as SimpleTemplate,
- SimpleTemplateParaPallet, SimpleTemplateSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
+ EthereumSender as FrontierTemplateSender, FrontierTemplatePara as FrontierTemplate,
+ FrontierTemplateParaPallet, SimpleTemplatePara as SimpleTemplate,
+ SimpleTemplateParaPallet, SimpleTemplateSender,
},
+ *,
},
frame_support::{assert_ok, traits::EnsureOrigin},
paste::paste,
@@ -33,7 +30,7 @@ use {
latest::prelude::{Junctions::X1, *},
VersionedLocation, VersionedXcm,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/tests/common/xcm/expected_event_checker.rs b/runtime/dancebox/src/tests/common/xcm/expected_event_checker.rs
deleted file mode 100644
index 8d387aef7..000000000
--- a/runtime/dancebox/src/tests/common/xcm/expected_event_checker.rs
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright (C) Moondance Labs Ltd.
-// This file is part of Tanssi.
-
-// Tanssi 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.
-
-// Tanssi 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 Tanssi. If not, see
-
-#[macro_export]
-macro_rules! assert_expected_events {
- ( $chain:ident, vec![$( $event_pat:pat => { $($attr:ident : $condition:expr, )* }, )*] ) => {
- let mut message: Vec = Vec::new();
- let mut events = <$chain as xcm_emulator::Chain>::events();
-
- $(
- let mut event_received = false;
- let mut meet_conditions = true;
- let mut index_match = 0;
- let mut event_message: Vec = Vec::new();
-
- for (index, event) in events.iter().enumerate() {
- // Variable to record current event's meet conditions
- #[allow(unused_mut)] // To suppress warning in case no conditions are declared
- let mut current_event_meet_conditions = true;
- match event {
- $event_pat => {
- event_received = true;
-
- #[allow(unused_mut)] // To suppress warning in case no conditions are declared
- let mut conditions_message: Vec = Vec::new();
-
- $(
- // We only want to record condition error messages in case it did not happened before
- // Only the first partial match is recorded
- if !$condition && event_message.is_empty() {
- conditions_message.push(
- format!(
- " - The attribute {:?} = {:?} did not met the condition {:?}\n",
- stringify!($attr),
- $attr,
- stringify!($condition)
- )
- );
- }
- current_event_meet_conditions &= $condition;
- )*
-
- // Set the variable to latest matched event's condition evaluation result
- meet_conditions = current_event_meet_conditions;
-
- // Set the index where we found a perfect match
- if event_received && meet_conditions {
- index_match = index;
- break;
- } else {
- event_message.extend(conditions_message);
- }
- },
- _ => {}
- }
- }
-
- if event_received && !meet_conditions {
- message.push(
- format!(
- "\n\n{}::\x1b[31m{}\x1b[0m was received but some of its attributes did not meet the conditions:\n{}",
- stringify!($chain),
- stringify!($event_pat),
- event_message.concat()
- )
- );
- } else if !event_received {
- message.push(
- format!(
- "\n\n{}::\x1b[31m{}\x1b[0m was never received. All events:\n{:#?}",
- stringify!($chain),
- stringify!($event_pat),
- <$chain as xcm_emulator::Chain>::events(),
- )
- );
- } else {
- // If we find a perfect match we remove the event to avoid being potentially assessed multiple times
- events.remove(index_match);
- }
- )*
-
- if !message.is_empty() {
- // Log events as they will not be logged after the panic
- <$chain as xcm_emulator::Chain>::events().iter().for_each(|event| {
- log::debug!(target: concat!("events::", stringify!($chain)), "{:?}", event);
- });
- panic!("{}", message.concat())
- }
- }
-}
diff --git a/runtime/dancebox/src/tests/common/xcm/force_core_buyer.rs b/runtime/dancebox/src/tests/common/xcm/force_core_buyer.rs
index e0c10e39f..c7b8a880e 100644
--- a/runtime/dancebox/src/tests/common/xcm/force_core_buyer.rs
+++ b/runtime/dancebox/src/tests/common/xcm/force_core_buyer.rs
@@ -15,18 +15,15 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- core_buyer_common::*,
- mocknets::{DanceboxRococoPara as Dancebox, RococoRelay as Rococo, RococoRelayPallet},
- *,
- },
+ crate::tests::common::xcm::{
+ core_buyer_common::*,
+ mocknets::{DanceboxRococoPara as Dancebox, RococoRelay as Rococo, RococoRelayPallet},
+ *,
},
polkadot_runtime_parachains::on_demand as parachains_assigner_on_demand,
staging_xcm::latest::{MaybeErrorCode, Response},
tp_traits::ParaId,
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/tests/common/xcm/foreign_signed_based_sovereign.rs b/runtime/dancebox/src/tests/common/xcm/foreign_signed_based_sovereign.rs
index 05f4252d0..f5f90053f 100644
--- a/runtime/dancebox/src/tests/common/xcm/foreign_signed_based_sovereign.rs
+++ b/runtime/dancebox/src/tests/common/xcm/foreign_signed_based_sovereign.rs
@@ -16,7 +16,6 @@
use {
crate::{
- assert_expected_events,
tests::common::xcm::{
mocknets::{
DanceboxEmptyReceiver, DanceboxPara as Dancebox, DanceboxParaPallet,
@@ -38,7 +37,7 @@ use {
VersionedLocation, VersionedXcm,
},
staging_xcm_executor::traits::ConvertLocation,
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/tests/common/xcm/foreign_sovereigns.rs b/runtime/dancebox/src/tests/common/xcm/foreign_sovereigns.rs
index 5fd08df6f..b374970c8 100644
--- a/runtime/dancebox/src/tests/common/xcm/foreign_sovereigns.rs
+++ b/runtime/dancebox/src/tests/common/xcm/foreign_sovereigns.rs
@@ -15,17 +15,13 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, EthereumEmptyReceiver,
- EthereumSender, FrontierTemplatePara as FrontierTemplate,
- FrontierTemplateParaPallet, WestendEmptyReceiver, WestendRelay as Westend,
- WestendRelayPallet, WestendSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, EthereumEmptyReceiver, EthereumSender,
+ FrontierTemplatePara as FrontierTemplate, FrontierTemplateParaPallet,
+ WestendEmptyReceiver, WestendRelay as Westend, WestendRelayPallet, WestendSender,
},
+ *,
},
container_chain_template_frontier_runtime::currency::UNIT as FRONTIER_DEV,
frame_support::{
@@ -38,7 +34,7 @@ use {
},
staging_xcm_executor::traits::ConvertLocation,
westend_runtime_constants::currency::UNITS as WND,
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/tests/common/xcm/mod.rs b/runtime/dancebox/src/tests/common/xcm/mod.rs
index f83881475..d105c8d76 100644
--- a/runtime/dancebox/src/tests/common/xcm/mod.rs
+++ b/runtime/dancebox/src/tests/common/xcm/mod.rs
@@ -32,9 +32,6 @@ mod token_derivative_reception_relay_simple_container;
mod transact;
mod trap;
-#[macro_use]
-mod expected_event_checker;
-
pub use {
paste,
xcm_emulator::{bx, Parachain as Para, RelayChain as Relay, TestExt},
diff --git a/runtime/dancebox/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs b/runtime/dancebox/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs
index 7a8fac12d..0391513ed 100644
--- a/runtime/dancebox/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs
+++ b/runtime/dancebox/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs
@@ -15,17 +15,14 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
- SimpleTemplateEmptyReceiver, SimpleTemplatePara as SimpleTemplate,
- SimpleTemplateParaPallet, SimpleTemplateSender, WestendRelay as Westend,
- WestendRelayPallet, WestendSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
+ SimpleTemplateEmptyReceiver, SimpleTemplatePara as SimpleTemplate,
+ SimpleTemplateParaPallet, SimpleTemplateSender, WestendRelay as Westend,
+ WestendRelayPallet, WestendSender,
},
+ *,
},
frame_support::{
assert_noop, assert_ok,
@@ -37,7 +34,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_container_dancebox.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_container_dancebox.rs
index 00f7506b2..ac9b288d9 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_container_dancebox.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_container_dancebox.rs
@@ -15,16 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxReceiver,
- SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet,
- SimpleTemplateSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxReceiver,
+ SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet, SimpleTemplateSender,
},
+ *,
},
frame_support::{
assert_ok,
@@ -36,7 +32,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_frontier_container.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_frontier_container.rs
index 11db2ac5a..356a4fcf3 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_frontier_container.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_frontier_container.rs
@@ -15,15 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender, EthereumReceiver,
- FrontierTemplatePara as FrontierTemplate, FrontierTemplateParaPallet,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender, EthereumReceiver,
+ FrontierTemplatePara as FrontierTemplate, FrontierTemplateParaPallet,
},
+ *,
},
frame_support::{
assert_ok,
@@ -35,7 +32,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_simple_container.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_simple_container.rs
index ee78f1344..923a574fe 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_simple_container.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_dancebox_simple_container.rs
@@ -15,16 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
- SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet,
- SimpleTemplateReceiver,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxSender,
+ SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet, SimpleTemplateReceiver,
},
+ *,
},
frame_support::{
assert_ok,
@@ -36,7 +32,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_dancebox.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_dancebox.rs
index ff6e7a9b5..0c103bd99 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_dancebox.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_dancebox.rs
@@ -15,15 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxReceiver,
- WestendRelay as Westend, WestendRelayPallet, WestendSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ DanceboxPara as Dancebox, DanceboxParaPallet, DanceboxReceiver,
+ WestendRelay as Westend, WestendRelayPallet, WestendSender,
},
+ *,
},
frame_support::{
assert_ok,
@@ -34,7 +31,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_frontier_container.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_frontier_container.rs
index 4ddc7b1f9..9da49a176 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_frontier_container.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_frontier_container.rs
@@ -15,16 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- EthereumReceiver, FrontierTemplatePara as FrontierTemplate,
- FrontierTemplateParaPallet, WestendRelay as Westend, WestendRelayPallet,
- WestendSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ EthereumReceiver, FrontierTemplatePara as FrontierTemplate, FrontierTemplateParaPallet,
+ WestendRelay as Westend, WestendRelayPallet, WestendSender,
},
+ *,
},
frame_support::{
assert_ok,
@@ -36,7 +32,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_simple_container.rs b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_simple_container.rs
index 53e61ed38..b11dacb8f 100644
--- a/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_simple_container.rs
+++ b/runtime/dancebox/src/tests/common/xcm/token_derivative_reception_relay_simple_container.rs
@@ -15,15 +15,12 @@
// along with Tanssi. If not, see
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::{
- mocknets::{
- SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet,
- SimpleTemplateReceiver, WestendRelay as Westend, WestendRelayPallet, WestendSender,
- },
- *,
+ crate::tests::common::xcm::{
+ mocknets::{
+ SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet, SimpleTemplateReceiver,
+ WestendRelay as Westend, WestendRelayPallet, WestendSender,
},
+ *,
},
frame_support::{
assert_ok,
@@ -34,7 +31,7 @@ use {
latest::prelude::{Junctions::*, *},
VersionedLocation,
},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[allow(unused_assignments)]
diff --git a/runtime/dancebox/src/tests/common/xcm/transact.rs b/runtime/dancebox/src/tests/common/xcm/transact.rs
index 2f86f17e5..df2f1e12a 100644
--- a/runtime/dancebox/src/tests/common/xcm/transact.rs
+++ b/runtime/dancebox/src/tests/common/xcm/transact.rs
@@ -17,13 +17,10 @@
use crate::tests::common::xcm::*;
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::mocknets::{
- DanceboxPara as Dancebox, FrontierTemplatePara as FrontierTemplate,
- FrontierTemplateParaPallet, SimpleTemplatePara as SimpleTemplate,
- SimpleTemplateParaPallet, WestendRelay as Westend, WestendRelayPallet,
- },
+ crate::tests::common::xcm::mocknets::{
+ DanceboxPara as Dancebox, FrontierTemplatePara as FrontierTemplate,
+ FrontierTemplateParaPallet, SimpleTemplatePara as SimpleTemplate, SimpleTemplateParaPallet,
+ WestendRelay as Westend, WestendRelayPallet,
},
frame_support::{
assert_ok,
@@ -36,7 +33,7 @@ use {
},
staging_xcm_builder::{ParentIsPreset, SiblingParachainConvertsVia},
staging_xcm_executor::traits::ConvertLocation,
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/tests/common/xcm/trap.rs b/runtime/dancebox/src/tests/common/xcm/trap.rs
index dbee80210..01fc7ea6e 100644
--- a/runtime/dancebox/src/tests/common/xcm/trap.rs
+++ b/runtime/dancebox/src/tests/common/xcm/trap.rs
@@ -17,18 +17,15 @@
use crate::tests::common::xcm::*;
use {
- crate::{
- assert_expected_events,
- tests::common::xcm::mocknets::{
- DanceboxPara as Dancebox, WestendRelay as Westend, WestendRelayPallet,
- },
+ crate::tests::common::xcm::mocknets::{
+ DanceboxPara as Dancebox, WestendRelay as Westend, WestendRelayPallet,
},
frame_support::{
assert_ok,
weights::{Weight, WeightToFee},
},
staging_xcm::{latest::prelude::*, VersionedLocation, VersionedXcm},
- xcm_emulator::Chain,
+ xcm_emulator::{assert_expected_events, Chain},
};
#[test]
diff --git a/runtime/dancebox/src/xcm_config.rs b/runtime/dancebox/src/xcm_config.rs
index 3b2eb66fe..8be85851d 100644
--- a/runtime/dancebox/src/xcm_config.rs
+++ b/runtime/dancebox/src/xcm_config.rs
@@ -63,6 +63,7 @@ use {
},
staging_xcm_executor::{traits::JustTry, XcmExecutor},
tp_traits::ParathreadParams,
+ tp_xcm_commons::NativeAssetReserve,
};
parameter_types! {
@@ -391,63 +392,6 @@ pub type AssetRateAsMultiplier =
ForeignAssetsInstance,
>;
-// TODO: this should probably move to somewhere in the polkadot-sdk repo
-pub struct NativeAssetReserve;
-impl frame_support::traits::ContainsPair for NativeAssetReserve {
- fn contains(asset: &Asset, origin: &Location) -> bool {
- log::trace!(target: "xcm::contains", "NativeAssetReserve asset: {:?}, origin: {:?}", asset, origin);
- let reserve = if asset.id.0.parents == 0
- && !matches!(asset.id.0.first_interior(), Some(Parachain(_)))
- {
- Some(Location::here())
- } else {
- asset.id.0.chain_part()
- };
-
- if let Some(ref reserve) = reserve {
- if reserve == origin {
- return true;
- }
- }
- false
- }
-}
-
-pub trait Parse {
- /// Returns the "chain" location part. It could be parent, sibling
- /// parachain, or child parachain.
- fn chain_part(&self) -> Option;
- /// Returns "non-chain" location part.
- fn non_chain_part(&self) -> Option;
-}
-
-impl Parse for Location {
- fn chain_part(&self) -> Option {
- match (self.parents, self.first_interior()) {
- // sibling parachain
- (1, Some(Parachain(id))) => Some(Location::new(1, [Parachain(*id)])),
- // parent
- (1, _) => Some(Location::parent()),
- // children parachain
- (0, Some(Parachain(id))) => Some(Location::new(0, [Parachain(*id)])),
- _ => None,
- }
- }
-
- fn non_chain_part(&self) -> Option {
- let mut junctions = self.interior().clone();
- while matches!(junctions.first(), Some(Parachain(_))) {
- let _ = junctions.take_first();
- }
-
- if junctions != Here {
- Some(Location::new(0, junctions))
- } else {
- None
- }
- }
-}
-
parameter_types! {
pub MessageQueueServiceWeight: Weight = Perbill::from_percent(25) * RuntimeBlockWeights::get().max_block;
}
diff --git a/solo-chains/runtime/dancelight/Cargo.toml b/solo-chains/runtime/dancelight/Cargo.toml
index 80b2df3ee..99f67ff8b 100644
--- a/solo-chains/runtime/dancelight/Cargo.toml
+++ b/solo-chains/runtime/dancelight/Cargo.toml
@@ -129,6 +129,7 @@ dp-consensus = { workspace = true }
dp-container-chain-genesis-data = { workspace = true }
tp-author-noting-inherent = { workspace = true }
tp-traits = { workspace = true }
+tp-xcm-commons = { workspace = true }
pallet-author-noting = { workspace = true }
pallet-author-noting-runtime-api = { workspace = true }
@@ -158,11 +159,17 @@ tp-bridge = { workspace = true }
[dev-dependencies]
alloy-sol-types = { workspace = true, default-features = true }
+container-chain-template-frontier-runtime = { workspace = true, features = [ "std" ] }
+container-chain-template-simple-runtime = { workspace = true, features = [ "std" ] }
+emulated-integration-tests-common = { workspace = true }
finality-grandpa = { workspace = true, default-features = true, features = [ "derive-codec" ] }
keyring = { workspace = true }
milagro-bls = { workspace = true, features = [ "std" ] }
rand = { workspace = true, features = [ "std", "std_rng" ] }
remote-externalities = { workspace = true }
+rococo-runtime = { workspace = true }
+rococo-runtime-constants = { workspace = true }
+sc-consensus-grandpa = { workspace = true }
separator = { workspace = true }
serde_json = { workspace = true }
sp-tracing = { workspace = true }
@@ -170,6 +177,9 @@ sp-trie = { workspace = true }
test-relay-sproof-builder = { workspace = true }
tiny-keccak = { workspace = true }
tokio = { workspace = true, features = [ "macros" ] }
+westend-runtime = { workspace = true }
+westend-runtime-constants = { workspace = true }
+xcm-emulator = { workspace = true }
[build-dependencies]
substrate-wasm-builder = { workspace = true, optional = true }
@@ -183,6 +193,8 @@ std = [
"binary-merkle-tree/std",
"bitvec/std",
"block-builder-api/std",
+ "container-chain-template-frontier-runtime/std",
+ "container-chain-template-simple-runtime/std",
"cumulus-pallet-parachain-system/std",
"cumulus-primitives-core/std",
"dancelight-runtime-constants/std",
@@ -265,6 +277,8 @@ std = [
"polkadot-parachain-primitives/std",
"primitives/std",
"rand/std",
+ "rococo-runtime-constants/std",
+ "rococo-runtime/std",
"runtime-common/std",
"runtime-parachains/std",
"scale-info/std",
@@ -304,7 +318,10 @@ std = [
"tp-author-noting-inherent/std",
"tp-bridge/std",
"tp-traits/std",
+ "tp-xcm-commons/std",
"tx-pool-api/std",
+ "westend-runtime-constants/std",
+ "westend-runtime/std",
"xcm-builder/std",
"xcm-executor/std",
"xcm-runtime-apis/std",
@@ -313,6 +330,8 @@ std = [
no_std = []
runtime-benchmarks = [
+ "container-chain-template-frontier-runtime/runtime-benchmarks",
+ "container-chain-template-simple-runtime/runtime-benchmarks",
"cumulus-pallet-parachain-system/runtime-benchmarks",
"cumulus-primitives-core/runtime-benchmarks",
"dp-consensus/runtime-benchmarks",
@@ -368,6 +387,7 @@ runtime-benchmarks = [
"pallet-xcm/runtime-benchmarks",
"polkadot-parachain-primitives/runtime-benchmarks",
"primitives/runtime-benchmarks",
+ "rococo-runtime/runtime-benchmarks",
"runtime-common/runtime-benchmarks",
"runtime-parachains/runtime-benchmarks",
"snowbridge-core/runtime-benchmarks",
@@ -383,11 +403,14 @@ runtime-benchmarks = [
"tanssi-runtime-common/runtime-benchmarks",
"tp-bridge/runtime-benchmarks",
"tp-traits/runtime-benchmarks",
+ "westend-runtime/runtime-benchmarks",
"xcm-builder/runtime-benchmarks",
"xcm-executor/runtime-benchmarks",
"xcm-runtime-apis/runtime-benchmarks",
]
try-runtime = [
+ "container-chain-template-frontier-runtime/try-runtime",
+ "container-chain-template-simple-runtime/try-runtime",
"cumulus-pallet-parachain-system/try-runtime",
"frame-executive/try-runtime",
"frame-support/try-runtime",
@@ -447,6 +470,7 @@ try-runtime = [
"pallet-utility/try-runtime",
"pallet-whitelist/try-runtime",
"pallet-xcm/try-runtime",
+ "rococo-runtime/try-runtime",
"runtime-common/try-runtime",
"runtime-parachains/try-runtime",
"snowbridge-pallet-ethereum-client/try-runtime",
@@ -455,6 +479,7 @@ try-runtime = [
"snowbridge-pallet-system/try-runtime",
"sp-runtime/try-runtime",
"tanssi-runtime-common/try-runtime",
+ "westend-runtime/try-runtime",
]
# Set timing constants (e.g. session period) to faster versions to speed up testing.
diff --git a/solo-chains/runtime/dancelight/src/bridge_to_ethereum_config.rs b/solo-chains/runtime/dancelight/src/bridge_to_ethereum_config.rs
index 1b8761c8a..20265901a 100644
--- a/solo-chains/runtime/dancelight/src/bridge_to_ethereum_config.rs
+++ b/solo-chains/runtime/dancelight/src/bridge_to_ethereum_config.rs
@@ -104,6 +104,7 @@ parameter_types! {
}
// Holesky: https://github.com/eth-clients/holesky
+// Fork versions: https://github.com/eth-clients/holesky/blob/main/metadata/config.yaml
#[cfg(not(any(
feature = "std",
feature = "fast-runtime",
@@ -117,19 +118,19 @@ parameter_types! {
epoch: 0,
},
altair: Fork {
- version: hex_literal::hex!("01017000"), // 0x01017000
+ version: hex_literal::hex!("02017000"), // 0x02017000
epoch: 0,
},
bellatrix: Fork {
- version: hex_literal::hex!("01017000"), // 0x01017000
+ version: hex_literal::hex!("03017000"), // 0x03017000
epoch: 0,
},
capella: Fork {
- version: hex_literal::hex!("01017001"), // 0x01017001
+ version: hex_literal::hex!("04017000"), // 0x04017000
epoch: 256,
},
deneb: Fork {
- version: hex_literal::hex!("01017002"), // 0x01017002
+ version: hex_literal::hex!("05017000"), // 0x05017000
epoch: 29696,
},
};
diff --git a/solo-chains/runtime/dancelight/src/tests/common/mod.rs b/solo-chains/runtime/dancelight/src/tests/common/mod.rs
index fbb9d068b..c29deae89 100644
--- a/solo-chains/runtime/dancelight/src/tests/common/mod.rs
+++ b/solo-chains/runtime/dancelight/src/tests/common/mod.rs
@@ -57,6 +57,8 @@ use {
test_relay_sproof_builder::ParaHeaderSproofBuilder,
};
+mod xcm;
+
pub use crate::{
genesis_config_presets::get_authority_keys_from_seed, AccountId, AuthorNoting, Babe, Balance,
Balances, Beefy, BeefyMmrLeaf, ContainerRegistrar, DataPreservers, Grandpa, InflationRewards,
@@ -329,6 +331,7 @@ pub struct ExtBuilder {
own_para_id: Option,
next_free_para_id: ParaId,
keystore: Option,
+ safe_xcm_version: Option,
}
impl Default for ExtBuilder {
@@ -358,6 +361,7 @@ impl Default for ExtBuilder {
own_para_id: Default::default(),
next_free_para_id: Default::default(),
keystore: None,
+ safe_xcm_version: Default::default(),
}
}
}
@@ -428,6 +432,11 @@ impl ExtBuilder {
self
}
+ pub fn with_safe_xcm_version(mut self, safe_xcm_version: u32) -> Self {
+ self.safe_xcm_version = Some(safe_xcm_version);
+ self
+ }
+
// Maybe change to with_collators_config?
pub fn with_relay_config(
mut self,
@@ -548,6 +557,13 @@ impl ExtBuilder {
.assimilate_storage(&mut t)
.unwrap();
+ pallet_xcm::GenesisConfig:: {
+ safe_xcm_version: self.safe_xcm_version,
+ ..Default::default()
+ }
+ .assimilate_storage(&mut t)
+ .unwrap();
+
runtime_parachains::configuration::GenesisConfig:: {
config: self.relay_config,
}
@@ -656,6 +672,13 @@ impl ExtBuilder {
pallet_sudo::GenesisConfig:: { key: self.sudo }
.assimilate_storage(&mut t)
.unwrap();
+
+ if self.safe_xcm_version.is_some() {
+ // Disable run_block checks in XCM tests, because the XCM emulator runs on_initialize and
+ // on_finalize automatically
+ t.top.insert(b"__mock_is_xcm_test".to_vec(), b"1".to_vec());
+ }
+
t
}
diff --git a/solo-chains/runtime/dancelight/src/tests/common/xcm/constants.rs b/solo-chains/runtime/dancelight/src/tests/common/xcm/constants.rs
new file mode 100644
index 000000000..858776c35
--- /dev/null
+++ b/solo-chains/runtime/dancelight/src/tests/common/xcm/constants.rs
@@ -0,0 +1,415 @@
+// Copyright (C) Moondance Labs Ltd.
+// This file is part of Tanssi.
+
+// Tanssi 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.
+
+// Tanssi 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 Tanssi. If not, see
+use {
+ babe_primitives::AuthorityId as BabeId,
+ beefy_primitives::ecdsa_crypto::AuthorityId as BeefyId,
+ cumulus_primitives_core::relay_chain::{
+ AccountId, AssignmentId, AuthorityDiscoveryId, ValidatorId,
+ },
+ emulated_integration_tests_common::build_genesis_storage,
+ sc_consensus_grandpa::AuthorityId as GrandpaId,
+ sp_core::{sr25519, storage::Storage, Pair, Public},
+ sp_runtime::{
+ traits::{IdentifyAccount, Verify},
+ MultiSignature,
+ },
+};
+
+type AccountPublic = ::Signer;
+
+/// Helper function to generate a crypto pair from seed
+fn get_from_seed(seed: &str) -> ::Public {
+ TPublic::Pair::from_string(&format!("//{}", seed), None)
+ .expect("static values are valid; qed")
+ .public()
+}
+
+/// Helper function to generate an account ID from seed.
+fn get_account_id_from_seed(seed: &str) -> AccountId
+where
+ AccountPublic: From<::Public>,
+{
+ AccountPublic::from(get_from_seed::(seed)).into_account()
+}
+
+/// Helper function to generate stash, controller and session key from seed
+pub fn get_authority_keys_from_seed_no_beefy(
+ seed: &str,
+) -> (
+ AccountId,
+ AccountId,
+ BabeId,
+ GrandpaId,
+ ValidatorId,
+ AssignmentId,
+ AuthorityDiscoveryId,
+) {
+ (
+ get_account_id_from_seed::(&format!("{}//stash", seed)),
+ get_account_id_from_seed::(seed),
+ get_from_seed::(seed),
+ get_from_seed::(seed),
+ get_from_seed::(seed),
+ get_from_seed::(seed),
+ get_from_seed::(seed),
+ )
+}
+
+pub mod accounts {
+ use super::*;
+ pub const ALICE: &str = "Alice";
+ pub const BOB: &str = "Bob";
+ pub const CHARLIE: &str = "Charlie";
+ pub const DAVE: &str = "Dave";
+ pub const EVE: &str = "Eve";
+ pub const FERDIE: &str = "Ferdei";
+ pub const ALICE_STASH: &str = "Alice//stash";
+ pub const BOB_STASH: &str = "Bob//stash";
+ pub const CHARLIE_STASH: &str = "Charlie//stash";
+ pub const DAVE_STASH: &str = "Dave//stash";
+ pub const EVE_STASH: &str = "Eve//stash";
+ pub const FERDIE_STASH: &str = "Ferdie//stash";
+ pub const RANDOM: &str = "Random//stash";
+
+ pub fn init_balances() -> Vec {
+ vec![
+ get_account_id_from_seed::(ALICE),
+ get_account_id_from_seed::(BOB),
+ get_account_id_from_seed::(CHARLIE),
+ get_account_id_from_seed::(DAVE),
+ get_account_id_from_seed::(EVE),
+ get_account_id_from_seed::(FERDIE),
+ get_account_id_from_seed::(ALICE_STASH),
+ get_account_id_from_seed::(BOB_STASH),
+ get_account_id_from_seed::(CHARLIE_STASH),
+ get_account_id_from_seed::(DAVE_STASH),
+ get_account_id_from_seed::(EVE_STASH),
+ get_account_id_from_seed::(FERDIE_STASH),
+ ]
+ }
+}
+
+pub mod validators {
+ use super::*;
+
+ pub fn initial_authorities() -> Vec<(
+ AccountId,
+ AccountId,
+ BabeId,
+ GrandpaId,
+ ValidatorId,
+ AssignmentId,
+ AuthorityDiscoveryId,
+ )> {
+ vec![get_authority_keys_from_seed_no_beefy("Alice")]
+ }
+}
+
+// Westend
+pub mod westend {
+ use {
+ super::*, cumulus_primitives_core::relay_chain::BlockNumber,
+ runtime_parachains::configuration::HostConfiguration, sp_runtime::Perbill,
+ westend_runtime_constants::currency::UNITS as WND,
+ };
+ const ENDOWMENT: u128 = 1_000_000 * WND;
+ const STASH: u128 = 100 * WND;
+
+ pub fn get_host_config() -> HostConfiguration {
+ HostConfiguration {
+ max_upward_queue_count: 10,
+ max_upward_queue_size: 51200,
+ max_upward_message_size: 51200,
+ max_upward_message_num_per_candidate: 10,
+ max_downward_message_size: 51200,
+ ..Default::default()
+ }
+ }
+
+ fn session_keys(
+ babe: BabeId,
+ grandpa: GrandpaId,
+ para_validator: ValidatorId,
+ para_assignment: AssignmentId,
+ authority_discovery: AuthorityDiscoveryId,
+ beefy: BeefyId,
+ ) -> westend_runtime::SessionKeys {
+ westend_runtime::SessionKeys {
+ babe,
+ grandpa,
+ para_validator,
+ para_assignment,
+ authority_discovery,
+ beefy,
+ }
+ }
+
+ pub fn genesis() -> Storage {
+ let genesis_config = westend_runtime::RuntimeGenesisConfig {
+ balances: westend_runtime::BalancesConfig {
+ balances: accounts::init_balances()
+ .iter()
+ .cloned()
+ .map(|k| (k, ENDOWMENT))
+ .collect(),
+ },
+ session: westend_runtime::SessionConfig {
+ keys: validators::initial_authorities()
+ .iter()
+ .map(|x| {
+ (
+ x.0.clone(),
+ x.0.clone(),
+ westend::session_keys(
+ x.2.clone(),
+ x.3.clone(),
+ x.4.clone(),
+ x.5.clone(),
+ x.6.clone(),
+ get_from_seed::("Alice"),
+ ),
+ )
+ })
+ .collect::>(),
+ ..Default::default()
+ },
+ staking: westend_runtime::StakingConfig {
+ validator_count: validators::initial_authorities().len() as u32,
+ minimum_validator_count: 1,
+ stakers: validators::initial_authorities()
+ .iter()
+ .map(|x| {
+ (
+ x.0.clone(),
+ x.1.clone(),
+ STASH,
+ runtime_common::StakerStatus::Validator,
+ )
+ })
+ .collect(),
+ invulnerables: validators::initial_authorities()
+ .iter()
+ .map(|x| x.0.clone())
+ .collect(),
+ force_era: pallet_staking::Forcing::ForceNone,
+ slash_reward_fraction: Perbill::from_percent(10),
+ ..Default::default()
+ },
+ babe: westend_runtime::BabeConfig {
+ authorities: Default::default(),
+ epoch_config: westend_runtime::BABE_GENESIS_EPOCH_CONFIG,
+ ..Default::default()
+ },
+ configuration: westend_runtime::ConfigurationConfig {
+ config: get_host_config(),
+ },
+ ..Default::default()
+ };
+ build_genesis_storage(&genesis_config, westend_runtime::WASM_BINARY.unwrap())
+ }
+}
+
+// Rococo
+pub mod rococo {
+ use {
+ super::*,
+ cumulus_primitives_core::relay_chain::BlockNumber,
+ polkadot_parachain_primitives::primitives::ValidationCode,
+ rococo_runtime_constants::currency::UNITS as ROC,
+ runtime_parachains::{
+ configuration::HostConfiguration,
+ paras::{ParaGenesisArgs, ParaKind},
+ },
+ };
+ const ENDOWMENT: u128 = 1_000_000 * ROC;
+
+ pub fn get_host_config() -> HostConfiguration {
+ HostConfiguration {
+ max_upward_queue_count: 10,
+ max_upward_queue_size: 51200,
+ max_upward_message_size: 51200,
+ max_upward_message_num_per_candidate: 10,
+ max_downward_message_size: 51200,
+ ..Default::default()
+ }
+ }
+
+ fn session_keys(
+ babe: BabeId,
+ grandpa: GrandpaId,
+ para_validator: ValidatorId,
+ para_assignment: AssignmentId,
+ authority_discovery: AuthorityDiscoveryId,
+ beefy: BeefyId,
+ ) -> rococo_runtime::SessionKeys {
+ rococo_runtime::SessionKeys {
+ babe,
+ grandpa,
+ para_validator,
+ para_assignment,
+ authority_discovery,
+ beefy,
+ }
+ }
+
+ pub fn genesis() -> Storage {
+ let genesis_config = rococo_runtime::RuntimeGenesisConfig {
+ balances: rococo_runtime::BalancesConfig {
+ balances: accounts::init_balances()
+ .iter()
+ .cloned()
+ .map(|k| (k, crate::tests::common::xcm::constants::rococo::ENDOWMENT))
+ .collect(),
+ },
+ session: rococo_runtime::SessionConfig {
+ keys: validators::initial_authorities()
+ .iter()
+ .map(|x| {
+ (
+ x.0.clone(),
+ x.0.clone(),
+ crate::tests::common::xcm::constants::rococo::session_keys(
+ x.2.clone(),
+ x.3.clone(),
+ x.4.clone(),
+ x.5.clone(),
+ x.6.clone(),
+ get_from_seed::("Alice"),
+ ),
+ )
+ })
+ .collect::>(),
+ ..Default::default()
+ },
+ babe: rococo_runtime::BabeConfig {
+ authorities: Default::default(),
+ epoch_config: rococo_runtime::BABE_GENESIS_EPOCH_CONFIG,
+ ..Default::default()
+ },
+ configuration: rococo_runtime::ConfigurationConfig {
+ config: crate::tests::common::xcm::constants::rococo::get_host_config(),
+ },
+ paras: rococo_runtime::ParasConfig {
+ _config: Default::default(),
+ paras: vec![(
+ 3333.into(),
+ ParaGenesisArgs {
+ genesis_head: Default::default(),
+ validation_code: ValidationCode(vec![1, 1, 2, 3, 4]),
+ para_kind: ParaKind::Parathread,
+ },
+ )],
+ },
+ ..Default::default()
+ };
+ build_genesis_storage(&genesis_config, rococo_runtime::WASM_BINARY.unwrap())
+ }
+}
+
+// Frontier template
+pub mod frontier_template {
+ use {
+ container_chain_template_frontier_runtime::AccountId,
+ emulated_integration_tests_common::build_genesis_storage, hex_literal::hex,
+ };
+ pub const PARA_ID: u32 = 2001;
+ pub const ORCHESTRATOR: u32 = 2000;
+
+ pub fn genesis() -> sp_core::storage::Storage {
+ let genesis_config = container_chain_template_frontier_runtime::RuntimeGenesisConfig {
+ system: Default::default(),
+ balances: container_chain_template_frontier_runtime::BalancesConfig {
+ balances: pre_funded_accounts()
+ .iter()
+ .cloned()
+ .map(|k| (k, 1 << 80))
+ .collect(),
+ },
+ parachain_info: container_chain_template_frontier_runtime::ParachainInfoConfig {
+ parachain_id: PARA_ID.into(),
+ ..Default::default()
+ },
+ // EVM compatibility
+ // We should change this to something different than Moonbeam
+ // For now moonwall is very tailored for moonbeam so we need it for tests
+ evm_chain_id: container_chain_template_frontier_runtime::EVMChainIdConfig {
+ chain_id: 1281,
+ ..Default::default()
+ },
+ sudo: container_chain_template_frontier_runtime::SudoConfig {
+ key: Some(pre_funded_accounts()[0]),
+ },
+ authorities_noting:
+ container_chain_template_frontier_runtime::AuthoritiesNotingConfig {
+ orchestrator_para_id: ORCHESTRATOR.into(),
+ ..Default::default()
+ },
+ ..Default::default()
+ };
+
+ build_genesis_storage(
+ &genesis_config,
+ container_chain_template_frontier_runtime::WASM_BINARY.unwrap(),
+ )
+ }
+ /// Get pre-funded accounts
+ pub fn pre_funded_accounts() -> Vec {
+ // These addresses are derived from Substrate's canonical mnemonic:
+ // bottom drive obey lake curtain smoke basket hold race lonely fit walk
+ vec![
+ AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), // Alith
+ AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")), // Baltathar
+ AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")), // Charleth
+ AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")), // Dorothy
+ ]
+ }
+}
+
+// Simple template
+pub mod simple_template {
+ use {super::*, container_chain_template_simple_runtime::UNIT as DEV};
+ pub const PARA_ID: u32 = 2002;
+ pub const ORCHESTRATOR: u32 = 2000;
+ const ENDOWMENT: u128 = 1_000_000 * DEV;
+
+ pub fn genesis() -> sp_core::storage::Storage {
+ let genesis_config = container_chain_template_simple_runtime::RuntimeGenesisConfig {
+ balances: container_chain_template_simple_runtime::BalancesConfig {
+ balances: accounts::init_balances()
+ .iter()
+ .cloned()
+ .map(|k| (k, ENDOWMENT))
+ .collect(),
+ },
+ parachain_info: container_chain_template_simple_runtime::ParachainInfoConfig {
+ parachain_id: PARA_ID.into(),
+ ..Default::default()
+ },
+ sudo: container_chain_template_simple_runtime::SudoConfig {
+ key: Some(accounts::init_balances()[0].clone()),
+ },
+ authorities_noting: container_chain_template_simple_runtime::AuthoritiesNotingConfig {
+ orchestrator_para_id: ORCHESTRATOR.into(),
+ ..Default::default()
+ },
+ ..Default::default()
+ };
+ build_genesis_storage(
+ &genesis_config,
+ container_chain_template_simple_runtime::WASM_BINARY.unwrap(),
+ )
+ }
+}
diff --git a/solo-chains/runtime/dancelight/src/tests/common/xcm/mocknets.rs b/solo-chains/runtime/dancelight/src/tests/common/xcm/mocknets.rs
new file mode 100644
index 000000000..e4d738069
--- /dev/null
+++ b/solo-chains/runtime/dancelight/src/tests/common/xcm/mocknets.rs
@@ -0,0 +1,128 @@
+// Copyright (C) Moondance Labs Ltd.
+// This file is part of Tanssi.
+
+// Tanssi 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.
+
+// Tanssi 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 Tanssi. If not, see
+pub use sp_core::Get;
+use {
+ super::constants::{
+ accounts::{ALICE, BOB, RANDOM},
+ frontier_template, simple_template,
+ },
+ crate::tests::common::ExtBuilder,
+ dancelight_runtime_constants::currency::UNITS as UNIT,
+ emulated_integration_tests_common::xcm_emulator::decl_test_parachains,
+ frame_support::parameter_types,
+ xcm_emulator::{decl_test_networks, decl_test_relay_chains, Chain},
+};
+
+decl_test_relay_chains! {
+ #[api_version(11)]
+ pub struct Dancelight {
+ genesis = ExtBuilder::default()
+ .with_balances(vec![
+ // Alice gets 10k extra tokens for her mapping deposit
+ (crate::AccountId::from(crate::tests::common::ALICE), 210_000 * UNIT),
+ (crate::AccountId::from(crate::tests::common::BOB), 100_000 * UNIT),
+ ])
+ .with_relay_config(runtime_parachains::configuration::HostConfiguration {
+ max_downward_message_size: 1024 * 1024,
+ ..Default::default()
+ })
+ .with_safe_xcm_version(3)
+ .build_storage(),
+ on_init = (),
+ runtime = crate,
+ core = {
+ SovereignAccountOf: crate::xcm_config::LocationConverter,
+ },
+ pallets = {
+ System: crate::System,
+ Session: crate::Session,
+ Configuration: crate::Configuration,
+ Balances: crate::Balances,
+ Registrar: crate::Registrar,
+ ParasSudoWrapper: crate::ParasSudoWrapper,
+ OnDemandAssignmentProvider: crate::OnDemandAssignmentProvider,
+ XcmPallet: crate::XcmPallet,
+ Sudo: crate::Sudo,
+ }
+ }
+}
+
+decl_test_parachains! {
+ // Dancelight parachains
+ pub struct FrontierTemplateDancelight {
+ genesis = frontier_template::genesis(),
+ on_init = (),
+ runtime = container_chain_template_frontier_runtime,
+ core = {
+ XcmpMessageHandler: container_chain_template_frontier_runtime::XcmpQueue,
+ LocationToAccountId: container_chain_template_frontier_runtime::xcm_config::LocationToAccountId,
+ ParachainInfo: container_chain_template_frontier_runtime::ParachainInfo,
+ MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin,
+ },
+ pallets = {
+ System: container_chain_template_frontier_runtime::System,
+ Balances: container_chain_template_frontier_runtime::Balances,
+ ParachainSystem: container_chain_template_frontier_runtime::ParachainSystem,
+ PolkadotXcm: container_chain_template_frontier_runtime::PolkadotXcm,
+ ForeignAssets: container_chain_template_frontier_runtime::ForeignAssets,
+ AssetRate: container_chain_template_frontier_runtime::AssetRate,
+ ForeignAssetsCreator: container_chain_template_frontier_runtime::ForeignAssetsCreator,
+ }
+ },
+ pub struct SimpleTemplateDancelight {
+ genesis = simple_template::genesis(),
+ on_init = (),
+ runtime = container_chain_template_simple_runtime,
+ core = {
+ XcmpMessageHandler: container_chain_template_simple_runtime::XcmpQueue,
+ LocationToAccountId: container_chain_template_simple_runtime::xcm_config::LocationToAccountId,
+ ParachainInfo: container_chain_template_simple_runtime::ParachainInfo,
+ MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin,
+ },
+ pallets = {
+ System: container_chain_template_simple_runtime::System,
+ Balances: container_chain_template_simple_runtime::Balances,
+ ParachainSystem: container_chain_template_simple_runtime::ParachainSystem,
+ PolkadotXcm: container_chain_template_simple_runtime::PolkadotXcm,
+ ForeignAssets: container_chain_template_simple_runtime::ForeignAssets,
+ AssetRate: container_chain_template_simple_runtime::AssetRate,
+ ForeignAssetsCreator: container_chain_template_simple_runtime::ForeignAssetsCreator,
+ }
+ }
+}
+
+decl_test_networks! {
+ pub struct DancelightMockNet {
+ relay_chain = Dancelight,
+ parachains = vec![
+ FrontierTemplateDancelight,
+ SimpleTemplateDancelight,
+ ],
+ bridge = ()
+ }
+}
+
+parameter_types! {
+ // Dancelight
+ pub DancelightSender: crate::AccountId = crate::AccountId::from(crate::tests::common::ALICE);
+ pub DancelightReceiver: crate::AccountId = crate::AccountId::from(crate::tests::common::BOB);
+ pub DancelightEmptyReceiver: crate::AccountId = DancelightRelay::account_id_of(RANDOM);
+
+ // SimpleTemplate
+ pub SimpleTemplateDancelightSender: container_chain_template_simple_runtime::AccountId = SimpleTemplateDancelightPara::account_id_of(ALICE);
+ pub SimpleTemplateDancelightReceiver: container_chain_template_simple_runtime::AccountId = SimpleTemplateDancelightPara::account_id_of(BOB);
+ pub SimpleTemplateDancelightEmptyReceiver: container_chain_template_simple_runtime::AccountId = SimpleTemplateDancelightPara::account_id_of(RANDOM);
+}
diff --git a/solo-chains/runtime/dancelight/src/tests/common/xcm/mod.rs b/solo-chains/runtime/dancelight/src/tests/common/xcm/mod.rs
new file mode 100644
index 000000000..f19b25444
--- /dev/null
+++ b/solo-chains/runtime/dancelight/src/tests/common/xcm/mod.rs
@@ -0,0 +1,20 @@
+// Copyright (C) Moondance Labs Ltd.
+// This file is part of Tanssi.
+
+// Tanssi 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.
+
+// Tanssi 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 Tanssi. If not, see
+
+mod constants;
+mod mocknets;
+mod reserver_transfers_polkadot_xcm;
+pub use xcm_emulator::{bx, TestExt};
diff --git a/solo-chains/runtime/dancelight/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs b/solo-chains/runtime/dancelight/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs
new file mode 100644
index 000000000..fe98c8670
--- /dev/null
+++ b/solo-chains/runtime/dancelight/src/tests/common/xcm/reserver_transfers_polkadot_xcm.rs
@@ -0,0 +1,153 @@
+// Copyright (C) Moondance Labs Ltd.
+// This file is part of Tanssi.
+
+// Tanssi 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.
+
+// Tanssi 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 Tanssi. If not, see
+
+use {
+ crate::tests::common::xcm::{
+ mocknets::{
+ DancelightRelay as Dancelight, DancelightSender,
+ SimpleTemplateDancelightEmptyReceiver as SimpleTemplateEmptyReceiver,
+ SimpleTemplateDancelightPara as SimpleTemplateDancelight,
+ },
+ *,
+ },
+ frame_support::{
+ assert_ok,
+ weights::{Weight, WeightToFee},
+ },
+ mocknets::{DancelightRelayPallet, SimpleTemplateDancelightParaPallet},
+ sp_runtime::FixedU128,
+ xcm::{
+ latest::prelude::{Junctions::*, *},
+ VersionedLocation,
+ },
+ xcm_emulator::{assert_expected_events, Chain},
+};
+
+#[allow(unused_assignments)]
+#[test]
+fn transfer_assets_from_dancelight_to_one_of_its_parachains() {
+ // Dancelight origin (sender)
+ let dancelight_alice_origin =
+ ::RuntimeOrigin::signed(DancelightSender::get());
+
+ // Destination location from the dancelight relay viewpoint
+ let simple_template_dest: VersionedLocation = Location {
+ parents: 0,
+ interior: X1([Parachain(constants::simple_template::PARA_ID)].into()),
+ }
+ .into();
+
+ // Beneficiary location from the simple template parachain viewpoint
+ let simple_template_beneficiary: VersionedLocation = Location {
+ parents: 0,
+ interior: X1([AccountId32 {
+ network: None,
+ id: SimpleTemplateEmptyReceiver::get().into(),
+ }]
+ .into()),
+ }
+ .into();
+
+ let amount_to_send: crate::Balance = crate::ExistentialDeposit::get() * 1000;
+
+ // Asset located in Dancelight relay
+ let assets: Assets = (Here, amount_to_send).into();
+ let fee_asset_item = 0;
+ let dancelight_token_asset_id = 1u16;
+
+ // Register the asset first in simple template chain
+ SimpleTemplateDancelight::execute_with(|| {
+ let root_origin = ::RuntimeOrigin::root();
+
+ // Create foreign asset from relay chain
+ assert_ok!(
+ ::ForeignAssetsCreator::create_foreign_asset(
+ root_origin.clone(),
+ Location {
+ parents: 1,
+ interior: Here,
+ },
+ dancelight_token_asset_id,
+ SimpleTemplateEmptyReceiver::get(),
+ true,
+ 1
+ )
+ );
+
+ // Create asset rate
+ assert_ok!(
+ ::AssetRate::create(
+ root_origin,
+ bx!(1),
+ FixedU128::from_u32(1)
+ )
+ );
+ });
+
+ // Send XCM transfer from Dancelight
+ Dancelight::execute_with(|| {
+ assert_ok!(
+ ::XcmPallet::limited_reserve_transfer_assets(
+ dancelight_alice_origin,
+ bx!(simple_template_dest),
+ bx!(simple_template_beneficiary),
+ bx!(assets.into()),
+ fee_asset_item,
+ WeightLimit::Unlimited,
+ )
+ );
+ });
+
+ // Verify token reception in Simple Template chain
+ SimpleTemplateDancelight::execute_with(|| {
+ type RuntimeEvent = ::RuntimeEvent;
+ let mut outcome_weight = Weight::default();
+
+ // Check message processing
+ assert_expected_events!(
+ SimpleTemplateDancelight,
+ vec![
+ RuntimeEvent::MessageQueue(
+ pallet_message_queue::Event::Processed {
+ success: true,
+ weight_used,
+ ..
+ }) => {
+ weight_used: {
+ outcome_weight = *weight_used;
+ weight_used.all_gte(Weight::from_parts(0,0))
+ },
+ },
+ ]
+ );
+
+ type ForeignAssets =
+ ::ForeignAssets;
+
+ // Calculate native balance based on weight
+ let native_balance =
+ container_chain_template_simple_runtime::WeightToFee::weight_to_fee(&outcome_weight);
+
+ // Verify receiver's balance
+ assert_eq!(
+ >::balance(
+ dancelight_token_asset_id,
+ &SimpleTemplateEmptyReceiver::get(),
+ ),
+ amount_to_send - native_balance
+ );
+ });
+}
diff --git a/solo-chains/runtime/dancelight/src/xcm_config.rs b/solo-chains/runtime/dancelight/src/xcm_config.rs
index ab38f8a6a..269a29500 100644
--- a/solo-chains/runtime/dancelight/src/xcm_config.rs
+++ b/solo-chains/runtime/dancelight/src/xcm_config.rs
@@ -37,6 +37,7 @@ use {
ToAuthor,
},
sp_core::ConstU32,
+ tp_xcm_commons::NativeAssetReserve,
xcm::latest::prelude::*,
xcm_builder::{
AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses,
@@ -136,20 +137,10 @@ parameter_types! {
pub StarForBridgeHub: (AssetFilter, Location) = (Star::get(), BridgeHub::get());
pub StarForPeople: (AssetFilter, Location) = (Star::get(), People::get());
pub StarForBroker: (AssetFilter, Location) = (Star::get(), Broker::get());
+ pub const RelayNetwork: NetworkId = NetworkId::Westend;
pub const MaxInstructions: u32 = 100;
pub const MaxAssetsIntoHolding: u32 = 64;
}
-pub type TrustedTeleporters = (
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
- xcm_builder::Case,
-);
pub struct OnlyParachains;
impl Contains for OnlyParachains {
@@ -187,7 +178,7 @@ pub type Barrier = TrailingSetTopicAsId<(
/// Locations that will not be charged fees in the executor, neither for execution nor delivery.
/// We only waive fees for system functions, which these locations represent.
-pub type WaivedLocations = (SystemParachains, Equals, LocalPlurality);
+pub type WaivedLocations = Equals;
pub type XcmWeigher = FixedWeightBounds<(), RuntimeCall, MaxInstructions>;
pub struct XcmConfig;
@@ -196,8 +187,8 @@ impl xcm_executor::Config for XcmConfig {
type XcmSender = XcmRouter;
type AssetTransactor = LocalAssetTransactor;
type OriginConverter = LocalOriginConverter;
- type IsReserve = ();
- type IsTeleporter = TrustedTeleporters;
+ type IsReserve = NativeAssetReserve;
+ type IsTeleporter = ();
type UniversalLocation = UniversalLocation;
type Barrier = Barrier;
type Weigher = XcmWeigher;
diff --git a/test/configs/zombie_tanssi_relay_eth_bridge.json b/test/configs/zombie_tanssi_relay_eth_bridge.json
index b7002f240..48c981d53 100644
--- a/test/configs/zombie_tanssi_relay_eth_bridge.json
+++ b/test/configs/zombie_tanssi_relay_eth_bridge.json
@@ -39,6 +39,11 @@
{
"name": "bob",
"validator": true
+ },
+ {
+ "name": "charlie",
+ "ws_port": "9948",
+ "validator": true
}
]
},
diff --git a/test/moonwall.config.json b/test/moonwall.config.json
index c446a77ba..6bc1f1ca2 100644
--- a/test/moonwall.config.json
+++ b/test/moonwall.config.json
@@ -859,6 +859,11 @@
"name": "Tanssi-relay",
"type": "polkadotJs",
"endpoints": ["ws://127.0.0.1:9947"]
+ },
+ {
+ "name": "Tanssi-charlie",
+ "type": "polkadotJs",
+ "endpoints": ["ws://127.0.0.1:9948"]
}
]
},
@@ -872,7 +877,7 @@
"compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/data-preservers-container-2000.json",
"compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/data-preservers-container-2001.json"
],
- "timeout": 600000,
+ "timeout": 700000,
"foundation": {
"type": "zombie",
"zombieSpec": {
diff --git a/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts b/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts
index b15d7e4be..f73859ad5 100644
--- a/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts
+++ b/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts
@@ -1,11 +1,11 @@
import "@tanssi/api-augment";
import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli";
import { ApiPromise } from "@polkadot/api";
-import { Header, ParaId, HeadData, Digest, DigestItem } from "@polkadot/types/interfaces";
+import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces";
import { KeyringPair } from "@moonwall/util";
import { fetchIssuance, filterRewardFromContainer, jumpToSession } from "util/block";
import { DANCELIGHT_BOND } from "util/constants";
-import { numberToHex, stringToHex } from "@polkadot/util";
+import { stringToHex } from "@polkadot/util";
//5EYCAe5cHUC3LZehbwavqEb95LcNnpBzfQTsAxeUibSo1Gtb
// Helper function to make rewards work for a specific block and slot.
@@ -25,13 +25,14 @@ async function mockAndInsertHeadData(
const relayApi = context.polkadotJs();
const aura_engine_id = stringToHex("aura");
- const digestItem: DigestItem = await relayApi.createType("DigestItem", {
- PreRuntime: [aura_engine_id, numberToHex(slotNumber, 64)],
+ const slotNumberT: Slot = relayApi.createType("Slot", slotNumber);
+ const digestItem: DigestItem = relayApi.createType("DigestItem", {
+ PreRuntime: [aura_engine_id, slotNumberT.toHex(true)],
});
- const digest: Digest = await relayApi.createType("Digest", {
+ const digest: Digest = relayApi.createType("Digest", {
logs: [digestItem],
});
- const header: Header = await relayApi.createType("Header", {
+ const header: Header = relayApi.createType("Header", {
parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
number: blockNumber,
stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -39,8 +40,8 @@ async function mockAndInsertHeadData(
digest,
});
- const headData: HeadData = await relayApi.createType("HeadData", header.toHex());
- const paraHeadKey = await relayApi.query.paras.heads.key(paraId);
+ const headData: HeadData = relayApi.createType("HeadData", header.toHex());
+ const paraHeadKey = relayApi.query.paras.heads.key(paraId);
await context.createBlock(
relayApi.tx.sudo
@@ -116,12 +117,11 @@ describeSuite({
// The first account of container 2000 will be rewarded.
const accountToReward: string = assignment.containerChains[2000][0];
- const { block } = await context.createBlock();
const accountBalanceBefore = (
await polkadotJs.query.system.account(accountToReward)
).data.free.toBigInt();
- await mockAndInsertHeadData(context, 2000, block.duration, 2, alice);
+ await mockAndInsertHeadData(context, 2000, 2, 2, alice);
await context.createBlock();
const currentChainRewards = (await polkadotJs.query.inflationRewards.chainsToReward()).unwrap();
diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_join.ts b/test/suites/dev-tanssi-relay/staking/test_staking_join.ts
new file mode 100644
index 000000000..ec7abcbce
--- /dev/null
+++ b/test/suites/dev-tanssi-relay/staking/test_staking_join.ts
@@ -0,0 +1,110 @@
+import "@tanssi/api-augment";
+import { describeSuite, beforeAll, expect } from "@moonwall/cli";
+import { KeyringPair } from "@moonwall/util";
+import { ApiPromise } from "@polkadot/api";
+import { numberToHex } from "@polkadot/util";
+import { jumpToBlock } from "../../../util/block";
+
+describeSuite({
+ id: "DT0301",
+ title: "Fee test suite",
+ foundationMethods: "dev",
+ testCases: ({ it, context }) => {
+ let polkadotJs: ApiPromise;
+ let alice: KeyringPair;
+ let bob: KeyringPair;
+ // TODO: don't hardcode the period here
+ const sessionPeriod = 10;
+
+ beforeAll(async () => {
+ alice = context.keyring.alice;
+ bob = context.keyring.bob;
+ polkadotJs = context.polkadotJs();
+
+ // Add alice and box keys to pallet session. In dancebox they are already there in genesis.
+ const newKey1 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey2 = await polkadotJs.rpc.author.rotateKeys();
+
+ await context.createBlock([
+ await polkadotJs.tx.session.setKeys(newKey1, []).signAsync(alice),
+ await polkadotJs.tx.session.setKeys(newKey2, []).signAsync(bob),
+ ]);
+ });
+
+ it({
+ id: "E01",
+ title: "Cannot execute stake join before 2 sessions",
+ test: async function () {
+ const initialSession = 0;
+ const tx = polkadotJs.tx.pooledStaking.requestDelegate(
+ alice.address,
+ "AutoCompounding",
+ 10000000000000000n
+ );
+ await context.createBlock([await tx.signAsync(alice)]);
+ const events = await polkadotJs.query.system.events();
+ const ev1 = events.filter((a) => {
+ return a.event.method == "IncreasedStake";
+ });
+ expect(ev1.length).to.be.equal(1);
+ const ev2 = events.filter((a) => {
+ return a.event.method == "UpdatedCandidatePosition";
+ });
+ expect(ev2.length).to.be.equal(1);
+ const ev3 = events.filter((a) => {
+ return a.event.method == "RequestedDelegate";
+ });
+ expect(ev3.length).to.be.equal(1);
+
+ const stakingCandidates = await polkadotJs.query.pooledStaking.sortedEligibleCandidates();
+ expect(stakingCandidates.toJSON()).to.deep.equal([
+ {
+ candidate: alice.address,
+ stake: numberToHex(10000000000000000, 128),
+ },
+ ]);
+
+ // Ensure that executePendingOperations can only be executed after 2 sessions, meaning that if the
+ // current session number is 0, we must wait until after the NewSession event for session 2.
+ // Jump to block 9
+ await jumpToBlock(context, 2 * sessionPeriod - 1);
+ const tx2 = polkadotJs.tx.pooledStaking.executePendingOperations([
+ {
+ delegator: alice.address,
+ operation: {
+ JoiningAutoCompounding: {
+ candidate: alice.address,
+ at: initialSession,
+ },
+ },
+ },
+ ]);
+
+ await context.createBlock([await tx2.signAsync(bob)]);
+ // executePendingOperations failed
+ const events2 = await polkadotJs.query.system.events();
+ const ev4 = events2.filter((a) => {
+ return a.event.method == "ExtrinsicFailed";
+ });
+ expect(ev4.length).to.be.equal(1);
+
+ // We are now in block 19, jump to block 21
+ await context.createBlock();
+ await context.createBlock();
+
+ // Now the executePendingOperations should succeed
+ await context.createBlock([await tx2.signAsync(bob)]);
+
+ const events3 = await polkadotJs.query.system.events();
+ const ev5 = events3.filter((a) => {
+ return a.event.method == "StakedAutoCompounding";
+ });
+ expect(ev5.length).to.be.equal(1);
+ const ev6 = events3.filter((a) => {
+ return a.event.method == "ExecutedDelegate";
+ });
+ expect(ev6.length).to.be.equal(1);
+ },
+ });
+ },
+});
diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts
new file mode 100644
index 000000000..480c3abb8
--- /dev/null
+++ b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts
@@ -0,0 +1,317 @@
+import "@tanssi/api-augment";
+import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli";
+import { ApiPromise } from "@polkadot/api";
+import { KeyringPair } from "@moonwall/util";
+import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces";
+import {
+ fetchIssuance,
+ fetchRewardAuthorContainers,
+ filterRewardStakingCollator,
+ filterRewardStakingDelegators,
+ jumpSessions,
+} from "util/block";
+import { DANCE } from "util/constants";
+import { stringToHex } from "@polkadot/util";
+
+export async function createBlockAndRemoveInvulnerables(context: DevModeContext, sudoKey: KeyringPair) {
+ let nonce = (await context.polkadotJs().rpc.system.accountNextIndex(sudoKey.address)).toNumber();
+ const invulnerables = await context.polkadotJs().query.tanssiInvulnerables.invulnerables();
+
+ const txs = invulnerables.map((invulnerable) =>
+ context
+ .polkadotJs()
+ .tx.sudo.sudo(context.polkadotJs().tx.tanssiInvulnerables.removeInvulnerable(invulnerable))
+ .signAsync(sudoKey, { nonce: nonce++ })
+ );
+
+ await context.createBlock(txs);
+}
+
+// Helper function to make rewards work for a specific block and slot.
+// We need to mock a proper HeadData object for AuthorNoting inherent to work, and thus
+// rewards take place.
+//
+// Basically, if we don't call this function before testing the rewards given
+// to collators in a block, the HeadData object mocked in genesis will not be decoded properly
+// and the AuthorNoting inherent will fail.
+async function mockAndInsertHeadData(
+ context: DevModeContext,
+ paraId: ParaId,
+ blockNumber: number,
+ slotNumber: number,
+ sudoAccount: KeyringPair
+) {
+ const relayApi = context.polkadotJs();
+ const aura_engine_id = stringToHex("aura");
+
+ const slotNumberT: Slot = relayApi.createType("Slot", slotNumber);
+ const digestItem: DigestItem = relayApi.createType("DigestItem", {
+ PreRuntime: [aura_engine_id, slotNumberT.toHex(true)],
+ });
+ const digest: Digest = relayApi.createType("Digest", {
+ logs: [digestItem],
+ });
+ const header: Header = relayApi.createType("Header", {
+ parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ number: blockNumber,
+ stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ extrinsicsRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ digest,
+ });
+
+ const headData: HeadData = relayApi.createType("HeadData", header.toHex());
+ const paraHeadKey = relayApi.query.paras.heads.key(paraId);
+
+ await context.createBlock(
+ relayApi.tx.sudo
+ .sudo(relayApi.tx.system.setStorage([[paraHeadKey, `0xc101${headData.toHex().slice(2)}`]]))
+ .signAsync(sudoAccount),
+ { allowFailures: false }
+ );
+}
+
+describeSuite({
+ id: "DT0302",
+ title: "Staking candidate reward test suite",
+ foundationMethods: "dev",
+ testCases: ({ it, context }) => {
+ let polkadotJs: ApiPromise;
+ let alice: KeyringPair;
+ let bob: KeyringPair;
+ let charlie: KeyringPair;
+ let dave: KeyringPair;
+
+ beforeAll(async () => {
+ polkadotJs = context.polkadotJs();
+ alice = context.keyring.alice;
+ bob = context.keyring.bob;
+ charlie = context.keyring.charlie;
+ dave = context.keyring.dave;
+
+ await createBlockAndRemoveInvulnerables(context, alice);
+
+ // Add keys to pallet session. In dancebox they are already there in genesis.
+ // We need 4 collators because we have 2 chains with 2 collators per chain.
+ const newKey1 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey2 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey3 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey4 = await polkadotJs.rpc.author.rotateKeys();
+
+ await context.createBlock([
+ await polkadotJs.tx.session.setKeys(newKey1, []).signAsync(alice),
+ await polkadotJs.tx.session.setKeys(newKey2, []).signAsync(bob),
+ await polkadotJs.tx.session.setKeys(newKey3, []).signAsync(charlie),
+ await polkadotJs.tx.session.setKeys(newKey4, []).signAsync(dave),
+ ]);
+
+ // We will make each of them self-delegate the min amount, while
+ // we will make each of them delegate the other with 50%
+ // Alice autocompounding, Bob will be manual
+ let aliceNonce = (await polkadotJs.rpc.system.accountNextIndex(alice.address)).toNumber();
+ let bobNonce = (await polkadotJs.rpc.system.accountNextIndex(bob.address)).toNumber();
+ let charlieNonce = (await polkadotJs.rpc.system.accountNextIndex(charlie.address)).toNumber();
+ let daveNonce = (await polkadotJs.rpc.system.accountNextIndex(dave.address)).toNumber();
+
+ await context.createBlock([
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(alice.address, "AutoCompounding", 10000n * DANCE)
+ .signAsync(context.keyring.alice, { nonce: aliceNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(alice.address, "ManualRewards", 10000n * DANCE)
+ .signAsync(context.keyring.bob, { nonce: bobNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(bob.address, "AutoCompounding", 10000n * DANCE)
+ .signAsync(context.keyring.alice, { nonce: aliceNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(bob.address, "ManualRewards", 10000n * DANCE)
+ .signAsync(context.keyring.bob, { nonce: bobNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(charlie.address, "AutoCompounding", 10000n * DANCE)
+ .signAsync(context.keyring.charlie, { nonce: charlieNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(charlie.address, "ManualRewards", 10000n * DANCE)
+ .signAsync(context.keyring.dave, { nonce: daveNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(dave.address, "AutoCompounding", 10000n * DANCE)
+ .signAsync(context.keyring.charlie, { nonce: charlieNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(dave.address, "ManualRewards", 10000n * DANCE)
+ .signAsync(context.keyring.dave, { nonce: daveNonce++ }),
+ ]);
+ // At least 2 sessions for the change to have effect
+ await jumpSessions(context, 2);
+ // +2 because in tanssi-relay sessions start 1 block later
+ await context.createBlock();
+ await context.createBlock();
+ });
+ it({
+ id: "E01",
+ title: "Alice should receive rewards through staking now",
+ test: async function () {
+ const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON();
+
+ // Find alice in list of collators
+ let paraId = null;
+ let slotOffset = 0;
+ const containerIds = [2000, 2001];
+ for (const id of containerIds) {
+ const index = assignment.containerChains[id].indexOf(alice.address);
+ if (index !== -1) {
+ paraId = id;
+ slotOffset = index;
+ break;
+ }
+ }
+
+ expect(paraId, `Alice not found in list of collators: ${assignment}`).to.not.be.null;
+
+ const accountToReward = alice.address;
+ // 70% is distributed across all rewards
+ // But we have 2 container chains, so it should get 1/2 of this
+ const accountBalanceBefore = (
+ await polkadotJs.query.system.account(accountToReward)
+ ).data.free.toBigInt();
+
+ await mockAndInsertHeadData(context, paraId, 1, 2 + slotOffset, alice);
+ await context.createBlock();
+ const events = await polkadotJs.query.system.events();
+ const issuance = await fetchIssuance(events).amount.toBigInt();
+ const chainRewards = (issuance * 7n) / 10n;
+ const rounding = chainRewards % 3n > 0 ? 1n : 0n;
+ const expectedContainerReward = chainRewards / 2n - rounding;
+ const rewards = fetchRewardAuthorContainers(events);
+ expect(rewards.length).toBe(1);
+ const reward = rewards[0];
+
+ expect(reward.accountId.toString(), "Alice was not the rewarded collator").toBe(accountToReward);
+
+ const stakingRewardedCollator = filterRewardStakingCollator(events, reward.accountId.toString());
+ const stakingRewardedDelegators = filterRewardStakingDelegators(events, reward.accountId.toString());
+
+ // How much should the author have gotten?
+ // For now everything as we did not execute the pending operations
+ expect(reward.balance.toBigInt()).toBeGreaterThanOrEqual(expectedContainerReward - 1n);
+ expect(reward.balance.toBigInt()).toBeLessThanOrEqual(expectedContainerReward + 1n);
+ expect(stakingRewardedCollator.manualRewards).to.equal(reward.balance.toBigInt());
+ expect(stakingRewardedCollator.autoCompoundingRewards).to.equal(0n);
+ expect(stakingRewardedDelegators.manualRewards).to.equal(0n);
+ expect(stakingRewardedDelegators.autoCompoundingRewards).to.equal(0n);
+
+ const accountBalanceAfter = (
+ await polkadotJs.query.system.account(accountToReward)
+ ).data.free.toBigInt();
+
+ expect(accountBalanceAfter - accountBalanceBefore).to.equal(reward.balance.toBigInt());
+ },
+ });
+
+ it({
+ id: "E02",
+ title: "Alice should receive shared rewards with delegators through staking now",
+ test: async function () {
+ await jumpSessions(context, 1);
+ // All pending operations where in session 0
+ await context.createBlock([
+ await polkadotJs.tx.pooledStaking
+ .executePendingOperations([
+ {
+ delegator: alice.address,
+ operation: {
+ JoiningAutoCompounding: {
+ candidate: alice.address,
+ at: 0,
+ },
+ },
+ },
+ {
+ delegator: bob.address,
+ operation: {
+ JoiningManualRewards: {
+ candidate: alice.address,
+ at: 0,
+ },
+ },
+ },
+ ])
+ .signAsync(context.keyring.alice),
+ ]);
+
+ const totalBacked = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "CandidateTotalStake")
+ ).toBigInt();
+ const totalManual = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "ManualRewardsSharesTotalStaked")
+ ).toBigInt();
+ const totalManualShareSupply = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "ManualRewardsSharesSupply")
+ ).toBigInt();
+
+ const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON();
+ // Find alice in list of collators
+ let paraId = null;
+ let slotOffset = 0;
+ const containerIds = [2000, 2001];
+ for (const id of containerIds) {
+ const index = assignment.containerChains[id].indexOf(alice.address);
+ if (index !== -1) {
+ paraId = id;
+ slotOffset = index;
+ break;
+ }
+ }
+
+ expect(paraId, `Alice not found in list of collators: ${assignment}`).to.not.be.null;
+
+ // We create one more block
+ await mockAndInsertHeadData(context, paraId, 2, 4 + slotOffset, alice);
+ await context.createBlock();
+ const events = await polkadotJs.query.system.events();
+ const rewards = fetchRewardAuthorContainers(events);
+ expect(rewards.length).toBe(1);
+ const reward = rewards[0];
+
+ // 20% collator percentage
+ const collatorPercentage = (20n * reward.balance.toBigInt()) / 100n;
+
+ // Rounding
+ const delegatorRewards = reward.balance.toBigInt() - collatorPercentage;
+
+ // First, manual rewards
+ const delegatorManualRewards = (totalManual * delegatorRewards) / totalBacked;
+ // Check its
+ const delegatorManualRewardsPerShare = delegatorManualRewards / totalManualShareSupply;
+ const realDistributedManualDelegatorRewards = delegatorManualRewardsPerShare * totalManualShareSupply;
+
+ // Second, autocompounding
+ const delegatorsAutoCompoundRewards = delegatorRewards - realDistributedManualDelegatorRewards;
+
+ const stakingRewardedCollator = filterRewardStakingCollator(events, reward.accountId.toString());
+ const stakingRewardedDelegators = filterRewardStakingDelegators(events, reward.accountId.toString());
+
+ // Test ranges, as we can have rounding errors for Perbill manipulation
+ expect(stakingRewardedDelegators.manualRewards).toBeGreaterThanOrEqual(
+ realDistributedManualDelegatorRewards - 1n
+ );
+ expect(stakingRewardedDelegators.manualRewards).toBeLessThanOrEqual(
+ realDistributedManualDelegatorRewards + 1n
+ );
+ expect(stakingRewardedDelegators.autoCompoundingRewards).toBeGreaterThanOrEqual(
+ delegatorsAutoCompoundRewards - 1n
+ );
+ expect(stakingRewardedDelegators.autoCompoundingRewards).toBeLessThanOrEqual(
+ delegatorsAutoCompoundRewards + 1n
+ );
+
+ // TODO: test better what goes into auto and what goes into manual for collator
+ const delegatorDust =
+ delegatorRewards - realDistributedManualDelegatorRewards - delegatorsAutoCompoundRewards;
+ expect(
+ stakingRewardedCollator.manualRewards + stakingRewardedCollator.autoCompoundingRewards
+ ).toBeGreaterThanOrEqual(collatorPercentage + delegatorDust - 1n);
+ expect(
+ stakingRewardedCollator.manualRewards + stakingRewardedCollator.autoCompoundingRewards
+ ).toBeLessThanOrEqual(collatorPercentage + delegatorDust + 1n);
+ },
+ });
+ },
+});
diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts
new file mode 100644
index 000000000..65f865a72
--- /dev/null
+++ b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts
@@ -0,0 +1,314 @@
+import "@tanssi/api-augment";
+import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli";
+import { ApiPromise } from "@polkadot/api";
+import { KeyringPair } from "@moonwall/util";
+import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces";
+import {
+ fetchIssuance,
+ fetchRewardAuthorContainers,
+ filterRewardStakingCollator,
+ filterRewardStakingDelegators,
+ jumpSessions,
+} from "util/block";
+import { DANCE } from "util/constants";
+import { stringToHex } from "@polkadot/util";
+
+export async function createBlockAndRemoveInvulnerables(context: DevModeContext, sudoKey: KeyringPair) {
+ let nonce = (await context.polkadotJs().rpc.system.accountNextIndex(sudoKey.address)).toNumber();
+ const invulnerables = await context.polkadotJs().query.tanssiInvulnerables.invulnerables();
+
+ const txs = invulnerables.map((invulnerable) =>
+ context
+ .polkadotJs()
+ .tx.sudo.sudo(context.polkadotJs().tx.tanssiInvulnerables.removeInvulnerable(invulnerable))
+ .signAsync(sudoKey, { nonce: nonce++ })
+ );
+
+ await context.createBlock(txs);
+}
+
+// Helper function to make rewards work for a specific block and slot.
+// We need to mock a proper HeadData object for AuthorNoting inherent to work, and thus
+// rewards take place.
+//
+// Basically, if we don't call this function before testing the rewards given
+// to collators in a block, the HeadData object mocked in genesis will not be decoded properly
+// and the AuthorNoting inherent will fail.
+async function mockAndInsertHeadData(
+ context: DevModeContext,
+ paraId: ParaId,
+ blockNumber: number,
+ slotNumber: number,
+ sudoAccount: KeyringPair
+) {
+ const relayApi = context.polkadotJs();
+ const aura_engine_id = stringToHex("aura");
+
+ const slotNumberT: Slot = relayApi.createType("Slot", slotNumber);
+ const digestItem: DigestItem = relayApi.createType("DigestItem", {
+ PreRuntime: [aura_engine_id, slotNumberT.toHex(true)],
+ });
+ const digest: Digest = relayApi.createType("Digest", {
+ logs: [digestItem],
+ });
+ const header: Header = relayApi.createType("Header", {
+ parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ number: blockNumber,
+ stateRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ extrinsicsRoot: "0x0000000000000000000000000000000000000000000000000000000000000000",
+ digest,
+ });
+
+ const headData: HeadData = relayApi.createType("HeadData", header.toHex());
+ const paraHeadKey = relayApi.query.paras.heads.key(paraId);
+
+ await context.createBlock(
+ relayApi.tx.sudo
+ .sudo(relayApi.tx.system.setStorage([[paraHeadKey, `0xc101${headData.toHex().slice(2)}`]]))
+ .signAsync(sudoAccount),
+ { allowFailures: false }
+ );
+}
+
+describeSuite({
+ id: "DT0303",
+ title: "Staking candidate reward test suite",
+ foundationMethods: "dev",
+ testCases: ({ it, context }) => {
+ let polkadotJs: ApiPromise;
+ let alice: KeyringPair;
+ let bob: KeyringPair;
+ let charlie: KeyringPair;
+ let dave: KeyringPair;
+
+ beforeAll(async () => {
+ polkadotJs = context.polkadotJs();
+ alice = context.keyring.alice;
+ bob = context.keyring.bob;
+ charlie = context.keyring.charlie;
+ dave = context.keyring.dave;
+
+ await createBlockAndRemoveInvulnerables(context, alice);
+
+ // Add keys to pallet session. In dancebox they are already there in genesis.
+ // We need 4 collators because we have 2 chains with 2 collators per chain.
+ const newKey1 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey2 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey3 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey4 = await polkadotJs.rpc.author.rotateKeys();
+
+ await context.createBlock([
+ await polkadotJs.tx.session.setKeys(newKey1, []).signAsync(alice),
+ await polkadotJs.tx.session.setKeys(newKey2, []).signAsync(bob),
+ await polkadotJs.tx.session.setKeys(newKey3, []).signAsync(charlie),
+ await polkadotJs.tx.session.setKeys(newKey4, []).signAsync(dave),
+ ]);
+
+ // We will make each of them self-delegate the min amount, while
+ // we will make each of them delegate the other with 50%
+ // Alice autocompounding, Bob will be manual
+ let aliceNonce = (await polkadotJs.rpc.system.accountNextIndex(alice.address)).toNumber();
+ let bobNonce = (await polkadotJs.rpc.system.accountNextIndex(bob.address)).toNumber();
+ let charlieNonce = (await polkadotJs.rpc.system.accountNextIndex(charlie.address)).toNumber();
+ let daveNonce = (await polkadotJs.rpc.system.accountNextIndex(dave.address)).toNumber();
+
+ await context.createBlock([
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(alice.address, "AutoCompounding", 18000n * DANCE)
+ .signAsync(context.keyring.alice, { nonce: aliceNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(alice.address, "ManualRewards", 2000n * DANCE)
+ .signAsync(context.keyring.bob, { nonce: bobNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(bob.address, "AutoCompounding", 18000n * DANCE)
+ .signAsync(context.keyring.alice, { nonce: aliceNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(bob.address, "ManualRewards", 2000n * DANCE)
+ .signAsync(context.keyring.bob, { nonce: bobNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(charlie.address, "AutoCompounding", 18000n * DANCE)
+ .signAsync(context.keyring.charlie, { nonce: charlieNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(charlie.address, "ManualRewards", 2000n * DANCE)
+ .signAsync(context.keyring.dave, { nonce: daveNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(dave.address, "AutoCompounding", 18000n * DANCE)
+ .signAsync(context.keyring.charlie, { nonce: charlieNonce++ }),
+ await polkadotJs.tx.pooledStaking
+ .requestDelegate(dave.address, "ManualRewards", 2000n * DANCE)
+ .signAsync(context.keyring.dave, { nonce: daveNonce++ }),
+ ]);
+ // At least 2 sessions for the change to have effect
+ await jumpSessions(context, 2);
+ // +2 because in tanssi-relay sessions start 1 block later
+ await context.createBlock();
+ await context.createBlock();
+ });
+ it({
+ id: "E01",
+ title: "Alice should receive rewards through staking now",
+ test: async function () {
+ const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON();
+
+ // Find alice in list of collators
+ let paraId = null;
+ let slotOffset = 0;
+ const containerIds = [2000, 2001];
+ for (const id of containerIds) {
+ const index = assignment.containerChains[id].indexOf(alice.address);
+ if (index !== -1) {
+ paraId = id;
+ slotOffset = index;
+ break;
+ }
+ }
+
+ expect(paraId, `Alice not found in list of collators: ${assignment}`).to.not.be.null;
+
+ const accountToReward = alice.address;
+ // 70% is distributed across all rewards
+ // But we have 2 container chains, so it should get 1/2 of this
+ const accountBalanceBefore = (
+ await polkadotJs.query.system.account(accountToReward)
+ ).data.free.toBigInt();
+
+ await mockAndInsertHeadData(context, paraId, 1, 2 + slotOffset, alice);
+ await context.createBlock();
+ const events = await polkadotJs.query.system.events();
+ const issuance = await fetchIssuance(events).amount.toBigInt();
+ const chainRewards = (issuance * 7n) / 10n;
+ const rounding = chainRewards % 3n > 0 ? 1n : 0n;
+ const expectedContainerReward = chainRewards / 2n - rounding;
+ const rewards = fetchRewardAuthorContainers(events);
+ expect(rewards.length).toBe(1);
+ const reward = rewards[0];
+ const stakingRewardedCollator = filterRewardStakingCollator(events, reward.accountId.toString());
+ const stakingRewardedDelegators = filterRewardStakingDelegators(events, reward.accountId.toString());
+
+ // How much should the author have gotten?
+ // For now everything as we did not execute the pending operations
+ expect(reward.balance.toBigInt()).toBeGreaterThanOrEqual(expectedContainerReward - 1n);
+ expect(reward.balance.toBigInt()).toBeLessThanOrEqual(expectedContainerReward + 1n);
+ expect(stakingRewardedCollator.manualRewards).to.equal(reward.balance.toBigInt());
+ expect(stakingRewardedCollator.autoCompoundingRewards).to.equal(0n);
+ expect(stakingRewardedDelegators.manualRewards).to.equal(0n);
+ expect(stakingRewardedDelegators.autoCompoundingRewards).to.equal(0n);
+
+ const accountBalanceAfter = (
+ await polkadotJs.query.system.account(accountToReward)
+ ).data.free.toBigInt();
+
+ expect(accountBalanceAfter - accountBalanceBefore).to.equal(reward.balance.toBigInt());
+ },
+ });
+
+ it({
+ id: "E02",
+ title: "Alice should receive shared rewards with delegators through staking now",
+ test: async function () {
+ await jumpSessions(context, 1);
+ // All pending operations where in session 0
+ await context.createBlock([
+ await polkadotJs.tx.pooledStaking
+ .executePendingOperations([
+ {
+ delegator: alice.address,
+ operation: {
+ JoiningAutoCompounding: {
+ candidate: alice.address,
+ at: 0,
+ },
+ },
+ },
+ {
+ delegator: bob.address,
+ operation: {
+ JoiningManualRewards: {
+ candidate: alice.address,
+ at: 0,
+ },
+ },
+ },
+ ])
+ .signAsync(context.keyring.alice),
+ ]);
+
+ const totalBacked = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "CandidateTotalStake")
+ ).toBigInt();
+ const totalManual = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "ManualRewardsSharesTotalStaked")
+ ).toBigInt();
+ const totalManualShareSupply = (
+ await polkadotJs.query.pooledStaking.pools(alice.address, "ManualRewardsSharesSupply")
+ ).toBigInt();
+
+ const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON();
+ // Find alice in list of collators
+ let paraId = null;
+ let slotOffset = 0;
+ const containerIds = [2000, 2001];
+ for (const id of containerIds) {
+ const index = assignment.containerChains[id].indexOf(alice.address);
+ if (index !== -1) {
+ paraId = id;
+ slotOffset = index;
+ break;
+ }
+ }
+
+ expect(paraId, `Alice not found in list of collators: ${assignment}`).to.not.be.null;
+
+ // We create one more block
+ await mockAndInsertHeadData(context, paraId, 2, 4 + slotOffset, alice);
+ await context.createBlock();
+ const events = await polkadotJs.query.system.events();
+ const rewards = fetchRewardAuthorContainers(events);
+ expect(rewards.length).toBe(1);
+ const reward = rewards[0];
+
+ // 20% collator percentage
+ const collatorPercentage = reward.balance.toBigInt() - (80n * reward.balance.toBigInt()) / 100n;
+
+ // Rounding
+ const delegatorRewards = reward.balance.toBigInt() - collatorPercentage;
+
+ // First, manual rewards
+ const delegatorManualRewards = (totalManual * delegatorRewards) / totalBacked;
+ // Check its
+ const delegatorManualRewardsPerShare = delegatorManualRewards / totalManualShareSupply;
+ const realDistributedManualDelegatorRewards = delegatorManualRewardsPerShare * totalManualShareSupply;
+
+ // Second, autocompounding
+ const delegatorsAutoCompoundRewards = delegatorRewards - realDistributedManualDelegatorRewards;
+
+ const stakingRewardedCollator = filterRewardStakingCollator(events, reward.accountId.toString());
+ const stakingRewardedDelegators = filterRewardStakingDelegators(events, reward.accountId.toString());
+
+ // Test ranges, as we can have rounding errors for Perbill manipulation
+ expect(stakingRewardedDelegators.manualRewards).toBeGreaterThanOrEqual(
+ realDistributedManualDelegatorRewards - 1n
+ );
+ expect(stakingRewardedDelegators.manualRewards).toBeLessThanOrEqual(
+ realDistributedManualDelegatorRewards + 1n
+ );
+ expect(stakingRewardedDelegators.autoCompoundingRewards).toBeGreaterThanOrEqual(
+ delegatorsAutoCompoundRewards - 1n
+ );
+ expect(stakingRewardedDelegators.autoCompoundingRewards).toBeLessThanOrEqual(
+ delegatorsAutoCompoundRewards + 1n
+ );
+
+ // TODO: test better what goes into auto and what goes into manual for collator
+ const delegatorDust =
+ delegatorRewards - realDistributedManualDelegatorRewards - delegatorsAutoCompoundRewards;
+ expect(
+ stakingRewardedCollator.manualRewards + stakingRewardedCollator.autoCompoundingRewards
+ ).toBeGreaterThanOrEqual(collatorPercentage + delegatorDust - 1n);
+ expect(
+ stakingRewardedCollator.manualRewards + stakingRewardedCollator.autoCompoundingRewards
+ ).toBeLessThanOrEqual(collatorPercentage + delegatorDust + 1n);
+ },
+ });
+ },
+});
diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_session.ts b/test/suites/dev-tanssi-relay/staking/test_staking_session.ts
new file mode 100644
index 000000000..40fae3205
--- /dev/null
+++ b/test/suites/dev-tanssi-relay/staking/test_staking_session.ts
@@ -0,0 +1,99 @@
+import "@tanssi/api-augment";
+import { describeSuite, beforeAll, expect, isExtrinsicSuccessful } from "@moonwall/cli";
+import { KeyringPair, generateKeyringPair } from "@moonwall/util";
+import { ApiPromise } from "@polkadot/api";
+import { numberToHex } from "@polkadot/util";
+import { jumpToBlock } from "../../../util/block";
+
+describeSuite({
+ id: "DT0304",
+ title: "Fee test suite",
+ foundationMethods: "dev",
+ testCases: ({ it, context }) => {
+ let polkadotJs: ApiPromise;
+ let alice: KeyringPair;
+ let bob: KeyringPair;
+ // TODO: don't hardcode the period here
+ const sessionPeriod = 10;
+
+ beforeAll(async () => {
+ alice = context.keyring.alice;
+ bob = context.keyring.bob;
+ polkadotJs = context.polkadotJs();
+
+ // Add alice and box keys to pallet session. In dancebox they are already there in genesis.
+ const newKey1 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey2 = await polkadotJs.rpc.author.rotateKeys();
+
+ await context.createBlock([
+ await polkadotJs.tx.session.setKeys(newKey1, []).signAsync(alice),
+ await polkadotJs.tx.session.setKeys(newKey2, []).signAsync(bob),
+ ]);
+ });
+
+ it({
+ id: "E01",
+ title: "It takes 2 sessions to update pallet_session collators",
+ test: async function () {
+ const initialCollators = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain();
+
+ const randomAccount = generateKeyringPair("sr25519");
+
+ const tx = polkadotJs.tx.balances.transferAllowDeath(randomAccount.address, 2n * 10000000000000000n);
+ await context.createBlock([await tx.signAsync(alice)]);
+ expect(isExtrinsicSuccessful(await polkadotJs.query.system.events())).to.be.true;
+
+ // Register keys in pallet_session
+ const newKey = await polkadotJs.rpc.author.rotateKeys();
+ const tx2 = polkadotJs.tx.session.setKeys(newKey, []);
+ await context.createBlock([await tx2.signAsync(randomAccount)]);
+ expect(isExtrinsicSuccessful(await polkadotJs.query.system.events())).to.be.true;
+
+ // Self-delegate in pallet_pooled_staking
+ const tx3 = polkadotJs.tx.pooledStaking.requestDelegate(
+ randomAccount.address,
+ "AutoCompounding",
+ 10000000000000000n
+ );
+ await context.createBlock([await tx3.signAsync(randomAccount)]);
+ const events = await polkadotJs.query.system.events();
+ const ev1 = events.filter((a) => {
+ return a.event.method == "IncreasedStake";
+ });
+ expect(ev1.length).to.be.equal(1);
+ const ev2 = events.filter((a) => {
+ return a.event.method == "UpdatedCandidatePosition";
+ });
+ expect(ev2.length).to.be.equal(1);
+ const ev3 = events.filter((a) => {
+ return a.event.method == "RequestedDelegate";
+ });
+ expect(ev3.length).to.be.equal(1);
+
+ const stakingCandidates = await polkadotJs.query.pooledStaking.sortedEligibleCandidates();
+ expect(stakingCandidates.toJSON()).to.deep.equal([
+ {
+ candidate: randomAccount.address,
+ stake: numberToHex(10000000000000000, 128),
+ },
+ ]);
+
+ // Jump to block 19
+ await jumpToBlock(context, 2 * sessionPeriod);
+
+ // Now pallet_session validators should not include the new one from staking
+ const collators19 = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain();
+ expect(collators19.toJSON()).to.deep.equal(initialCollators.toJSON());
+
+ await context.createBlock();
+ // We are now in block 20 but this block cannot include any transactions, so go to 21
+ await context.createBlock();
+
+ // Block 21: candidates that joined pallet_pooled_staking in session 0 are now eligible candidates
+ const collators21 = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain();
+ expect(collators21.toJSON().containerChains[2000].length).to.equal(2);
+ expect(collators21.toJSON().containerChains[2001].length).to.equal(2);
+ },
+ });
+ },
+});
diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts b/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts
new file mode 100644
index 000000000..c0cc58258
--- /dev/null
+++ b/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts
@@ -0,0 +1,107 @@
+import "@tanssi/api-augment";
+import { describeSuite, beforeAll, expect } from "@moonwall/cli";
+import { KeyringPair } from "@moonwall/util";
+import { ApiPromise } from "@polkadot/api";
+import { numberToHex } from "@polkadot/util";
+import { jumpToBlock } from "../../../util/block";
+
+describeSuite({
+ id: "DT0305",
+ title: "Staking poolSwap test suite",
+ foundationMethods: "dev",
+ testCases: ({ it, context }) => {
+ let polkadotJs: ApiPromise;
+ let alice: KeyringPair;
+ let bob: KeyringPair;
+ // TODO: don't hardcode the period here
+ const sessionPeriod = 10;
+
+ beforeAll(async () => {
+ alice = context.keyring.alice;
+ bob = context.keyring.bob;
+ polkadotJs = context.polkadotJs();
+
+ // Add alice and box keys to pallet session. In dancebox they are already there in genesis.
+ const newKey1 = await polkadotJs.rpc.author.rotateKeys();
+ const newKey2 = await polkadotJs.rpc.author.rotateKeys();
+
+ await context.createBlock([
+ await polkadotJs.tx.session.setKeys(newKey1, []).signAsync(alice),
+ await polkadotJs.tx.session.setKeys(newKey2, []).signAsync(bob),
+ ]);
+ });
+
+ it({
+ id: "E01",
+ title: "poolSwap works",
+ test: async function () {
+ const initialSession = 0;
+ const tx = polkadotJs.tx.pooledStaking.requestDelegate(
+ alice.address,
+ "AutoCompounding",
+ 10000000000000000n
+ );
+ await context.createBlock([await tx.signAsync(alice)]);
+ const events = await polkadotJs.query.system.events();
+ const ev1 = events.filter((a) => {
+ return a.event.method == "IncreasedStake";
+ });
+ expect(ev1.length).to.be.equal(1);
+ const ev2 = events.filter((a) => {
+ return a.event.method == "UpdatedCandidatePosition";
+ });
+ expect(ev2.length).to.be.equal(1);
+ const ev3 = events.filter((a) => {
+ return a.event.method == "RequestedDelegate";
+ });
+ expect(ev3.length).to.be.equal(1);
+
+ const stakingCandidates = await polkadotJs.query.pooledStaking.sortedEligibleCandidates();
+ expect(stakingCandidates.toJSON()).to.deep.equal([
+ {
+ candidate: alice.address,
+ stake: numberToHex(10000000000000000, 128),
+ },
+ ]);
+
+ await jumpToBlock(context, 2 * sessionPeriod + 2);
+ const tx2 = polkadotJs.tx.pooledStaking.executePendingOperations([
+ {
+ delegator: alice.address,
+ operation: {
+ JoiningAutoCompounding: {
+ candidate: alice.address,
+ at: initialSession,
+ },
+ },
+ },
+ ]);
+
+ // Now the executePendingOperations should succeed
+ await context.createBlock([await tx2.signAsync(bob)]);
+
+ const events3 = await polkadotJs.query.system.events();
+ const ev5 = events3.filter((a) => {
+ return a.event.method == "StakedAutoCompounding";
+ });
+ expect(ev5.length).to.be.equal(1);
+ const ev6 = events3.filter((a) => {
+ return a.event.method == "ExecutedDelegate";
+ });
+ expect(ev6.length).to.be.equal(1);
+
+ // We now try to swap
+ const tx3 = polkadotJs.tx.pooledStaking.swapPool(alice.address, "AutoCompounding", {
+ Stake: 10000000000000000n,
+ });
+ await context.createBlock([await tx3.signAsync(alice)]);
+
+ const events4 = await polkadotJs.query.system.events();
+ const ev7 = events4.filter((a) => {
+ return a.event.method == "SwappedPool";
+ });
+ expect(ev7.length).to.be.equal(1);
+ },
+ });
+ },
+});
diff --git a/test/suites/smoke-test-dancelight/test-para-inclusion.ts b/test/suites/smoke-test-dancelight/test-para-inclusion.ts
index 140695f8f..fd9349168 100644
--- a/test/suites/smoke-test-dancelight/test-para-inclusion.ts
+++ b/test/suites/smoke-test-dancelight/test-para-inclusion.ts
@@ -127,10 +127,12 @@ describeSuite({
const parentBlockNumber = blockNumberMap.get(relayParent);
- // allowedAncestryLen = 1 means that parent + 1 == current
- // with allowedAncestryLen = 2, parent + allowedAncestryLen >= current
+ // allowedAncestryLen = 0 means that we only allow building on top of the parent block
+ // allowedAncestryLen = 1 means that we allow 2 different parent blocks,
+ // so parent + 2 >= current
+ // In general, parent + allowedAncestryLen + 1 >= current
expect(
- parentBlockNumber + allowedAncestryLen,
+ parentBlockNumber + allowedAncestryLen + 1,
`Block #${blockNum}: backed candidate for para id ${paraId} has too old relayParent: ${parentBlockNumber} vs current ${blockNum}`
).to.be.greaterThanOrEqual(blockNum);
diff --git a/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts b/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts
index d747d93fd..708218b10 100644
--- a/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts
+++ b/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts
@@ -27,6 +27,7 @@ describeSuite({
foundationMethods: "zombie",
testCases: function ({ it, context }) {
let relayApi: ApiPromise;
+ let relayCharlieApi: ApiPromise;
let ethereumNodeChildProcess;
let relayerChildProcess;
let alice;
@@ -44,6 +45,8 @@ describeSuite({
const relayNetwork = relayApi.consts.system.version.specName.toString();
expect(relayNetwork, "Relay API incorrect").to.contain("dancelight");
+ relayCharlieApi = context.polkadotJs("Tanssi-charlie");
+
// //BeaconRelay
const keyring = new Keyring({ type: "sr25519" });
alice = keyring.addFromUri("//Alice", { name: "Alice default" });
@@ -51,10 +54,11 @@ describeSuite({
const executionRelay = keyring.addFromUri("//ExecutionRelay", { name: "Execution relay default" });
// Operator keys
- operatorAccount = keyring.addFromUri("//" + "Bob", { name: "COLLATOR" + " ACCOUNT" });
- operatorNimbusKey = keyring.addFromUri("//" + "COLLATOR_NIMBUS", { name: "COLLATOR" + " NIMBUS" });
-
- await relayApi.tx.session.setKeys(u8aToHex(operatorNimbusKey), []).signAndSend(operatorAccount);
+ operatorAccount = keyring.addFromUri("//Charlie", { name: "Charlie default" });
+ // We rotate the keys for charlie so that we have access to them from this test as well as the node
+ operatorNimbusKey = await relayCharlieApi.rpc.author.rotateKeys();
+ console.log(`operatorNimbusKey: ${operatorNimbusKey}`);
+ await relayApi.tx.session.setKeys(operatorNimbusKey, []).signAndSend(operatorAccount);
const fundingTxHash = await relayApi.tx.utility
.batch([
@@ -182,6 +186,9 @@ describeSuite({
const externalValidatorsBefore = await relayApi.query.externalValidators.externalValidators();
+ const sessionValidatorsBefore = await relayApi.query.session.validators();
+ expect(!sessionValidatorsBefore.includes(operatorNimbusKey));
+
const rawValidators = [
u8aToHex(operatorAccount.addressRaw),
"0x7894567890123456789012345678901234567890123456789012345678901234",
@@ -226,6 +233,24 @@ describeSuite({
},
});
+ it({
+ id: "T04",
+ title: "Operator produces blocks",
+ test: async function () {
+ for (let i = 0; i < 20; ++i) {
+ const latestBlockHash = await relayApi.rpc.chain.getBlockHash();
+ const author = (await relayApi.derive.chain.getHeader(latestBlockHash)).author;
+ if (author == operatorAccount.address) {
+ return;
+ }
+
+ await context.waitBlock(1, "Tanssi-relay");
+ }
+
+ expect.fail("operator didn't produce a block");
+ },
+ });
+
afterAll(async () => {
console.log("Cleaning up");
if (ethereumNodeChildProcess) {
diff --git a/tools/iforgor/README.md b/tools/iforgor/README.md
new file mode 100644
index 000000000..8936709fd
--- /dev/null
+++ b/tools/iforgor/README.md
@@ -0,0 +1,13 @@
+# iforgor
+
+`iforgor` is an interactive tool to manage and run scripts. See the full documentation
+[here](https://github.com/nanocryk/iforgor/blob/main/iforgor/README.md).
+
+After installing it, add the tanssi config file with
+`iforgor source add TANSSI_PATH/tools/iforgor/tanssi.toml`. You can then run `iforgor` to search
+and run scripts listed in this file. After changes to `tanssi.toml`, run `iforgor source reload` to
+reload all registered config files.
+
+Some commands may use the additional binary `ichoose`, which provides an interactive selection tool
+for CLI scripts. Scripts should use this command if the list of choices is easy to fetch and the
+choices are hard to remember.
\ No newline at end of file
diff --git a/tools/iforgor/tanssi.toml b/tools/iforgor/tanssi.toml
new file mode 100644
index 000000000..7d0f14caa
--- /dev/null
+++ b/tools/iforgor/tanssi.toml
@@ -0,0 +1,202 @@
+# Rust
+
+## Check
+
+[[entries]]
+name = "[Tanssi] Cargo Check"
+only_in_dir = "**/tanssi"
+script = """
+SKIP_WASM_BUILD=1 cargo check --all-targets --workspace --features runtime-benchmarks --tests --color always 2>&1 | less -CR
+"""
+
+## Lint and format
+
+[[entries]]
+name = "[Tanssi] Cargo Fix"
+script = """
+SKIP_WASM_BUILD=1 cargo fix --all-targets --tests --locked --workspace --allow-dirty
+"""
+
+[[entries]]
+name = "[Tanssi] Cargo Clippy"
+only_in_dir = "**/tanssi"
+script = """
+SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace --features runtime-benchmarks
+"""
+
+[[entries]]
+name = "[Tanssi] Cargo Clippy Fix"
+only_in_dir = "**/tanssi"
+script = """
+SKIP_WASM_BUILD=1 cargo clippy --fix --all-targets --locked --workspace --features runtime-benchmarks --allow-dirty
+"""
+
+[[entries]]
+name = "[Rust] Cargo Fmt and toml-maid"
+script = """
+echo Running 'toml-maid' ...
+toml-maid
+echo
+
+echo Running 'cargo fmt' ...
+cargo fmt
+echo
+
+echo Done!
+"""
+
+## Tests
+
+[[entries]]
+name = "[Tanssi] Cargo Test All"
+only_in_dir = "**/tanssi"
+script = """
+cargo test --release --all --features fast-runtime
+"""
+
+[[entries]]
+name = "[Tanssi] Cargo Test Crate"
+only_in_dir = "**/tanssi"
+script = """
+cargo test --release -p $1 --features runtime-benchmarks
+"""
+args = ["Which crate to test"]
+
+## Build
+
+[[entries]]
+name = "[Tanssi] Build nodes for TS-Tests and TS-API"
+only_in_dir = "**/tanssi"
+script = """
+cargo build --release --all --features fast-runtime
+"""
+
+[[entries]]
+name = "[Tanssi] Build nodes for benchmarks"
+only_in_dir = "**/tanssi"
+script = """
+cargo build --release --all --features runtime-benchmarks
+"""
+
+## Benchmarks
+
+[[entries]]
+name = "[Tanssi] Run dancelight benchmarks"
+only_in_dir = "**/tanssi"
+script = """
+export BINARY="target/release/tanssi-relay"
+export TEMPLATE_PATH="benchmarking/frame-weight-runtime-template.hbs"
+export CHAIN="dancelight-dev"
+export OUTPUT_PATH="tmp/dancelight_weights"
+
+./tools/benchmarking.sh $1 "*"
+"""
+args = ["Which pallet to bench (* for all)"]
+
+[[entries]]
+name = "[Tanssi] Run dancebox benchmarks"
+only_in_dir = "**/tanssi"
+script = """
+export OUTPUT_PATH="tmp/dancebox_weights"
+export TEMPLATE_PATH="benchmarking/frame-weight-runtime-template.hbs"
+
+./tools/benchmarking.sh $1 "*"
+"""
+args = ["Which pallet to bench (* for all)"]
+
+[[entries]]
+name = "[Tanssi] Run flashbox benchmarks"
+only_in_dir = "**/tanssi"
+script = """
+export TEMPLATE_PATH=benchmarking/frame-weight-runtime-template.hbs
+export CHAIN=flashbox_dev
+export OUTPUT_PATH=tmp/flashbox_weights
+
+./tools/benchmarking.sh $1 "*"
+"""
+args = ["Which pallet to bench (* for all)"]
+
+# Typescript
+
+## API
+
+[[entries]]
+name = "[Tanssi] Generate TS-API"
+only_in_dir = "**/tanssi"
+script = """
+cd typescript-api
+pnpm i
+pnpm create-local-interfaces
+"""
+
+## Test
+
+[[entries]]
+name = "[Tanssi] Run Moonwall tests"
+only_in_dir = "**/tanssi"
+script = """
+cd test
+pnpm moonwall test $1 $2
+"""
+args = ["Which test suite to run", "Which specific test to run (* for all)"]
+
+## Lint and fmt
+
+[[entries]]
+name = "[Tanssi] Fix Format and Lint in tests"
+only_in_dir = "**/tanssi"
+script = """
+cd test
+pnpm fmt:fix
+pnpm lint:fix
+"""
+
+# Other
+
+[[entries]]
+name = "[Tanssi] Please make CI happy :)"
+only_in_dir = "**/tanssi"
+script = """
+echo "\nℹ️ Running 'cargo fix'\n"
+SKIP_WASM_BUILD=1 cargo fix --all-targets --tests --locked --workspace --allow-dirty
+
+echo "\nℹ️ Running 'cargo fmt'\n"
+cargo fmt
+
+echo "\nℹ️ Running 'toml-maid'\n"
+toml-maid
+
+echo "\nℹ️ Running 'zepter'\n"
+zepter
+
+cd test
+
+echo "\nℹ️ Running 'pnpm fmt:fix' in 'test'\n"
+pnpm fmt:fix
+
+echo "\nℹ️ Running 'pnpm lint:fix' in 'test'\n"
+pnpm lint:fix
+"""
+
+# Git
+
+[[entries]]
+name = "[Git] Fetch and merge master from origin"
+script = """
+git fetch origin
+git merge origin/master
+"""
+
+[[entries]]
+name = "[Git] Fetch + Pull"
+script = "git fetch origin && git pull"
+
+[[entries]]
+name = "[Git] Push"
+script = "git push"
+
+[[entries]]
+name = "[Git] Delete local branches (select)"
+script = """
+git branch | ichoose --multi --title "Select branches to delete" | while read x ; do git branch -D $x ; done
+"""