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 +"""