diff --git a/docs/antora.yml b/docs/antora.yml index 0a536b51..acaf6f5c 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,6 +1,6 @@ name: substrate-runtimes title: Substrate Runtimes -version: 2.0.2 +version: 3.0.0 nav: - modules/ROOT/nav.adoc asciidoc: diff --git a/evm-template/Cargo.lock b/evm-template/Cargo.lock index cd35cb27..64756c7c 100644 --- a/evm-template/Cargo.lock +++ b/evm-template/Cargo.lock @@ -469,6 +469,15 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "async-backing-primitives" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "sp-api", + "sp-consensus-slots", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -1109,6 +1118,34 @@ dependencies = [ "shlex", ] +[[package]] +name = "ccp-authorities-noting-inherent" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "dc-orchestrator-chain-interface", + "dp-collator-assignment", + "dp-core", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "test-relay-sproof-builder", + "tracing", +] + [[package]] name = "cesu8" version = "1.1.0" @@ -1730,7 +1767,7 @@ dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures", + "futures 0.3.30", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-primitives", @@ -1758,7 +1795,7 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.30", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-primitives", @@ -1800,7 +1837,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "dyn-clone", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "polkadot-primitives", @@ -1842,7 +1879,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.30", "futures-timer", "parity-scale-codec", "parking_lot 0.12.3", @@ -1891,7 +1928,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.30", "futures-timer", "parity-scale-codec", "polkadot-node-primitives", @@ -1924,7 +1961,7 @@ dependencies = [ "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", - "futures", + "futures 0.3.30", "polkadot-primitives", "sc-client-api", "sc-consensus", @@ -2134,6 +2171,16 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.15.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" +dependencies = [ + "cumulus-primitives-core", + "sp-inherents", + "sp-timestamp", +] + [[package]] name = "cumulus-primitives-utility" version = "0.16.0" @@ -2161,7 +2208,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.30", "futures-timer", "polkadot-cli", "polkadot-service", @@ -2184,7 +2231,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "cumulus-primitives-core", - "futures", + "futures 0.3.30", "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", @@ -2206,7 +2253,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", - "futures", + "futures 0.3.30", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-network-protocol", @@ -2240,7 +2287,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "either", - "futures", + "futures 0.3.30", "futures-timer", "jsonrpsee", "parity-scale-codec", @@ -2441,6 +2488,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "dc-orchestrator-chain-interface" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "dp-container-chain-genesis-data", + "dp-core", + "futures 0.3.30", + "jsonrpsee", + "nimbus-primitives", + "parity-scale-codec", + "polkadot-overseer", + "sc-client-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-state-machine", + "thiserror", +] + [[package]] name = "der" version = "0.7.9" @@ -2657,6 +2726,92 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dp-chain-state-snapshot" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "parity-scale-codec", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + +[[package]] +name = "dp-collator-assignment" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex-literal 0.3.4", + "log", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "dp-consensus" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "dp-container-chain-genesis-data" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex", + "hex-literal 0.3.4", + "log", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "serde", + "serde_json", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "dp-core" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex-literal 0.3.4", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "dtoa" version = "1.0.9" @@ -3017,7 +3172,7 @@ dependencies = [ [[package]] name = "evm-runtime-template" -version = "1.0.0" +version = "3.0.0" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -3028,7 +3183,9 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", + "cumulus-primitives-timestamp", "cumulus-primitives-utility", + "dp-consensus", "ethereum", "fp-account", "fp-evm", @@ -3042,19 +3199,22 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", - "openzeppelin-polkadot-wrappers", - "openzeppelin-polkadot-wrappers-proc", + "nimbus-primitives", + "openzeppelin-pallet-abstractions", + "openzeppelin-pallet-abstractions-proc", "orml-traits", "orml-xcm-support", "orml-xtokens", "pallet-asset-manager", "pallet-assets", "pallet-aura", + "pallet-author-inherent", "pallet-authorship", "pallet-balances", "pallet-base-fee", + "pallet-cc-authorities-noting", "pallet-collator-selection", "pallet-conviction-voting", "pallet-erc20-xcm-bridge", @@ -3114,8 +3274,9 @@ dependencies = [ [[package]] name = "evm-template-node" -version = "2.0.0" +version = "3.0.0" dependencies = [ + "ccp-authorities-noting-inherent", "clap", "color-print", "cumulus-client-cli", @@ -3123,10 +3284,12 @@ dependencies = [ "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", + "cumulus-test-relay-sproof-builder", "evm-runtime-template", "fc-api", "fc-consensus", @@ -3140,11 +3303,12 @@ dependencies = [ "fp-rpc", "frame-benchmarking", "frame-benchmarking-cli", - "futures", + "futures 0.3.30", "hex", - "hex-literal", + "hex-literal 0.4.1", "jsonrpsee", "log", + "nimbus-consensus", "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-cli", @@ -3155,6 +3319,7 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-consensus-aura", + "sc-consensus-slots", "sc-executor", "sc-network", "sc-network-sync", @@ -3183,6 +3348,7 @@ dependencies = [ "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", + "tc-consensus", ] [[package]] @@ -3191,7 +3357,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures", + "futures 0.3.30", ] [[package]] @@ -3300,7 +3466,7 @@ dependencies = [ "fp-consensus", "fp-rpc", "fp-storage", - "futures", + "futures 0.3.30", "kvdb-rocksdb", "log", "parity-db", @@ -3327,7 +3493,7 @@ dependencies = [ "fc-storage", "fp-consensus", "fp-rpc", - "futures", + "futures 0.3.30", "futures-timer", "log", "parking_lot 0.12.3", @@ -3356,7 +3522,7 @@ dependencies = [ "fp-evm", "fp-rpc", "fp-storage", - "futures", + "futures 0.3.30", "hex", "jsonrpsee", "libsecp256k1", @@ -3492,7 +3658,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", - "futures", + "futures 0.3.30", "futures-timer", "log", "num-traits", @@ -4015,6 +4181,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futures" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + [[package]] name = "futures" version = "0.3.30" @@ -4158,6 +4330,7 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -4281,7 +4454,7 @@ checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ "cfg-if", "dashmap", - "futures", + "futures 0.3.30", "futures-timer", "no-std-compat", "nonzero_ext", @@ -4445,6 +4618,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4740,7 +4919,7 @@ dependencies = [ "async-io 2.3.4", "core-foundation", "fnv", - "futures", + "futures 0.3.30", "if-addrs", "ipnet", "log", @@ -4759,7 +4938,7 @@ dependencies = [ "async-trait", "attohttpc", "bytes", - "futures", + "futures 0.3.30", "http 0.2.12", "hyper 0.14.30", "log", @@ -5266,7 +5445,7 @@ checksum = "e94495eb319a85b70a68b85e2389a95bb3555c71c49025b78c691a854a7e6464" dependencies = [ "bytes", "either", - "futures", + "futures 0.3.30", "futures-timer", "getrandom", "instant", @@ -5327,7 +5506,7 @@ checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.30", "futures-timer", "instant", "libp2p-identity", @@ -5354,7 +5533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "libp2p-core", "libp2p-identity", "log", @@ -5371,7 +5550,7 @@ checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd" dependencies = [ "asynchronous-codec", "either", - "futures", + "futures 0.3.30", "futures-bounded", "futures-timer", "libp2p-core", @@ -5415,7 +5594,7 @@ dependencies = [ "bytes", "either", "fnv", - "futures", + "futures 0.3.30", "futures-timer", "instant", "libp2p-core", @@ -5440,7 +5619,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a" dependencies = [ "data-encoding", - "futures", + "futures 0.3.30", "if-watch", "libp2p-core", "libp2p-identity", @@ -5479,7 +5658,7 @@ checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921" dependencies = [ "bytes", "curve25519-dalek", - "futures", + "futures 0.3.30", "libp2p-core", "libp2p-identity", "log", @@ -5503,7 +5682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e702d75cd0827dfa15f8fd92d15b9932abe38d10d21f47c50438c71dd1b5dae3" dependencies = [ "either", - "futures", + "futures 0.3.30", "futures-timer", "instant", "libp2p-core", @@ -5521,7 +5700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "130d451d83f21b81eb7b35b360bc7972aeafb15177784adc56528db082e6b927" dependencies = [ "bytes", - "futures", + "futures 0.3.30", "futures-timer", "if-watch", "libp2p-core", @@ -5545,7 +5724,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8e3b4d67870478db72bac87bfc260ee6641d0734e0e3e275798f089c3fecfd4" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "instant", "libp2p-core", "libp2p-identity", @@ -5564,7 +5743,7 @@ checksum = "580189e0074af847df90e75ef54f3f30059aedda37ea5a1659e8b9fca05c0141" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.30", "futures-timer", "instant", "libp2p-core", @@ -5598,7 +5777,7 @@ version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b558dd40d1bcd1aaaed9de898e9ec6a436019ecc2420dd0016e712fbb61c5508" dependencies = [ - "futures", + "futures 0.3.30", "futures-timer", "if-watch", "libc", @@ -5615,7 +5794,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61" dependencies = [ - "futures", + "futures 0.3.30", "futures-rustls", "libp2p-core", "libp2p-identity", @@ -5634,7 +5813,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82775a47b34f10f787ad3e2a22e2c1541e6ebef4fe9f28f3ac553921554c94c1" dependencies = [ - "futures", + "futures 0.3.30", "futures-timer", "igd-next", "libp2p-core", @@ -5650,7 +5829,7 @@ version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c" dependencies = [ - "futures", + "futures 0.3.30", "js-sys", "libp2p-core", "send_wrapper", @@ -5665,7 +5844,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" dependencies = [ "either", - "futures", + "futures 0.3.30", "futures-rustls", "libp2p-core", "libp2p-identity", @@ -5685,7 +5864,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85" dependencies = [ - "futures", + "futures 0.3.30", "libp2p-core", "log", "thiserror", @@ -5862,9 +6041,9 @@ dependencies = [ "bytes", "cid 0.10.1", "ed25519-dalek", - "futures", + "futures 0.3.30", "futures-timer", - "hex-literal", + "hex-literal 0.4.1", "indexmap 2.5.0", "libc", "mockall 0.12.1", @@ -6023,6 +6202,22 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "macro_rules_attribute" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a82271f7bc033d84bbca59a3ce3e4159938cb08a9c3aebbe54d215131518a13" +dependencies = [ + "macro_rules_attribute-proc_macro", + "paste", +] + +[[package]] +name = "macro_rules_attribute-proc_macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dd856d451cc0da70e2ef2ce95a18e39a93b7558bedf10201ad28503f918568" + [[package]] name = "match_cfg" version = "0.1.0" @@ -6137,7 +6332,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ - "futures", + "futures 0.3.30", "rand", "thrift", ] @@ -6199,7 +6394,7 @@ name = "mmr-gadget" version = "39.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "sc-client-api", @@ -6408,7 +6603,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", - "futures", + "futures 0.3.30", "log", "pin-project", "smallvec", @@ -6519,7 +6714,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", - "futures", + "futures 0.3.30", "log", "netlink-packet-core", "netlink-sys", @@ -6534,7 +6729,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", - "futures", + "futures 0.3.30", "libc", "log", "tokio", @@ -6552,6 +6747,64 @@ dependencies = [ "winapi", ] +[[package]] +name = "nimbus-consensus" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "async-backing-primitives", + "async-trait", + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "futures 0.3.30", + "log", + "nimbus-primitives", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "sc-client-api", + "sc-consensus", + "sc-consensus-manual-seal", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-version", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "nimbus-primitives" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "async-trait", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", +] + [[package]] name = "nix" version = "0.24.3" @@ -6879,24 +7132,25 @@ dependencies = [ ] [[package]] -name = "openzeppelin-polkadot-wrappers" +name = "openzeppelin-pallet-abstractions" version = "0.1.0" -source = "git+https://github.com/openzeppelin/polkadot-runtime-wrappers?tag=v0.1-rc1#92a8d332b70202b5699106aefb6a42fe1b896794" +source = "git+https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions?tag=v0.1-rc3#130bff8b34d6d4f10885e0691614f57a59f3ecab" dependencies = [ "cumulus-primitives-core", "frame-support", + "frame-system", "scale-info", "sp-std", "sp-version", ] [[package]] -name = "openzeppelin-polkadot-wrappers-proc" +name = "openzeppelin-pallet-abstractions-proc" version = "0.1.0" -source = "git+https://github.com/openzeppelin/polkadot-runtime-wrappers?tag=v0.1-rc1#92a8d332b70202b5699106aefb6a42fe1b896794" +source = "git+https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions?tag=v0.1-rc3#130bff8b34d6d4f10885e0691614f57a59f3ecab" dependencies = [ "darling", - "openzeppelin-polkadot-wrappers", + "openzeppelin-pallet-abstractions", "proc-macro2", "quote", "syn 2.0.87", @@ -6916,7 +7170,7 @@ checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" dependencies = [ "async-trait", "dyn-clonable", - "futures", + "futures 0.3.30", "futures-timer", "orchestra-proc-macro", "pin-project", @@ -7126,6 +7380,25 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-author-inherent" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-authority-discovery" version = "37.0.0" @@ -7305,6 +7578,35 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-cc-authorities-noting" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "ccp-authorities-noting-inherent", + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "dp-chain-state-snapshot", + "dp-collator-assignment", + "dp-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + [[package]] name = "pallet-child-bounties" version = "36.0.0" @@ -7514,7 +7816,7 @@ dependencies = [ "frame-support", "frame-system", "hash-db", - "hex-literal", + "hex-literal 0.4.1", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -7920,6 +8222,44 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-registrar" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "cumulus-primitives-core", + "dp-chain-state-snapshot", + "dp-container-chain-genesis-data", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex-literal 0.3.4", + "log", + "parity-scale-codec", + "polkadot-runtime-common", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", + "sp-trie", + "tp-traits", +] + +[[package]] +name = "pallet-registrar-runtime-api" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "dp-container-chain-genesis-data", + "frame-support", + "pallet-registrar", + "parity-scale-codec", + "scale-info", + "sp-api", + "tp-traits", +] + [[package]] name = "pallet-root-testing" version = "13.0.0" @@ -8270,6 +8610,50 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "pallet-xcm-core-buyer" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "dp-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "pallet-xcm", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-slots", + "sp-core", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-std", + "staging-xcm", + "tp-traits", + "tp-xcm-core-buyer", +] + +[[package]] +name = "pallet-xcm-core-buyer-runtime-api" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "frame-support", + "pallet-xcm-core-buyer", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-consensus-slots", + "sp-runtime", + "sp-std", + "thiserror", + "tp-xcm-core-buyer", +] + [[package]] name = "pallet-xcm-transactor" version = "0.2.0" @@ -8639,7 +9023,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "futures", + "futures 0.3.30", "futures-timer", "itertools 0.11.0", "polkadot-node-jaeger", @@ -8659,7 +9043,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "always-assert", - "futures", + "futures 0.3.30", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8676,7 +9060,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "derive_more", "fatality", - "futures", + "futures 0.3.30", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8700,7 +9084,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "fatality", - "futures", + "futures 0.3.30", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8734,7 +9118,7 @@ dependencies = [ "cfg-if", "clap", "frame-benchmarking-cli", - "futures", + "futures 0.3.30", "log", "polkadot-node-metrics", "polkadot-node-primitives", @@ -8761,7 +9145,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.30", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8794,7 +9178,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "derive_more", "fatality", - "futures", + "futures 0.3.30", "futures-timer", "indexmap 2.5.0", "parity-scale-codec", @@ -8831,7 +9215,7 @@ name = "polkadot-gossip-support" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8857,7 +9241,7 @@ dependencies = [ "async-trait", "bytes", "fatality", - "futures", + "futures 0.3.30", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-metrics", @@ -8876,7 +9260,7 @@ name = "polkadot-node-collation-generation" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -8896,7 +9280,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "derive_more", - "futures", + "futures 0.3.30", "futures-timer", "itertools 0.11.0", "kvdb", @@ -8928,7 +9312,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "futures", + "futures 0.3.30", "futures-timer", "kvdb", "parity-scale-codec", @@ -8951,7 +9335,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.30", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -8969,7 +9353,7 @@ name = "polkadot-node-core-bitfield-signing" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -8985,7 +9369,7 @@ version = "17.1.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", @@ -9007,7 +9391,7 @@ name = "polkadot-node-core-chain-api" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -9021,7 +9405,7 @@ name = "polkadot-node-core-chain-selection" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "futures-timer", "kvdb", "parity-scale-codec", @@ -9039,7 +9423,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fatality", - "futures", + "futures 0.3.30", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -9058,7 +9442,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "polkadot-node-subsystem", "polkadot-overseer", @@ -9075,7 +9459,7 @@ version = "16.1.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fatality", - "futures", + "futures 0.3.30", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -9090,7 +9474,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.30", "futures-timer", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -9110,7 +9494,7 @@ dependencies = [ "array-bytes", "blake3", "cfg-if", - "futures", + "futures 0.3.30", "futures-timer", "parity-scale-codec", "pin-project", @@ -9135,7 +9519,7 @@ name = "polkadot-node-core-pvf-checker" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -9152,7 +9536,7 @@ version = "15.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "cpu-time", - "futures", + "futures 0.3.30", "landlock", "libc", "nix 0.28.0", @@ -9177,7 +9561,7 @@ name = "polkadot-node-core-runtime-api" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -9212,7 +9596,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bs58 0.5.1", - "futures", + "futures 0.3.30", "futures-timer", "log", "parity-scale-codec", @@ -9235,7 +9619,7 @@ dependencies = [ "bitvec", "derive_more", "fatality", - "futures", + "futures 0.3.30", "hex", "parity-scale-codec", "polkadot-node-jaeger", @@ -9258,7 +9642,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "bounded-vec", - "futures", + "futures 0.3.30", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", @@ -9293,7 +9677,7 @@ dependencies = [ "bitvec", "derive_more", "fatality", - "futures", + "futures 0.3.30", "orchestra", "polkadot-node-jaeger", "polkadot-node-network-protocol", @@ -9322,7 +9706,7 @@ dependencies = [ "async-trait", "derive_more", "fatality", - "futures", + "futures 0.3.30", "futures-channel", "itertools 0.11.0", "kvdb", @@ -9356,7 +9740,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "orchestra", "parking_lot 0.12.3", @@ -9394,7 +9778,7 @@ version = "15.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "hex-literal", + "hex-literal 0.4.1", "log", "parity-scale-codec", "polkadot-core-primitives", @@ -9571,8 +9955,8 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "futures", - "hex-literal", + "futures 0.3.30", + "hex-literal 0.4.1", "is_executable", "kvdb", "kvdb-rocksdb", @@ -9687,7 +10071,7 @@ dependencies = [ "arrayvec 0.7.6", "bitvec", "fatality", - "futures", + "futures 0.3.30", "futures-timer", "indexmap 2.5.0", "parity-scale-codec", @@ -9954,7 +10338,7 @@ dependencies = [ "coarsetime", "crossbeam-queue", "derive_more", - "futures", + "futures 0.3.30", "futures-timer", "nanorand", "thiserror", @@ -10675,7 +11059,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -10799,7 +11183,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "futures", + "futures 0.3.30", "log", "netlink-packet-route", "netlink-proto", @@ -11054,7 +11438,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ - "futures", + "futures 0.3.30", "pin-project", "static_assertions", ] @@ -11100,7 +11484,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "ip_network", "libp2p", @@ -11129,7 +11513,7 @@ name = "sc-basic-authorship" version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "futures-timer", "log", "parity-scale-codec", @@ -11208,7 +11592,7 @@ dependencies = [ "chrono", "clap", "fdlimit", - "futures", + "futures 0.3.30", "itertools 0.11.0", "libp2p-identity", "log", @@ -11246,7 +11630,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fnv", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -11299,7 +11683,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "log", "mockall 0.11.4", "parking_lot 0.12.3", @@ -11323,7 +11707,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "sc-block-builder", @@ -11353,7 +11737,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "fork-tree", - "futures", + "futures 0.3.30", "log", "num-bigint", "num-rational", @@ -11387,7 +11771,7 @@ name = "sc-consensus-babe-rpc" version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", @@ -11413,7 +11797,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "fnv", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -11445,7 +11829,7 @@ name = "sc-consensus-beefy-rpc" version = "23.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "jsonrpsee", "log", "parity-scale-codec", @@ -11484,7 +11868,7 @@ dependencies = [ "dyn-clone", "finality-grandpa", "fork-tree", - "futures", + "futures 0.3.30", "futures-timer", "log", "parity-scale-codec", @@ -11523,7 +11907,7 @@ version = "0.29.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "finality-grandpa", - "futures", + "futures 0.3.30", "jsonrpsee", "log", "parity-scale-codec", @@ -11537,13 +11921,48 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-consensus-manual-seal" +version = "0.45.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" +dependencies = [ + "assert_matches", + "async-trait", + "futures 0.3.30", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", +] + [[package]] name = "sc-consensus-slots" version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "log", "parity-scale-codec", @@ -11631,7 +12050,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "ansi_term", - "futures", + "futures 0.3.30", "futures-timer", "log", "sc-client-api", @@ -11665,7 +12084,7 @@ dependencies = [ "arrayvec 0.7.6", "blake2 0.10.6", "bytes", - "futures", + "futures 0.3.30", "futures-timer", "log", "mixnet", @@ -11698,7 +12117,7 @@ dependencies = [ "cid 0.9.0", "either", "fnv", - "futures", + "futures 0.3.30", "futures-timer", "ip_network", "libp2p", @@ -11743,7 +12162,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "bitflags 1.3.2", - "futures", + "futures 0.3.30", "libp2p-identity", "parity-scale-codec", "prost-build 0.12.6", @@ -11760,7 +12179,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "ahash", - "futures", + "futures 0.3.30", "futures-timer", "log", "sc-network", @@ -11780,7 +12199,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "array-bytes", "async-channel 1.9.0", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "prost 0.12.6", @@ -11803,7 +12222,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "fork-tree", - "futures", + "futures 0.3.30", "futures-timer", "libp2p", "log", @@ -11837,7 +12256,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "array-bytes", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "sc-network", @@ -11875,7 +12294,7 @@ dependencies = [ "array-bytes", "bytes", "fnv", - "futures", + "futures 0.3.30", "futures-timer", "hyper 0.14.30", "hyper-rustls", @@ -11915,7 +12334,7 @@ name = "sc-rpc" version = "39.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "jsonrpsee", "log", "parity-scale-codec", @@ -11968,7 +12387,7 @@ version = "16.0.2" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "forwarded-header-value", - "futures", + "futures 0.3.30", "governor", "http 1.1.0", "http-body-util", @@ -11990,7 +12409,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "array-bytes", - "futures", + "futures 0.3.30", "futures-util", "hex", "jsonrpsee", @@ -12024,7 +12443,7 @@ dependencies = [ "async-trait", "directories", "exit-future", - "futures", + "futures 0.3.30", "futures-timer", "jsonrpsee", "log", @@ -12129,7 +12548,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "derive_more", - "futures", + "futures 0.3.30", "libc", "log", "rand", @@ -12150,7 +12569,7 @@ version = "24.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "chrono", - "futures", + "futures 0.3.30", "libp2p", "log", "parking_lot 0.12.3", @@ -12211,7 +12630,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "futures-timer", "linked-hash-map", "log", @@ -12238,7 +12657,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "log", "parity-scale-codec", "serde", @@ -12254,7 +12673,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-channel 1.9.0", - "futures", + "futures 0.3.30", "futures-timer", "lazy_static", "log", @@ -12921,7 +13340,7 @@ checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", "bytes", - "futures", + "futures 0.3.30", "httparse", "log", "rand", @@ -12936,7 +13355,7 @@ checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ "base64 0.22.1", "bytes", - "futures", + "futures 0.3.30", "http 1.1.0", "httparse", "log", @@ -13033,7 +13452,7 @@ name = "sp-blockchain" version = "37.0.1" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.30", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", @@ -13053,7 +13472,7 @@ version = "0.40.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.30", "log", "sp-core", "sp-inherents", @@ -13156,7 +13575,7 @@ dependencies = [ "bs58 0.5.1", "dyn-clonable", "ed25519-zebra", - "futures", + "futures 0.3.30", "hash-db", "hash256-std-hasher", "impl-serde", @@ -14045,7 +14464,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "docify", "frame-system-rpc-runtime-api", - "futures", + "futures 0.3.30", "jsonrpsee", "log", "parity-scale-codec", @@ -14213,6 +14632,65 @@ version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +[[package]] +name = "tc-consensus" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "async-backing-primitives", + "async-trait", + "cumulus-client-collator", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "dc-orchestrator-chain-interface", + "dp-consensus", + "fc-rpc", + "futures 0.3.30", + "log", + "nimbus-consensus", + "nimbus-primitives", + "pallet-registrar-runtime-api", + "pallet-xcm-core-buyer-runtime-api", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-manual-seal", + "sc-consensus-slots", + "sc-telemetry", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-timestamp", + "sp-transaction-pool", + "sp-version", + "substrate-prometheus-endpoint", + "tokio", + "tokio-util", + "tp-traits", + "tp-xcm-core-buyer", + "tracing", +] + [[package]] name = "tempfile" version = "3.12.0" @@ -14278,6 +14756,21 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +[[package]] +name = "test-relay-sproof-builder" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "dp-collator-assignment", + "dp-core", + "frame-support", + "parity-scale-codec", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + [[package]] name = "thiserror" version = "1.0.63" @@ -14519,6 +15012,8 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", + "futures-util", + "hashbrown 0.14.5", "pin-project-lite", "tokio", ] @@ -14610,6 +15105,39 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" +[[package]] +name = "tp-traits" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "cumulus-primitives-core", + "dp-chain-state-snapshot", + "dp-container-chain-genesis-data", + "frame-support", + "impl-trait-for-tuples", + "macro_rules_attribute", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "tp-xcm-core-buyer" +version = "0.1.0" +source = "git+https://github.com/KitHat/tanssi?branch=polkadot-stable2407-1#69e0791c4d46483acccb9e1a25939bd204539101" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-keystore", + "sp-runtime", + "sp-std", + "tp-traits", +] + [[package]] name = "tracing" version = "0.1.40" @@ -15195,7 +15723,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures", + "futures 0.3.30", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -15500,7 +16028,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -16093,7 +16621,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" dependencies = [ - "futures", + "futures 0.3.30", "log", "nohash-hasher", "parking_lot 0.12.3", diff --git a/evm-template/Cargo.toml b/evm-template/Cargo.toml index c1da811f..e8cb9c70 100644 --- a/evm-template/Cargo.toml +++ b/evm-template/Cargo.toml @@ -28,8 +28,8 @@ serde_json = "1.0.121" smallvec = "1.11.0" # TODO: update to release -openzeppelin-polkadot-wrappers = { git = "https://github.com/openzeppelin/polkadot-runtime-wrappers", default-features = false, tag = "v0.1-rc1" } -openzeppelin-polkadot-wrappers-proc = { git = "https://github.com/openzeppelin/polkadot-runtime-wrappers", default-features = false, tag = "v0.1-rc1" } +openzeppelin-pallet-abstractions = { git = "https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions", default-features = false, tag = "v0.1-rc3" } +openzeppelin-pallet-abstractions-proc = { git = "https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions", default-features = false, tag = "v0.1-rc3" } # Substrate frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -67,6 +67,7 @@ sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", default-features sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } +sc-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } sc-network = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -123,6 +124,7 @@ cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -133,6 +135,7 @@ cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk", cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -184,7 +187,15 @@ xcm-primitives = { git = "https://github.com/OpenZeppelin/moonbeam.git", branch substrate-runtimes-fuzzers = { git = "https://github.com/srlabs/substrate-runtime-fuzzer.git", default-features = false, tag = "polkadot-v1.12.0" } ziggy = { version = "0.8", default-features = false } +# Tanssi +ccp-authorities-noting-inherent = { git = "https://github.com/OpenZeppelin/dancekit", default-features = false, tag = "polkadot-stable2407-1" } +dp-consensus = { git = "https://github.com/OpenZeppelin/dancekit", default-features = false, tag = "polkadot-stable2407-1" } ethereum = { version = "0.15.0" } +nimbus-consensus = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +nimbus-primitives = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +pallet-author-inherent = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +pallet-cc-authorities-noting = { git = "https://github.com/OpenZeppelin/dancekit", default-features = false, tag = "polkadot-stable2407-1" } +tc-consensus = { git = "https://github.com/KitHat/tanssi", branch = "polkadot-stable2407-1", default-features = false } [workspace.lints.clippy] large_enum_variant = "allow" diff --git a/evm-template/node/Cargo.toml b/evm-template/node/Cargo.toml index 474a7ca4..f9904871 100644 --- a/evm-template/node/Cargo.toml +++ b/evm-template/node/Cargo.toml @@ -7,7 +7,7 @@ edition = { workspace = true } license = { workspace = true } publish = false repository = { workspace = true } -version = "2.0.0" +version = "3.0.0" [dependencies] clap = { workspace = true } @@ -34,6 +34,7 @@ sc-cli = { workspace = true } sc-client-api = { workspace = true } sc-consensus = { workspace = true } sc-consensus-aura = { workspace = true } +sc-consensus-slots = { workspace = true } sc-executor = { workspace = true } sc-network = { workspace = true } sc-network-sync = { workspace = true } @@ -70,10 +71,12 @@ cumulus-client-collator = { workspace = true } cumulus-client-consensus-aura = { workspace = true } cumulus-client-consensus-common = { workspace = true } cumulus-client-consensus-proposer = { workspace = true } +cumulus-client-parachain-inherent = { workspace = true } cumulus-client-service = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-parachain-inherent = { workspace = true } cumulus-relay-chain-interface = { workspace = true } +cumulus-test-relay-sproof-builder = { workspace = true } # Frontier fc-api = { workspace = true } @@ -87,21 +90,19 @@ fp-dynamic-fee = { workspace = true, features = [ "std" ] } fp-evm = { workspace = true } fp-rpc = { workspace = true } +# Tanssi +ccp-authorities-noting-inherent = { workspace = true } +nimbus-consensus = { workspace = true } +tc-consensus = { workspace = true } + [build-dependencies] substrate-build-script-utils = { workspace = true } [features] default = [] async-backing = [] -runtime-benchmarks = [ - "evm-runtime-template/runtime-benchmarks", - "frame-benchmarking-cli/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "polkadot-cli/runtime-benchmarks", - "polkadot-primitives/runtime-benchmarks", - "sc-service/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] +runtime-benchmarks = [ "evm-runtime-template/runtime-benchmarks", "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", "polkadot-primitives/runtime-benchmarks", "sc-service/runtime-benchmarks", "sp-runtime/runtime-benchmarks", "tc-consensus/runtime-benchmarks" ] +tanssi = [] try-runtime = [ "evm-runtime-template/try-runtime", "polkadot-cli/try-runtime", diff --git a/evm-template/node/src/chain_spec.rs b/evm-template/node/src/chain_spec.rs index af8a9623..fe457224 100644 --- a/evm-template/node/src/chain_spec.rs +++ b/evm-template/node/src/chain_spec.rs @@ -1,16 +1,19 @@ use std::collections::BTreeMap; use cumulus_primitives_core::ParaId; -use evm_runtime_template::{ - AccountId, AuraId, OpenZeppelinPrecompiles as Precompiles, Runtime, Signature, -}; +use evm_runtime_template::{AccountId, OpenZeppelinPrecompiles as Precompiles, Runtime}; +#[cfg(not(feature = "tanssi"))] +use evm_runtime_template::{AuraId, Signature}; use fp_evm::GenesisAccount; use hex_literal::hex; use log::error; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; -use sp_core::{ecdsa, Pair, Public, H160}; +use sp_core::H160; +#[cfg(not(feature = "tanssi"))] +use sp_core::{ecdsa, Pair, Public}; +#[cfg(not(feature = "tanssi"))] use sp_runtime::traits::{IdentifyAccount, Verify}; use crate::contracts::{parse_contracts, ContractsPath}; @@ -22,6 +25,7 @@ pub type ChainSpec = sc_service::GenericChainSpec; const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; /// Helper function to generate a crypto pair from seed +#[cfg(not(feature = "tanssi"))] pub fn get_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") @@ -45,17 +49,20 @@ impl Extensions { } } +#[cfg(not(feature = "tanssi"))] type AccountPublic = ::Signer; /// Generate collator keys from seed. /// /// This function's return type must always match the session keys of the chain /// in tuple format. +#[cfg(not(feature = "tanssi"))] pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { get_from_seed::(seed) } /// Helper function to generate an account ID from seed +#[cfg(not(feature = "tanssi"))] pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic: From<::Public>, @@ -67,6 +74,7 @@ where /// /// The input must be a tuple of individual keys (a single arg for now since we /// have just one key). +#[cfg(not(feature = "tanssi"))] pub fn template_session_keys(keys: AuraId) -> evm_runtime_template::SessionKeys { evm_runtime_template::SessionKeys { aura: keys } } @@ -94,6 +102,7 @@ pub fn development_config(contracts_path: ContractsPath) -> ChainSpec { .with_chain_type(ChainType::Development) .with_genesis_config_patch(testnet_genesis( // initial collators. + #[cfg(not(feature = "tanssi"))] vec![ ( get_account_id_from_seed::("Alice"), @@ -140,6 +149,7 @@ pub fn local_testnet_config(contracts_path: ContractsPath) -> ChainSpec { .with_chain_type(ChainType::Local) .with_genesis_config_patch(testnet_genesis( // initial collators. + #[cfg(not(feature = "tanssi"))] vec![ ( get_account_id_from_seed::("Alice"), @@ -165,6 +175,7 @@ pub fn local_testnet_config(contracts_path: ContractsPath) -> ChainSpec { .build() } +#[cfg(not(feature = "tanssi"))] fn testnet_genesis( invulnerables: Vec<(AccountId, AuraId)>, #[cfg(not(feature = "runtime-benchmarks"))] endowed_accounts: Vec, @@ -245,3 +256,67 @@ fn testnet_genesis( "sudo": { "key": Some(root) } }) } + +#[cfg(feature = "tanssi")] +fn testnet_genesis( + #[cfg(not(feature = "runtime-benchmarks"))] endowed_accounts: Vec, + #[cfg(feature = "runtime-benchmarks")] mut endowed_accounts: Vec, + root: AccountId, + id: ParaId, + contracts_path: ContractsPath, +) -> serde_json::Value { + let contracts = parse_contracts(contracts_path) + .map_err(|e| error!("Error while parsing contracts: {e:?}")) + .unwrap_or_default(); + let precompiles = Precompiles::::used_addresses() + .map(|addr| { + ( + addr, + GenesisAccount { + nonce: Default::default(), + balance: Default::default(), + storage: Default::default(), + // bytecode to revert without returning data + // (PUSH1 0x00 PUSH1 0x00 REVERT) + code: vec![0x60, 0x00, 0x60, 0x00, 0xFD], + }, + ) + }) + .into_iter(); + let accounts: BTreeMap = contracts + .into_iter() + .map(|(address, contract)| { + ( + address, + GenesisAccount { + code: contract.bytecode(), + nonce: Default::default(), + balance: Default::default(), + storage: Default::default(), + }, + ) + }) + .chain(precompiles) + .collect(); + #[cfg(feature = "runtime-benchmarks")] + endowed_accounts.push(AccountId::from(hex!("1000000000000000000000000000000000000001"))); + serde_json::json!({ + "balances": { + "balances": endowed_accounts.iter().cloned().map(|k| (k, 1u64 << 60)).collect::>(), + }, + "parachainInfo": { + "parachainId": id, + }, + "treasury": {}, + "evmChainId": { + "chainId": 9999 + }, + "evm": { + "accounts": accounts + }, + "polkadotXcm": { + "safeXcmVersion": Some(SAFE_XCM_VERSION), + }, + "sudo": { "key": Some(root) } + }) +} diff --git a/evm-template/node/src/main.rs b/evm-template/node/src/main.rs index 7f09a171..6e267794 100644 --- a/evm-template/node/src/main.rs +++ b/evm-template/node/src/main.rs @@ -9,6 +9,8 @@ mod cli; mod command; mod contracts; mod eth; + +#[cfg_attr(feature = "tanssi", path = "tanssi_rpc/mod.rs")] mod rpc; fn main() -> sc_cli::Result<()> { diff --git a/evm-template/node/src/service.rs b/evm-template/node/src/service.rs index fe02b4b6..1e70c21e 100644 --- a/evm-template/node/src/service.rs +++ b/evm-template/node/src/service.rs @@ -6,23 +6,27 @@ use std::{path::Path, sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Cumulus Imports +#[cfg(not(feature = "tanssi"))] use cumulus_client_collator::service::CollatorService; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; +#[cfg(not(feature = "tanssi"))] use cumulus_client_consensus_proposer::Proposer; use cumulus_client_service::{ build_network, build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, }; +#[cfg(not(feature = "tanssi"))] +use cumulus_primitives_core::relay_chain::CollatorPair; #[cfg(feature = "async-backing")] use cumulus_primitives_core::relay_chain::ValidationCode; -use cumulus_primitives_core::{relay_chain::CollatorPair, ParaId}; -use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; +use cumulus_primitives_core::ParaId; +#[cfg(not(feature = "tanssi"))] +use cumulus_relay_chain_interface::OverseerHandle; +use cumulus_relay_chain_interface::RelayChainInterface; +#[cfg(not(feature = "tanssi"))] +use evm_runtime_template::opaque::Hash; // Local Runtime Types -use evm_runtime_template::{ - configs::TransactionConverter, - opaque::{Block, Hash}, - RuntimeApi, -}; +use evm_runtime_template::{configs::TransactionConverter, opaque::Block, RuntimeApi}; // Substrate Imports use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_client_api::Backend; @@ -30,10 +34,16 @@ use sc_consensus::ImportQueue; use sc_executor::WasmExecutor; use sc_network::{config::FullNetworkConfiguration, NetworkBlock}; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; -use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; +#[cfg(not(feature = "tanssi"))] +use sc_telemetry::TelemetryHandle; +use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; -use sp_core::{H256, U256}; +use sp_core::H256; +#[cfg(not(feature = "tanssi"))] +use sp_core::U256; +#[cfg(not(feature = "tanssi"))] use sp_keystore::KeystorePtr; +#[cfg(not(feature = "tanssi"))] use substrate_prometheus_endpoint::Registry; use crate::eth::{ @@ -121,8 +131,13 @@ pub fn new_partial( client.clone(), ); - let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + #[cfg(feature = "tanssi")] + let (block_import, import_queue) = + import_queue(config, client.clone(), backend.clone(), &task_manager); + #[cfg(not(feature = "tanssi"))] + let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + #[cfg(not(feature = "tanssi"))] let import_queue = build_import_queue( client.clone(), block_import.clone(), @@ -180,6 +195,35 @@ pub fn new_partial( }) } +#[cfg(feature = "tanssi")] +pub fn import_queue( + parachain_config: &Configuration, + client: Arc, + backend: Arc, + task_manager: &TaskManager, +) -> (ParachainBlockImport, sc_consensus::BasicQueue) { + // The nimbus import queue ONLY checks the signature correctness + // Any other checks corresponding to the author-correctness should be done + // in the runtime + let block_import = ParachainBlockImport::new(client.clone(), backend); + + let import_queue = nimbus_consensus::import_queue( + client, + block_import.clone(), + move |_, _| async move { + let time = sp_timestamp::InherentDataProvider::from_system_time(); + + Ok((time,)) + }, + &task_manager.spawn_essential_handle(), + parachain_config.prometheus_registry(), + false, + ) + .expect("function never fails"); + + (block_import, import_queue) +} + /// Start a node with the given parachain `Configuration` and relay chain /// `Configuration`. /// @@ -201,8 +245,11 @@ async fn start_node_impl( let FrontierPartialComponents { filter_pool, fee_history_cache, fee_history_cache_limit } = new_frontier_partial(eth_config)?; + #[cfg(not(feature = "tanssi"))] let (block_import, mut telemetry, telemetry_worker_handle, frontier_backend, overrides) = params.other; + #[cfg(feature = "tanssi")] + let (_, mut telemetry, telemetry_worker_handle, frontier_backend, overrides) = params.other; let frontier_backend = Arc::new(frontier_backend); let net_config: FullNetworkConfiguration> = @@ -212,7 +259,7 @@ async fn start_node_impl( let backend = params.backend.clone(); let mut task_manager = params.task_manager; - let (relay_chain_interface, collator_key) = build_relay_chain_interface( + let relay_chain_interface = build_relay_chain_interface( polkadot_config, ¶chain_config, telemetry_worker_handle, @@ -223,10 +270,16 @@ async fn start_node_impl( .await .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; + #[cfg(not(feature = "tanssi"))] + let (relay_chain_interface, collator_key) = relay_chain_interface; + #[cfg(feature = "tanssi")] + let (relay_chain_interface, _) = relay_chain_interface; + let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); + #[cfg(not(feature = "tanssi"))] let slot_duration = sc_consensus_aura::slot_duration(&*client)?; let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = @@ -274,8 +327,10 @@ async fn start_node_impl( let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); + #[cfg(not(feature = "tanssi"))] let target_gas_price = eth_config.target_gas_price; let enable_dev_signer = eth_config.enable_dev_signer; + #[cfg(not(feature = "tanssi"))] let pending_create_inherent_data_providers = move |_, ()| async move { let current = sp_timestamp::InherentDataProvider::from_system_time(); let next_slot = current.timestamp().as_millis() + slot_duration.as_millis(); @@ -326,6 +381,7 @@ async fn start_node_impl( fee_history_cache_limit, execute_gas_limit_multiplier, forced_parent_hashes: None, + #[cfg(not(feature = "tanssi"))] pending_create_inherent_data_providers, }; let deps = crate::rpc::FullDeps { @@ -428,6 +484,7 @@ async fn start_node_impl( ) .await; + #[cfg(not(feature = "tanssi"))] if validator { start_consensus( client.clone(), @@ -453,6 +510,7 @@ async fn start_node_impl( Ok((task_manager, client)) } +#[cfg(not(feature = "tanssi"))] /// Build the import queue for the parachain runtime. fn build_import_queue( client: Arc, @@ -480,6 +538,7 @@ fn build_import_queue( )) } +#[cfg(not(feature = "tanssi"))] fn start_consensus( client: Arc, #[cfg(feature = "async-backing")] backend: Arc, diff --git a/evm-template/node/src/tanssi_rpc/eth.rs b/evm-template/node/src/tanssi_rpc/eth.rs new file mode 100644 index 00000000..34b1fb63 --- /dev/null +++ b/evm-template/node/src/tanssi_rpc/eth.rs @@ -0,0 +1,240 @@ +use std::{collections::BTreeMap, sync::Arc}; + +use cumulus_client_parachain_inherent::ParachainInherentData; +use cumulus_primitives_core::PersistedValidationData; +use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; +// Frontier +pub use fc_rpc::{EthBlockDataCacheTask, EthConfig}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +pub use fc_storage::StorageOverride; +use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; +use jsonrpsee::RpcModule; +// Substrate +use sc_client_api::{ + backend::{Backend, StorageProvider}, + client::BlockchainEvents, + AuxStore, UsageProvider, +}; +use sc_network::service::traits::NetworkService; +use sc_network_sync::SyncingService; +use sc_rpc::SubscriptionTaskExecutor; +use sc_transaction_pool::{ChainApi, Pool}; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder as BlockBuilderApi; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_core::H256; +use sp_runtime::traits::Block as BlockT; + +/// Extra dependencies for Ethereum compatibility. +pub struct EthDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// Graph pool instance. + pub graph: Arc>, + /// Ethereum transaction converter. + pub converter: Option, + /// The Node authority flag + pub is_authority: bool, + /// Whether to enable dev signer + pub enable_dev_signer: bool, + /// Network service + pub network: Arc, + /// Chain syncing service + pub sync: Arc>, + /// Frontier Backend. + pub frontier_backend: Arc>, + /// Ethereum data access overrides. + pub overrides: Arc>, + /// Cache for Ethereum block data. + pub block_data_cache: Arc>, + /// EthFilterApi pool. + pub filter_pool: Option, + /// Maximum number of logs in a query. + pub max_past_logs: u32, + /// Fee history cache. + pub fee_history_cache: FeeHistoryCache, + /// Maximum fee history cache size. + pub fee_history_cache_limit: FeeHistoryCacheLimit, + /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when + /// using eth_call/eth_estimateGas. + pub execute_gas_limit_multiplier: u64, + /// Mandated parent hashes for a given block hash. + pub forced_parent_hashes: Option>, +} + +#[cfg(feature = "tanssi")] +/// Instantiate Ethereum-compatible RPC extensions. +pub fn create_eth( + mut io: RpcModule<()>, + deps: EthDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result, Box> +where + B: BlockT, + C: CallApiAt + ProvideRuntimeApi, + C::Api: BlockBuilderApi + ConvertTransactionRuntimeApi + EthereumRuntimeRPCApi, + C: HeaderBackend + HeaderMetadata, + C: BlockchainEvents + AuxStore + UsageProvider + StorageProvider + 'static, + BE: Backend + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, + EC: EthConfig, +{ + use fc_rpc::{ + Debug, DebugApiServer, Eth, EthApiServer, EthDevSigner, EthFilter, EthFilterApiServer, + EthPubSub, EthPubSubApiServer, EthSigner, Net, NetApiServer, Web3, Web3ApiServer, + }; + #[cfg(feature = "txpool")] + use fc_rpc::{TxPool, TxPoolApiServer}; + + let EthDeps { + client, + pool, + graph, + converter, + is_authority, + enable_dev_signer, + network, + sync, + frontier_backend, + overrides, + block_data_cache, + filter_pool, + max_past_logs, + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + } = deps; + + let authorities = vec![tc_consensus::get_aura_id_from_seed("alice")]; + let authorities_for_cdp = authorities.clone(); + + let pending_create_inherent_data_providers = move |_, _| { + let authorities_for_cidp = authorities.clone(); + + async move { + let mocked_authorities_noting = + ccp_authorities_noting_inherent::MockAuthoritiesNotingInherentDataProvider { + current_para_block: 1000, + relay_offset: 1000, + relay_blocks_per_para_block: 2, + orchestrator_para_id: 1000u32.into(), + container_para_id: 2000u32.into(), + authorities: authorities_for_cidp, + }; + + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + // Create a dummy parachain inherent data provider which is required to pass + // the checks by the para chain system. We use dummy values because in the 'pending context' + // neither do we have access to the real values nor do we need them. + let (relay_parent_storage_root, relay_chain_state) = RelayStateSproofBuilder { + additional_key_values: mocked_authorities_noting.get_key_values(), + ..Default::default() + } + .into_state_root_and_proof(); + let vfp = PersistedValidationData { + // This is a hack to make `cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases` + // happy. Relay parent number can't be bigger than u32::MAX. + relay_parent_number: u32::MAX, + relay_parent_storage_root, + ..Default::default() + }; + let parachain_inherent_data = ParachainInherentData { + validation_data: vfp, + relay_chain_state, + downward_messages: Default::default(), + horizontal_messages: Default::default(), + }; + Ok((timestamp, parachain_inherent_data, mocked_authorities_noting)) + } + }; + + let mut signers = Vec::new(); + if enable_dev_signer { + signers.push(Box::new(EthDevSigner::new()) as Box); + } + + io.merge( + Eth::::new( + client.clone(), + pool.clone(), + graph.clone(), + converter, + sync.clone(), + signers, + overrides.clone(), + frontier_backend.clone(), + is_authority, + block_data_cache.clone(), + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + pending_create_inherent_data_providers, + Some(Box::new(tc_consensus::ContainerManualSealAuraConsensusDataProvider::new( + sp_consensus_aura::SlotDuration::from_millis( + evm_runtime_template::constants::SLOT_DURATION, + ), + authorities_for_cdp.clone(), + ))), + ) + .replace_config::() + .into_rpc(), + )?; + + if let Some(filter_pool) = filter_pool { + io.merge( + EthFilter::new( + client.clone(), + frontier_backend.clone(), + graph.clone(), + filter_pool, + 500_usize, // max stored filters + max_past_logs, + block_data_cache.clone(), + ) + .into_rpc(), + )?; + } + + io.merge( + EthPubSub::new( + pool, + client.clone(), + sync, + subscription_task_executor, + overrides.clone(), + pubsub_notification_sinks, + ) + .into_rpc(), + )?; + + io.merge( + Net::new( + client.clone(), + network, + // Whether to format the `peer_count` response as Hex (default) or not. + true, + ) + .into_rpc(), + )?; + + io.merge(Web3::new(client.clone()).into_rpc())?; + + io.merge(Debug::new(client.clone(), frontier_backend, overrides, block_data_cache).into_rpc())?; + + #[cfg(feature = "txpool")] + io.merge(TxPool::new(client, graph).into_rpc())?; + + Ok(io) +} diff --git a/evm-template/node/src/tanssi_rpc/mod.rs b/evm-template/node/src/tanssi_rpc/mod.rs new file mode 100644 index 00000000..57c45524 --- /dev/null +++ b/evm-template/node/src/tanssi_rpc/mod.rs @@ -0,0 +1,98 @@ +//! A collection of node-specific RPC methods. +//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer +//! used by Substrate nodes. This file extends those RPC definitions with +//! capabilities that are specific to this project's runtime configuration. + +#![warn(missing_docs)] +mod eth; +use std::sync::Arc; + +use evm_runtime_template::{opaque::Block, AccountId, Balance, Nonce}; +use sc_client_api::{backend::Backend, AuxStore, BlockchainEvents, StorageProvider, UsageProvider}; +pub use sc_rpc::DenyUnsafe; +use sc_rpc::SubscriptionTaskExecutor; +use sc_transaction_pool::ChainApi; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_runtime::traits::Block as BlockT; + +pub use self::eth::EthDeps; +use crate::rpc::eth::create_eth; + +/// A type representing all RPC extensions. +pub type RpcExtension = jsonrpsee::RpcModule<()>; + +/// Full client dependencies +pub struct FullDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// Whether to deny unsafe calls + pub deny_unsafe: DenyUnsafe, + /// Ethereum-compatibility specific dependencies. + pub eth: EthDeps, +} + +pub struct DefaultEthConfig(std::marker::PhantomData<(C, BE)>); + +impl fc_rpc::EthConfig for DefaultEthConfig +where + C: StorageProvider + Sync + Send + 'static, + BE: Backend + 'static, +{ + type EstimateGasAdapter = (); + type RuntimeStorageOverride = + fc_rpc::frontier_backend_client::SystemAccountId20StorageOverride; +} + +/// Instantiate all RPC extensions. +pub fn create_full( + deps: FullDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) -> Result> +where + C: ProvideRuntimeApi + + HeaderBackend + + AuxStore + + HeaderMetadata + + Send + + Sync + + CallApiAt + + UsageProvider + + StorageProvider + + BlockchainEvents + + 'static, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: substrate_frame_rpc_system::AccountNonceApi, + C::Api: BlockBuilder, + C::Api: fp_rpc::ConvertTransactionRuntimeApi, + C::Api: fp_rpc::EthereumRuntimeRPCApi, + P: TransactionPool + Sync + Send + 'static, + A: ChainApi + 'static, + CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, + BE: Backend + 'static, +{ + use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use substrate_frame_rpc_system::{System, SystemApiServer}; + + let mut module = RpcExtension::new(()); + let FullDeps { client, pool, deny_unsafe, eth } = deps; + + module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; + module.merge(TransactionPayment::new(client).into_rpc())?; + let module = create_eth::<_, _, _, _, _, _, DefaultEthConfig>( + module, + eth, + subscription_task_executor, + pubsub_notification_sinks, + )?; + Ok(module) +} diff --git a/evm-template/runtime/Cargo.toml b/evm-template/runtime/Cargo.toml index 936c2a94..dd067de9 100644 --- a/evm-template/runtime/Cargo.toml +++ b/evm-template/runtime/Cargo.toml @@ -5,7 +5,7 @@ description = "An EVM parachain runtime template" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } -version = "1.0.0" +version = "3.0.0" [package.metadata.docs.rs] targets = [ "x86_64-unknown-linux-gnu" ] @@ -17,8 +17,8 @@ parity-scale-codec = { workspace = true, features = [ "derive" ] } scale-info = { workspace = true, features = [ "derive" ] } smallvec = { workspace = true } -openzeppelin-polkadot-wrappers = { workspace = true } -openzeppelin-polkadot-wrappers-proc = { workspace = true } +openzeppelin-pallet-abstractions = { workspace = true } +openzeppelin-pallet-abstractions-proc = { workspace = true } # Substrate frame-benchmarking = { workspace = true, optional = true } @@ -80,6 +80,7 @@ cumulus-pallet-xcmp-queue = { workspace = true } cumulus-primitives-aura = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-storage-weight-reclaim = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } cumulus-primitives-utility = { workspace = true } pallet-collator-selection = { workspace = true } parachain-info = { workspace = true } @@ -110,6 +111,11 @@ pallet-xcm-transactor = { workspace = true } pallet-xcm-weight-trader = { workspace = true } xcm-primitives = { workspace = true } +# Tanssi +dp-consensus = { workspace = true } +nimbus-primitives = { workspace = true } +pallet-author-inherent = { workspace = true } +pallet-cc-authorities-noting = { workspace = true } [dev-dependencies] ethereum = { workspace = true } @@ -134,6 +140,7 @@ std = [ "cumulus-primitives-core/std", "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", + "dp-consensus/std", "fp-account/std", "fp-account/std", "fp-evm/std", @@ -148,14 +155,17 @@ std = [ "frame-system/std", "frame-try-runtime?/std", "log/std", - "openzeppelin-polkadot-wrappers/std", + "nimbus-primitives/std", + "openzeppelin-pallet-abstractions/std", "orml-xtokens/std", "pallet-asset-manager/std", "pallet-assets/std", "pallet-aura/std", + "pallet-author-inherent/std", "pallet-authorship/std", "pallet-balances/std", "pallet-base-fee/std", + "pallet-cc-authorities-noting/std", "pallet-collator-selection/std", "pallet-conviction-voting/std", "pallet-erc20-xcm-bridge/std", @@ -203,7 +213,7 @@ std = [ "xcm-primitives/std", "xcm/std", ] -async-backing = [ "openzeppelin-polkadot-wrappers-proc/async-backing" ] +async-backing = [ "openzeppelin-pallet-abstractions-proc/async-backing" ] metadata-hash = [ "substrate-wasm-builder/metadata-hash" ] runtime-benchmarks = [ "assets-common/runtime-benchmarks", @@ -211,14 +221,18 @@ runtime-benchmarks = [ "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", "cumulus-primitives-utility/runtime-benchmarks", + "dp-consensus/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "hex-literal", + "nimbus-primitives/runtime-benchmarks", "pallet-asset-manager/runtime-benchmarks", "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-cc-authorities-noting/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", "pallet-conviction-voting/runtime-benchmarks", "pallet-ethereum/runtime-benchmarks", @@ -255,13 +269,16 @@ try-runtime = [ "frame-support/try-runtime", "frame-system/try-runtime", "frame-try-runtime/try-runtime", + "nimbus-primitives/try-runtime", "orml-xtokens/try-runtime", "pallet-asset-manager/try-runtime", "pallet-assets/try-runtime", "pallet-aura/try-runtime", + "pallet-author-inherent/try-runtime", "pallet-authorship/try-runtime", "pallet-balances/try-runtime", "pallet-base-fee/try-runtime", + "pallet-cc-authorities-noting/try-runtime", "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", "pallet-erc20-xcm-bridge/try-runtime", @@ -289,6 +306,8 @@ try-runtime = [ "sp-runtime/try-runtime", ] +tanssi = [] + # A feature that should be enabled when the runtime should be built for on-chain # deployment. This will disable stuff that shouldn't be part of the on-chain wasm # to make it smaller, like logging for example. diff --git a/evm-template/runtime/src/configs/mod.rs b/evm-template/runtime/src/configs/mod.rs index 7527df54..3da62ad7 100644 --- a/evm-template/runtime/src/configs/mod.rs +++ b/evm-template/runtime/src/configs/mod.rs @@ -1,13 +1,18 @@ pub mod asset_config; pub mod governance; +pub mod weight; pub mod xcm_config; use asset_config::*; +#[cfg(feature = "tanssi")] +use cumulus_pallet_parachain_system::ExpectParentIncluded; #[cfg(feature = "async-backing")] use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; #[cfg(not(feature = "async-backing"))] use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +#[cfg(not(feature = "tanssi"))] +use frame_support::PalletId; use frame_support::{ derive_impl, dispatch::DispatchClass, @@ -17,7 +22,6 @@ use frame_support::{ EitherOfDiverse, Everything, FindAuthor, Nothing, TransformOrigin, }, weights::{ConstantMultiplier, Weight}, - PalletId, }; use frame_system::{ limits::{BlockLength, BlockWeights}, @@ -25,16 +29,26 @@ use frame_system::{ }; pub use governance::origins::pallet_custom_origins; use governance::{origins::Treasurer, tracks, Spender, WhitelistedCaller}; -use openzeppelin_polkadot_wrappers::{ - impl_openzeppelin_assets, impl_openzeppelin_consensus, impl_openzeppelin_evm, - impl_openzeppelin_governance, impl_openzeppelin_system, impl_openzeppelin_xcm, AssetsConfig, - ConsensusConfig, EvmConfig, GovernanceConfig, SystemConfig, XcmConfig, +#[cfg(feature = "tanssi")] +use nimbus_primitives::NimbusId; +use openzeppelin_pallet_abstractions::{ + impl_openzeppelin_assets, impl_openzeppelin_evm, impl_openzeppelin_governance, + impl_openzeppelin_system, impl_openzeppelin_xcm, AssetsConfig, AssetsWeight, EvmConfig, + EvmWeight, GovernanceConfig, GovernanceWeight, SystemConfig, SystemWeight, XcmConfig, + XcmWeight, }; +#[cfg(not(feature = "tanssi"))] +use openzeppelin_pallet_abstractions::{ + impl_openzeppelin_consensus, ConsensusConfig, ConsensusWeight, +}; +#[cfg(feature = "tanssi")] +use openzeppelin_pallet_abstractions::{impl_openzeppelin_tanssi, TanssiConfig, TanssiWeight}; use pallet_ethereum::PostLogContent; use pallet_evm::{EVMCurrencyAdapter, EnsureAccountId20, IdentityAddressMapping}; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; use parity_scale_codec::{Decode, Encode}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +#[cfg(not(feature = "tanssi"))] use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{H160, U256}; use sp_runtime::{ @@ -57,39 +71,58 @@ use xcm_primitives::{AbsoluteAndRelativeReserve, AccountIdToLocation, AsAssetTyp #[cfg(feature = "runtime-benchmarks")] use crate::benchmark::{OpenHrmpChannel, PayWithEnsure}; +#[cfg(feature = "tanssi")] +use crate::AuthorInherent; +#[cfg(not(feature = "tanssi"))] +use crate::{ + constants::HOURS, + types::{BlockNumber, CollatorSelectionUpdateOrigin, ConsensusHook}, + Aura, CollatorSelection, Session, SessionKeys, +}; use crate::{ constants::{ currency::{deposit, CENTS, EXISTENTIAL_DEPOSIT, MICROCENTS, MILLICENTS}, - AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MAX_BLOCK_LENGTH, - NORMAL_DISPATCH_RATIO, WEIGHT_PER_GAS, + AVERAGE_ON_INITIALIZE_RATIO, DAYS, MAXIMUM_BLOCK_WEIGHT, MAX_BLOCK_LENGTH, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, WEIGHT_PER_GAS, }, opaque, types::{ - AccountId, AssetId, AssetKind, Balance, Beneficiary, Block, BlockNumber, - CollatorSelectionUpdateOrigin, ConsensusHook, Hash, MessageQueueServiceWeight, Nonce, - PrecompilesValue, PriceForSiblingParachainDelivery, ProxyType, TreasuryInteriorLocation, - TreasuryPalletId, TreasuryPaymaster, Version, + AccountId, AssetId, AssetKind, Balance, Beneficiary, Block, Hash, + MessageQueueServiceWeight, Nonce, PrecompilesValue, PriceForSiblingParachainDelivery, + ProxyType, TreasuryInteriorLocation, TreasuryPalletId, TreasuryPaymaster, Version, }, - weights::{self, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, - AllPalletsWithSystem, AssetManager, Aura, Balances, BaseFee, CollatorSelection, EVMChainId, - Erc20XcmBridge, MessageQueue, OpenZeppelinPrecompiles, OriginCaller, PalletInfo, ParachainInfo, + weights::{BlockExecutionWeight, ExtrinsicBaseWeight}, + AllPalletsWithSystem, AssetManager, Balances, BaseFee, EVMChainId, Erc20XcmBridge, + MessageQueue, OpenZeppelinPrecompiles, OriginCaller, PalletInfo, ParachainInfo, ParachainSystem, PolkadotXcm, Preimage, Referenda, Runtime, RuntimeCall, RuntimeEvent, - RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Scheduler, Session, - SessionKeys, System, Timestamp, Treasury, UncheckedExtrinsic, WeightToFee, XcmpQueue, + RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Scheduler, System, + Timestamp, Treasury, UncheckedExtrinsic, WeightToFee, XcmpQueue, }; // OpenZeppelin runtime wrappers configuration pub struct OpenZeppelinRuntime; impl SystemConfig for OpenZeppelinRuntime { type AccountId = AccountId; + #[cfg(not(feature = "tanssi"))] + type ConsensusHook = ConsensusHook; + #[cfg(feature = "tanssi")] + type ConsensusHook = ExpectParentIncluded; type ExistentialDeposit = ConstU128; type Lookup = IdentityLookup; + #[cfg(not(feature = "tanssi"))] + type OnTimestampSet = Aura; + #[cfg(feature = "tanssi")] + type OnTimestampSet = (); type PreimageOrigin = EnsureRoot; type ProxyType = ProxyType; type SS58Prefix = ConstU16<42>; type ScheduleOrigin = EnsureRoot; + type SlotDuration = ConstU64; type Version = Version; } +#[cfg(feature = "tanssi")] +impl TanssiConfig for OpenZeppelinRuntime {} +#[cfg(not(feature = "tanssi"))] impl ConsensusConfig for OpenZeppelinRuntime { type CollatorSelectionUpdateOrigin = CollatorSelectionUpdateOrigin; } @@ -158,7 +191,10 @@ impl EvmConfig for OpenZeppelinRuntime { type AddressMapping = IdentityAddressMapping; type CallOrigin = EnsureAccountId20; type Erc20XcmBridgeTransferGasLimit = ConstU64<800_000>; + #[cfg(not(feature = "tanssi"))] type FindAuthor = FindAuthorSession; + #[cfg(feature = "tanssi")] + type FindAuthor = FindAuthorSession; type LocationToH160 = LocationToH160; type PrecompilesType = OpenZeppelinPrecompiles; type PrecompilesValue = PrecompilesValue; @@ -181,12 +217,16 @@ impl AssetsConfig for OpenZeppelinRuntime { } impl_openzeppelin_assets!(OpenZeppelinRuntime); impl_openzeppelin_system!(OpenZeppelinRuntime); +#[cfg(not(feature = "tanssi"))] impl_openzeppelin_consensus!(OpenZeppelinRuntime); +#[cfg(feature = "tanssi")] +impl_openzeppelin_tanssi!(); impl_openzeppelin_governance!(OpenZeppelinRuntime); impl_openzeppelin_xcm!(OpenZeppelinRuntime); impl_openzeppelin_evm!(OpenZeppelinRuntime); pub struct FindAuthorSession(PhantomData); +#[cfg(not(feature = "tanssi"))] impl> FindAuthor for FindAuthorSession { fn find_author<'a, I>(digests: I) -> Option where @@ -200,6 +240,19 @@ impl> FindAuthor for FindAuthorSession { } } +#[cfg(feature = "tanssi")] +impl> FindAuthor for FindAuthorSession { + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + if let Some(author) = F::find_author(digests) { + return Some(H160::from_slice(&author.encode()[0..20])); + } + None + } +} + #[derive(Clone)] pub struct TransactionConverter; diff --git a/evm-template/runtime/src/configs/weight.rs b/evm-template/runtime/src/configs/weight.rs new file mode 100644 index 00000000..a76ed3d4 --- /dev/null +++ b/evm-template/runtime/src/configs/weight.rs @@ -0,0 +1,62 @@ +#[cfg(not(feature = "tanssi"))] +use openzeppelin_pallet_abstractions::ConsensusWeight; +#[cfg(feature = "tanssi")] +use openzeppelin_pallet_abstractions::TanssiWeight; +use openzeppelin_pallet_abstractions::{ + AssetsWeight, EvmWeight, GovernanceWeight, SystemWeight, XcmWeight, +}; + +use crate::{ + configs::OpenZeppelinRuntime, + weights::{self, RocksDbWeight}, + Runtime, +}; + +impl SystemWeight for OpenZeppelinRuntime { + type Balances = weights::pallet_balances::WeightInfo; + type DbWeight = RocksDbWeight; + type Multisig = weights::pallet_multisig::WeightInfo; + type ParachainSystem = weights::cumulus_pallet_parachain_system::WeightInfo; + type Preimage = weights::pallet_preimage::WeightInfo; + type Proxy = weights::pallet_proxy::WeightInfo; + type Scheduler = weights::pallet_scheduler::WeightInfo; + type Timestamp = weights::pallet_timestamp::WeightInfo; + type Utility = weights::pallet_utility::WeightInfo; +} + +#[cfg(not(feature = "tanssi"))] +impl ConsensusWeight for OpenZeppelinRuntime { + type CollatorSelection = weights::pallet_collator_selection::WeightInfo; + type Session = weights::pallet_session::WeightInfo; +} + +impl AssetsWeight for OpenZeppelinRuntime { + type AssetManager = weights::pallet_asset_manager::WeightInfo; + type Assets = weights::pallet_assets::WeightInfo; +} + +impl GovernanceWeight for OpenZeppelinRuntime { + type ConvictionVoting = weights::pallet_conviction_voting::WeightInfo; + type Referenda = weights::pallet_referenda::WeightInfo; + type Sudo = weights::pallet_sudo::WeightInfo; + type Treasury = weights::pallet_treasury::WeightInfo; + type Whitelist = weights::pallet_whitelist::WeightInfo; +} + +impl XcmWeight for OpenZeppelinRuntime { + type MessageQueue = weights::pallet_message_queue::WeightInfo; + type Xcm = weights::pallet_xcm::WeightInfo; + type XcmTransactor = weights::pallet_xcm_transactor::WeightInfo; + type XcmWeightTrader = weights::pallet_xcm_weight_trader::WeightInfo; + type XcmpQueue = weights::cumulus_pallet_xcmp_queue::WeightInfo; +} + +impl EvmWeight for OpenZeppelinRuntime { + type Evm = weights::pallet_evm::WeightInfo; +} + +#[cfg(feature = "tanssi")] +impl TanssiWeight for OpenZeppelinRuntime { + type AuthorInherent = pallet_author_inherent::weights::SubstrateWeight; + type AuthoritiesNoting = pallet_cc_authorities_noting::weights::SubstrateWeight; +} diff --git a/evm-template/runtime/src/lib.rs b/evm-template/runtime/src/lib.rs index 86e43e79..96c4f1da 100644 --- a/evm-template/runtime/src/lib.rs +++ b/evm-template/runtime/src/lib.rs @@ -168,11 +168,16 @@ pub mod opaque { pub type Hash = ::Output; } +#[cfg(not(feature = "tanssi"))] impl_opaque_keys! { pub struct SessionKeys { pub aura: Aura, } } +#[cfg(feature = "tanssi")] +impl_opaque_keys! { + pub struct SessionKeys {} +} /// The version information used to identify this runtime when compiled /// natively. @@ -183,50 +188,60 @@ pub fn native_version() -> NativeVersion { NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } -use openzeppelin_polkadot_wrappers_proc::openzeppelin_construct_runtime; +use openzeppelin_pallet_abstractions_proc::openzeppelin_construct_runtime; + +#[cfg(not(feature = "tanssi"))] #[openzeppelin_construct_runtime] mod runtime { - #[abstraction] struct System; - #[abstraction] struct Consensus; - #[abstraction] struct XCM; - #[abstraction] struct Assets; - #[abstraction] struct Governance; - #[abstraction] struct EVM; } -use openzeppelin_polkadot_wrappers_proc::openzeppelin_runtime_apis; +#[cfg(feature = "tanssi")] +#[openzeppelin_construct_runtime] +mod runtime { + struct System; + + struct Tanssi; + + struct XCM; + + struct Assets; + + struct Governance; + + struct EVM; +} + +use openzeppelin_pallet_abstractions_proc::openzeppelin_runtime_apis; +#[cfg(not(feature = "tanssi"))] #[openzeppelin_runtime_apis] mod apis { type Runtime = Runtime; type Block = Block; - #[abstraction] mod evm { type RuntimeCall = RuntimeCall; type Executive = Executive; type Ethereum = Ethereum; } - #[abstraction] mod assets { type RuntimeCall = RuntimeCall; type TransactionPayment = TransactionPayment; type Balance = Balance; } - #[abstraction] mod consensus { type SessionKeys = SessionKeys; #[cfg(not(feature = "async-backing"))] @@ -237,7 +252,6 @@ mod apis { type ConsensusHook = ConsensusHook; } - #[abstraction] mod system { type Executive = Executive; type System = System; @@ -249,7 +263,60 @@ mod apis { type RuntimeBlockWeights = RuntimeBlockWeights; } - #[abstraction] + mod benchmarks { + type AllPalletsWithSystem = AllPalletsWithSystem; + type Assets = Assets; + type AssetManager = AssetManager; + type AssetType = AssetType; + type RuntimeOrigin = RuntimeOrigin; + type RelayLocation = RelayLocation; + type ParachainSystem = ParachainSystem; + type System = System; + type ExistentialDeposit = ExistentialDeposit; + type AssetId = AssetId; + type XCMConfig = XcmExecutorConfig; + type AccountId = AccountId; + type Cents = CENTS; + type FeeAssetId = FeeAssetId; + type TransactionByteFee = TransactionByteFee; + type Address = Address; + type Balances = Balances; + } +} + +#[cfg(feature = "tanssi")] +#[openzeppelin_runtime_apis] +mod apis { + type Runtime = Runtime; + type Block = Block; + + mod evm { + type RuntimeCall = RuntimeCall; + type Executive = Executive; + type Ethereum = Ethereum; + } + + mod assets { + type RuntimeCall = RuntimeCall; + type TransactionPayment = TransactionPayment; + type Balance = Balance; + } + + mod tanssi { + type SessionKeys = SessionKeys; + } + + mod system { + type Executive = Executive; + type System = System; + type ParachainSystem = ParachainSystem; + type RuntimeVersion = VERSION; + type AccountId = AccountId; + type Nonce = Nonce; + type RuntimeGenesisConfig = RuntimeGenesisConfig; + type RuntimeBlockWeights = RuntimeBlockWeights; + } + mod benchmarks { type AllPalletsWithSystem = AllPalletsWithSystem; type Assets = Assets; diff --git a/evm-template/runtime/src/types.rs b/evm-template/runtime/src/types.rs index 93418f01..bf5c825d 100644 --- a/evm-template/runtime/src/types.rs +++ b/evm-template/runtime/src/types.rs @@ -1,11 +1,10 @@ use fp_account::EthereumSignature; -use frame_support::{ - parameter_types, - traits::{EitherOfDiverse, InstanceFilter}, - weights::Weight, - PalletId, -}; +#[cfg(not(feature = "tanssi"))] +use frame_support::traits::EitherOfDiverse; +use frame_support::{parameter_types, traits::InstanceFilter, weights::Weight, PalletId}; +#[cfg(not(feature = "tanssi"))] use frame_system::EnsureRoot; +#[cfg(not(feature = "tanssi"))] use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use polkadot_runtime_common::impls::{ @@ -26,19 +25,19 @@ use xcm::{ use xcm_builder::PayOverXcm; use crate::{ - configs::{ - xcm_config::{self, RelayLocation}, - FeeAssetId, StakingAdminBodyId, ToSiblingBaseDeliveryFee, TransactionByteFee, - }, + configs::{xcm_config, FeeAssetId, ToSiblingBaseDeliveryFee, TransactionByteFee}, constants::HOURS, }; -pub use crate::{ +#[cfg(not(feature = "tanssi"))] +use crate::{ + configs::{xcm_config::RelayLocation, StakingAdminBodyId}, constants::{ BLOCK_PROCESSING_VELOCITY, RELAY_CHAIN_SLOT_DURATION_MILLIS, UNINCLUDED_SEGMENT_CAPACITY, - VERSION, }, - AllPalletsWithSystem, OpenZeppelinPrecompiles, Runtime, RuntimeBlockWeights, RuntimeCall, - Treasury, XcmpQueue, +}; +pub use crate::{ + constants::VERSION, AllPalletsWithSystem, OpenZeppelinPrecompiles, Runtime, + RuntimeBlockWeights, RuntimeCall, Treasury, XcmpQueue, }; /// Unchecked extrinsic type as expected by this runtime. @@ -107,6 +106,7 @@ pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender: >; /// Configures the number of blocks that can be created without submission of validity proof to the relay chain +#[cfg(not(feature = "tanssi"))] pub type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -116,6 +116,7 @@ pub type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< /// We allow root and the StakingAdmin to execute privileged collator selection /// operations. +#[cfg(not(feature = "tanssi"))] pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< EnsureRoot, EnsureXcm>, @@ -162,6 +163,7 @@ pub enum ProxyType { /// Allows to finish the proxy CancelProxy, /// Allows to operate with collators list (invulnerables, candidates, etc.) + #[cfg(not(feature = "tanssi"))] Collator, } @@ -175,6 +177,7 @@ impl InstanceFilter for ProxyType { RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | RuntimeCall::Multisig { .. } ), + #[cfg(not(feature = "tanssi"))] ProxyType::Collator => { matches!(c, RuntimeCall::CollatorSelection { .. } | RuntimeCall::Multisig { .. }) } diff --git a/evm-template/runtime/src/weights/mod.rs b/evm-template/runtime/src/weights/mod.rs index 8077b9b8..765e257b 100644 --- a/evm-template/runtime/src/weights/mod.rs +++ b/evm-template/runtime/src/weights/mod.rs @@ -24,6 +24,7 @@ pub mod extrinsic_weights; pub mod pallet_asset_manager; pub mod pallet_assets; pub mod pallet_balances; +#[cfg(not(feature = "tanssi"))] pub mod pallet_collator_selection; pub mod pallet_conviction_voting; pub mod pallet_evm; @@ -33,6 +34,7 @@ pub mod pallet_preimage; pub mod pallet_proxy; pub mod pallet_referenda; pub mod pallet_scheduler; +#[cfg(not(feature = "tanssi"))] pub mod pallet_session; pub mod pallet_sudo; pub mod pallet_timestamp; diff --git a/evm-template/runtime/tests/constants_test.rs b/evm-template/runtime/tests/constants_test.rs index 976d57df..aad57d36 100644 --- a/evm-template/runtime/tests/constants_test.rs +++ b/evm-template/runtime/tests/constants_test.rs @@ -146,9 +146,7 @@ mod runtime_tests { fn assets_constants() { assert_eq!(::AssetDeposit::get(), 10 * CENTS); - // TODO: uncomment once patch is merged and updated RC is released and pointed to in deps - //assert_eq!(::AssetAccountDeposit::get(), deposit(1, 16)); - assert_eq!(::AssetAccountDeposit::get(), MILLICENTS); + assert_eq!(::AssetAccountDeposit::get(), deposit(1, 16)); assert_eq!(::ApprovalDeposit::get(), MILLICENTS); @@ -239,7 +237,7 @@ mod runtime_tests { pallet_id_to_string(PalletId(*b"PotStake")) ); - assert_eq!(configs::Period::get(), 6 * HOURS); + assert_eq!(configs::SessionLength::get(), 6 * HOURS); assert_eq!(configs::StakingAdminBodyId::get(), BodyId::Defense); diff --git a/evm-template/template-fuzzer/Cargo.toml b/evm-template/template-fuzzer/Cargo.toml index 7d844c98..0af035e0 100644 --- a/evm-template/template-fuzzer/Cargo.toml +++ b/evm-template/template-fuzzer/Cargo.toml @@ -59,6 +59,7 @@ std = [ "sp-consensus-aura/std", "sp-runtime/std", ] +tanssi = [] try-runtime = [ "evm-runtime-template/try-runtime", "frame-support/try-runtime", diff --git a/evm-template/template-fuzzer/src/main.rs b/evm-template/template-fuzzer/src/main.rs index 14d12361..ec9350ce 100644 --- a/evm-template/template-fuzzer/src/main.rs +++ b/evm-template/template-fuzzer/src/main.rs @@ -8,9 +8,11 @@ use evm_runtime_template::{ constants::SLOT_DURATION, AccountId, AllPalletsWithSystem, Balance, Balances, EVMChainIdConfig, Executive, Runtime, RuntimeCall, RuntimeOrigin, SudoConfig, UncheckedExtrinsic, }; +#[cfg(not(feature = "tanssi"))] +use frame_support::traits::Get; use frame_support::{ dispatch::GetDispatchInfo, - traits::{Get, IntegrityTest, TryState, TryStateSelect}, + traits::{IntegrityTest, TryState, TryStateSelect}, weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, }; use frame_system::Account; @@ -25,15 +27,20 @@ use sp_runtime::{ use sp_state_machine::BasicExternalities; fn generate_genesis(accounts: &[AccountId]) -> Storage { - use evm_runtime_template::{ - BalancesConfig, CollatorSelectionConfig, RuntimeGenesisConfig, SessionConfig, SessionKeys, - }; + use evm_runtime_template::{BalancesConfig, RuntimeGenesisConfig}; + #[cfg(not(feature = "tanssi"))] + use evm_runtime_template::{CollatorSelectionConfig, SessionConfig, SessionKeys}; + #[cfg(not(feature = "tanssi"))] use sp_consensus_aura::sr25519::AuthorityId as AuraId; - use sp_runtime::{app_crypto::ByteArray, BuildStorage}; + #[cfg(not(feature = "tanssi"))] + use sp_runtime::app_crypto::ByteArray; + use sp_runtime::BuildStorage; // Configure endowed accounts with initial balance of 1 << 60. let balances = accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(); + #[cfg(not(feature = "tanssi"))] let invulnerables: Vec = vec![[0; 32].into()]; + #[cfg(not(feature = "tanssi"))] let session_keys = vec![( [0; 32].into(), [0; 32].into(), @@ -44,14 +51,14 @@ fn generate_genesis(accounts: &[AccountId]) -> Storage { RuntimeGenesisConfig { system: Default::default(), balances: BalancesConfig { balances }, - aura: Default::default(), + #[cfg(not(feature = "tanssi"))] session: SessionConfig { keys: session_keys }, + #[cfg(not(feature = "tanssi"))] collator_selection: CollatorSelectionConfig { invulnerables, candidacy_bond: 1 << 57, desired_candidates: 1, }, - aura_ext: Default::default(), parachain_info: Default::default(), parachain_system: Default::default(), polkadot_xcm: Default::default(), @@ -261,6 +268,7 @@ fn recursive_call_filter(call: &RuntimeCall, origin: usize) -> bool { RuntimeCall::System( frame_system::Call::set_code { .. } | frame_system::Call::kill_prefix { .. }, ) => false, + #[cfg(not(feature = "tanssi"))] RuntimeCall::CollatorSelection( pallet_collator_selection::Call::set_desired_candidates { max }, ) => diff --git a/generic-template/Cargo.lock b/generic-template/Cargo.lock index 7f8d4730..9c21b518 100644 --- a/generic-template/Cargo.lock +++ b/generic-template/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.29.0", + "gimli 0.31.1", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -146,43 +146,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" [[package]] name = "approx" @@ -204,7 +204,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -344,9 +344,9 @@ checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -415,7 +415,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "synstructure 0.13.1", ] @@ -438,7 +438,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -469,6 +469,15 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "async-backing-primitives" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "sp-api", + "sp-consensus-slots", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -494,14 +503,14 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", - "futures-lite 2.3.0", + "fastrand 2.1.1", + "futures-lite 2.4.0", "slab", ] @@ -547,10 +556,10 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "parking", "polling 3.7.3", - "rustix 0.38.34", + "rustix 0.38.39", "slab", "tracing", "windows-sys 0.59.0", @@ -600,7 +609,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.34", + "rustix 0.38.39", "windows-sys 0.48.0", ] @@ -616,7 +625,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix 0.38.39", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -630,13 +639,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -677,23 +686,23 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.22.0", - "cc", + "addr2line 0.24.2", "cfg-if", "libc", "miniz_oxide", - "object 0.36.3", + "object 0.36.5", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -771,22 +780,22 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.20", + "prettyplease 0.2.25", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "bip39" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ - "bitcoin_hashes 0.11.0", + "bitcoin_hashes", ] [[package]] @@ -795,12 +804,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - [[package]] name = "bitcoin_hashes" version = "0.13.0" @@ -875,7 +878,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -886,7 +889,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -899,7 +902,7 @@ dependencies = [ "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -929,15 +932,15 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "piper", ] [[package]] name = "bounded-collections" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +checksum = "db436177db0d505b1507f03aca56a41442ae6efdf8b6eaa855d73e52c5b078dc" dependencies = [ "log", "parity-scale-codec", @@ -1009,9 +1012,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" [[package]] name = "byteorder" @@ -1021,9 +1024,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "bzip2-sys" @@ -1080,15 +1083,43 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.13" +version = "1.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +checksum = "67b9470d453346108f93a59222a9a1a5724db32d0a4727b7ab7ace4b4d822dc9" dependencies = [ "jobserver", "libc", "shlex", ] +[[package]] +name = "ccp-authorities-noting-inherent" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "dc-orchestrator-chain-interface", + "dp-collator-assignment", + "dp-core", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "test-relay-sproof-builder", + "tracing", +] + [[package]] name = "cesu8" version = "1.1.0" @@ -1232,9 +1263,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1242,9 +1273,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", @@ -1255,14 +1286,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1310,14 +1341,14 @@ dependencies = [ "nom", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -1402,9 +1433,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "constcat" @@ -1464,9 +1495,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1710,7 +1741,7 @@ dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures", + "futures 0.3.31", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-primitives", @@ -1738,7 +1769,7 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.31", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-primitives", @@ -1780,7 +1811,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "dyn-clone", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "polkadot-primitives", @@ -1822,7 +1853,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "parking_lot 0.12.3", @@ -1871,7 +1902,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "polkadot-node-primitives", @@ -1904,7 +1935,7 @@ dependencies = [ "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", - "futures", + "futures 0.3.31", "polkadot-primitives", "sc-client-api", "sc-consensus", @@ -1984,10 +2015,10 @@ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2114,6 +2145,16 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.15.1" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" +dependencies = [ + "cumulus-primitives-core", + "sp-inherents", + "sp-timestamp", +] + [[package]] name = "cumulus-primitives-utility" version = "0.16.0" @@ -2141,7 +2182,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures", + "futures 0.3.31", "futures-timer", "polkadot-cli", "polkadot-service", @@ -2164,7 +2205,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "cumulus-primitives-core", - "futures", + "futures 0.3.31", "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", @@ -2186,7 +2227,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", - "futures", + "futures 0.3.31", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-network-protocol", @@ -2220,7 +2261,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "either", - "futures", + "futures 0.3.31", "futures-timer", "jsonrpsee", "parity-scale-codec", @@ -2287,7 +2328,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2305,9 +2346,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.126" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4eae4b7fc8dcb0032eb3b1beee46b38d371cdeaf2d0c64b9944f6f69ad7755" +checksum = "cbdc8cca144dce1c4981b5c9ab748761619979e515c3d53b5df385c677d1d007" dependencies = [ "cc", "cxxbridge-flags", @@ -2317,9 +2358,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.126" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c822bf7fb755d97328d6c337120b6f843678178751cba33c9da25cf522272e0" +checksum = "c5764c3142ab44fcf857101d12c0ddf09c34499900557c764f5ad0597159d1fc" dependencies = [ "cc", "codespan-reporting", @@ -2327,24 +2368,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "cxxbridge-flags" -version = "1.0.126" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719d6197dc016c88744aff3c0d0340a01ecce12e8939fc282e7c8f583ee64bc6" +checksum = "d422aff542b4fa28c2ce8e5cc202d42dbf24702345c1fba3087b2d3f8a1b90ff" [[package]] name = "cxxbridge-macro" -version = "1.0.126" +version = "1.0.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" +checksum = "a1719100f31492cd6adeeab9a0f46cdbc846e615fdb66d7b398aa46ec7fdd06f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2368,7 +2409,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2379,7 +2420,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2421,6 +2462,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "dc-orchestrator-chain-interface" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "dp-container-chain-genesis-data", + "dp-core", + "futures 0.3.31", + "jsonrpsee", + "nimbus-primitives", + "parity-scale-codec", + "polkadot-overseer", + "sc-client-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-state-machine", + "thiserror", +] + [[package]] name = "der" version = "0.7.9" @@ -2487,7 +2550,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2500,7 +2563,27 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] @@ -2589,23 +2672,23 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "docify" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +checksum = "a772b62b1837c8f060432ddcc10b17aae1453ef17617a99bc07789252d2a5896" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7" dependencies = [ "common-path", "derive-syn-parse", @@ -2613,7 +2696,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.86", + "syn 2.0.87", "termcolor", "toml 0.8.19", "walkdir", @@ -2631,6 +2714,85 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dp-chain-state-snapshot" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "parity-scale-codec", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + +[[package]] +name = "dp-collator-assignment" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex-literal 0.3.4", + "log", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "dp-consensus" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "dp-container-chain-genesis-data" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "frame-support", + "hex-literal 0.3.4", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-std", +] + +[[package]] +name = "dp-core" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "hex-literal 0.3.4", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "dtoa" version = "1.0.9" @@ -2765,14 +2927,14 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2792,7 +2954,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2803,7 +2965,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2931,7 +3093,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures", + "futures 0.3.31", ] [[package]] @@ -2943,10 +3105,10 @@ dependencies = [ "blake2 0.10.6", "file-guard", "fs-err", - "prettyplease 0.2.20", + "prettyplease 0.2.25", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2972,9 +3134,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fatality" @@ -2993,11 +3155,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", - "indexmap 2.4.0", - "proc-macro-crate 3.1.0", + "indexmap 2.6.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3048,9 +3210,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -3065,7 +3227,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", - "futures", + "futures 0.3.31", "futures-timer", "log", "num-traits", @@ -3107,6 +3269,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3234,10 +3402,10 @@ name = "frame-election-provider-solution-type" version = "14.0.1" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3358,7 +3526,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3367,10 +3535,10 @@ version = "13.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3380,7 +3548,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3463,7 +3631,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.39", "windows-sys 0.48.0", ] @@ -3475,9 +3643,15 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" + +[[package]] +name = "futures" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3500,9 +3674,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3510,15 +3684,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3528,9 +3702,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -3549,11 +3723,11 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" dependencies = [ - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-core", "futures-io", "parking", @@ -3562,13 +3736,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3583,15 +3757,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -3601,10 +3775,11 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -3648,7 +3823,7 @@ dependencies = [ [[package]] name = "generic-runtime-template" -version = "2.0.0" +version = "3.0.0" dependencies = [ "assets-common", "cumulus-pallet-aura-ext", @@ -3659,7 +3834,9 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", + "cumulus-primitives-timestamp", "cumulus-primitives-utility", + "dp-consensus", "frame-benchmarking", "frame-executive", "frame-metadata-hash-extension", @@ -3668,18 +3845,21 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", - "openzeppelin-polkadot-wrappers", - "openzeppelin-polkadot-wrappers-proc", + "nimbus-primitives", + "openzeppelin-pallet-abstractions", + "openzeppelin-pallet-abstractions-proc", "orml-traits", "orml-xcm-support", "orml-xtokens", "pallet-asset-manager", "pallet-assets", "pallet-aura", + "pallet-author-inherent", "pallet-authorship", "pallet-balances", + "pallet-cc-authorities-noting", "pallet-collator-selection", "pallet-conviction-voting", "pallet-message-queue", @@ -3732,7 +3912,7 @@ dependencies = [ [[package]] name = "generic-template-node" -version = "2.0.0" +version = "3.0.0" dependencies = [ "clap", "color-print", @@ -3747,10 +3927,11 @@ dependencies = [ "cumulus-relay-chain-interface", "frame-benchmarking", "frame-benchmarking-cli", - "futures", + "futures 0.3.31", "generic-runtime-template", "jsonrpsee", "log", + "nimbus-consensus", "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-cli", @@ -3852,9 +4033,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -3870,7 +4051,7 @@ checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ "cfg-if", "dashmap", - "futures", + "futures 0.3.31", "futures-timer", "no-std-compat", "nonzero_ext", @@ -3905,7 +4086,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3924,7 +4105,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3986,6 +4167,17 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + [[package]] name = "hashlink" version = "0.8.4" @@ -4031,6 +4223,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4154,9 +4352,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -4172,9 +4370,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", @@ -4196,9 +4394,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -4222,7 +4420,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.30", + "hyper 0.14.31", "log", "rustls 0.21.12", "rustls-native-certs 0.6.3", @@ -4232,26 +4430,25 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-util", "http 1.1.0", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.5.0", "pin-project-lite", "tokio", - "tower", "tower-service", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4270,6 +4467,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -4299,12 +4614,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -4326,7 +4652,7 @@ dependencies = [ "async-io 2.3.4", "core-foundation", "fnv", - "futures", + "futures 0.3.31", "if-addrs", "ipnet", "log", @@ -4345,9 +4671,9 @@ dependencies = [ "async-trait", "attohttpc", "bytes", - "futures", + "futures 0.3.31", "http 0.2.12", - "hyper 0.14.30", + "hyper 0.14.31", "log", "rand", "tokio", @@ -4425,12 +4751,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.1", ] [[package]] @@ -4503,9 +4829,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "is-terminal" @@ -4520,9 +4846,9 @@ dependencies = [ [[package]] name = "is_executable" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" dependencies = [ "winapi", ] @@ -4597,9 +4923,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -4630,7 +4956,7 @@ dependencies = [ "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls 0.23.12", + "rustls 0.23.16", "rustls-pki-types", "rustls-platform-verifier", "soketto 0.8.0", @@ -4677,10 +5003,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4694,7 +5020,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -4739,9 +5065,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -4824,9 +5150,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libloading" @@ -4840,9 +5166,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p" @@ -4852,7 +5178,7 @@ checksum = "e94495eb319a85b70a68b85e2389a95bb3555c71c49025b78c691a854a7e6464" dependencies = [ "bytes", "either", - "futures", + "futures 0.3.31", "futures-timer", "getrandom", "instant", @@ -4875,7 +5201,7 @@ dependencies = [ "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "pin-project", "rw-stream-sink", "thiserror", @@ -4913,13 +5239,13 @@ checksum = "dd44289ab25e4c9230d9246c475a22241e301b23e8f4061d3bdef304a1a99713" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.31", "futures-timer", "instant", "libp2p-identity", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.2", "multistream-select", "once_cell", "parking_lot 0.12.3", @@ -4940,7 +5266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6a18db73084b4da2871438f6239fef35190b05023de7656e877c18a00541a3b" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "libp2p-core", "libp2p-identity", "log", @@ -4957,14 +5283,14 @@ checksum = "45a96638a0a176bec0a4bcaebc1afa8cf909b114477209d7456ade52c61cd9cd" dependencies = [ "asynchronous-codec", "either", - "futures", + "futures 0.3.31", "futures-bounded", "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", "log", - "lru 0.12.4", + "lru 0.12.5", "quick-protobuf", "quick-protobuf-codec", "smallvec", @@ -4981,7 +5307,7 @@ dependencies = [ "bs58 0.5.1", "ed25519-dalek", "hkdf", - "multihash 0.19.1", + "multihash 0.19.2", "quick-protobuf", "rand", "sha2 0.10.8", @@ -5001,7 +5327,7 @@ dependencies = [ "bytes", "either", "fnv", - "futures", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", @@ -5026,7 +5352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a" dependencies = [ "data-encoding", - "futures", + "futures 0.3.31", "if-watch", "libp2p-core", "libp2p-identity", @@ -5065,12 +5391,12 @@ checksum = "d2eeec39ad3ad0677551907dd304b2f13f17208ccebe333bef194076cd2e8921" dependencies = [ "bytes", "curve25519-dalek", - "futures", + "futures 0.3.31", "libp2p-core", "libp2p-identity", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.2", "once_cell", "quick-protobuf", "rand", @@ -5089,7 +5415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e702d75cd0827dfa15f8fd92d15b9932abe38d10d21f47c50438c71dd1b5dae3" dependencies = [ "either", - "futures", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", @@ -5107,7 +5433,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "130d451d83f21b81eb7b35b360bc7972aeafb15177784adc56528db082e6b927" dependencies = [ "bytes", - "futures", + "futures 0.3.31", "futures-timer", "if-watch", "libp2p-core", @@ -5131,7 +5457,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8e3b4d67870478db72bac87bfc260ee6641d0734e0e3e275798f089c3fecfd4" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "instant", "libp2p-core", "libp2p-identity", @@ -5150,7 +5476,7 @@ checksum = "580189e0074af847df90e75ef54f3f30059aedda37ea5a1659e8b9fca05c0141" dependencies = [ "either", "fnv", - "futures", + "futures 0.3.31", "futures-timer", "instant", "libp2p-core", @@ -5175,7 +5501,7 @@ dependencies = [ "proc-macro-warning 0.4.2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5184,7 +5510,7 @@ version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b558dd40d1bcd1aaaed9de898e9ec6a436019ecc2420dd0016e712fbb61c5508" dependencies = [ - "futures", + "futures 0.3.31", "futures-timer", "if-watch", "libc", @@ -5201,7 +5527,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61" dependencies = [ - "futures", + "futures 0.3.31", "futures-rustls", "libp2p-core", "libp2p-identity", @@ -5220,7 +5546,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82775a47b34f10f787ad3e2a22e2c1541e6ebef4fe9f28f3ac553921554c94c1" dependencies = [ - "futures", + "futures 0.3.31", "futures-timer", "igd-next", "libp2p-core", @@ -5236,7 +5562,7 @@ version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e5d8e3a9e07da0ef5b55a9f26c009c8fb3c725d492d8bb4b431715786eea79c" dependencies = [ - "futures", + "futures 0.3.31", "js-sys", "libp2p-core", "send_wrapper", @@ -5251,7 +5577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" dependencies = [ "either", - "futures", + "futures 0.3.31", "futures-rustls", "libp2p-core", "libp2p-identity", @@ -5271,7 +5597,7 @@ version = "0.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85" dependencies = [ - "futures", + "futures 0.3.31", "libp2p-core", "log", "thiserror", @@ -5286,7 +5612,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", ] [[package]] @@ -5354,9 +5680,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.19" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "pkg-config", @@ -5389,9 +5715,9 @@ dependencies = [ [[package]] name = "linregress" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ "nalgebra", ] @@ -5426,6 +5752,12 @@ dependencies = [ "keystream", ] +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "litep2p" version = "0.6.2" @@ -5437,10 +5769,10 @@ dependencies = [ "bytes", "cid 0.10.1", "ed25519-dalek", - "futures", + "futures 0.3.31", "futures-timer", - "hex-literal", - "indexmap 2.4.0", + "hex-literal 0.4.1", + "indexmap 2.6.0", "libc", "mockall 0.12.1", "multiaddr 0.17.1", @@ -5505,11 +5837,11 @@ checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" [[package]] name = "lru" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.1", ] [[package]] @@ -5523,19 +5855,18 @@ dependencies = [ [[package]] name = "lz4" -version = "1.26.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" +checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.10.0" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -5559,7 +5890,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5573,7 +5904,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5584,7 +5915,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5595,7 +5926,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5641,7 +5972,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.39", ] [[package]] @@ -5655,9 +5986,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -5712,7 +6043,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ - "futures", + "futures 0.3.31", "rand", "thrift", ] @@ -5725,11 +6056,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -5774,7 +6105,7 @@ name = "mmr-gadget" version = "39.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "sc-client-api", @@ -5854,7 +6185,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5878,20 +6209,20 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.1", + "multihash 0.19.2", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", "url", ] @@ -5942,12 +6273,12 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] @@ -5983,7 +6314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", - "futures", + "futures 0.3.31", "log", "pin-project", "smallvec", @@ -5992,13 +6323,12 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.6" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx", "matrixmultiply", - "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -6006,17 +6336,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "nalgebra-macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.86", -] - [[package]] name = "names" version = "0.14.0" @@ -6077,7 +6396,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", - "futures", + "futures 0.3.31", "log", "netlink-packet-core", "netlink-sys", @@ -6092,22 +6411,80 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", - "futures", + "futures 0.3.31", "libc", "log", "tokio", ] [[package]] -name = "network-interface" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +name = "network-interface" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +dependencies = [ + "cc", + "libc", + "thiserror", + "winapi", +] + +[[package]] +name = "nimbus-consensus" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "async-backing-primitives", + "async-trait", + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "futures 0.3.31", + "log", + "nimbus-primitives", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "sc-client-api", + "sc-consensus", + "sc-consensus-manual-seal", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-version", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "nimbus-primitives" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" dependencies = [ - "cc", - "libc", - "thiserror", - "winapi", + "async-trait", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] @@ -6293,9 +6670,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] @@ -6311,18 +6688,18 @@ dependencies = [ [[package]] name = "oid-registry" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ "asn1-rs 0.6.2", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -6338,9 +6715,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -6359,7 +6736,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6370,18 +6747,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.3.1+3.3.1" +version = "300.4.0+3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" +checksum = "a709e02f2b4aca747929cca5ed248880847c650233cf8b8cdc48f40aaf4898a6" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -6391,27 +6768,28 @@ dependencies = [ ] [[package]] -name = "openzeppelin-polkadot-wrappers" +name = "openzeppelin-pallet-abstractions" version = "0.1.0" -source = "git+https://github.com/openzeppelin/polkadot-runtime-wrappers?tag=v0.1-rc1#92a8d332b70202b5699106aefb6a42fe1b896794" +source = "git+https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions?tag=v0.1-rc3#130bff8b34d6d4f10885e0691614f57a59f3ecab" dependencies = [ "cumulus-primitives-core", "frame-support", + "frame-system", "scale-info", "sp-std", "sp-version", ] [[package]] -name = "openzeppelin-polkadot-wrappers-proc" +name = "openzeppelin-pallet-abstractions-proc" version = "0.1.0" -source = "git+https://github.com/openzeppelin/polkadot-runtime-wrappers?tag=v0.1-rc1#92a8d332b70202b5699106aefb6a42fe1b896794" +source = "git+https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions?tag=v0.1-rc3#130bff8b34d6d4f10885e0691614f57a59f3ecab" dependencies = [ "darling", - "openzeppelin-polkadot-wrappers", + "openzeppelin-pallet-abstractions", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6428,7 +6806,7 @@ checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" dependencies = [ "async-trait", "dyn-clonable", - "futures", + "futures 0.3.31", "futures-timer", "orchestra-proc-macro", "pin-project", @@ -6444,10 +6822,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0" dependencies = [ "expander", - "indexmap 2.4.0", + "indexmap 2.6.0", "itertools 0.11.0", "petgraph", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6638,6 +7016,25 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-author-inherent" +version = "0.9.0" +source = "git+https://github.com/OpenZeppelin/moonkit?tag=polkadot-stable2407-1#e8b0e61b465baa01b9d692a9c9b5e5cef99fcbe6" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-authority-discovery" version = "37.0.0" @@ -6803,6 +7200,35 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-cc-authorities-noting" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "ccp-authorities-noting-inherent", + "cumulus-pallet-parachain-system", + "cumulus-primitives-core", + "dp-chain-state-snapshot", + "dp-collator-assignment", + "dp-core", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "log", + "nimbus-primitives", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + [[package]] name = "pallet-child-bounties" version = "36.0.0" @@ -7424,10 +7850,10 @@ name = "pallet-staking-reward-curve" version = "12.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -7742,7 +8168,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "rand", "rand_core", "serde", @@ -7791,7 +8217,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7805,9 +8231,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -7852,7 +8278,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -7913,9 +8339,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -7924,9 +8350,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" dependencies = [ "pest", "pest_generator", @@ -7934,22 +8360,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" dependencies = [ "once_cell", "pest", @@ -7963,34 +8389,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.6.0", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -8005,7 +8431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-io", ] @@ -8021,9 +8447,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polkadot-approval-distribution" @@ -8031,7 +8457,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "futures", + "futures 0.3.31", "futures-timer", "itertools 0.11.0", "polkadot-node-jaeger", @@ -8051,7 +8477,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "always-assert", - "futures", + "futures 0.3.31", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8066,9 +8492,9 @@ name = "polkadot-availability-distribution" version = "17.0.1" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "derive_more", + "derive_more 0.99.18", "fatality", - "futures", + "futures 0.3.31", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8092,7 +8518,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "fatality", - "futures", + "futures 0.3.31", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8126,7 +8552,7 @@ dependencies = [ "cfg-if", "clap", "frame-benchmarking-cli", - "futures", + "futures 0.3.31", "log", "polkadot-node-metrics", "polkadot-node-primitives", @@ -8153,7 +8579,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.31", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8184,11 +8610,11 @@ name = "polkadot-dispute-distribution" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "derive_more", + "derive_more 0.99.18", "fatality", - "futures", + "futures 0.3.31", "futures-timer", - "indexmap 2.4.0", + "indexmap 2.6.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8223,7 +8649,7 @@ name = "polkadot-gossip-support" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8249,7 +8675,7 @@ dependencies = [ "async-trait", "bytes", "fatality", - "futures", + "futures 0.3.31", "parity-scale-codec", "parking_lot 0.12.3", "polkadot-node-metrics", @@ -8268,7 +8694,7 @@ name = "polkadot-node-collation-generation" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -8287,8 +8713,8 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "derive_more", - "futures", + "derive_more 0.99.18", + "futures 0.3.31", "futures-timer", "itertools 0.11.0", "kvdb", @@ -8320,7 +8746,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "futures", + "futures 0.3.31", "futures-timer", "kvdb", "parity-scale-codec", @@ -8343,7 +8769,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.31", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -8361,7 +8787,7 @@ name = "polkadot-node-core-bitfield-signing" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -8377,7 +8803,7 @@ version = "17.1.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", @@ -8399,7 +8825,7 @@ name = "polkadot-node-core-chain-api" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -8413,7 +8839,7 @@ name = "polkadot-node-core-chain-selection" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "futures-timer", "kvdb", "parity-scale-codec", @@ -8431,7 +8857,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fatality", - "futures", + "futures 0.3.31", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -8450,7 +8876,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "polkadot-node-subsystem", "polkadot-overseer", @@ -8467,7 +8893,7 @@ version = "16.1.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fatality", - "futures", + "futures 0.3.31", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -8482,7 +8908,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "fatality", - "futures", + "futures 0.3.31", "futures-timer", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -8502,7 +8928,7 @@ dependencies = [ "array-bytes", "blake3", "cfg-if", - "futures", + "futures 0.3.31", "futures-timer", "parity-scale-codec", "pin-project", @@ -8527,7 +8953,7 @@ name = "polkadot-node-core-pvf-checker" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -8544,7 +8970,7 @@ version = "15.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "cpu-time", - "futures", + "futures 0.3.31", "landlock", "libc", "nix 0.28.0", @@ -8569,7 +8995,7 @@ name = "polkadot-node-core-runtime-api" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -8604,7 +9030,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bs58 0.5.1", - "futures", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", @@ -8625,9 +9051,9 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", - "derive_more", + "derive_more 0.99.18", "fatality", - "futures", + "futures 0.3.31", "hex", "parity-scale-codec", "polkadot-node-jaeger", @@ -8650,7 +9076,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitvec", "bounded-vec", - "futures", + "futures 0.3.31", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", @@ -8683,9 +9109,9 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "bitvec", - "derive_more", + "derive_more 0.99.18", "fatality", - "futures", + "futures 0.3.31", "orchestra", "polkadot-node-jaeger", "polkadot-node-network-protocol", @@ -8712,9 +9138,9 @@ version = "17.1.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "derive_more", + "derive_more 0.99.18", "fatality", - "futures", + "futures 0.3.31", "futures-channel", "itertools 0.11.0", "kvdb", @@ -8748,7 +9174,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "orchestra", "parking_lot 0.12.3", @@ -8770,7 +9196,7 @@ version = "14.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bounded-collections", - "derive_more", + "derive_more 0.99.18", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -8786,7 +9212,7 @@ version = "15.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "bitvec", - "hex-literal", + "hex-literal 0.4.1", "log", "parity-scale-codec", "polkadot-core-primitives", @@ -8910,7 +9336,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "bitflags 1.3.2", "bitvec", - "derive_more", + "derive_more 0.99.18", "frame-benchmarking", "frame-support", "frame-system", @@ -8963,8 +9389,8 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "futures", - "hex-literal", + "futures 0.3.31", + "hex-literal 0.4.1", "is_executable", "kvdb", "kvdb-rocksdb", @@ -9079,9 +9505,9 @@ dependencies = [ "arrayvec 0.7.6", "bitvec", "fatality", - "futures", + "futures 0.3.31", "futures-timer", - "indexmap 2.4.0", + "indexmap 2.6.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9154,7 +9580,7 @@ dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9164,7 +9590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9214,7 +9640,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix 0.38.39", "tracing", "windows-sys 0.59.0", ] @@ -9244,9 +9670,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" [[package]] name = "powerfmt" @@ -9315,12 +9741,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9345,8 +9771,8 @@ checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", - "derive_more", - "futures", + "derive_more 0.99.18", + "futures 0.3.31", "futures-timer", "nanorand", "thiserror", @@ -9365,11 +9791,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -9404,7 +9830,7 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9415,7 +9841,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9461,7 +9887,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9519,11 +9945,11 @@ dependencies = [ "multimap 0.10.0", "once_cell", "petgraph", - "prettyplease 0.2.20", + "prettyplease 0.2.25", "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.86", + "syn 2.0.87", "tempfile", ] @@ -9550,7 +9976,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9573,9 +9999,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" dependencies = [ "cc", ] @@ -9786,9 +10212,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.1.0" +version = "11.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" dependencies = [ "bitflags 2.6.0", ] @@ -9842,9 +10268,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -9866,7 +10292,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ - "derive_more", + "derive_more 0.99.18", "fs-err", "static_init", "thiserror", @@ -9889,7 +10315,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -9919,14 +10345,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -9940,13 +10366,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -9957,9 +10383,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" @@ -10058,7 +10484,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -10182,7 +10608,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "futures", + "futures 0.3.31", "log", "netlink-packet-route", "netlink-proto", @@ -10221,9 +10647,9 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -10267,9 +10693,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.6.0", "errno", @@ -10303,15 +10729,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "log", "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "subtle 2.6.1", "zeroize", ] @@ -10330,12 +10756,12 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", @@ -10352,38 +10778,37 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-platform-verifier" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" +checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" dependencies = [ "core-foundation", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.12", - "rustls-native-certs 0.7.2", + "rustls 0.23.16", + "rustls-native-certs 0.7.3", "rustls-platform-verifier-android", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "security-framework", "security-framework-sys", - "webpki-roots 0.26.3", + "webpki-roots 0.26.6", "winapi", ] @@ -10405,9 +10830,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -10416,9 +10841,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "ruzstd" @@ -10437,7 +10862,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ - "futures", + "futures 0.3.31", "pin-project", "static_assertions", ] @@ -10483,13 +10908,13 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "ip_network", "libp2p", "linked_hash_set", "log", - "multihash 0.19.1", + "multihash 0.19.2", "parity-scale-codec", "prost 0.12.6", "prost-build 0.12.6", @@ -10512,7 +10937,7 @@ name = "sc-basic-authorship" version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", @@ -10552,7 +10977,7 @@ dependencies = [ "array-bytes", "docify", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -10576,10 +11001,10 @@ name = "sc-chain-spec-derive" version = "12.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -10591,7 +11016,7 @@ dependencies = [ "chrono", "clap", "fdlimit", - "futures", + "futures 0.3.31", "itertools 0.11.0", "libp2p-identity", "log", @@ -10629,7 +11054,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "fnv", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -10682,7 +11107,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "log", "mockall 0.11.4", "parking_lot 0.12.3", @@ -10706,7 +11131,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "sc-block-builder", @@ -10736,7 +11161,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "fork-tree", - "futures", + "futures 0.3.31", "log", "num-bigint", "num-rational", @@ -10770,7 +11195,7 @@ name = "sc-consensus-babe-rpc" version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", @@ -10796,7 +11221,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "fnv", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "parking_lot 0.12.3", @@ -10828,7 +11253,7 @@ name = "sc-consensus-beefy-rpc" version = "23.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -10867,7 +11292,7 @@ dependencies = [ "dyn-clone", "finality-grandpa", "fork-tree", - "futures", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", @@ -10906,7 +11331,7 @@ version = "0.29.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "finality-grandpa", - "futures", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -10920,13 +11345,48 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-consensus-manual-seal" +version = "0.45.0" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" +dependencies = [ + "assert_matches", + "async-trait", + "futures 0.3.31", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-timestamp", + "substrate-prometheus-endpoint", + "thiserror", +] + [[package]] name = "sc-consensus-slots" version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "log", "parity-scale-codec", @@ -11014,7 +11474,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "ansi_term", - "futures", + "futures 0.3.31", "futures-timer", "log", "sc-client-api", @@ -11048,11 +11508,11 @@ dependencies = [ "arrayvec 0.7.6", "blake2 0.10.6", "bytes", - "futures", + "futures 0.3.31", "futures-timer", "log", "mixnet", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "parity-scale-codec", "parking_lot 0.12.3", "sc-client-api", @@ -11081,7 +11541,7 @@ dependencies = [ "cid 0.9.0", "either", "fnv", - "futures", + "futures 0.3.31", "futures-timer", "ip_network", "libp2p", @@ -11126,7 +11586,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "async-trait", "bitflags 1.3.2", - "futures", + "futures 0.3.31", "libp2p-identity", "parity-scale-codec", "prost-build 0.12.6", @@ -11143,7 +11603,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "ahash", - "futures", + "futures 0.3.31", "futures-timer", "log", "sc-network", @@ -11163,7 +11623,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "array-bytes", "async-channel 1.9.0", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "prost 0.12.6", @@ -11186,7 +11646,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "fork-tree", - "futures", + "futures 0.3.31", "futures-timer", "libp2p", "log", @@ -11220,7 +11680,7 @@ version = "0.43.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "array-bytes", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "sc-network", @@ -11243,8 +11703,8 @@ dependencies = [ "libp2p-identity", "litep2p", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.2", "rand", "thiserror", "zeroize", @@ -11258,9 +11718,9 @@ dependencies = [ "array-bytes", "bytes", "fnv", - "futures", + "futures 0.3.31", "futures-timer", - "hyper 0.14.30", + "hyper 0.14.31", "hyper-rustls", "log", "num_cpus", @@ -11298,7 +11758,7 @@ name = "sc-rpc" version = "39.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -11351,11 +11811,11 @@ version = "16.0.2" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "forwarded-header-value", - "futures", + "futures 0.3.31", "governor", "http 1.1.0", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "ip_network", "jsonrpsee", "log", @@ -11373,7 +11833,7 @@ version = "0.44.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "array-bytes", - "futures", + "futures 0.3.31", "futures-util", "hex", "jsonrpsee", @@ -11407,7 +11867,7 @@ dependencies = [ "async-trait", "directories", "exit-future", - "futures", + "futures 0.3.31", "futures-timer", "jsonrpsee", "log", @@ -11511,8 +11971,8 @@ name = "sc-sysinfo" version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "derive_more", - "futures", + "derive_more 0.99.18", + "futures 0.3.31", "libc", "log", "rand", @@ -11533,7 +11993,7 @@ version = "24.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "chrono", - "futures", + "futures 0.3.31", "libp2p", "log", "parking_lot 0.12.3", @@ -11582,10 +12042,10 @@ name = "sc-tracing-proc-macro" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -11594,7 +12054,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "futures-timer", "linked-hash-map", "log", @@ -11621,7 +12081,7 @@ version = "37.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "log", "parity-scale-codec", "serde", @@ -11637,7 +12097,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-channel 1.9.0", - "futures", + "futures 0.3.31", "futures-timer", "lazy_static", "log", @@ -11662,7 +12122,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ - "derive_more", + "derive_more 0.99.18", "parity-scale-codec", "scale-bits", "scale-type-resolver", @@ -11671,13 +12131,13 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "bitvec", "cfg-if", - "derive_more", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", "serde", @@ -11685,14 +12145,14 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.87", ] [[package]] @@ -11703,11 +12163,11 @@ checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -11860,9 +12320,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -11900,9 +12360,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.208" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] @@ -11918,20 +12378,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -11941,9 +12401,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -12073,9 +12533,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ "approx", "num-complex", @@ -12178,7 +12638,7 @@ dependencies = [ "bs58 0.5.1", "chacha20", "crossbeam-queue", - "derive_more", + "derive_more 0.99.18", "ed25519-zebra", "either", "event-listener 2.5.3", @@ -12227,7 +12687,7 @@ dependencies = [ "async-lock 2.8.0", "base64 0.21.7", "blake2-rfc", - "derive_more", + "derive_more 0.99.18", "either", "event-listener 2.5.3", "fnv", @@ -12304,7 +12764,7 @@ checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", "bytes", - "futures", + "futures 0.3.31", "httparse", "log", "rand", @@ -12319,7 +12779,7 @@ checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ "base64 0.22.1", "bytes", - "futures", + "futures 0.3.31", "http 1.1.0", "httparse", "log", @@ -12357,10 +12817,10 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -12416,7 +12876,7 @@ name = "sp-blockchain" version = "37.0.1" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ - "futures", + "futures 0.3.31", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", @@ -12436,7 +12896,7 @@ version = "0.40.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "async-trait", - "futures", + "futures 0.3.31", "log", "sp-core", "sp-inherents", @@ -12539,7 +12999,7 @@ dependencies = [ "bs58 0.5.1", "dyn-clonable", "ed25519-zebra", - "futures", + "futures 0.3.31", "hash-db", "hash256-std-hasher", "impl-serde", @@ -12593,7 +13053,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -12612,7 +13072,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -12839,10 +13299,10 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13027,7 +13487,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13089,9 +13549,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.47.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", @@ -13222,7 +13682,7 @@ checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" dependencies = [ "combine", "crc", - "fastrand 2.1.0", + "fastrand 2.1.1", "hmac 0.12.1", "once_cell", "openssl", @@ -13278,7 +13738,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13305,7 +13765,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407 dependencies = [ "docify", "frame-system-rpc-runtime-api", - "futures", + "futures 0.3.31", "jsonrpsee", "log", "parity-scale-codec", @@ -13324,7 +13784,7 @@ version = "0.17.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "http-body-util", - "hyper 1.4.1", + "hyper 1.5.0", "hyper-util", "log", "prometheus", @@ -13408,9 +13868,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.86" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -13437,7 +13897,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13475,14 +13935,14 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", - "fastrand 2.1.0", + "fastrand 2.1.1", "once_cell", - "rustix 0.38.34", + "rustix 0.38.39", "windows-sys 0.59.0", ] @@ -13524,12 +13984,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" dependencies = [ - "rustix 0.38.34", - "windows-sys 0.48.0", + "rustix 0.38.39", + "windows-sys 0.59.0", ] [[package]] @@ -13538,11 +13998,26 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +[[package]] +name = "test-relay-sproof-builder" +version = "0.1.0" +source = "git+https://github.com/OpenZeppelin/dancekit?tag=polkadot-stable2407-1#b855080d881238db2eeace5ef991f1f13efec2c0" +dependencies = [ + "cumulus-primitives-core", + "dp-collator-assignment", + "dp-core", + "frame-support", + "parity-scale-codec", + "sp-runtime", + "sp-state-machine", + "sp-trie", +] + [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] @@ -13564,18 +14039,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13677,6 +14152,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -13694,9 +14179,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", @@ -13718,7 +14203,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13737,16 +14222,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.16", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -13771,9 +14256,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -13801,7 +14286,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -13815,26 +14300,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" -dependencies = [ - "indexmap 2.4.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow", ] [[package]] @@ -13847,7 +14321,6 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", - "tokio", "tower-layer", "tower-service", "tracing", @@ -13901,7 +14374,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -13941,10 +14414,10 @@ version = "5.0.0" source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-stable2407-1#16b0fd09d9e9281c20ee0c1d8b87d011e3e3454e" dependencies = [ "expander", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -14033,7 +14506,7 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner 0.6.0", + "enum-as-inner 0.6.1", "futures-channel", "futures-io", "futures-util", @@ -14122,9 +14595,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -14140,15 +14613,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -14161,15 +14634,15 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -14217,12 +14690,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", ] @@ -14232,6 +14705,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -14264,9 +14749,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" +checksum = "70a3028804c8bbae2a97a15b71ffc0e308c4b01a520994aafa77d56e94e19024" dependencies = [ "ark-bls12-377", "ark-bls12-381", @@ -14328,9 +14813,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -14339,24 +14824,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -14366,9 +14851,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14376,22 +14861,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-instrument" @@ -14448,7 +14933,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures", + "futures 0.3.31", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -14704,9 +15189,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -14730,9 +15215,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -14753,7 +15238,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal", + "hex-literal 0.4.1", "log", "pallet-asset-rate", "pallet-authority-discovery", @@ -14868,7 +15353,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.34", + "rustix 0.38.39", ] [[package]] @@ -15177,18 +15662,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -15203,6 +15679,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -15252,7 +15740,7 @@ dependencies = [ "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry 0.7.0", + "oid-registry 0.7.1", "rusticata-macros", "thiserror", "time", @@ -15295,7 +15783,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -15336,9 +15824,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" +checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" [[package]] name = "xmltree" @@ -15355,7 +15843,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" dependencies = [ - "futures", + "futures 0.3.31", "log", "nohash-hasher", "parking_lot 0.12.3", @@ -15373,6 +15861,30 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -15391,7 +15903,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", ] [[package]] @@ -15411,14 +15944,36 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] name = "ziggy" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7645f2e2955ff04414e77a5b457d12fe40556ece09a12ccbb369d352068421" +checksum = "f8190fe9a65c1313f83938e3949a20ffb2acc2f2995f5e29c55fb919ff6c0262" [[package]] name = "zstd" diff --git a/generic-template/Cargo.toml b/generic-template/Cargo.toml index 7b76a4e4..5720b34a 100644 --- a/generic-template/Cargo.toml +++ b/generic-template/Cargo.toml @@ -26,8 +26,8 @@ serde_json = "1.0.121" smallvec = "1.11.0" # TODO: update to release -openzeppelin-polkadot-wrappers = { git = "https://github.com/openzeppelin/polkadot-runtime-wrappers", default-features = false, tag = "v0.1-rc1" } -openzeppelin-polkadot-wrappers-proc = { git = "https://github.com/openzeppelin/polkadot-runtime-wrappers", default-features = false, tag = "v0.1-rc1" } +openzeppelin-pallet-abstractions = { git = "https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions", default-features = false, tag = "v0.1-rc3" } +openzeppelin-pallet-abstractions-proc = { git = "https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions", default-features = false, tag = "v0.1-rc3" } # Substrate frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -130,6 +130,7 @@ cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk", cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, tag = "polkadot-stable2407-1" } @@ -151,6 +152,12 @@ orml-xtokens = { git = "https://github.com/OpenZeppelin/open-runtime-module-libr # Fuzzer ziggy = { version = "1.0.2", default-features = false } +# Tanssi +dp-consensus = { git = "https://github.com/OpenZeppelin/dancekit", default-features = false, tag = "polkadot-stable2407-1" } +nimbus-consensus = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +nimbus-primitives = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +pallet-author-inherent = { git = "https://github.com/OpenZeppelin/moonkit", default-features = false, tag = "polkadot-stable2407-1" } +pallet-cc-authorities-noting = { git = "https://github.com/OpenZeppelin/dancekit", default-features = false, tag = "polkadot-stable2407-1" } [workspace.lints.clippy] large_enum_variant = "allow" diff --git a/generic-template/node/Cargo.toml b/generic-template/node/Cargo.toml index 758ae40b..a2d7e628 100644 --- a/generic-template/node/Cargo.toml +++ b/generic-template/node/Cargo.toml @@ -7,7 +7,7 @@ edition = { workspace = true } license = { workspace = true } publish = false repository = { workspace = true } -version = "2.0.0" +version = "3.0.0" [dependencies] clap = { workspace = true } @@ -70,6 +70,9 @@ cumulus-primitives-core = { workspace = true } cumulus-primitives-parachain-inherent = { workspace = true } cumulus-relay-chain-interface = { workspace = true } +# Tanssi +nimbus-consensus = { workspace = true } + [build-dependencies] substrate-build-script-utils = { workspace = true } @@ -85,6 +88,7 @@ runtime-benchmarks = [ "sc-service/runtime-benchmarks", "sp-runtime/runtime-benchmarks", ] +tanssi = [] try-runtime = [ "generic-runtime-template/try-runtime", "polkadot-cli/try-runtime", diff --git a/generic-template/node/src/chain_spec.rs b/generic-template/node/src/chain_spec.rs index 46eca8b0..d0649628 100644 --- a/generic-template/node/src/chain_spec.rs +++ b/generic-template/node/src/chain_spec.rs @@ -1,7 +1,7 @@ use cumulus_primitives_core::ParaId; -use generic_runtime_template::{ - constants::currency::EXISTENTIAL_DEPOSIT, AccountId, AuraId, Signature, -}; +#[cfg(not(feature = "tanssi"))] +use generic_runtime_template::{constants::currency::EXISTENTIAL_DEPOSIT, AuraId}; +use generic_runtime_template::{AccountId, Signature}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; @@ -44,6 +44,7 @@ type AccountPublic = ::Signer; /// /// This function's return type must always match the session keys of the chain /// in tuple format. +#[cfg(not(feature = "tanssi"))] pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { get_from_seed::(seed) } @@ -60,6 +61,8 @@ where /// /// The input must be a tuple of individual keys (a single arg for now since we /// have just one key). +/// +#[cfg(not(feature = "tanssi"))] pub fn template_session_keys(keys: AuraId) -> generic_runtime_template::SessionKeys { generic_runtime_template::SessionKeys { aura: keys } } @@ -86,6 +89,7 @@ pub fn development_config() -> ChainSpec { .with_chain_type(ChainType::Development) .with_genesis_config_patch(testnet_genesis( // initial collators. + #[cfg(not(feature = "tanssi"))] vec![ ( get_account_id_from_seed::("Alice"), @@ -137,6 +141,7 @@ pub fn local_testnet_config() -> ChainSpec { .with_chain_type(ChainType::Local) .with_genesis_config_patch(testnet_genesis( // initial collators. + #[cfg(not(feature = "tanssi"))] vec![ ( get_account_id_from_seed::("Alice"), @@ -169,6 +174,7 @@ pub fn local_testnet_config() -> ChainSpec { .build() } +#[cfg(not(feature = "tanssi"))] fn testnet_genesis( invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, @@ -205,3 +211,24 @@ fn testnet_genesis( "sudo": { "key": Some(root) } }) } + +#[cfg(feature = "tanssi")] +fn testnet_genesis( + endowed_accounts: Vec, + root: AccountId, + id: ParaId, +) -> serde_json::Value { + serde_json::json!({ + "balances": { + "balances": endowed_accounts.iter().cloned().map(|k| (k, 1u64 << 60)).collect::>(), + }, + "parachainInfo": { + "parachainId": id, + }, + "treasury": {}, + "polkadotXcm": { + "safeXcmVersion": Some(SAFE_XCM_VERSION), + }, + "sudo": { "key": Some(root) } + }) +} diff --git a/generic-template/node/src/command.rs b/generic-template/node/src/command.rs index 0fe079c4..e1be78c8 100644 --- a/generic-template/node/src/command.rs +++ b/generic-template/node/src/command.rs @@ -115,7 +115,10 @@ pub fn run() -> Result<()> { match &cli.subcommand { Some(Subcommand::BuildSpec(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) + runner.sync_run(|config| { + let chain_spec = config.chain_spec; + cmd.run(chain_spec, config.network) + }) }, Some(Subcommand::CheckBlock(cmd)) => { construct_async_run!(|components, cli, cmd, config| { diff --git a/generic-template/node/src/service.rs b/generic-template/node/src/service.rs index 0aa5398d..cf231833 100644 --- a/generic-template/node/src/service.rs +++ b/generic-template/node/src/service.rs @@ -5,18 +5,24 @@ use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Cumulus Imports +#[cfg(not(feature = "tanssi"))] use cumulus_client_collator::service::CollatorService; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; +#[cfg(not(feature = "tanssi"))] use cumulus_client_consensus_proposer::Proposer; use cumulus_client_service::{ build_network, build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, CollatorSybilResistance, DARecoveryProfile, ParachainHostFunctions, StartRelayChainTasksParams, }; +#[cfg(not(feature = "tanssi"))] +use cumulus_primitives_core::relay_chain::CollatorPair; #[cfg(feature = "async-backing")] use cumulus_primitives_core::relay_chain::ValidationCode; -use cumulus_primitives_core::{relay_chain::CollatorPair, ParaId}; -use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; +use cumulus_primitives_core::ParaId; +#[cfg(not(feature = "tanssi"))] +use cumulus_relay_chain_interface::OverseerHandle; +use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; // Local Runtime Types @@ -29,9 +35,13 @@ use sc_consensus::ImportQueue; use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; use sc_network::NetworkBlock; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; -use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; +#[cfg(not(feature = "tanssi"))] +use sc_telemetry::TelemetryHandle; +use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; +#[cfg(not(feature = "tanssi"))] use sp_keystore::KeystorePtr; +#[cfg(not(feature = "tanssi"))] use substrate_prometheus_endpoint::Registry; type ParachainExecutor = WasmExecutor; @@ -104,15 +114,23 @@ pub fn new_partial(config: &Configuration) -> Result client.clone(), ); - let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); - - let import_queue = build_import_queue( - client.clone(), - block_import.clone(), - config, - telemetry.as_ref().map(|telemetry| telemetry.handle()), - &task_manager, - )?; + #[cfg(feature = "tanssi")] + let (block_import, import_queue) = + import_queue(config, client.clone(), backend.clone(), &task_manager); + #[cfg(not(feature = "tanssi"))] + let (block_import, import_queue) = { + let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + ( + block_import.clone(), + build_import_queue( + client.clone(), + block_import, + config, + telemetry.as_ref().map(|telemetry| telemetry.handle()), + &task_manager, + )?, + ) + }; Ok(PartialComponents { backend, @@ -140,7 +158,10 @@ async fn start_node_impl( let parachain_config = prepare_node_config(parachain_config); let params = new_partial(¶chain_config)?; + #[cfg(not(feature = "tanssi"))] let (block_import, mut telemetry, telemetry_worker_handle) = params.other; + #[cfg(feature = "tanssi")] + let (_, mut telemetry, telemetry_worker_handle) = params.other; let net_config = sc_network::config::FullNetworkConfiguration::< _, _, @@ -151,7 +172,7 @@ async fn start_node_impl( let backend = params.backend.clone(); let mut task_manager = params.task_manager; - let (relay_chain_interface, collator_key) = build_relay_chain_interface( + let relay_chain_interface = build_relay_chain_interface( polkadot_config, ¶chain_config, telemetry_worker_handle, @@ -162,7 +183,13 @@ async fn start_node_impl( .await .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; + #[cfg(not(feature = "tanssi"))] + let (relay_chain_interface, collator_key) = relay_chain_interface; + #[cfg(feature = "tanssi")] + let (relay_chain_interface, _) = relay_chain_interface; + let validator = parachain_config.role.is_authority(); + #[cfg(not(feature = "tanssi"))] let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); @@ -291,6 +318,7 @@ async fn start_node_impl( sync_service: sync_service.clone(), })?; + #[cfg(not(feature = "tanssi"))] if validator { start_consensus( client.clone(), @@ -316,7 +344,37 @@ async fn start_node_impl( Ok((task_manager, client)) } +#[cfg(feature = "tanssi")] +pub fn import_queue( + parachain_config: &Configuration, + client: Arc, + backend: Arc, + task_manager: &TaskManager, +) -> (ParachainBlockImport, sc_consensus::BasicQueue) { + // The nimbus import queue ONLY checks the signature correctness + // Any other checks corresponding to the author-correctness should be done + // in the runtime + let block_import = ParachainBlockImport::new(client.clone(), backend); + + let import_queue = nimbus_consensus::import_queue( + client, + block_import.clone(), + move |_, _| async move { + let time = sp_timestamp::InherentDataProvider::from_system_time(); + + Ok((time,)) + }, + &task_manager.spawn_essential_handle(), + parachain_config.prometheus_registry(), + false, + ) + .expect("function never fails"); + + (block_import, import_queue) +} + /// Build the import queue for the parachain runtime. +#[cfg(not(feature = "tanssi"))] fn build_import_queue( client: Arc, block_import: ParachainBlockImport, @@ -343,6 +401,7 @@ fn build_import_queue( )) } +#[cfg(not(feature = "tanssi"))] fn start_consensus( client: Arc, #[cfg(feature = "async-backing")] backend: Arc, diff --git a/generic-template/runtime/Cargo.toml b/generic-template/runtime/Cargo.toml index 024fddd0..67e7caf9 100644 --- a/generic-template/runtime/Cargo.toml +++ b/generic-template/runtime/Cargo.toml @@ -5,7 +5,7 @@ description = "A generic parachain runtime template" edition = { workspace = true } license = { workspace = true } repository = { workspace = true } -version = "2.0.0" +version = "3.0.0" [package.metadata.docs.rs] targets = [ "x86_64-unknown-linux-gnu" ] @@ -17,8 +17,8 @@ parity-scale-codec = { workspace = true, features = [ "derive" ] } scale-info = { workspace = true, features = [ "derive" ] } smallvec = { workspace = true } -openzeppelin-polkadot-wrappers = { workspace = true } -openzeppelin-polkadot-wrappers-proc = { workspace = true } +openzeppelin-pallet-abstractions = { workspace = true } +openzeppelin-pallet-abstractions-proc = { workspace = true } # Substrate frame-benchmarking = { workspace = true, optional = true } @@ -30,8 +30,6 @@ frame-system-benchmarking = { workspace = true, optional = true } frame-system-rpc-runtime-api = { workspace = true } frame-try-runtime = { workspace = true, optional = true } pallet-assets = { workspace = true } -pallet-aura = { workspace = true } -pallet-authorship = { workspace = true } pallet-balances = { workspace = true } pallet-conviction-voting = { workspace = true } pallet-message-queue = { workspace = true } @@ -40,7 +38,6 @@ pallet-preimage = { workspace = true } pallet-proxy = { workspace = true } pallet-referenda = { workspace = true } pallet-scheduler = { workspace = true } -pallet-session = { workspace = true } pallet-sudo = { workspace = true } pallet-timestamp = { workspace = true } pallet-transaction-payment = { workspace = true } @@ -62,6 +59,12 @@ sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } +cumulus-pallet-aura-ext = { workspace = true } +pallet-aura = { workspace = true } +pallet-authorship = { workspace = true } +pallet-collator-selection = { workspace = true } +pallet-session = { workspace = true } + # Polkadot pallet-xcm = { workspace = true } polkadot-parachain-primitives = { workspace = true } @@ -72,7 +75,6 @@ xcm-executor = { workspace = true } # Cumulus assets-common = { workspace = true } -cumulus-pallet-aura-ext = { workspace = true } cumulus-pallet-parachain-system = { workspace = true } cumulus-pallet-session-benchmarking = { workspace = true } cumulus-pallet-xcm = { workspace = true } @@ -80,8 +82,8 @@ cumulus-pallet-xcmp-queue = { workspace = true } cumulus-primitives-aura = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-storage-weight-reclaim = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } cumulus-primitives-utility = { workspace = true } -pallet-collator-selection = { workspace = true } parachain-info = { workspace = true } parachains-common = { workspace = true } @@ -92,9 +94,14 @@ pallet-xcm-weight-trader = { workspace = true } xcm-primitives = { workspace = true } # ORML +dp-consensus = { workspace = true } +nimbus-primitives = { workspace = true } orml-traits = { workspace = true } orml-xcm-support = { workspace = true } orml-xtokens = { workspace = true } +pallet-author-inherent = { workspace = true } +# Tanssi +pallet-cc-authorities-noting = { workspace = true } [dev-dependencies] polkadot-runtime-parachains = { workspace = true } @@ -116,7 +123,9 @@ std = [ "cumulus-primitives-aura/std", "cumulus-primitives-core/std", "cumulus-primitives-storage-weight-reclaim/std", + "cumulus-primitives-timestamp/std", "cumulus-primitives-utility/std", + "dp-consensus/std", "frame-benchmarking?/std", "frame-executive/std", "frame-metadata-hash-extension/std", @@ -126,13 +135,16 @@ std = [ "frame-system/std", "frame-try-runtime?/std", "log/std", - "openzeppelin-polkadot-wrappers/std", + "nimbus-primitives/std", + "openzeppelin-pallet-abstractions/std", "orml-xtokens/std", "pallet-asset-manager/std", "pallet-assets/std", "pallet-aura/std", + "pallet-author-inherent/std", "pallet-authorship/std", "pallet-balances/std", + "pallet-cc-authorities-noting/std", "pallet-collator-selection/std", "pallet-conviction-voting/std", "pallet-message-queue/std", @@ -183,15 +195,18 @@ runtime-benchmarks = [ "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", "cumulus-primitives-utility/runtime-benchmarks", + "dp-consensus/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "hex-literal", + "nimbus-primitives/runtime-benchmarks", "pallet-asset-manager/runtime-benchmarks", "pallet-assets/runtime-benchmarks", + "pallet-author-inherent/runtime-benchmarks", "pallet-balances/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", + "pallet-cc-authorities-noting/runtime-benchmarks", "pallet-conviction-voting/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", @@ -224,12 +239,14 @@ try-runtime = [ "frame-support/try-runtime", "frame-system/try-runtime", "frame-try-runtime/try-runtime", + "nimbus-primitives/try-runtime", "orml-xtokens/try-runtime", "pallet-asset-manager/try-runtime", "pallet-assets/try-runtime", "pallet-aura/try-runtime", - "pallet-authorship/try-runtime", + "pallet-author-inherent/try-runtime", "pallet-balances/try-runtime", + "pallet-cc-authorities-noting/try-runtime", "pallet-collator-selection/try-runtime", "pallet-conviction-voting/try-runtime", "pallet-message-queue/try-runtime", @@ -238,8 +255,6 @@ try-runtime = [ "pallet-proxy/try-runtime", "pallet-referenda/try-runtime", "pallet-scheduler/try-runtime", - "pallet-session/try-runtime", - "pallet-session/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", "pallet-transaction-payment/try-runtime", @@ -259,8 +274,10 @@ try-runtime = [ # to make it smaller, like logging for example. on-chain-release-build = [ "sp-api/disable-logging" ] -async-backing = [ "openzeppelin-polkadot-wrappers-proc/async-backing" ] +async-backing = [ "openzeppelin-pallet-abstractions-proc/async-backing" ] default = [ "std" ] metadata-hash = [ "substrate-wasm-builder/metadata-hash" ] + +tanssi = [] diff --git a/generic-template/runtime/src/apis.rs b/generic-template/runtime/src/apis.rs index 86374869..0463f1c6 100644 --- a/generic-template/runtime/src/apis.rs +++ b/generic-template/runtime/src/apis.rs @@ -1,11 +1,14 @@ -use openzeppelin_polkadot_wrappers_proc::openzeppelin_runtime_apis; +use openzeppelin_pallet_abstractions_proc::openzeppelin_runtime_apis; -#[cfg(feature = "runtime-benchmarks")] -use crate::constants::currency::{CENTS, EXISTENTIAL_DEPOSIT}; -#[cfg(not(feature = "async-backing"))] +#[cfg(all(not(feature = "async-backing"), not(feature = "tanssi")))] use crate::Aura; +#[cfg(feature = "runtime-benchmarks")] +use crate::{ + configs::xcm_config::RelayLocation, + constants::currency::{CENTS, EXISTENTIAL_DEPOSIT}, +}; #[cfg(feature = "async-backing")] -use crate::{configs::XcmExecutorConfig, constants::SLOT_DURATION, types::ConsensusHook}; +use crate::{constants::SLOT_DURATION, types::ConsensusHook}; use crate::{ constants::VERSION, types::{AccountId, Balance, Block, Executive, Nonce}, @@ -16,19 +19,18 @@ use crate::{ #[cfg(feature = "runtime-benchmarks")] type ExistentialDeposit = sp_core::ConstU128; +#[cfg(not(feature = "tanssi"))] #[openzeppelin_runtime_apis] mod apis { type Runtime = Runtime; type Block = Block; - #[abstraction] mod assets { type RuntimeCall = RuntimeCall; type TransactionPayment = TransactionPayment; type Balance = Balance; } - #[abstraction] mod consensus { type SessionKeys = SessionKeys; #[cfg(not(feature = "async-backing"))] @@ -39,7 +41,6 @@ mod apis { type ConsensusHook = ConsensusHook; } - #[abstraction] mod system { type Executive = Executive; type System = System; @@ -51,7 +52,54 @@ mod apis { type RuntimeBlockWeights = RuntimeBlockWeights; } - #[abstraction] + mod benchmarks { + type AllPalletsWithSystem = AllPalletsWithSystem; + type Assets = Assets; + type AssetManager = AssetManager; + type AssetType = AssetType; + type RuntimeOrigin = RuntimeOrigin; + type RelayLocation = RelayLocation; + type ParachainSystem = ParachainSystem; + type System = System; + type ExistentialDeposit = ExistentialDeposit; + type AssetId = AssetId; + type XCMConfig = XcmExecutorConfig; + type AccountId = AccountId; + type Cents = CENTS; + type FeeAssetId = FeeAssetId; + type TransactionByteFee = TransactionByteFee; + type Address = Address; + type Balances = Balances; + } +} + +#[cfg(feature = "tanssi")] +#[openzeppelin_runtime_apis] +mod apis { + type Runtime = Runtime; + type Block = Block; + + mod assets { + type RuntimeCall = RuntimeCall; + type TransactionPayment = TransactionPayment; + type Balance = Balance; + } + + mod tanssi { + type SessionKeys = SessionKeys; + } + + mod system { + type Executive = Executive; + type System = System; + type ParachainSystem = ParachainSystem; + type RuntimeVersion = VERSION; + type AccountId = AccountId; + type Nonce = Nonce; + type RuntimeGenesisConfig = RuntimeGenesisConfig; + type RuntimeBlockWeights = RuntimeBlockWeights; + } + mod benchmarks { type AllPalletsWithSystem = AllPalletsWithSystem; type Assets = Assets; diff --git a/generic-template/runtime/src/configs/mod.rs b/generic-template/runtime/src/configs/mod.rs index fa185105..aa6d5989 100644 --- a/generic-template/runtime/src/configs/mod.rs +++ b/generic-template/runtime/src/configs/mod.rs @@ -1,14 +1,19 @@ pub mod asset_config; pub use asset_config::AssetType; pub mod governance; +pub mod weight; pub mod xcm_config; use asset_config::*; +#[cfg(feature = "tanssi")] +use cumulus_pallet_parachain_system::ExpectParentIncluded; #[cfg(feature = "async-backing")] use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; #[cfg(not(feature = "async-backing"))] use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +#[cfg(not(feature = "tanssi"))] +use frame_support::PalletId; use frame_support::{ derive_impl, dispatch::DispatchClass, @@ -18,7 +23,6 @@ use frame_support::{ EitherOfDiverse, Everything, Nothing, TransformOrigin, }, weights::{ConstantMultiplier, Weight}, - PalletId, }; use frame_system::{ limits::{BlockLength, BlockWeights}, @@ -26,13 +30,20 @@ use frame_system::{ }; pub use governance::origins::pallet_custom_origins; use governance::{origins::Treasurer, tracks, Spender, WhitelistedCaller}; -use openzeppelin_polkadot_wrappers::{ - impl_openzeppelin_assets, impl_openzeppelin_consensus, impl_openzeppelin_governance, - impl_openzeppelin_system, impl_openzeppelin_xcm, AssetsConfig, ConsensusConfig, - GovernanceConfig, SystemConfig, XcmConfig, +use openzeppelin_pallet_abstractions::{ + impl_openzeppelin_assets, impl_openzeppelin_governance, impl_openzeppelin_system, + impl_openzeppelin_xcm, AssetsConfig, AssetsWeight, GovernanceConfig, GovernanceWeight, + SystemConfig, SystemWeight, XcmConfig, XcmWeight, }; +#[cfg(not(feature = "tanssi"))] +use openzeppelin_pallet_abstractions::{ + impl_openzeppelin_consensus, ConsensusConfig, ConsensusWeight, +}; +#[cfg(feature = "tanssi")] +use openzeppelin_pallet_abstractions::{impl_openzeppelin_tanssi, TanssiConfig, TanssiWeight}; use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; +#[cfg(not(feature = "tanssi"))] use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_runtime::{ traits::{AccountIdLookup, BlakeTwo256, IdentityLookup}, @@ -53,37 +64,54 @@ use xcm_primitives::{AbsoluteAndRelativeReserve, AsAssetType}; #[cfg(feature = "runtime-benchmarks")] use crate::benchmark::{OpenHrmpChannel, PayWithEnsure}; +#[cfg(not(feature = "tanssi"))] +use crate::{ + constants::HOURS, + types::{BlockNumber, CollatorSelectionUpdateOrigin, ConsensusHook}, + SessionKeys, +}; use crate::{ constants::{ currency::{deposit, CENTS, EXISTENTIAL_DEPOSIT, MICROCENTS}, - AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, MAX_BLOCK_LENGTH, - NORMAL_DISPATCH_RATIO, + AVERAGE_ON_INITIALIZE_RATIO, DAYS, MAXIMUM_BLOCK_WEIGHT, MAX_BLOCK_LENGTH, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, }, types::{ - AccountId, AssetId, AssetKind, Balance, Beneficiary, Block, BlockNumber, - CollatorSelectionUpdateOrigin, ConsensusHook, Hash, MessageQueueServiceWeight, Nonce, - PriceForSiblingParachainDelivery, ProxyType, TreasuryAccount, TreasuryInteriorLocation, - TreasuryPalletId, TreasuryPaymaster, Version, + AccountId, AssetId, AssetKind, Balance, Beneficiary, Block, Hash, + MessageQueueServiceWeight, Nonce, PriceForSiblingParachainDelivery, ProxyType, + TreasuryAccount, TreasuryInteriorLocation, TreasuryPalletId, TreasuryPaymaster, Version, }, - weights::{self, BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, - AllPalletsWithSystem, AssetManager, Aura, Balances, CollatorSelection, MessageQueue, - OriginCaller, PalletInfo, ParachainInfo, ParachainSystem, PolkadotXcm, Preimage, Referenda, - Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, - RuntimeTask, Scheduler, Session, SessionKeys, System, Treasury, WeightToFee, XcmpQueue, + weights::{BlockExecutionWeight, ExtrinsicBaseWeight}, + AllPalletsWithSystem, AssetManager, Balances, MessageQueue, OriginCaller, PalletInfo, + ParachainInfo, ParachainSystem, PolkadotXcm, Preimage, Referenda, Runtime, RuntimeCall, + RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Scheduler, + System, Treasury, WeightToFee, XcmpQueue, }; +#[cfg(not(feature = "tanssi"))] +use crate::{Aura, CollatorSelection, Session}; // OpenZeppelin runtime wrappers configuration pub struct OpenZeppelinRuntime; impl SystemConfig for OpenZeppelinRuntime { type AccountId = AccountId; + #[cfg(feature = "tanssi")] + type ConsensusHook = ExpectParentIncluded; + #[cfg(not(feature = "tanssi"))] + type ConsensusHook = ConsensusHook; type ExistentialDeposit = ConstU128; type Lookup = AccountIdLookup; + #[cfg(feature = "tanssi")] + type OnTimestampSet = (); + #[cfg(not(feature = "tanssi"))] + type OnTimestampSet = Aura; type PreimageOrigin = EnsureRoot; type ProxyType = ProxyType; type SS58Prefix = ConstU16<42>; type ScheduleOrigin = EnsureRoot; + type SlotDuration = ConstU64; type Version = Version; } +#[cfg(not(feature = "tanssi"))] impl ConsensusConfig for OpenZeppelinRuntime { type CollatorSelectionUpdateOrigin = CollatorSelectionUpdateOrigin; } @@ -162,7 +190,11 @@ impl AssetsConfig for OpenZeppelinRuntime { type WeightToFee = WeightToFee; } impl_openzeppelin_system!(OpenZeppelinRuntime); +#[cfg(not(feature = "tanssi"))] impl_openzeppelin_consensus!(OpenZeppelinRuntime); impl_openzeppelin_governance!(OpenZeppelinRuntime); impl_openzeppelin_xcm!(OpenZeppelinRuntime); impl_openzeppelin_assets!(OpenZeppelinRuntime); + +#[cfg(feature = "tanssi")] +impl_openzeppelin_tanssi!(); diff --git a/generic-template/runtime/src/configs/weight.rs b/generic-template/runtime/src/configs/weight.rs new file mode 100644 index 00000000..8b72cffb --- /dev/null +++ b/generic-template/runtime/src/configs/weight.rs @@ -0,0 +1,56 @@ +#[cfg(not(feature = "tanssi"))] +use openzeppelin_pallet_abstractions::ConsensusWeight; +#[cfg(feature = "tanssi")] +use openzeppelin_pallet_abstractions::TanssiWeight; +use openzeppelin_pallet_abstractions::{AssetsWeight, GovernanceWeight, SystemWeight, XcmWeight}; + +use crate::{ + configs::OpenZeppelinRuntime, + weights::{self, RocksDbWeight}, + Runtime, +}; + +impl SystemWeight for OpenZeppelinRuntime { + type Balances = weights::pallet_balances::WeightInfo; + type DbWeight = RocksDbWeight; + type Multisig = weights::pallet_multisig::WeightInfo; + type ParachainSystem = weights::cumulus_pallet_parachain_system::WeightInfo; + type Preimage = weights::pallet_preimage::WeightInfo; + type Proxy = weights::pallet_proxy::WeightInfo; + type Scheduler = weights::pallet_scheduler::WeightInfo; + type Timestamp = weights::pallet_timestamp::WeightInfo; + type Utility = weights::pallet_utility::WeightInfo; +} + +#[cfg(not(feature = "tanssi"))] +impl ConsensusWeight for OpenZeppelinRuntime { + type CollatorSelection = weights::pallet_collator_selection::WeightInfo; + type Session = weights::pallet_session::WeightInfo; +} + +impl AssetsWeight for OpenZeppelinRuntime { + type AssetManager = weights::pallet_asset_manager::WeightInfo; + type Assets = weights::pallet_assets::WeightInfo; +} + +impl GovernanceWeight for OpenZeppelinRuntime { + type ConvictionVoting = weights::pallet_conviction_voting::WeightInfo; + type Referenda = weights::pallet_referenda::WeightInfo; + type Sudo = weights::pallet_sudo::WeightInfo; + type Treasury = weights::pallet_treasury::WeightInfo; + type Whitelist = weights::pallet_whitelist::WeightInfo; +} + +impl XcmWeight for OpenZeppelinRuntime { + type MessageQueue = weights::pallet_message_queue::WeightInfo; + type Xcm = weights::pallet_xcm::WeightInfo; + type XcmTransactor = weights::pallet_xcm_transactor::WeightInfo; + type XcmWeightTrader = weights::pallet_xcm_weight_trader::WeightInfo; + type XcmpQueue = weights::cumulus_pallet_xcmp_queue::WeightInfo; +} + +#[cfg(feature = "tanssi")] +impl TanssiWeight for OpenZeppelinRuntime { + type AuthorInherent = pallet_author_inherent::weights::SubstrateWeight; + type AuthoritiesNoting = pallet_cc_authorities_noting::weights::SubstrateWeight; +} diff --git a/generic-template/runtime/src/lib.rs b/generic-template/runtime/src/lib.rs index c5de0281..a690c6f4 100644 --- a/generic-template/runtime/src/lib.rs +++ b/generic-template/runtime/src/lib.rs @@ -90,12 +90,18 @@ pub mod opaque { pub type Hash = ::Output; } +#[cfg(not(feature = "tanssi"))] impl_opaque_keys! { pub struct SessionKeys { pub aura: Aura, } } +#[cfg(feature = "tanssi")] +impl_opaque_keys! { + pub struct SessionKeys { } +} + /// The version information used to identify this runtime when compiled /// natively. #[cfg(feature = "std")] @@ -105,23 +111,34 @@ pub fn native_version() -> NativeVersion { NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } -use openzeppelin_polkadot_wrappers_proc::openzeppelin_construct_runtime; +use openzeppelin_pallet_abstractions_proc::openzeppelin_construct_runtime; + +#[cfg(feature = "tanssi")] #[openzeppelin_construct_runtime] mod runtime { - #[abstraction] struct System; - #[abstraction] - struct Consensus; + struct XCM; + + struct Assets; + + struct Governance; + + struct Tanssi; +} + +#[cfg(not(feature = "tanssi"))] +#[openzeppelin_construct_runtime] +mod runtime { + struct System; - #[abstraction] struct XCM; - #[abstraction] struct Assets; - #[abstraction] struct Governance; + + struct Consensus; } #[cfg(test)] diff --git a/generic-template/runtime/src/types.rs b/generic-template/runtime/src/types.rs index c58bbe6f..3946a1c6 100644 --- a/generic-template/runtime/src/types.rs +++ b/generic-template/runtime/src/types.rs @@ -1,10 +1,9 @@ -use frame_support::{ - parameter_types, - traits::{EitherOfDiverse, InstanceFilter}, - weights::Weight, - PalletId, -}; +#[cfg(not(feature = "tanssi"))] +use frame_support::traits::EitherOfDiverse; +use frame_support::{parameter_types, traits::InstanceFilter, weights::Weight, PalletId}; +#[cfg(not(feature = "tanssi"))] use frame_system::EnsureRoot; +#[cfg(not(feature = "tanssi"))] use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use polkadot_runtime_common::impls::{ @@ -29,14 +28,15 @@ use crate::{ constants::{HOURS, VERSION}, Treasury, }; -pub use crate::{ - configs::{ - xcm_config::RelayLocation, FeeAssetId, StakingAdminBodyId, ToSiblingBaseDeliveryFee, - TransactionByteFee, - }, +#[cfg(not(feature = "tanssi"))] +use crate::{ + configs::{xcm_config::RelayLocation, StakingAdminBodyId}, constants::{ BLOCK_PROCESSING_VELOCITY, RELAY_CHAIN_SLOT_DURATION_MILLIS, UNINCLUDED_SEGMENT_CAPACITY, }, +}; +pub use crate::{ + configs::{FeeAssetId, ToSiblingBaseDeliveryFee, TransactionByteFee}, AllPalletsWithSystem, Runtime, RuntimeBlockWeights, RuntimeCall, XcmpQueue, }; @@ -107,14 +107,8 @@ pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender: XcmpQueue, >; -/// We allow root and the StakingAdmin to execute privileged collator selection -/// operations. -pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< - EnsureRoot, - EnsureXcm>, ->; - /// Configures the number of blocks that can be created without submission of validity proof to the relay chain +#[cfg(not(feature = "tanssi"))] pub type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -122,6 +116,14 @@ pub type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< UNINCLUDED_SEGMENT_CAPACITY, >; +/// We allow root and the StakingAdmin to execute privileged collator selection +/// operations. +#[cfg(not(feature = "tanssi"))] +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + /// These aliases are describing the Beneficiary and AssetKind for the Treasury pallet pub type Beneficiary = VersionedLocation; pub type AssetKind = VersionedLocatableAsset; @@ -162,6 +164,7 @@ pub enum ProxyType { NonTransfer, /// Allows to finish the proxy CancelProxy, + #[cfg(not(feature = "tanssi"))] /// Allows to operate with collators list (invulnerables, candidates, etc.) Collator, } @@ -176,6 +179,7 @@ impl InstanceFilter for ProxyType { RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) | RuntimeCall::Multisig { .. } ), + #[cfg(not(feature = "tanssi"))] ProxyType::Collator => { matches!(c, RuntimeCall::CollatorSelection { .. } | RuntimeCall::Multisig { .. }) } diff --git a/generic-template/runtime/src/weights/mod.rs b/generic-template/runtime/src/weights/mod.rs index 693234ca..88006493 100644 --- a/generic-template/runtime/src/weights/mod.rs +++ b/generic-template/runtime/src/weights/mod.rs @@ -24,6 +24,7 @@ pub mod extrinsic_weights; pub mod pallet_asset_manager; pub mod pallet_assets; pub mod pallet_balances; +#[cfg(not(feature = "tanssi"))] pub mod pallet_collator_selection; pub mod pallet_conviction_voting; pub mod pallet_message_queue; @@ -32,6 +33,7 @@ pub mod pallet_preimage; pub mod pallet_proxy; pub mod pallet_referenda; pub mod pallet_scheduler; +#[cfg(not(feature = "tanssi"))] pub mod pallet_session; pub mod pallet_sudo; pub mod pallet_timestamp; diff --git a/generic-template/runtime/src/weights/pallet_collator_selection.rs b/generic-template/runtime/src/weights/pallet_collator_selection.rs index 41c3bf76..48b8938a 100644 --- a/generic-template/runtime/src/weights/pallet_collator_selection.rs +++ b/generic-template/runtime/src/weights/pallet_collator_selection.rs @@ -1,4 +1,3 @@ - //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 42.0.0 @@ -21,242 +20,253 @@ // --chain=dev // --output=benchmarking/new-benchmarks/pallet_collator_selection.rs -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] +// #![cfg_attr(rustfmt, rustfmt_skip)] +// #![allow(unused_parens)] +// #![allow(unused_imports)] +// #![allow(missing_docs)] -use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; +use frame_support::{traits::Get, weights::Weight}; + /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:20 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 20]`. - fn set_invulnerables(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `197 + b * (79 ±0)` - // Estimated: `1188 + b * (2555 ±0)` - // Minimum execution time: 15_225_000 picoseconds. - Weight::from_parts(11_571_267, 0) - .saturating_add(Weight::from_parts(0, 1188)) - // Standard Error: 5_469 - .saturating_add(Weight::from_parts(4_047_420, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) - } - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `b` is `[1, 19]`. - /// The range of component `c` is `[1, 99]`. - fn add_invulnerable(b: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `828 + b * (32 ±0) + c * (53 ±0)` - // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` - // Minimum execution time: 51_115_000 picoseconds. - Weight::from_parts(46_321_661, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 18_486 - .saturating_add(Weight::from_parts(346_609, 0).saturating_mul(b.into())) - // Standard Error: 3_504 - .saturating_add(Weight::from_parts(202_188, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) - .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::CandidateList` (r:1 w:0) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// The range of component `b` is `[5, 20]`. - fn remove_invulnerable(b: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `153 + b * (32 ±0)` - // Estimated: `6287` - // Minimum execution time: 14_756_000 picoseconds. - Weight::from_parts(14_469_493, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_837 - .saturating_add(Weight::from_parts(214_011, 0).saturating_mul(b.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn set_desired_candidates() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 6_561_000 picoseconds. - Weight::from_parts(6_777_000, 0) - .saturating_add(Weight::from_parts(0, 0)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:1) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:100 w:100) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:100) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[0, 100]`. - /// The range of component `k` is `[0, 100]`. - fn set_candidacy_bond(c: u32, k: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `0 + c * (182 ±0) + k * (115 ±0)` - // Estimated: `6287 + c * (901 ±29) + k * (901 ±29)` - // Minimum execution time: 13_013_000 picoseconds. - Weight::from_parts(13_150_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 212_739 - .saturating_add(Weight::from_parts(7_127_589, 0).saturating_mul(c.into())) - // Standard Error: 212_739 - .saturating_add(Weight::from_parts(6_784_046, 0).saturating_mul(k.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) - .saturating_add(Weight::from_parts(0, 901).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 901).saturating_mul(k.into())) - } - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn update_bond(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `356 + c * (49 ±0)` - // Estimated: `6287` - // Minimum execution time: 34_412_000 picoseconds. - Weight::from_parts(37_538_467, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 2_658 - .saturating_add(Weight::from_parts(140_363, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[1, 99]`. - fn register_as_candidate(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `799 + c * (52 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 45_366_000 picoseconds. - Weight::from_parts(49_711_930, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_239 - .saturating_add(Weight::from_parts(180_195, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) - /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) - /// Storage: `Session::NextKeys` (r:1 w:0) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:2) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn take_candidate_slot(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `939 + c * (53 ±0)` - // Estimated: `6287 + c * (54 ±0)` - // Minimum execution time: 68_436_000 picoseconds. - Weight::from_parts(73_112_305, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 4_118 - .saturating_add(Weight::from_parts(214_419, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) - } - /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// The range of component `c` is `[3, 100]`. - fn leave_intent(c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `381 + c * (48 ±0)` - // Estimated: `6287` - // Minimum execution time: 37_349_000 picoseconds. - Weight::from_parts(41_362_337, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 3_309 - .saturating_add(Weight::from_parts(158_689, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `System::Account` (r:2 w:2) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - fn note_author() -> Weight { - // Proof Size summary in bytes: - // Measured: `192` - // Estimated: `6196` - // Minimum execution time: 56_862_000 picoseconds. - Weight::from_parts(57_890_000, 0) - .saturating_add(Weight::from_parts(0, 6196)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(3)) - } - /// Storage: `CollatorSelection::CandidateList` (r:1 w:0) - /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) - /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) - /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) - /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) - /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:97 w:97) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - /// The range of component `r` is `[1, 100]`. - /// The range of component `c` is `[1, 100]`. - fn new_session(r: u32, c: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `2369 + c * (97 ±0) + r * (114 ±0)` - // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` - // Minimum execution time: 23_061_000 picoseconds. - Weight::from_parts(23_816_000, 0) - .saturating_add(Weight::from_parts(0, 6287)) - // Standard Error: 378_020 - .saturating_add(Weight::from_parts(16_325_603, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) - .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) - .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) - .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) - } + /// Storage: `Session::NextKeys` (r:20 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 20]`. + fn set_invulnerables(b: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `197 + b * (79 ±0)` + // Estimated: `1188 + b * (2555 ±0)` + // Minimum execution time: 15_225_000 picoseconds. + Weight::from_parts(11_571_267, 0) + .saturating_add(Weight::from_parts(0, 1188)) + // Standard Error: 5_469 + .saturating_add(Weight::from_parts(4_047_420, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2555).saturating_mul(b.into())) + } + + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 19]`. + /// The range of component `c` is `[1, 99]`. + fn add_invulnerable(b: u32, c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `828 + b * (32 ±0) + c * (53 ±0)` + // Estimated: `6287 + b * (37 ±0) + c * (53 ±0)` + // Minimum execution time: 51_115_000 picoseconds. + Weight::from_parts(46_321_661, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 18_486 + .saturating_add(Weight::from_parts(346_609, 0).saturating_mul(b.into())) + // Standard Error: 3_504 + .saturating_add(Weight::from_parts(202_188, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 37).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 53).saturating_mul(c.into())) + } + + /// Storage: `CollatorSelection::CandidateList` (r:1 w:0) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 20]`. + fn remove_invulnerable(b: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `153 + b * (32 ±0)` + // Estimated: `6287` + // Minimum execution time: 14_756_000 picoseconds. + Weight::from_parts(14_469_493, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_837 + .saturating_add(Weight::from_parts(214_011, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_561_000 picoseconds. + Weight::from_parts(6_777_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:100 w:100) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:100) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 100]`. + /// The range of component `k` is `[0, 100]`. + fn set_candidacy_bond(c: u32, k: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + c * (182 ±0) + k * (115 ±0)` + // Estimated: `6287 + c * (901 ±29) + k * (901 ±29)` + // Minimum execution time: 13_013_000 picoseconds. + Weight::from_parts(13_150_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 212_739 + .saturating_add(Weight::from_parts(7_127_589, 0).saturating_mul(c.into())) + // Standard Error: 212_739 + .saturating_add(Weight::from_parts(6_784_046, 0).saturating_mul(k.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) + .saturating_add(Weight::from_parts(0, 901).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 901).saturating_mul(k.into())) + } + + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn update_bond(c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `356 + c * (49 ±0)` + // Estimated: `6287` + // Minimum execution time: 34_412_000 picoseconds. + Weight::from_parts(37_538_467, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 2_658 + .saturating_add(Weight::from_parts(140_363, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 99]`. + fn register_as_candidate(c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `799 + c * (52 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 45_366_000 picoseconds. + Weight::from_parts(49_711_930, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_239 + .saturating_add(Weight::from_parts(180_195, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:2) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn take_candidate_slot(c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `939 + c * (53 ±0)` + // Estimated: `6287 + c * (54 ±0)` + // Minimum execution time: 68_436_000 picoseconds. + Weight::from_parts(73_112_305, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 4_118 + .saturating_add(Weight::from_parts(214_419, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(c.into())) + } + + /// Storage: `CollatorSelection::CandidateList` (r:1 w:1) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 100]`. + fn leave_intent(c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `381 + c * (48 ±0)` + // Estimated: `6287` + // Minimum execution time: 37_349_000 picoseconds. + Weight::from_parts(41_362_337, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 3_309 + .saturating_add(Weight::from_parts(158_689, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `192` + // Estimated: `6196` + // Minimum execution time: 56_862_000 picoseconds. + Weight::from_parts(57_890_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(3)) + } + + /// Storage: `CollatorSelection::CandidateList` (r:1 w:0) + /// Proof: `CollatorSelection::CandidateList` (`max_values`: Some(1), `max_size`: Some(4802), added: 5297, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:100 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(641), added: 1136, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:97 w:97) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `r` is `[1, 100]`. + /// The range of component `c` is `[1, 100]`. + fn new_session(r: u32, c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `2369 + c * (97 ±0) + r * (114 ±0)` + // Estimated: `6287 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 23_061_000 picoseconds. + Weight::from_parts(23_816_000, 0) + .saturating_add(Weight::from_parts(0, 6287)) + // Standard Error: 378_020 + .saturating_add(Weight::from_parts(16_325_603, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + } } diff --git a/generic-template/runtime/src/weights/pallet_session.rs b/generic-template/runtime/src/weights/pallet_session.rs index 1f52e9df..7c74d63f 100644 --- a/generic-template/runtime/src/weights/pallet_session.rs +++ b/generic-template/runtime/src/weights/pallet_session.rs @@ -1,4 +1,3 @@ - //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 42.0.0 @@ -21,43 +20,45 @@ // --chain=dev // --output=benchmarking/new-benchmarks/pallet_session.rs -#![cfg_attr(rustfmt, rustfmt_skip)] -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(missing_docs)] +// #![cfg_attr(rustfmt, rustfmt_skip)] +// #![allow(unused_parens)] +// #![allow(unused_imports)] +// #![allow(missing_docs)] -use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; +use frame_support::{traits::Get, weights::Weight}; + /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:1 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn set_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `298` - // Estimated: `3763` - // Minimum execution time: 21_646_000 picoseconds. - Weight::from_parts(21_946_000, 0) - .saturating_add(Weight::from_parts(0, 3763)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Session::NextKeys` (r:1 w:1) - /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) - /// Storage: `Session::KeyOwner` (r:0 w:1) - /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) - fn purge_keys() -> Weight { - // Proof Size summary in bytes: - // Measured: `280` - // Estimated: `3745` - // Minimum execution time: 15_321_000 picoseconds. - Weight::from_parts(15_898_000, 0) - .saturating_add(Weight::from_parts(0, 3745)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:1 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `298` + // Estimated: `3763` + // Minimum execution time: 21_646_000 picoseconds. + Weight::from_parts(21_946_000, 0) + .saturating_add(Weight::from_parts(0, 3763)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + + /// Storage: `Session::NextKeys` (r:1 w:1) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Session::KeyOwner` (r:0 w:1) + /// Proof: `Session::KeyOwner` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `280` + // Estimated: `3745` + // Minimum execution time: 15_321_000 picoseconds. + Weight::from_parts(15_898_000, 0) + .saturating_add(Weight::from_parts(0, 3745)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } } diff --git a/generic-template/runtime/tests/constants_test.rs b/generic-template/runtime/tests/constants_test.rs index fafae813..dd59d229 100644 --- a/generic-template/runtime/tests/constants_test.rs +++ b/generic-template/runtime/tests/constants_test.rs @@ -141,12 +141,7 @@ mod runtime_tests { fn assets_constants() { assert_eq!(::AssetDeposit::get(), 10 * CENTS); - // TODO: uncomment once patch is merged and updated RC is released and pointed to in deps - //assert_eq!(::AssetAccountDeposit::get(), deposit(1, 16)); - assert_eq!( - ::AssetAccountDeposit::get(), - EXISTENTIAL_DEPOSIT - ); + assert_eq!(::AssetAccountDeposit::get(), deposit(1, 16)); assert_eq!(::ApprovalDeposit::get(), EXISTENTIAL_DEPOSIT); @@ -237,7 +232,7 @@ mod runtime_tests { pallet_id_to_string(PalletId(*b"PotStake")) ); - assert_eq!(configs::Period::get(), 6 * HOURS); + assert_eq!(configs::SessionLength::get(), 6 * HOURS); assert_eq!(configs::StakingAdminBodyId::get(), BodyId::Defense); diff --git a/generic-template/template-fuzzer/Cargo.toml b/generic-template/template-fuzzer/Cargo.toml index 78434734..d157abf7 100644 --- a/generic-template/template-fuzzer/Cargo.toml +++ b/generic-template/template-fuzzer/Cargo.toml @@ -60,6 +60,7 @@ std = [ "sp-runtime/std", ] fuzzing = [] +tanssi = [] try-runtime = [ "frame-support/try-runtime", "frame-system/try-runtime", diff --git a/generic-template/template-fuzzer/src/main.rs b/generic-template/template-fuzzer/src/main.rs index 417fcb91..eff12afd 100644 --- a/generic-template/template-fuzzer/src/main.rs +++ b/generic-template/template-fuzzer/src/main.rs @@ -3,9 +3,11 @@ use std::{ time::{Duration, Instant}, }; +#[cfg(not(feature = "tanssi"))] +use frame_support::traits::Get; use frame_support::{ dispatch::GetDispatchInfo, - traits::{Get, IntegrityTest, TryState, TryStateSelect}, + traits::{IntegrityTest, TryState, TryStateSelect}, weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, }; use frame_system::Account; @@ -26,15 +28,21 @@ use sp_runtime::{ use sp_state_machine::BasicExternalities; fn generate_genesis(accounts: &[AccountId]) -> Storage { - use generic_runtime_template::{ - BalancesConfig, CollatorSelectionConfig, RuntimeGenesisConfig, SessionConfig, SessionKeys, - }; + use generic_runtime_template::{BalancesConfig, RuntimeGenesisConfig}; + #[cfg(not(feature = "tanssi"))] + use generic_runtime_template::{CollatorSelectionConfig, SessionConfig, SessionKeys}; + #[cfg(not(feature = "tanssi"))] use sp_consensus_aura::sr25519::AuthorityId as AuraId; - use sp_runtime::{app_crypto::ByteArray, BuildStorage}; + #[cfg(not(feature = "tanssi"))] + use sp_runtime::app_crypto::ByteArray; + use sp_runtime::BuildStorage; // Configure endowed accounts with initial balance of 1 << 60. let balances = accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(); + + #[cfg(not(feature = "tanssi"))] let invulnerables: Vec = vec![[0; 32].into()]; + #[cfg(not(feature = "tanssi"))] let session_keys = vec![( [0; 32].into(), [0; 32].into(), @@ -45,14 +53,14 @@ fn generate_genesis(accounts: &[AccountId]) -> Storage { RuntimeGenesisConfig { system: Default::default(), balances: BalancesConfig { balances }, - aura: Default::default(), + #[cfg(not(feature = "tanssi"))] session: SessionConfig { keys: session_keys }, + #[cfg(not(feature = "tanssi"))] collator_selection: CollatorSelectionConfig { invulnerables, candidacy_bond: 1 << 57, desired_candidates: 1, }, - aura_ext: Default::default(), parachain_info: Default::default(), parachain_system: Default::default(), polkadot_xcm: Default::default(), @@ -294,6 +302,7 @@ fn recursive_call_filter(call: &RuntimeCall, origin: usize) -> bool { RuntimeCall::System( frame_system::Call::set_code { .. } | frame_system::Call::kill_prefix { .. }, ) => false, + #[cfg(not(feature = "tanssi"))] RuntimeCall::CollatorSelection( pallet_collator_selection::Call::set_desired_candidates { max }, ) => *max < ::MaxCandidates::get(),