From 386b07d2652b4b330702a8d813722f4838fa90d6 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Mon, 13 May 2024 17:08:51 +0200 Subject: [PATCH 01/39] First umbrella Signed-off-by: Oliver Tale-Yazdi --- .config/zepter.yaml | 6 +- Cargo.lock | 564 +++- Cargo.toml | 14 +- .../src/validate_block/implementation.rs | 2 + .../runtime/parachains/src/inclusion/mod.rs | 1 + substrate/bin/node/cli/Cargo.toml | 162 +- .../bin/node/cli/benches/block_production.rs | 2 + substrate/bin/node/cli/benches/executor.rs | 2 + .../bin/node/cli/benches/transaction_pool.rs | 1 + substrate/bin/node/cli/bin/main.rs | 1 + substrate/bin/node/cli/build.rs | 12 +- substrate/bin/node/cli/src/benchmarking.rs | 2 + substrate/bin/node/cli/src/chain_spec.rs | 6 +- substrate/bin/node/cli/src/cli.rs | 2 + substrate/bin/node/cli/src/command.rs | 4 +- substrate/bin/node/cli/src/service.rs | 7 +- substrate/bin/node/cli/tests/basic.rs | 1 + substrate/bin/node/cli/tests/common.rs | 3 +- substrate/bin/node/cli/tests/fees.rs | 1 + .../bin/node/cli/tests/submit_transaction.rs | 1 + substrate/bin/node/runtime/Cargo.toml | 385 +-- substrate/bin/node/runtime/src/assets_api.rs | 2 + substrate/bin/node/runtime/src/impls.rs | 14 +- substrate/bin/node/runtime/src/lib.rs | 12 +- .../client/chain-spec/derive/src/impls.rs | 22 +- .../solution-type/src/lib.rs | 11 +- .../frame/staking/reward-curve/src/lib.rs | 10 +- .../src/pallet/expand/tt_default_parts.rs | 2 +- .../support/procedural/src/runtime/mod.rs | 18 + .../frame/support/procedural/tools/src/lib.rs | 20 + .../primitives/api/proc-macro/src/utils.rs | 5 + umbrella/Cargo.toml | 2559 +++++++++++++++++ umbrella/src/lib.rs | 1129 ++++++++ 33 files changed, 4288 insertions(+), 695 deletions(-) create mode 100644 umbrella/Cargo.toml create mode 100644 umbrella/src/lib.rs diff --git a/.config/zepter.yaml b/.config/zepter.yaml index f701392d16b1..28a4018f5b38 100644 --- a/.config/zepter.yaml +++ b/.config/zepter.yaml @@ -25,9 +25,13 @@ workflows: '--show-path', '--quiet', ] - # Same as `check`, but with the `--fix` flag. + # The umbrella crate uses more features, so we to check those too: + check_umbrella: + - [ $check.0, '--features=serde,experimental,with-tracing,tuples-96', '-p=polkadot-sdk' ] + # Same as `check_*`, but with the `--fix` flag. default: - [ $check.0, '--fix' ] + - [ $check_umbrella.0, '--fix' ] # Will be displayed when any workflow fails: help: diff --git a/Cargo.lock b/Cargo.lock index d787d2fe08c2..1a78040a03db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7247,123 +7247,15 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "frame-benchmarking", - "frame-benchmarking-pallet-pov", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", "log", "node-primitives", - "pallet-alliance", - "pallet-asset-conversion", - "pallet-asset-conversion-ops", - "pallet-asset-conversion-tx-payment", - "pallet-asset-rate", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-broker", - "pallet-child-bounties", - "pallet-collective", - "pallet-contracts", - "pallet-conviction-voting", - "pallet-core-fellowship", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", "pallet-example-mbm", "pallet-example-tasks", - "pallet-fast-unstake", - "pallet-glutton", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-insecure-randomness-collective-flip", - "pallet-lottery", - "pallet-membership", - "pallet-message-queue", - "pallet-migrations", - "pallet-mixnet", - "pallet-mmr", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-parameters", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-remark", - "pallet-root-testing", - "pallet-safe-mode", - "pallet-salary", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-skip-feeless-payment", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-statement", - "pallet-sudo", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-transaction-storage", - "pallet-treasury", - "pallet-tx-pause", - "pallet-uniques", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", "parity-scale-codec", + "polkadot-sdk", "primitive-types", "scale-info", "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-mixnet", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-statement-store", - "sp-std 14.0.0", - "sp-storage 19.0.0", - "sp-transaction-pool", - "sp-version", "static_assertions", "substrate-wasm-builder", ] @@ -13839,43 +13731,449 @@ dependencies = [ ] [[package]] -name = "polkadot-sdk-docs" -version = "0.0.1" +name = "polkadot-sdk" +version = "1.9.0" dependencies = [ + "asset-hub-rococo-runtime", + "asset-hub-westend-runtime", + "asset-test-utils", + "assets-common", + "binary-merkle-tree", + "bp-asset-hub-rococo", + "bp-asset-hub-westend", + "bp-bridge-hub-cumulus", + "bp-bridge-hub-kusama", + "bp-bridge-hub-polkadot", + "bp-bridge-hub-rococo", + "bp-bridge-hub-westend", + "bp-header-chain", + "bp-kusama", + "bp-messages", + "bp-parachains", + "bp-polkadot", + "bp-polkadot-bulletin", + "bp-polkadot-core", + "bp-relayers", + "bp-rococo", + "bp-runtime", + "bp-test-utils", + "bp-westend", + "bp-xcm-bridge-hub", + "bp-xcm-bridge-hub-router", + "bridge-hub-common", + "bridge-hub-rococo-runtime", + "bridge-hub-test-utils", + "bridge-hub-westend-runtime", + "bridge-runtime-common", + "collectives-westend-runtime", + "contracts-rococo-runtime", + "coretime-rococo-runtime", + "coretime-westend-runtime", + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-consensus-relay-chain", + "cumulus-client-network", + "cumulus-client-parachain-inherent", + "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-solo-to-para", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-ping", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", - "docify", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "cumulus-relay-chain-inprocess-interface", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", + "cumulus-relay-chain-rpc-interface", + "cumulus-test-relay-sproof-builder", + "emulated-integration-tests-common", + "fork-tree", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-benchmarking-pallet-pov", + "frame-election-provider-solution-type", + "frame-election-provider-support", "frame-executive", + "frame-remote-externalities", "frame-support", + "frame-support-procedural", + "frame-support-procedural-tools", + "frame-support-procedural-tools-derive", "frame-system", - "kitchensink-runtime", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "generate-bags", + "glutton-westend-runtime", + "mmr-gadget", + "mmr-rpc", + "pallet-alliance", + "pallet-asset-conversion", + "pallet-asset-conversion-ops", + "pallet-asset-conversion-tx-payment", + "pallet-asset-rate", + "pallet-asset-tx-payment", "pallet-assets", + "pallet-atomic-swap", "pallet-aura", + "pallet-authority-discovery", "pallet-authorship", "pallet-babe", + "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bounties", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-parachains", + "pallet-bridge-relayers", "pallet-broker", + "pallet-child-bounties", + "pallet-collator-selection", "pallet-collective", + "pallet-collective-content", + "pallet-contracts", + "pallet-contracts-mock-network", + "pallet-contracts-proc-macro", + "pallet-contracts-uapi", + "pallet-conviction-voting", + "pallet-core-fellowship", "pallet-default-config-example", "pallet-democracy", + "pallet-dev-mode", + "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", + "pallet-elections-phragmen", + "pallet-example-basic", "pallet-example-offchain-worker", - "pallet-example-single-block-migrations", - "pallet-examples", + "pallet-example-split", + "pallet-example-tasks", + "pallet-fast-unstake", + "pallet-glutton", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-insecure-randomness-collective-flip", + "pallet-lottery", + "pallet-membership", + "pallet-message-queue", + "pallet-migrations", + "pallet-mixnet", + "pallet-mmr", "pallet-multisig", + "pallet-nft-fractionalization", "pallet-nfts", + "pallet-nfts-runtime-api", + "pallet-nis", + "pallet-node-authorization", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-paged-list", + "pallet-parameters", "pallet-preimage", "pallet-proxy", + "pallet-ranked-collective", + "pallet-recovery", "pallet-referenda", + "pallet-remark", + "pallet-root-offences", + "pallet-root-testing", + "pallet-safe-mode", + "pallet-salary", "pallet-scheduler", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-uniques", - "pallet-utility", - "parity-scale-codec", - "polkadot-sdk-frame", + "pallet-scored-pool", + "pallet-session", + "pallet-session-benchmarking", + "pallet-skip-feeless-payment", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-staking-reward-fn", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", + "pallet-statement", + "pallet-sudo", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-storage", + "pallet-treasury", + "pallet-tx-pause", + "pallet-uniques", + "pallet-utility", + "pallet-vesting", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-bridge-hub", + "pallet-xcm-bridge-hub-router", + "parachains-common", + "parachains-runtimes-test-utils", + "penpal-runtime", + "people-rococo-runtime", + "people-westend-runtime", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-cli", + "polkadot-collator-protocol", + "polkadot-core-primitives", + "polkadot-dispute-distribution", + "polkadot-erasure-coding", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", + "polkadot-node-core-pvf-checker", + "polkadot-node-core-pvf-common", + "polkadot-node-core-pvf-execute-worker", + "polkadot-node-core-pvf-prepare-worker", + "polkadot-node-core-runtime-api", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime-common", + "polkadot-runtime-metrics", + "polkadot-runtime-parachains", + "polkadot-service", + "polkadot-statement-distribution", + "polkadot-statement-table", + "rococo-parachain-runtime", + "rococo-runtime", + "rococo-runtime-constants", + "sc-allocator", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-chain-spec-derive", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", + "sc-consensus-manual-seal", + "sc-consensus-pow", + "sc-consensus-slots", + "sc-executor", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "sc-informant", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-light", + "sc-network-statement", + "sc-network-sync", + "sc-network-transactions", + "sc-network-types", + "sc-offchain", + "sc-proposer-metrics", + "sc-rpc", + "sc-rpc-api", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-service", + "sc-state-db", + "sc-statement-store", + "sc-storage-monitor", + "sc-sync-state-rpc", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-tracing-proc-macro", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "seedling-runtime", + "shell-runtime", + "slot-range-helper", + "snowbridge-beacon-primitives", + "snowbridge-core", + "snowbridge-ethereum", + "snowbridge-outbound-queue-merkle-tree", + "snowbridge-outbound-queue-runtime-api", + "snowbridge-pallet-ethereum-client", + "snowbridge-pallet-ethereum-client-fixtures", + "snowbridge-pallet-inbound-queue", + "snowbridge-pallet-inbound-queue-fixtures", + "snowbridge-pallet-outbound-queue", + "snowbridge-pallet-system", + "snowbridge-router-primitives", + "snowbridge-runtime-common", + "snowbridge-runtime-test-common", + "snowbridge-system-runtime-api", + "sp-api", + "sp-api-proc-macro", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", + "sp-consensus-pow", + "sp-consensus-slots", + "sp-core", + "sp-core-hashing", + "sp-core-hashing-proc-macro", + "sp-crypto-ec-utils 0.10.0", + "sp-crypto-hashing", + "sp-crypto-hashing-proc-macro", + "sp-database", + "sp-debug-derive 14.0.0", + "sp-externalities 0.25.0", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-keystore", + "sp-maybe-compressed-blob", + "sp-metadata-ir", + "sp-mixnet", + "sp-mmr-primitives", + "sp-npos-elections", + "sp-offchain", + "sp-panic-handler", + "sp-rpc", + "sp-runtime", + "sp-runtime-interface 24.0.0", + "sp-runtime-interface-proc-macro 17.0.0", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-statement-store", + "sp-std 14.0.0", + "sp-storage 19.0.0", + "sp-timestamp", + "sp-tracing 16.0.0", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "sp-version-proc-macro", + "sp-wasm-interface 20.0.0", + "sp-weights", + "staging-node-inspect", + "staging-parachain-info", + "staging-tracking-allocator", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "subkey", + "substrate-bip39", + "substrate-build-script-utils", + "substrate-frame-cli", + "substrate-frame-rpc-support", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "substrate-rpc-client", + "substrate-state-trie-migration-rpc", + "substrate-wasm-builder", + "testnet-parachains-constants", + "tracing-gum", + "tracing-gum-proc-macro", + "westend-runtime", + "westend-runtime-constants", + "xcm-emulator", + "xcm-fee-payment-runtime-api", + "xcm-procedural", + "xcm-simulator", + "xcm-simulator-example", +] + +[[package]] +name = "polkadot-sdk-docs" +version = "0.0.1" +dependencies = [ + "cumulus-client-service", + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-storage-weight-reclaim", + "docify", + "frame-executive", + "frame-support", + "frame-system", + "kitchensink-runtime", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-broker", + "pallet-collective", + "pallet-default-config-example", + "pallet-democracy", + "pallet-example-offchain-worker", + "pallet-example-single-block-migrations", + "pallet-examples", + "pallet-multisig", + "pallet-nfts", + "pallet-preimage", + "pallet-proxy", + "pallet-referenda", + "pallet-scheduler", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-uniques", + "pallet-utility", + "parity-scale-codec", + "polkadot-sdk-frame", "sc-cli", "sc-client-db", "sc-consensus-aura", @@ -20141,6 +20439,7 @@ dependencies = [ "pallet-treasury", "parity-scale-codec", "platforms", + "polkadot-sdk", "rand 0.8.5", "regex", "sc-authority-discovery", @@ -20178,31 +20477,8 @@ dependencies = [ "serde", "serde_json", "soketto", - "sp-api", - "sp-application-crypto", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing", - "sp-externalities 0.25.0", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-keystore", - "sp-mixnet", - "sp-mmr-primitives", - "sp-runtime", - "sp-state-machine", - "sp-statement-store", - "sp-timestamp", - "sp-tracing 16.0.0", - "sp-transaction-storage-proof", - "sp-trie", "staging-node-inspect", "substrate-build-script-utils", "substrate-cli-test-utils", diff --git a/Cargo.toml b/Cargo.toml index 1440c2d497d3..f4b6ef7e4c3e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -516,16 +516,20 @@ members = [ "templates/minimal/node", "templates/minimal/pallets/template", "templates/minimal/runtime", - + "templates/parachain/node", + "templates/parachain/pallets/template", + "templates/parachain/runtime", "templates/solochain/node", "templates/solochain/pallets/template", "templates/solochain/runtime", + "umbrella", +] - "templates/parachain/node", - "templates/parachain/pallets/template", - "templates/parachain/runtime", +default-members = [ + "polkadot", + "substrate/bin/node/cli", + "umbrella", ] -default-members = ["polkadot", "substrate/bin/node/cli"] [workspace.lints.rust] suspicious_double_ref_op = { level = "allow", priority = 2 } diff --git a/cumulus/pallets/parachain-system/src/validate_block/implementation.rs b/cumulus/pallets/parachain-system/src/validate_block/implementation.rs index ecab7a9a0931..956962fce157 100644 --- a/cumulus/pallets/parachain-system/src/validate_block/implementation.rs +++ b/cumulus/pallets/parachain-system/src/validate_block/implementation.rs @@ -80,6 +80,7 @@ environmental::environmental!(recorder: trait ProofSizeProvider); /// ensuring that the final storage root matches the storage root in the header of the block. In the /// end we return back the [`ValidationResult`] with all the required information for the validator. #[doc(hidden)] +#[allow(deprecated)] pub fn validate_block< B: BlockT, E: ExecuteBlock, @@ -186,6 +187,7 @@ where ) .expect("Invalid relay chain state proof"); + #[allow(deprecated)] let res = CI::check_inherents(&block, &relay_chain_proof); if !res.ok() { diff --git a/polkadot/runtime/parachains/src/inclusion/mod.rs b/polkadot/runtime/parachains/src/inclusion/mod.rs index 31befefa3220..48160e422710 100644 --- a/polkadot/runtime/parachains/src/inclusion/mod.rs +++ b/polkadot/runtime/parachains/src/inclusion/mod.rs @@ -421,6 +421,7 @@ impl From for AcceptanceCheckErr { /// An error returned by [`Pallet::check_upward_messages`] that indicates a violation of one of /// acceptance criteria rules. #[cfg_attr(test, derive(PartialEq))] +#[allow(dead_code)] // FAIL-CI: why is this now needed? pub(crate) enum UmpAcceptanceCheckErr { /// The maximal number of messages that can be submitted in one batch was exceeded. MoreMessagesThanPermitted { sent: u32, permitted: u32 }, diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index 323afa56696a..5bbca6201c8a 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -15,21 +15,16 @@ publish = false workspace = true [package.metadata.wasm-pack.profile.release] -# `wasm-opt` has some problems on linux, see -# https://github.com/rustwasm/wasm-pack/issues/781 etc. wasm-opt = false [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [badges] -travis-ci = { repository = "paritytech/substrate" } maintenance = { status = "actively-developed" } -is-it-maintained-issue-resolution = { repository = "paritytech/substrate" } -is-it-maintained-open-issues = { repository = "paritytech/substrate" } +is-it-maintained-issue-resolution = { repository = "paritytech/polkadot-sdk" } +is-it-maintained-open-issues = { repository = "paritytech/polkadot-sdk" } -# The same node binary as the `substrate` (defined in the workspace `Cargo.toml`) binary, -# but just exposed by this crate here. [[bin]] name = "substrate-node" path = "bin/main.rs" @@ -48,87 +43,18 @@ jsonrpsee = { version = "0.22", features = ["server"] } futures = "0.3.30" log = { workspace = true, default-features = true } rand = "0.8" +serde_json = { workspace = true, default-features = true } -# primitives -sp-authority-discovery = { path = "../../../primitives/authority-discovery" } -sp-consensus-babe = { path = "../../../primitives/consensus/babe" } -beefy-primitives = { package = "sp-consensus-beefy", path = "../../../primitives/consensus/beefy" } -grandpa-primitives = { package = "sp-consensus-grandpa", path = "../../../primitives/consensus/grandpa" } -sp-api = { path = "../../../primitives/api" } -sp-core = { path = "../../../primitives/core" } -sp-runtime = { path = "../../../primitives/runtime" } -sp-timestamp = { path = "../../../primitives/timestamp" } -sp-genesis-builder = { path = "../../../primitives/genesis-builder" } -sp-inherents = { path = "../../../primitives/inherents" } -sp-keyring = { path = "../../../primitives/keyring" } -sp-keystore = { path = "../../../primitives/keystore" } -sp-consensus = { path = "../../../primitives/consensus/common" } -sp-transaction-storage-proof = { path = "../../../primitives/transaction-storage-proof" } -sp-io = { path = "../../../primitives/io" } -sp-mixnet = { path = "../../../primitives/mixnet" } -sp-mmr-primitives = { path = "../../../primitives/merkle-mountain-range" } -sp-statement-store = { path = "../../../primitives/statement-store" } - -# client dependencies -sc-client-api = { path = "../../../client/api" } -sc-chain-spec = { path = "../../../client/chain-spec" } -sc-consensus = { path = "../../../client/consensus/common" } -sc-transaction-pool = { path = "../../../client/transaction-pool" } -sc-transaction-pool-api = { path = "../../../client/transaction-pool/api" } -sc-statement-store = { path = "../../../client/statement-store" } -sc-network = { path = "../../../client/network" } -sc-network-common = { path = "../../../client/network/common" } -sc-network-sync = { path = "../../../client/network/sync" } -sc-network-statement = { path = "../../../client/network/statement" } -sc-consensus-slots = { path = "../../../client/consensus/slots" } -sc-consensus-babe = { path = "../../../client/consensus/babe" } -beefy = { package = "sc-consensus-beefy", path = "../../../client/consensus/beefy" } -grandpa = { package = "sc-consensus-grandpa", path = "../../../client/consensus/grandpa" } -mmr-gadget = { path = "../../../client/merkle-mountain-range" } -sc-rpc = { path = "../../../client/rpc" } -sc-basic-authorship = { path = "../../../client/basic-authorship" } -sc-service = { path = "../../../client/service", default-features = false } -sc-telemetry = { path = "../../../client/telemetry" } -sc-executor = { path = "../../../client/executor" } -sc-authority-discovery = { path = "../../../client/authority-discovery" } -sc-mixnet = { path = "../../../client/mixnet" } -sc-sync-state-rpc = { path = "../../../client/sync-state-rpc" } -sc-sysinfo = { path = "../../../client/sysinfo" } -sc-storage-monitor = { path = "../../../client/storage-monitor" } -sc-offchain = { path = "../../../client/offchain" } - -# frame dependencies -frame-benchmarking = { path = "../../../frame/benchmarking" } -frame-system = { path = "../../../frame/system" } -frame-system-rpc-runtime-api = { path = "../../../frame/system/rpc/runtime-api" } -pallet-assets = { path = "../../../frame/assets" } -pallet-asset-conversion-tx-payment = { path = "../../../frame/transaction-payment/asset-conversion-tx-payment" } -pallet-asset-tx-payment = { path = "../../../frame/transaction-payment/asset-tx-payment" } -pallet-im-online = { path = "../../../frame/im-online", default-features = false } -pallet-skip-feeless-payment = { path = "../../../frame/transaction-payment/skip-feeless-payment", default-features = false } - -# node-specific dependencies +# The Polkadot-SDK: +polkadot-sdk = { path = "../../../../umbrella", features = ["node"] } + +# Shared code of the staging-node: kitchensink-runtime = { path = "../runtime" } node-rpc = { path = "../rpc" } node-primitives = { path = "../primitives" } - -# CLI-specific dependencies -sc-cli = { path = "../../../client/cli", optional = true } -frame-benchmarking-cli = { path = "../../../utils/frame/benchmarking-cli", optional = true } node-inspect = { package = "staging-node-inspect", path = "../inspect", optional = true } -serde_json = { workspace = true, default-features = true } [dev-dependencies] -sc-keystore = { path = "../../../client/keystore" } -sc-client-db = { path = "../../../client/db" } -sc-consensus = { path = "../../../client/consensus/common" } -sc-consensus-babe = { path = "../../../client/consensus/babe" } -sc-consensus-epochs = { path = "../../../client/consensus/epochs" } -sc-service-test = { path = "../../../client/service/test" } -sc-block-builder = { path = "../../../client/block-builder" } -sp-tracing = { path = "../../../primitives/tracing" } -sp-blockchain = { path = "../../../primitives/blockchain" } -sp-crypto-hashing = { path = "../../../primitives/crypto/hashing" } futures = "0.3.30" tempfile = "3.1.0" assert_cmd = "2.0.2" @@ -140,92 +66,54 @@ criterion = { version = "0.5.1", features = ["async_tokio"] } tokio = { version = "1.22.0", features = ["macros", "parking_lot", "time"] } tokio-util = { version = "0.7.4", features = ["compat"] } wait-timeout = "0.2" -substrate-rpc-client = { path = "../../../utils/frame/rpc/client" } -pallet-timestamp = { path = "../../../frame/timestamp" } -substrate-cli-test-utils = { path = "../../../test-utils/cli" } - wat = "1.0" -frame-support = { path = "../../../frame/support" } -node-testing = { path = "../testing" } -pallet-balances = { path = "../../../frame/balances" } -pallet-contracts = { path = "../../../frame/contracts" } -pallet-glutton = { path = "../../../frame/glutton" } -pallet-sudo = { path = "../../../frame/sudo" } -pallet-treasury = { path = "../../../frame/treasury" } -pallet-transaction-payment = { path = "../../../frame/transaction-payment" } -sp-application-crypto = { path = "../../../primitives/application-crypto" } -pallet-root-testing = { path = "../../../frame/root-testing" } -sp-consensus-babe = { path = "../../../primitives/consensus/babe" } -sp-externalities = { path = "../../../primitives/externalities" } -sp-keyring = { path = "../../../primitives/keyring" } -sp-runtime = { path = "../../../primitives/runtime" } serde_json = { workspace = true, default-features = true } scale-info = { version = "2.11.1", features = ["derive", "serde"] } -sp-trie = { path = "../../../primitives/trie" } -sp-state-machine = { path = "../../../primitives/state-machine" } + +node-testing = { path = "../testing" } + +substrate-cli-test-utils = { path = "../../../test-utils/cli" } +sc-service-test = { path = "../../../client/service/test" } [build-dependencies] clap = { version = "4.5.3", optional = true } clap_complete = { version = "4.0.2", optional = true } + node-inspect = { package = "staging-node-inspect", path = "../inspect", optional = true } +<<<<<<< HEAD frame-benchmarking-cli = { path = "../../../utils/frame/benchmarking-cli", optional = true } substrate-build-script-utils = { path = "../../../utils/build-script-utils", optional = true } sc-cli = { path = "../../../client/cli", optional = true } pallet-balances = { path = "../../../frame/balances" } sc-storage-monitor = { path = "../../../client/storage-monitor" } +======= + +polkadot-sdk = { path = "../../../../umbrella", features = ["substrate-build-script-utils"], optional = true } + +>>>>>>> db44df834fb (First umbrella) [features] default = ["cli"] cli = [ "clap", "clap_complete", - "frame-benchmarking-cli", "node-inspect", +<<<<<<< HEAD "sc-cli", "sc-service/rocksdb", "substrate-build-script-utils", +======= + "polkadot-sdk", +>>>>>>> db44df834fb (First umbrella) ] runtime-benchmarks = [ - "frame-benchmarking-cli/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", "kitchensink-runtime/runtime-benchmarks", "node-inspect?/runtime-benchmarks", - "pallet-asset-tx-payment/runtime-benchmarks", - "pallet-assets/runtime-benchmarks", - "pallet-balances/runtime-benchmarks", - "pallet-contracts/runtime-benchmarks", - "pallet-glutton/runtime-benchmarks", - "pallet-im-online/runtime-benchmarks", - "pallet-skip-feeless-payment/runtime-benchmarks", - "pallet-sudo/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-treasury/runtime-benchmarks", - "sc-client-db/runtime-benchmarks", - "sc-service/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", + "polkadot-sdk/runtime-benchmarks", ] -# Enable features that allow the runtime to be tried and debugged. Name might be subject to change -# in the near future. try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", "kitchensink-runtime/try-runtime", - "pallet-asset-conversion-tx-payment/try-runtime", - "pallet-asset-tx-payment/try-runtime", - "pallet-assets/try-runtime", - "pallet-balances/try-runtime", - "pallet-contracts/try-runtime", - "pallet-glutton/try-runtime", - "pallet-im-online/try-runtime", - "pallet-root-testing/try-runtime", - "pallet-skip-feeless-payment/try-runtime", - "pallet-sudo/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-treasury/try-runtime", - "sp-runtime/try-runtime", + "polkadot-sdk/try-runtime", "substrate-cli-test-utils/try-runtime", ] diff --git a/substrate/bin/node/cli/benches/block_production.rs b/substrate/bin/node/cli/benches/block_production.rs index ef7ae4fdf263..c16b25187e5f 100644 --- a/substrate/bin/node/cli/benches/block_production.rs +++ b/substrate/bin/node/cli/benches/block_production.rs @@ -16,6 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +use polkadot_sdk::*; + use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput}; use kitchensink_runtime::{constants::currency::*, BalancesCall}; diff --git a/substrate/bin/node/cli/benches/executor.rs b/substrate/bin/node/cli/benches/executor.rs index a326e1a79ea3..2a073a7b61f3 100644 --- a/substrate/bin/node/cli/benches/executor.rs +++ b/substrate/bin/node/cli/benches/executor.rs @@ -15,6 +15,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +use polkadot_sdk::*; + use codec::{Decode, Encode}; use criterion::{criterion_group, criterion_main, BatchSize, Criterion}; use frame_support::Hashable; diff --git a/substrate/bin/node/cli/benches/transaction_pool.rs b/substrate/bin/node/cli/benches/transaction_pool.rs index c4488415b983..6618f4b1132e 100644 --- a/substrate/bin/node/cli/benches/transaction_pool.rs +++ b/substrate/bin/node/cli/benches/transaction_pool.rs @@ -16,6 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +use polkadot_sdk::*; use std::time::Duration; use criterion::{criterion_group, criterion_main, BatchSize, Criterion, Throughput}; diff --git a/substrate/bin/node/cli/bin/main.rs b/substrate/bin/node/cli/bin/main.rs index ccc7d7b6b112..b18d08880556 100644 --- a/substrate/bin/node/cli/bin/main.rs +++ b/substrate/bin/node/cli/bin/main.rs @@ -20,6 +20,7 @@ #![warn(missing_docs)] +use polkadot_sdk::*; use staging_node_cli as node_cli; fn main() -> sc_cli::Result<()> { diff --git a/substrate/bin/node/cli/build.rs b/substrate/bin/node/cli/build.rs index 033f1e3349e6..e76226c92314 100644 --- a/substrate/bin/node/cli/build.rs +++ b/substrate/bin/node/cli/build.rs @@ -23,28 +23,28 @@ fn main() { #[cfg(feature = "cli")] mod cli { - include!("src/cli.rs"); + //include!("src/cli.rs"); use clap::{CommandFactory, ValueEnum}; use clap_complete::{generate_to, Shell}; use std::{env, fs, path::Path}; - use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; + use polkadot_sdk::substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; pub fn main() { - build_shell_completion(); + //build_shell_completion(); generate_cargo_keys(); rerun_if_git_head_changed(); } - /// Build shell completion scripts for all known shells. + /*/ Build shell completion scripts for all known shells. fn build_shell_completion() { for shell in Shell::value_variants() { build_completion(shell); } } - /// Build the shell auto-completion for a given Shell. + // Build the shell auto-completion for a given Shell. fn build_completion(shell: &Shell) { let outdir = match env::var_os("OUT_DIR") { None => return, @@ -62,5 +62,5 @@ mod cli { fs::create_dir(&path).ok(); let _ = generate_to(*shell, &mut Cli::command(), "substrate-node", &path); - } + }*/ } diff --git a/substrate/bin/node/cli/src/benchmarking.rs b/substrate/bin/node/cli/src/benchmarking.rs index 333f855f2d7b..a2b28a0f317d 100644 --- a/substrate/bin/node/cli/src/benchmarking.rs +++ b/substrate/bin/node/cli/src/benchmarking.rs @@ -22,6 +22,8 @@ use crate::service::{create_extrinsic, FullClient}; +use polkadot_sdk::*; + use kitchensink_runtime::{BalancesCall, SystemCall}; use node_primitives::{AccountId, Balance}; use sc_cli::Result; diff --git a/substrate/bin/node/cli/src/chain_spec.rs b/substrate/bin/node/cli/src/chain_spec.rs index d48d4a50f85f..edea5ec4a3ec 100644 --- a/substrate/bin/node/cli/src/chain_spec.rs +++ b/substrate/bin/node/cli/src/chain_spec.rs @@ -18,8 +18,10 @@ //! Substrate chain configurations. -use beefy_primitives::ecdsa_crypto::AuthorityId as BeefyId; -use grandpa_primitives::AuthorityId as GrandpaId; +use polkadot_sdk::*; + +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; +use sp_consensus_grandpa::AuthorityId as GrandpaId; use kitchensink_runtime::{ constants::currency::*, wasm_binary_unwrap, Block, MaxNominations, SessionKeys, StakerStatus, }; diff --git a/substrate/bin/node/cli/src/cli.rs b/substrate/bin/node/cli/src/cli.rs index 1d1af6e03e9e..c0dcacb2e4b4 100644 --- a/substrate/bin/node/cli/src/cli.rs +++ b/substrate/bin/node/cli/src/cli.rs @@ -16,6 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +use polkadot_sdk::*; + /// An overarching CLI command definition. #[derive(Debug, clap::Parser)] pub struct Cli { diff --git a/substrate/bin/node/cli/src/command.rs b/substrate/bin/node/cli/src/command.rs index d869b77e9122..51fbf0904cf8 100644 --- a/substrate/bin/node/cli/src/command.rs +++ b/substrate/bin/node/cli/src/command.rs @@ -16,6 +16,8 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +use polkadot_sdk::*; + use super::benchmarking::{inherent_benchmark_data, RemarkBuilder, TransferKeepAliveBuilder}; use crate::{ chain_spec, service, @@ -215,7 +217,7 @@ pub fn run() -> Result<()> { new_partial(&config, None)?; let aux_revert = Box::new(|client: Arc, backend, blocks| { sc_consensus_babe::revert(client.clone(), backend, blocks)?; - grandpa::revert(client, blocks)?; + sc_consensus_grandpa::revert(client, blocks)?; Ok(()) }); Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) diff --git a/substrate/bin/node/cli/src/service.rs b/substrate/bin/node/cli/src/service.rs index 5dc1193daf8d..1ab65f82d266 100644 --- a/substrate/bin/node/cli/src/service.rs +++ b/substrate/bin/node/cli/src/service.rs @@ -20,6 +20,10 @@ //! Service implementation. Specialized wrapper over substrate service. +use polkadot_sdk::*; +use polkadot_sdk::sc_consensus_beefy as beefy; +use polkadot_sdk::sc_consensus_grandpa as grandpa; + use crate::Cli; use codec::Encode; use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; @@ -668,7 +672,7 @@ pub fn new_full_base::Hash>>( let beefy_params = beefy::BeefyParams { client: client.clone(), backend: backend.clone(), - payload_provider: beefy_primitives::mmr::MmrRootProvider::new(client.clone()), + payload_provider: sp_consensus_beefy::mmr::MmrRootProvider::new(client.clone()), runtime: client.clone(), key_store: keystore.clone(), network_params, @@ -835,6 +839,7 @@ pub fn new_full(config: Configuration, cli: Cli) -> Result for AllianceProposalProvider #[cfg(test)] mod multiplier_tests { - use frame_support::{ + use polkadot_sdk::frame_support::{ dispatch::DispatchClass, weights::{Weight, WeightToFee}, }; - use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}; - use sp_runtime::{ + use polkadot_sdk::pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}; + use polkadot_sdk::sp_runtime::{ assert_eq_error_rate, traits::{Convert, One, Zero}, BuildStorage, FixedPointNumber, @@ -198,7 +200,7 @@ mod multiplier_tests { where F: Fn() -> (), { - let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + let mut t: polkadot_sdk::sp_io::TestExternalities = polkadot_sdk::frame_system::GenesisConfig::::default() .build_storage() .unwrap() .into(); @@ -308,7 +310,7 @@ mod multiplier_tests { Weight::from_parts(100, 0); // Default substrate weight. - let tx_weight = frame_support::weights::constants::ExtrinsicBaseWeight::get(); + let tx_weight = polkadot_sdk::frame_support::weights::constants::ExtrinsicBaseWeight::get(); run_with_system_weight(block_weight, || { // initial value configured on module @@ -325,7 +327,7 @@ mod multiplier_tests { fm = next; iterations += 1; let fee = - ::WeightToFee::weight_to_fee( + ::WeightToFee::weight_to_fee( &tx_weight, ); let adjusted_fee = fm.saturating_mul_acc_int(fee); diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 017ee9100f9e..a35906872f6a 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -22,6 +22,8 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limits. #![recursion_limit = "1024"] +use polkadot_sdk::*; + use codec::{Decode, Encode, MaxEncodedLen}; use frame_election_provider_support::{ bounds::{ElectionBounds, ElectionBoundsBuilder}, @@ -2239,8 +2241,12 @@ impl pallet_parameters::Config for Runtime { type WeightInfo = (); } -#[frame_support::runtime] +use frame_support::runtime; + +#[runtime] mod runtime { + use super::*; + #[runtime::runtime] #[runtime::derive( RuntimeCall, @@ -2582,7 +2588,7 @@ impl pallet_beefy::Config for Runtime { /// MMR helper types. mod mmr { - use super::Runtime; + use super::*; pub use pallet_mmr::primitives::*; pub type Leaf = <::LeafData as LeafDataProvider>::LeafData; @@ -2592,7 +2598,7 @@ mod mmr { #[cfg(feature = "runtime-benchmarks")] mod benches { - frame_benchmarking::define_benchmarks!( + super::frame_benchmarking::define_benchmarks!( [frame_benchmarking, BaselineBench::] [frame_benchmarking_pallet_pov, Pov] [pallet_alliance, Alliance] diff --git a/substrate/client/chain-spec/derive/src/impls.rs b/substrate/client/chain-spec/derive/src/impls.rs index c0624897c133..00ccfe15f068 100644 --- a/substrate/client/chain-spec/derive/src/impls.rs +++ b/substrate/client/chain-spec/derive/src/impls.rs @@ -19,7 +19,7 @@ use proc_macro2::{Span, TokenStream}; use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; -use syn::{DeriveInput, Error, Ident}; +use syn::{DeriveInput, Error, Path, Ident}; const CRATE_NAME: &str = "sc-chain-spec"; const ATTRIBUTE_NAME: &str = "forks"; @@ -143,7 +143,7 @@ pub fn group_derive(ast: &DeriveInput) -> proc_macro::TokenStream { pub fn derive( ast: &DeriveInput, derive: impl Fn( - &Ident, + &Path, &Ident, &syn::Generics, Vec<&Ident>, @@ -175,21 +175,25 @@ pub fn derive( Ok(FoundCrate::Itself) => CRATE_NAME.replace("-", "_"), Ok(FoundCrate::Name(chain_spec_name)) => chain_spec_name, Err(e) => { - let err = Error::new(Span::call_site(), &e).to_compile_error(); - return quote!( #err ).into() + match crate_name("polkadot-sdk") { + Ok(FoundCrate::Name(sdk)) => format!("{sdk}::{CRATE_NAME}").replace("-", "_"), + _ => { + return Error::new(Span::call_site(), &e).to_compile_error().into(); + }, + } }, }; - let crate_name = Ident::new(&crate_name, Span::call_site()); + let crate_path = syn::parse_str::(&crate_name).unwrap(); let field_names = fields.named.iter().flat_map(|x| x.ident.as_ref()).collect::>(); let field_types = fields.named.iter().map(|x| &x.ty).collect::>(); - derive(&crate_name, name, &ast.generics, field_names, field_types, fields).into() + derive(&crate_path, name, &ast.generics, field_names, field_types, fields).into() } -fn generate_fork_fields(crate_name: &Ident, names: &[&Ident], types: &[&syn::Type]) -> TokenStream { - let crate_name = std::iter::repeat(crate_name); +fn generate_fork_fields(crate_path: &Path, names: &[&Ident], types: &[&syn::Type]) -> TokenStream { + let crate_path = std::iter::repeat(crate_path); quote! { - #( pub #names: Option<<#types as #crate_name::Group>::Fork>, )* + #( pub #names: Option<<#types as #crate_path::Group>::Fork>, )* } } diff --git a/substrate/frame/election-provider-support/solution-type/src/lib.rs b/substrate/frame/election-provider-support/solution-type/src/lib.rs index 80773f6fb476..450db7deb95d 100644 --- a/substrate/frame/election-provider-support/solution-type/src/lib.rs +++ b/substrate/frame/election-provider-support/solution-type/src/lib.rs @@ -263,7 +263,16 @@ fn imports() -> Result { use _feps::private as _fepsp; )) }, - Err(e) => Err(syn::Error::new(Span::call_site(), e)), + Err(e) => match crate_name("polkadot-sdk") { + Ok(FoundCrate::Name(polkadot_sdk)) => { + let ident = syn::Ident::new(&polkadot_sdk, Span::call_site()); + Ok(quote!( + use #ident::frame_election_provider_support as _feps; + use _feps::private as _fepsp; + )) + }, + _ => Err(syn::Error::new(Span::call_site(), e)), + }, } } diff --git a/substrate/frame/staking/reward-curve/src/lib.rs b/substrate/frame/staking/reward-curve/src/lib.rs index 1986357edabe..0cca24fd4361 100644 --- a/substrate/frame/staking/reward-curve/src/lib.rs +++ b/substrate/frame/staking/reward-curve/src/lib.rs @@ -88,7 +88,15 @@ pub fn build(input: TokenStream) -> TokenStream { let ident = syn::Ident::new(&sp_runtime, Span::call_site()); quote!( #[doc(hidden)] pub use #ident as _sp_runtime; ) }, - Err(e) => syn::Error::new(Span::call_site(), e).to_compile_error(), + Err(e) => { + match crate_name("polkadot-sdk") { + Ok(FoundCrate::Name(polkadot_sdk)) => { + let ident = syn::Ident::new(&polkadot_sdk, Span::call_site()); + quote!( #[doc(hidden)] pub use #ident::sp_runtime as _sp_runtime; ) + }, + _ => syn::Error::new(Span::call_site(), e).to_compile_error(), + } + }, }; let const_name = input.ident; diff --git a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs index 1975f059152c..a3b2c3ad2235 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs @@ -198,7 +198,7 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream { macro_rules! #default_parts_unique_id_v2 { { $caller:tt - your_tt_return = [{ $my_tt_return:path }] + frame_support = [{ $($frame_support:tt)* }] } => { $my_tt_return! { $caller diff --git a/substrate/frame/support/procedural/src/runtime/mod.rs b/substrate/frame/support/procedural/src/runtime/mod.rs index aaae579eb086..d11a9a1e62c5 100644 --- a/substrate/frame/support/procedural/src/runtime/mod.rs +++ b/substrate/frame/support/procedural/src/runtime/mod.rs @@ -214,6 +214,24 @@ mod keyword { } pub fn runtime(attr: TokenStream, tokens: TokenStream) -> TokenStream { + let modified = do_runtime(attr, tokens); + + /*use expander::*; + let expanded = Expander::new("baz") + .add_comment("This is generated code!".to_owned()) + .fmt(Edition::_2021) + .verbose(true) + // common way of gating this, by making it part of the default feature set + .dry(cfg!(feature="no-file-expansion")) + .write_to_out_dir(modified.clone().into()).unwrap_or_else(|e| { + eprintln!("Failed to write to file: {:?}", e); + modified.into() + }); + expanded.into()*/ + modified +} + +pub fn do_runtime(attr: TokenStream, tokens: TokenStream) -> TokenStream { let mut legacy_ordering = false; if !attr.is_empty() { if let Ok(_) = syn::parse::(attr.clone()) { diff --git a/substrate/frame/support/procedural/tools/src/lib.rs b/substrate/frame/support/procedural/tools/src/lib.rs index 8952cd6011ff..b75c59ed2349 100644 --- a/substrate/frame/support/procedural/tools/src/lib.rs +++ b/substrate/frame/support/procedural/tools/src/lib.rs @@ -70,6 +70,8 @@ pub fn is_using_frame_crate(path: &syn::Path) -> bool { pub fn generate_access_from_frame_or_crate(def_crate: &str) -> Result { if let Some(path) = get_frame_crate_path(def_crate) { Ok(path) + } else if let Some(path) = get_sdk_crate_path(def_crate) { + Ok(path) } else { let ident = match crate_name(def_crate) { Ok(FoundCrate::Itself) => { @@ -95,6 +97,13 @@ pub fn generate_hidden_includes(unique_id: &str, def_crate: &str) -> TokenStream pub use #path as hidden_include; } ) + } else if let Some(path) = get_sdk_crate_path(def_crate) { + quote::quote!( + #[doc(hidden)] + mod #mod_name { + pub use #path as hidden_include; + } + ) } else { match crate_name(def_crate) { Ok(FoundCrate::Itself) => quote!(), @@ -128,6 +137,17 @@ fn get_frame_crate_path(def_crate: &str) -> Option { } } +fn get_sdk_crate_path(def_crate: &str) -> Option { + // This does not work if the frame crate is renamed. + if let Ok(FoundCrate::Name(name)) = crate_name(&"polkadot-sdk") + { + let path = format!("{}::{}", name, def_crate.to_string()).replace("-", "_"); + Some(syn::parse_str::(&path).expect("is a valid path; qed")) + } else { + None + } +} + // fn to remove white spaces around string types // (basically whitespaces around tokens) pub fn clean_type_string(input: &str) -> String { diff --git a/substrate/primitives/api/proc-macro/src/utils.rs b/substrate/primitives/api/proc-macro/src/utils.rs index d90b56058648..e4c6cf71b126 100644 --- a/substrate/primitives/api/proc-macro/src/utils.rs +++ b/substrate/primitives/api/proc-macro/src/utils.rs @@ -40,6 +40,11 @@ pub fn generate_crate_access() -> TokenStream { let path = format!("{}::deps::sp_api::__private", name); let path = syn::parse_str::(&path).expect("is a valid path; qed"); quote!( #path ) + } else if let Ok(FoundCrate::Name(name)) = + crate_name(&"polkadot-sdk") { + let path = format!("{}::sp_api::__private", name); + let path = syn::parse_str::(&path).expect("is a valid path; qed"); + quote!( #path ) } else { let err = Error::new(Span::call_site(), e).to_compile_error(); quote!( #err ) diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml new file mode 100644 index 000000000000..6aa9bd1ed573 --- /dev/null +++ b/umbrella/Cargo.toml @@ -0,0 +1,2559 @@ +[package] +name = "polkadot-sdk" +version = "1.9.0" +description = "Polkadot SDK umbrella crate." +license = "Apache-2.0" + +[features] +default = [ "std",] +std = [ + "asset-test-utils?/std", + "assets-common?/std", + "binary-merkle-tree?/std", + "bp-asset-hub-rococo?/std", + "bp-asset-hub-westend?/std", + "bp-bridge-hub-cumulus?/std", + "bp-bridge-hub-kusama?/std", + "bp-bridge-hub-polkadot?/std", + "bp-bridge-hub-rococo?/std", + "bp-bridge-hub-westend?/std", + "bp-header-chain?/std", + "bp-kusama?/std", + "bp-messages?/std", + "bp-parachains?/std", + "bp-polkadot?/std", + "bp-polkadot-bulletin?/std", + "bp-polkadot-core?/std", + "bp-relayers?/std", + "bp-rococo?/std", + "bp-runtime?/std", + "bp-test-utils?/std", + "bp-westend?/std", + "bp-xcm-bridge-hub?/std", + "bp-xcm-bridge-hub-router?/std", + "bridge-hub-common?/std", + "bridge-hub-test-utils?/std", + "bridge-runtime-common?/std", + "cumulus-pallet-aura-ext?/std", + "cumulus-pallet-dmp-queue?/std", + "cumulus-pallet-parachain-system?/std", + "cumulus-pallet-parachain-system-proc-macro?/std", + "cumulus-pallet-session-benchmarking?/std", + "cumulus-pallet-solo-to-para?/std", + "cumulus-pallet-xcm?/std", + "cumulus-pallet-xcmp-queue?/std", + "cumulus-ping?/std", + "cumulus-primitives-aura?/std", + "cumulus-primitives-core?/std", + "cumulus-primitives-parachain-inherent?/std", + "cumulus-primitives-proof-size-hostfunction?/std", + "cumulus-primitives-storage-weight-reclaim?/std", + "cumulus-primitives-timestamp?/std", + "cumulus-primitives-utility?/std", + "cumulus-test-relay-sproof-builder?/std", + "frame-benchmarking?/std", + "frame-benchmarking-pallet-pov?/std", + "frame-election-provider-support?/std", + "frame-executive?/std", + "frame-support?/std", + "frame-support-procedural?/std", + "frame-system?/std", + "frame-system-benchmarking?/std", + "frame-system-rpc-runtime-api?/std", + "pallet-alliance?/std", + "pallet-asset-conversion?/std", + "pallet-asset-conversion-ops?/std", + "pallet-asset-conversion-tx-payment?/std", + "pallet-asset-rate?/std", + "pallet-asset-tx-payment?/std", + "pallet-assets?/std", + "pallet-atomic-swap?/std", + "pallet-aura?/std", + "pallet-authority-discovery?/std", + "pallet-authorship?/std", + "pallet-babe?/std", + "pallet-bags-list?/std", + "pallet-balances?/std", + "pallet-beefy?/std", + "pallet-beefy-mmr?/std", + "pallet-bounties?/std", + "pallet-bridge-grandpa?/std", + "pallet-bridge-messages?/std", + "pallet-bridge-parachains?/std", + "pallet-bridge-relayers?/std", + "pallet-broker?/std", + "pallet-child-bounties?/std", + "pallet-collator-selection?/std", + "pallet-collective?/std", + "pallet-collective-content?/std", + "pallet-contracts?/std", + "pallet-contracts-mock-network?/std", + "pallet-conviction-voting?/std", + "pallet-core-fellowship?/std", + "pallet-democracy?/std", + "pallet-dev-mode?/std", + "pallet-election-provider-multi-phase?/std", + "pallet-election-provider-support-benchmarking?/std", + "pallet-elections-phragmen?/std", + "pallet-fast-unstake?/std", + "pallet-glutton?/std", + "pallet-grandpa?/std", + "pallet-identity?/std", + "pallet-im-online?/std", + "pallet-indices?/std", + "pallet-insecure-randomness-collective-flip?/std", + "pallet-lottery?/std", + "pallet-membership?/std", + "pallet-message-queue?/std", + "pallet-migrations?/std", + "pallet-mixnet?/std", + "pallet-mmr?/std", + "pallet-multisig?/std", + "pallet-nft-fractionalization?/std", + "pallet-nfts?/std", + "pallet-nfts-runtime-api?/std", + "pallet-nis?/std", + "pallet-node-authorization?/std", + "pallet-nomination-pools?/std", + "pallet-nomination-pools-benchmarking?/std", + "pallet-nomination-pools-runtime-api?/std", + "pallet-offences?/std", + "pallet-offences-benchmarking?/std", + "pallet-paged-list?/std", + "pallet-parameters?/std", + "pallet-preimage?/std", + "pallet-proxy?/std", + "pallet-ranked-collective?/std", + "pallet-recovery?/std", + "pallet-referenda?/std", + "pallet-remark?/std", + "pallet-root-offences?/std", + "pallet-root-testing?/std", + "pallet-safe-mode?/std", + "pallet-salary?/std", + "pallet-scheduler?/std", + "pallet-scored-pool?/std", + "pallet-session?/std", + "pallet-session-benchmarking?/std", + "pallet-skip-feeless-payment?/std", + "pallet-society?/std", + "pallet-staking?/std", + "pallet-staking-reward-fn?/std", + "pallet-staking-runtime-api?/std", + "pallet-state-trie-migration?/std", + "pallet-statement?/std", + "pallet-sudo?/std", + "pallet-timestamp?/std", + "pallet-tips?/std", + "pallet-transaction-payment?/std", + "pallet-transaction-payment-rpc-runtime-api?/std", + "pallet-transaction-storage?/std", + "pallet-treasury?/std", + "pallet-tx-pause?/std", + "pallet-uniques?/std", + "pallet-utility?/std", + "pallet-vesting?/std", + "pallet-whitelist?/std", + "pallet-xcm?/std", + "pallet-xcm-benchmarks?/std", + "pallet-xcm-bridge-hub?/std", + "pallet-xcm-bridge-hub-router?/std", + "parachains-common?/std", + "parachains-runtimes-test-utils?/std", + "polkadot-core-primitives?/std", + "polkadot-parachain-primitives?/std", + "polkadot-primitives?/std", + "polkadot-runtime-common?/std", + "polkadot-runtime-metrics?/std", + "polkadot-runtime-parachains?/std", + "rococo-runtime-constants?/std", + "sc-executor?/std", + "slot-range-helper?/std", + "snowbridge-beacon-primitives?/std", + "snowbridge-core?/std", + "snowbridge-ethereum?/std", + "snowbridge-outbound-queue-merkle-tree?/std", + "snowbridge-outbound-queue-runtime-api?/std", + "snowbridge-pallet-ethereum-client?/std", + "snowbridge-pallet-ethereum-client-fixtures?/std", + "snowbridge-pallet-inbound-queue?/std", + "snowbridge-pallet-inbound-queue-fixtures?/std", + "snowbridge-pallet-outbound-queue?/std", + "snowbridge-pallet-system?/std", + "snowbridge-router-primitives?/std", + "snowbridge-runtime-common?/std", + "snowbridge-runtime-test-common?/std", + "snowbridge-system-runtime-api?/std", + "sp-api?/std", + "sp-api-proc-macro?/std", + "sp-application-crypto?/std", + "sp-arithmetic?/std", + "sp-authority-discovery?/std", + "sp-block-builder?/std", + "sp-consensus-aura?/std", + "sp-consensus-babe?/std", + "sp-consensus-beefy?/std", + "sp-consensus-grandpa?/std", + "sp-consensus-pow?/std", + "sp-consensus-slots?/std", + "sp-core?/std", + "sp-core-hashing?/std", + "sp-crypto-ec-utils?/std", + "sp-crypto-hashing?/std", + "sp-debug-derive?/std", + "sp-externalities?/std", + "sp-genesis-builder?/std", + "sp-inherents?/std", + "sp-io?/std", + "sp-keyring?/std", + "sp-keystore?/std", + "sp-metadata-ir?/std", + "sp-mixnet?/std", + "sp-mmr-primitives?/std", + "sp-npos-elections?/std", + "sp-offchain?/std", + "sp-runtime?/std", + "sp-runtime-interface?/std", + "sp-session?/std", + "sp-staking?/std", + "sp-state-machine?/std", + "sp-statement-store?/std", + "sp-std?/std", + "sp-storage?/std", + "sp-timestamp?/std", + "sp-tracing?/std", + "sp-transaction-pool?/std", + "sp-transaction-storage-proof?/std", + "sp-trie?/std", + "sp-version?/std", + "sp-wasm-interface?/std", + "sp-weights?/std", + "staging-parachain-info?/std", + "staging-xcm?/std", + "staging-xcm-builder?/std", + "staging-xcm-executor?/std", + "substrate-bip39?/std", + "testnet-parachains-constants?/std", + "westend-runtime-constants?/std", + "xcm-fee-payment-runtime-api?/std" +] +runtime-benchmarks = [ + "assets-common?/runtime-benchmarks", + "bridge-hub-common?/runtime-benchmarks", + "bridge-runtime-common?/runtime-benchmarks", + "cumulus-pallet-dmp-queue?/runtime-benchmarks", + "cumulus-pallet-parachain-system?/runtime-benchmarks", + "cumulus-pallet-session-benchmarking?/runtime-benchmarks", + "cumulus-pallet-xcmp-queue?/runtime-benchmarks", + "cumulus-primitives-core?/runtime-benchmarks", + "cumulus-primitives-utility?/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-benchmarking-cli?/runtime-benchmarks", + "frame-benchmarking-pallet-pov?/runtime-benchmarks", + "frame-election-provider-support?/runtime-benchmarks", + "frame-support?/runtime-benchmarks", + "frame-system?/runtime-benchmarks", + "frame-system-benchmarking?/runtime-benchmarks", + "pallet-alliance?/runtime-benchmarks", + "pallet-asset-conversion?/runtime-benchmarks", + "pallet-asset-conversion-ops?/runtime-benchmarks", + "pallet-asset-rate?/runtime-benchmarks", + "pallet-asset-tx-payment?/runtime-benchmarks", + "pallet-assets?/runtime-benchmarks", + "pallet-babe?/runtime-benchmarks", + "pallet-bags-list?/runtime-benchmarks", + "pallet-balances?/runtime-benchmarks", + "pallet-bounties?/runtime-benchmarks", + "pallet-bridge-grandpa?/runtime-benchmarks", + "pallet-bridge-messages?/runtime-benchmarks", + "pallet-bridge-parachains?/runtime-benchmarks", + "pallet-bridge-relayers?/runtime-benchmarks", + "pallet-broker?/runtime-benchmarks", + "pallet-child-bounties?/runtime-benchmarks", + "pallet-collator-selection?/runtime-benchmarks", + "pallet-collective?/runtime-benchmarks", + "pallet-collective-content?/runtime-benchmarks", + "pallet-contracts?/runtime-benchmarks", + "pallet-contracts-mock-network?/runtime-benchmarks", + "pallet-conviction-voting?/runtime-benchmarks", + "pallet-core-fellowship?/runtime-benchmarks", + "pallet-democracy?/runtime-benchmarks", + "pallet-election-provider-multi-phase?/runtime-benchmarks", + "pallet-election-provider-support-benchmarking?/runtime-benchmarks", + "pallet-elections-phragmen?/runtime-benchmarks", + "pallet-fast-unstake?/runtime-benchmarks", + "pallet-glutton?/runtime-benchmarks", + "pallet-grandpa?/runtime-benchmarks", + "pallet-identity?/runtime-benchmarks", + "pallet-im-online?/runtime-benchmarks", + "pallet-indices?/runtime-benchmarks", + "pallet-lottery?/runtime-benchmarks", + "pallet-membership?/runtime-benchmarks", + "pallet-message-queue?/runtime-benchmarks", + "pallet-migrations?/runtime-benchmarks", + "pallet-mixnet?/runtime-benchmarks", + "pallet-mmr?/runtime-benchmarks", + "pallet-multisig?/runtime-benchmarks", + "pallet-nft-fractionalization?/runtime-benchmarks", + "pallet-nfts?/runtime-benchmarks", + "pallet-nis?/runtime-benchmarks", + "pallet-nomination-pools?/runtime-benchmarks", + "pallet-nomination-pools-benchmarking?/runtime-benchmarks", + "pallet-offences?/runtime-benchmarks", + "pallet-offences-benchmarking?/runtime-benchmarks", + "pallet-paged-list?/runtime-benchmarks", + "pallet-parameters?/runtime-benchmarks", + "pallet-preimage?/runtime-benchmarks", + "pallet-proxy?/runtime-benchmarks", + "pallet-ranked-collective?/runtime-benchmarks", + "pallet-recovery?/runtime-benchmarks", + "pallet-referenda?/runtime-benchmarks", + "pallet-remark?/runtime-benchmarks", + "pallet-root-offences?/runtime-benchmarks", + "pallet-safe-mode?/runtime-benchmarks", + "pallet-salary?/runtime-benchmarks", + "pallet-scheduler?/runtime-benchmarks", + "pallet-session-benchmarking?/runtime-benchmarks", + "pallet-skip-feeless-payment?/runtime-benchmarks", + "pallet-society?/runtime-benchmarks", + "pallet-staking?/runtime-benchmarks", + "pallet-state-trie-migration?/runtime-benchmarks", + "pallet-sudo?/runtime-benchmarks", + "pallet-timestamp?/runtime-benchmarks", + "pallet-tips?/runtime-benchmarks", + "pallet-transaction-storage?/runtime-benchmarks", + "pallet-treasury?/runtime-benchmarks", + "pallet-tx-pause?/runtime-benchmarks", + "pallet-uniques?/runtime-benchmarks", + "pallet-utility?/runtime-benchmarks", + "pallet-vesting?/runtime-benchmarks", + "pallet-whitelist?/runtime-benchmarks", + "pallet-xcm?/runtime-benchmarks", + "pallet-xcm-benchmarks?/runtime-benchmarks", + "pallet-xcm-bridge-hub?/runtime-benchmarks", + "pallet-xcm-bridge-hub-router?/runtime-benchmarks", + "parachains-common?/runtime-benchmarks", + "polkadot-cli?/runtime-benchmarks", + "polkadot-node-metrics?/runtime-benchmarks", + "polkadot-parachain-primitives?/runtime-benchmarks", + "polkadot-primitives?/runtime-benchmarks", + "polkadot-runtime-common?/runtime-benchmarks", + "polkadot-runtime-parachains?/runtime-benchmarks", + "polkadot-service?/runtime-benchmarks", + "sc-client-db?/runtime-benchmarks", + "sc-service?/runtime-benchmarks", + "snowbridge-core?/runtime-benchmarks", + "snowbridge-pallet-ethereum-client?/runtime-benchmarks", + "snowbridge-pallet-ethereum-client-fixtures?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", + "snowbridge-pallet-outbound-queue?/runtime-benchmarks", + "snowbridge-pallet-system?/runtime-benchmarks", + "snowbridge-router-primitives?/runtime-benchmarks", + "snowbridge-runtime-common?/runtime-benchmarks", + "snowbridge-runtime-test-common?/runtime-benchmarks", + "sp-runtime?/runtime-benchmarks", + "sp-staking?/runtime-benchmarks", + "staging-node-inspect?/runtime-benchmarks", + "staging-xcm-builder?/runtime-benchmarks", + "staging-xcm-executor?/runtime-benchmarks" +] +try-runtime = [ + "cumulus-pallet-aura-ext?/try-runtime", + "cumulus-pallet-dmp-queue?/try-runtime", + "cumulus-pallet-parachain-system?/try-runtime", + "cumulus-pallet-solo-to-para?/try-runtime", + "cumulus-pallet-xcm?/try-runtime", + "cumulus-pallet-xcmp-queue?/try-runtime", + "cumulus-ping?/try-runtime", + "frame-benchmarking-pallet-pov?/try-runtime", + "frame-election-provider-support?/try-runtime", + "frame-executive?/try-runtime", + "frame-support?/try-runtime", + "frame-system?/try-runtime", + "pallet-alliance?/try-runtime", + "pallet-asset-conversion?/try-runtime", + "pallet-asset-conversion-ops?/try-runtime", + "pallet-asset-conversion-tx-payment?/try-runtime", + "pallet-asset-rate?/try-runtime", + "pallet-asset-tx-payment?/try-runtime", + "pallet-assets?/try-runtime", + "pallet-atomic-swap?/try-runtime", + "pallet-aura?/try-runtime", + "pallet-authority-discovery?/try-runtime", + "pallet-authorship?/try-runtime", + "pallet-babe?/try-runtime", + "pallet-bags-list?/try-runtime", + "pallet-balances?/try-runtime", + "pallet-beefy?/try-runtime", + "pallet-beefy-mmr?/try-runtime", + "pallet-bounties?/try-runtime", + "pallet-bridge-grandpa?/try-runtime", + "pallet-bridge-messages?/try-runtime", + "pallet-bridge-parachains?/try-runtime", + "pallet-bridge-relayers?/try-runtime", + "pallet-broker?/try-runtime", + "pallet-child-bounties?/try-runtime", + "pallet-collator-selection?/try-runtime", + "pallet-collective?/try-runtime", + "pallet-collective-content?/try-runtime", + "pallet-contracts?/try-runtime", + "pallet-conviction-voting?/try-runtime", + "pallet-core-fellowship?/try-runtime", + "pallet-democracy?/try-runtime", + "pallet-dev-mode?/try-runtime", + "pallet-election-provider-multi-phase?/try-runtime", + "pallet-elections-phragmen?/try-runtime", + "pallet-fast-unstake?/try-runtime", + "pallet-glutton?/try-runtime", + "pallet-grandpa?/try-runtime", + "pallet-identity?/try-runtime", + "pallet-im-online?/try-runtime", + "pallet-indices?/try-runtime", + "pallet-insecure-randomness-collective-flip?/try-runtime", + "pallet-lottery?/try-runtime", + "pallet-membership?/try-runtime", + "pallet-message-queue?/try-runtime", + "pallet-migrations?/try-runtime", + "pallet-mixnet?/try-runtime", + "pallet-mmr?/try-runtime", + "pallet-multisig?/try-runtime", + "pallet-nft-fractionalization?/try-runtime", + "pallet-nfts?/try-runtime", + "pallet-nis?/try-runtime", + "pallet-node-authorization?/try-runtime", + "pallet-nomination-pools?/try-runtime", + "pallet-offences?/try-runtime", + "pallet-paged-list?/try-runtime", + "pallet-parameters?/try-runtime", + "pallet-preimage?/try-runtime", + "pallet-proxy?/try-runtime", + "pallet-ranked-collective?/try-runtime", + "pallet-recovery?/try-runtime", + "pallet-referenda?/try-runtime", + "pallet-remark?/try-runtime", + "pallet-root-offences?/try-runtime", + "pallet-root-testing?/try-runtime", + "pallet-safe-mode?/try-runtime", + "pallet-salary?/try-runtime", + "pallet-scheduler?/try-runtime", + "pallet-scored-pool?/try-runtime", + "pallet-session?/try-runtime", + "pallet-skip-feeless-payment?/try-runtime", + "pallet-society?/try-runtime", + "pallet-staking?/try-runtime", + "pallet-state-trie-migration?/try-runtime", + "pallet-statement?/try-runtime", + "pallet-sudo?/try-runtime", + "pallet-timestamp?/try-runtime", + "pallet-tips?/try-runtime", + "pallet-transaction-payment?/try-runtime", + "pallet-transaction-storage?/try-runtime", + "pallet-treasury?/try-runtime", + "pallet-tx-pause?/try-runtime", + "pallet-uniques?/try-runtime", + "pallet-utility?/try-runtime", + "pallet-vesting?/try-runtime", + "pallet-whitelist?/try-runtime", + "pallet-xcm?/try-runtime", + "pallet-xcm-bridge-hub?/try-runtime", + "pallet-xcm-bridge-hub-router?/try-runtime", + "polkadot-cli?/try-runtime", + "polkadot-runtime-common?/try-runtime", + "polkadot-runtime-parachains?/try-runtime", + "polkadot-service?/try-runtime", + "snowbridge-pallet-ethereum-client?/try-runtime", + "snowbridge-pallet-inbound-queue?/try-runtime", + "snowbridge-pallet-outbound-queue?/try-runtime", + "snowbridge-pallet-system?/try-runtime", + "sp-runtime?/try-runtime", + "staging-parachain-info?/try-runtime" +] +serde = [ + "bp-polkadot-core?/serde", + "frame-benchmarking?/serde", + "pallet-asset-tx-payment?/serde", + "pallet-beefy?/serde", + "pallet-beefy-mmr?/serde", + "pallet-contracts?/serde", + "pallet-conviction-voting?/serde", + "pallet-democracy?/serde", + "pallet-message-queue?/serde", + "pallet-offences?/serde", + "pallet-parameters?/serde", + "pallet-referenda?/serde", + "pallet-remark?/serde", + "pallet-state-trie-migration?/serde", + "pallet-tips?/serde", + "pallet-transaction-payment?/serde", + "pallet-transaction-storage?/serde", + "pallet-treasury?/serde", + "pallet-xcm?/serde", + "snowbridge-beacon-primitives?/serde", + "snowbridge-core?/serde", + "snowbridge-ethereum?/serde", + "snowbridge-pallet-ethereum-client?/serde", + "snowbridge-pallet-inbound-queue?/serde", + "sp-application-crypto?/serde", + "sp-arithmetic?/serde", + "sp-authority-discovery?/serde", + "sp-consensus-aura?/serde", + "sp-consensus-babe?/serde", + "sp-consensus-beefy?/serde", + "sp-consensus-grandpa?/serde", + "sp-consensus-slots?/serde", + "sp-core?/serde", + "sp-mmr-primitives?/serde", + "sp-npos-elections?/serde", + "sp-runtime?/serde", + "sp-staking?/serde", + "sp-statement-store?/serde", + "sp-storage?/serde", + "sp-version?/serde", + "sp-weights?/serde" +] +experimental = [ + "frame-support?/experimental", + "frame-support-procedural?/experimental", + "frame-system?/experimental" +] +with-tracing = [ + "frame-executive?/with-tracing", + "sp-io?/with-tracing", + "sp-tracing?/with-tracing" +] +runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] +node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-cli", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] +tuples-96 = [ + "frame-support?/tuples-96", + "frame-support-procedural?/tuples-96" +] +asset-test-utils = [ "dep:asset-test-utils",] +bridge-hub-test-utils = [ "dep:bridge-hub-test-utils",] +cumulus-client-cli = [ "dep:cumulus-client-cli",] +cumulus-client-collator = [ "dep:cumulus-client-collator",] +cumulus-client-consensus-aura = [ "dep:cumulus-client-consensus-aura",] +cumulus-client-consensus-common = [ "dep:cumulus-client-consensus-common",] +cumulus-client-consensus-proposer = [ "dep:cumulus-client-consensus-proposer",] +cumulus-client-consensus-relay-chain = [ "dep:cumulus-client-consensus-relay-chain",] +cumulus-client-network = [ "dep:cumulus-client-network",] +cumulus-client-parachain-inherent = [ "dep:cumulus-client-parachain-inherent",] +cumulus-client-pov-recovery = [ "dep:cumulus-client-pov-recovery",] +cumulus-client-service = [ "dep:cumulus-client-service",] +cumulus-relay-chain-inprocess-interface = [ "dep:cumulus-relay-chain-inprocess-interface",] +cumulus-relay-chain-interface = [ "dep:cumulus-relay-chain-interface",] +cumulus-relay-chain-minimal-node = [ "dep:cumulus-relay-chain-minimal-node",] +cumulus-relay-chain-rpc-interface = [ "dep:cumulus-relay-chain-rpc-interface",] +cumulus-test-relay-sproof-builder = [ "dep:cumulus-test-relay-sproof-builder",] +emulated-integration-tests-common = [ "dep:emulated-integration-tests-common",] +fork-tree = [ "dep:fork-tree",] +frame-benchmarking-cli = [ "dep:frame-benchmarking-cli",] +frame-remote-externalities = [ "dep:frame-remote-externalities",] +frame-support-procedural-tools = [ "dep:frame-support-procedural-tools",] +generate-bags = [ "dep:generate-bags",] +mmr-gadget = [ "dep:mmr-gadget",] +mmr-rpc = [ "dep:mmr-rpc",] +pallet-contracts-mock-network = [ "dep:pallet-contracts-mock-network",] +pallet-transaction-payment-rpc = [ "dep:pallet-transaction-payment-rpc",] +parachains-runtimes-test-utils = [ "dep:parachains-runtimes-test-utils",] +polkadot-approval-distribution = [ "dep:polkadot-approval-distribution",] +polkadot-availability-bitfield-distribution = [ "dep:polkadot-availability-bitfield-distribution",] +polkadot-availability-distribution = [ "dep:polkadot-availability-distribution",] +polkadot-availability-recovery = [ "dep:polkadot-availability-recovery",] +polkadot-cli = [ "dep:polkadot-cli",] +polkadot-collator-protocol = [ "dep:polkadot-collator-protocol",] +polkadot-dispute-distribution = [ "dep:polkadot-dispute-distribution",] +polkadot-erasure-coding = [ "dep:polkadot-erasure-coding",] +polkadot-gossip-support = [ "dep:polkadot-gossip-support",] +polkadot-network-bridge = [ "dep:polkadot-network-bridge",] +polkadot-node-collation-generation = [ "dep:polkadot-node-collation-generation",] +polkadot-node-core-approval-voting = [ "dep:polkadot-node-core-approval-voting",] +polkadot-node-core-av-store = [ "dep:polkadot-node-core-av-store",] +polkadot-node-core-backing = [ "dep:polkadot-node-core-backing",] +polkadot-node-core-bitfield-signing = [ "dep:polkadot-node-core-bitfield-signing",] +polkadot-node-core-candidate-validation = [ "dep:polkadot-node-core-candidate-validation",] +polkadot-node-core-chain-api = [ "dep:polkadot-node-core-chain-api",] +polkadot-node-core-chain-selection = [ "dep:polkadot-node-core-chain-selection",] +polkadot-node-core-dispute-coordinator = [ "dep:polkadot-node-core-dispute-coordinator",] +polkadot-node-core-parachains-inherent = [ "dep:polkadot-node-core-parachains-inherent",] +polkadot-node-core-prospective-parachains = [ "dep:polkadot-node-core-prospective-parachains",] +polkadot-node-core-provisioner = [ "dep:polkadot-node-core-provisioner",] +polkadot-node-core-pvf = [ "dep:polkadot-node-core-pvf",] +polkadot-node-core-pvf-checker = [ "dep:polkadot-node-core-pvf-checker",] +polkadot-node-core-pvf-common = [ "dep:polkadot-node-core-pvf-common",] +polkadot-node-core-pvf-execute-worker = [ "dep:polkadot-node-core-pvf-execute-worker",] +polkadot-node-core-pvf-prepare-worker = [ "dep:polkadot-node-core-pvf-prepare-worker",] +polkadot-node-core-runtime-api = [ "dep:polkadot-node-core-runtime-api",] +polkadot-node-jaeger = [ "dep:polkadot-node-jaeger",] +polkadot-node-metrics = [ "dep:polkadot-node-metrics",] +polkadot-node-network-protocol = [ "dep:polkadot-node-network-protocol",] +polkadot-node-primitives = [ "dep:polkadot-node-primitives",] +polkadot-node-subsystem = [ "dep:polkadot-node-subsystem",] +polkadot-node-subsystem-types = [ "dep:polkadot-node-subsystem-types",] +polkadot-node-subsystem-util = [ "dep:polkadot-node-subsystem-util",] +polkadot-overseer = [ "dep:polkadot-overseer",] +polkadot-rpc = [ "dep:polkadot-rpc",] +polkadot-service = [ "dep:polkadot-service",] +polkadot-statement-distribution = [ "dep:polkadot-statement-distribution",] +polkadot-statement-table = [ "dep:polkadot-statement-table",] +sc-allocator = [ "dep:sc-allocator",] +sc-authority-discovery = [ "dep:sc-authority-discovery",] +sc-basic-authorship = [ "dep:sc-basic-authorship",] +sc-block-builder = [ "dep:sc-block-builder",] +sc-chain-spec = [ "dep:sc-chain-spec",] +sc-cli = [ "dep:sc-cli",] +sc-client-api = [ "dep:sc-client-api",] +sc-client-db = [ "dep:sc-client-db",] +sc-consensus = [ "dep:sc-consensus",] +sc-consensus-aura = [ "dep:sc-consensus-aura",] +sc-consensus-babe = [ "dep:sc-consensus-babe",] +sc-consensus-babe-rpc = [ "dep:sc-consensus-babe-rpc",] +sc-consensus-beefy = [ "dep:sc-consensus-beefy",] +sc-consensus-beefy-rpc = [ "dep:sc-consensus-beefy-rpc",] +sc-consensus-epochs = [ "dep:sc-consensus-epochs",] +sc-consensus-grandpa = [ "dep:sc-consensus-grandpa",] +sc-consensus-grandpa-rpc = [ "dep:sc-consensus-grandpa-rpc",] +sc-consensus-manual-seal = [ "dep:sc-consensus-manual-seal",] +sc-consensus-pow = [ "dep:sc-consensus-pow",] +sc-consensus-slots = [ "dep:sc-consensus-slots",] +sc-executor = [ "dep:sc-executor",] +sc-executor-common = [ "dep:sc-executor-common",] +sc-executor-polkavm = [ "dep:sc-executor-polkavm",] +sc-executor-wasmtime = [ "dep:sc-executor-wasmtime",] +sc-informant = [ "dep:sc-informant",] +sc-keystore = [ "dep:sc-keystore",] +sc-mixnet = [ "dep:sc-mixnet",] +sc-network = [ "dep:sc-network",] +sc-network-common = [ "dep:sc-network-common",] +sc-network-gossip = [ "dep:sc-network-gossip",] +sc-network-light = [ "dep:sc-network-light",] +sc-network-statement = [ "dep:sc-network-statement",] +sc-network-sync = [ "dep:sc-network-sync",] +sc-network-transactions = [ "dep:sc-network-transactions",] +sc-network-types = [ "dep:sc-network-types",] +sc-offchain = [ "dep:sc-offchain",] +sc-proposer-metrics = [ "dep:sc-proposer-metrics",] +sc-rpc = [ "dep:sc-rpc",] +sc-rpc-api = [ "dep:sc-rpc-api",] +sc-rpc-server = [ "dep:sc-rpc-server",] +sc-rpc-spec-v2 = [ "dep:sc-rpc-spec-v2",] +sc-service = [ "dep:sc-service",] +sc-state-db = [ "dep:sc-state-db",] +sc-statement-store = [ "dep:sc-statement-store",] +sc-storage-monitor = [ "dep:sc-storage-monitor",] +sc-sync-state-rpc = [ "dep:sc-sync-state-rpc",] +sc-sysinfo = [ "dep:sc-sysinfo",] +sc-telemetry = [ "dep:sc-telemetry",] +sc-tracing = [ "dep:sc-tracing",] +sc-transaction-pool = [ "dep:sc-transaction-pool",] +sc-transaction-pool-api = [ "dep:sc-transaction-pool-api",] +sc-utils = [ "dep:sc-utils",] +snowbridge-runtime-test-common = [ "dep:snowbridge-runtime-test-common",] +sp-blockchain = [ "dep:sp-blockchain",] +sp-consensus = [ "dep:sp-consensus",] +sp-core-hashing = [ "dep:sp-core-hashing",] +sp-core-hashing-proc-macro = [ "dep:sp-core-hashing-proc-macro",] +sp-database = [ "dep:sp-database",] +sp-maybe-compressed-blob = [ "dep:sp-maybe-compressed-blob",] +sp-panic-handler = [ "dep:sp-panic-handler",] +sp-rpc = [ "dep:sp-rpc",] +staging-node-inspect = [ "dep:staging-node-inspect",] +staging-tracking-allocator = [ "dep:staging-tracking-allocator",] +subkey = [ "dep:subkey",] +substrate-build-script-utils = [ "dep:substrate-build-script-utils",] +substrate-frame-cli = [ "dep:substrate-frame-cli",] +substrate-frame-rpc-support = [ "dep:substrate-frame-rpc-support",] +substrate-frame-rpc-system = [ "dep:substrate-frame-rpc-system",] +substrate-prometheus-endpoint = [ "dep:substrate-prometheus-endpoint",] +substrate-rpc-client = [ "dep:substrate-rpc-client",] +substrate-state-trie-migration-rpc = [ "dep:substrate-state-trie-migration-rpc",] +substrate-wasm-builder = [ "dep:substrate-wasm-builder",] +tracing-gum = [ "dep:tracing-gum",] +xcm-emulator = [ "dep:xcm-emulator",] +xcm-simulator = [ "dep:xcm-simulator",] + +[package.edition] +workspace = true + +[package.authors] +workspace = true + +[dependencies.assets-common] +path = "../cumulus/parachains/runtimes/assets/common" +default-features = false +optional = true + +[dependencies.binary-merkle-tree] +path = "../substrate/utils/binary-merkle-tree" +default-features = false +optional = true + +[dependencies.bp-asset-hub-rococo] +path = "../bridges/chains/chain-asset-hub-rococo" +default-features = false +optional = true + +[dependencies.bp-asset-hub-westend] +path = "../bridges/chains/chain-asset-hub-westend" +default-features = false +optional = true + +[dependencies.bp-bridge-hub-cumulus] +path = "../bridges/chains/chain-bridge-hub-cumulus" +default-features = false +optional = true + +[dependencies.bp-bridge-hub-kusama] +path = "../bridges/chains/chain-bridge-hub-kusama" +default-features = false +optional = true + +[dependencies.bp-bridge-hub-polkadot] +path = "../bridges/chains/chain-bridge-hub-polkadot" +default-features = false +optional = true + +[dependencies.bp-bridge-hub-rococo] +path = "../bridges/chains/chain-bridge-hub-rococo" +default-features = false +optional = true + +[dependencies.bp-bridge-hub-westend] +path = "../bridges/chains/chain-bridge-hub-westend" +default-features = false +optional = true + +[dependencies.bp-header-chain] +path = "../bridges/primitives/header-chain" +default-features = false +optional = true + +[dependencies.bp-kusama] +path = "../bridges/chains/chain-kusama" +default-features = false +optional = true + +[dependencies.bp-messages] +path = "../bridges/primitives/messages" +default-features = false +optional = true + +[dependencies.bp-parachains] +path = "../bridges/primitives/parachains" +default-features = false +optional = true + +[dependencies.bp-polkadot] +path = "../bridges/chains/chain-polkadot" +default-features = false +optional = true + +[dependencies.bp-polkadot-bulletin] +path = "../bridges/chains/chain-polkadot-bulletin" +default-features = false +optional = true + +[dependencies.bp-polkadot-core] +path = "../bridges/primitives/polkadot-core" +default-features = false +optional = true + +[dependencies.bp-relayers] +path = "../bridges/primitives/relayers" +default-features = false +optional = true + +[dependencies.bp-rococo] +path = "../bridges/chains/chain-rococo" +default-features = false +optional = true + +[dependencies.bp-runtime] +path = "../bridges/primitives/runtime" +default-features = false +optional = true + +[dependencies.bp-test-utils] +path = "../bridges/primitives/test-utils" +default-features = false +optional = true + +[dependencies.bp-westend] +path = "../bridges/chains/chain-westend" +default-features = false +optional = true + +[dependencies.bp-xcm-bridge-hub] +path = "../bridges/primitives/xcm-bridge-hub" +default-features = false +optional = true + +[dependencies.bp-xcm-bridge-hub-router] +path = "../bridges/primitives/xcm-bridge-hub-router" +default-features = false +optional = true + +[dependencies.bridge-hub-common] +path = "../cumulus/parachains/runtimes/bridge-hubs/common" +default-features = false +optional = true + +[dependencies.bridge-runtime-common] +path = "../bridges/bin/runtime-common" +default-features = false +optional = true + +[dependencies.cumulus-pallet-aura-ext] +path = "../cumulus/pallets/aura-ext" +default-features = false +optional = true + +[dependencies.cumulus-pallet-dmp-queue] +path = "../cumulus/pallets/dmp-queue" +default-features = false +optional = true + +[dependencies.cumulus-pallet-parachain-system] +path = "../cumulus/pallets/parachain-system" +default-features = false +optional = true + +[dependencies.cumulus-pallet-parachain-system-proc-macro] +path = "../cumulus/pallets/parachain-system/proc-macro" +default-features = false +optional = true + +[dependencies.cumulus-pallet-session-benchmarking] +path = "../cumulus/pallets/session-benchmarking" +default-features = false +optional = true + +[dependencies.cumulus-pallet-solo-to-para] +path = "../cumulus/pallets/solo-to-para" +default-features = false +optional = true + +[dependencies.cumulus-pallet-xcm] +path = "../cumulus/pallets/xcm" +default-features = false +optional = true + +[dependencies.cumulus-pallet-xcmp-queue] +path = "../cumulus/pallets/xcmp-queue" +default-features = false +optional = true + +[dependencies.cumulus-ping] +path = "../cumulus/parachains/pallets/ping" +default-features = false +optional = true + +[dependencies.cumulus-primitives-aura] +path = "../cumulus/primitives/aura" +default-features = false +optional = true + +[dependencies.cumulus-primitives-core] +path = "../cumulus/primitives/core" +default-features = false +optional = true + +[dependencies.cumulus-primitives-parachain-inherent] +path = "../cumulus/primitives/parachain-inherent" +default-features = false +optional = true + +[dependencies.cumulus-primitives-proof-size-hostfunction] +path = "../cumulus/primitives/proof-size-hostfunction" +default-features = false +optional = true + +[dependencies.cumulus-primitives-storage-weight-reclaim] +path = "../cumulus/primitives/storage-weight-reclaim" +default-features = false +optional = true + +[dependencies.cumulus-primitives-timestamp] +path = "../cumulus/primitives/timestamp" +default-features = false +optional = true + +[dependencies.cumulus-primitives-utility] +path = "../cumulus/primitives/utility" +default-features = false +optional = true + +[dependencies.frame-benchmarking] +path = "../substrate/frame/benchmarking" +default-features = false +optional = true + +[dependencies.frame-benchmarking-pallet-pov] +path = "../substrate/frame/benchmarking/pov" +default-features = false +optional = true + +[dependencies.frame-election-provider-solution-type] +path = "../substrate/frame/election-provider-support/solution-type" +default-features = false +optional = true + +[dependencies.frame-election-provider-support] +path = "../substrate/frame/election-provider-support" +default-features = false +optional = true + +[dependencies.frame-executive] +path = "../substrate/frame/executive" +default-features = false +optional = true + +[dependencies.frame-support] +path = "../substrate/frame/support" +default-features = false +optional = true + +[dependencies.frame-support-procedural] +path = "../substrate/frame/support/procedural" +default-features = false +optional = true + +[dependencies.frame-support-procedural-tools-derive] +path = "../substrate/frame/support/procedural/tools/derive" +default-features = false +optional = true + +[dependencies.frame-system] +path = "../substrate/frame/system" +default-features = false +optional = true + +[dependencies.frame-system-benchmarking] +path = "../substrate/frame/system/benchmarking" +default-features = false +optional = true + +[dependencies.frame-system-rpc-runtime-api] +path = "../substrate/frame/system/rpc/runtime-api" +default-features = false +optional = true + +[dependencies.pallet-alliance] +path = "../substrate/frame/alliance" +default-features = false +optional = true + +[dependencies.pallet-asset-conversion] +path = "../substrate/frame/asset-conversion" +default-features = false +optional = true + +[dependencies.pallet-asset-conversion-ops] +path = "../substrate/frame/asset-conversion/ops" +default-features = false +optional = true + +[dependencies.pallet-asset-conversion-tx-payment] +path = "../substrate/frame/transaction-payment/asset-conversion-tx-payment" +default-features = false +optional = true + +[dependencies.pallet-asset-rate] +path = "../substrate/frame/asset-rate" +default-features = false +optional = true + +[dependencies.pallet-asset-tx-payment] +path = "../substrate/frame/transaction-payment/asset-tx-payment" +default-features = false +optional = true + +[dependencies.pallet-assets] +path = "../substrate/frame/assets" +default-features = false +optional = true + +[dependencies.pallet-atomic-swap] +path = "../substrate/frame/atomic-swap" +default-features = false +optional = true + +[dependencies.pallet-aura] +path = "../substrate/frame/aura" +default-features = false +optional = true + +[dependencies.pallet-authority-discovery] +path = "../substrate/frame/authority-discovery" +default-features = false +optional = true + +[dependencies.pallet-authorship] +path = "../substrate/frame/authorship" +default-features = false +optional = true + +[dependencies.pallet-babe] +path = "../substrate/frame/babe" +default-features = false +optional = true + +[dependencies.pallet-bags-list] +path = "../substrate/frame/bags-list" +default-features = false +optional = true + +[dependencies.pallet-balances] +path = "../substrate/frame/balances" +default-features = false +optional = true + +[dependencies.pallet-beefy] +path = "../substrate/frame/beefy" +default-features = false +optional = true + +[dependencies.pallet-beefy-mmr] +path = "../substrate/frame/beefy-mmr" +default-features = false +optional = true + +[dependencies.pallet-bounties] +path = "../substrate/frame/bounties" +default-features = false +optional = true + +[dependencies.pallet-bridge-grandpa] +path = "../bridges/modules/grandpa" +default-features = false +optional = true + +[dependencies.pallet-bridge-messages] +path = "../bridges/modules/messages" +default-features = false +optional = true + +[dependencies.pallet-bridge-parachains] +path = "../bridges/modules/parachains" +default-features = false +optional = true + +[dependencies.pallet-bridge-relayers] +path = "../bridges/modules/relayers" +default-features = false +optional = true + +[dependencies.pallet-broker] +path = "../substrate/frame/broker" +default-features = false +optional = true + +[dependencies.pallet-child-bounties] +path = "../substrate/frame/child-bounties" +default-features = false +optional = true + +[dependencies.pallet-collator-selection] +path = "../cumulus/pallets/collator-selection" +default-features = false +optional = true + +[dependencies.pallet-collective] +path = "../substrate/frame/collective" +default-features = false +optional = true + +[dependencies.pallet-collective-content] +path = "../cumulus/parachains/pallets/collective-content" +default-features = false +optional = true + +[dependencies.pallet-contracts] +path = "../substrate/frame/contracts" +default-features = false +optional = true + +[dependencies.pallet-contracts-proc-macro] +path = "../substrate/frame/contracts/proc-macro" +default-features = false +optional = true + +[dependencies.pallet-contracts-uapi] +path = "../substrate/frame/contracts/uapi" +default-features = false +optional = true + +[dependencies.pallet-conviction-voting] +path = "../substrate/frame/conviction-voting" +default-features = false +optional = true + +[dependencies.pallet-core-fellowship] +path = "../substrate/frame/core-fellowship" +default-features = false +optional = true + +[dependencies.pallet-democracy] +path = "../substrate/frame/democracy" +default-features = false +optional = true + +[dependencies.pallet-dev-mode] +path = "../substrate/frame/examples/dev-mode" +default-features = false +optional = true + +[dependencies.pallet-election-provider-multi-phase] +path = "../substrate/frame/election-provider-multi-phase" +default-features = false +optional = true + +[dependencies.pallet-election-provider-support-benchmarking] +path = "../substrate/frame/election-provider-support/benchmarking" +default-features = false +optional = true + +[dependencies.pallet-elections-phragmen] +path = "../substrate/frame/elections-phragmen" +default-features = false +optional = true + +[dependencies.pallet-fast-unstake] +path = "../substrate/frame/fast-unstake" +default-features = false +optional = true + +[dependencies.pallet-glutton] +path = "../substrate/frame/glutton" +default-features = false +optional = true + +[dependencies.pallet-grandpa] +path = "../substrate/frame/grandpa" +default-features = false +optional = true + +[dependencies.pallet-identity] +path = "../substrate/frame/identity" +default-features = false +optional = true + +[dependencies.pallet-im-online] +path = "../substrate/frame/im-online" +default-features = false +optional = true + +[dependencies.pallet-indices] +path = "../substrate/frame/indices" +default-features = false +optional = true + +[dependencies.pallet-insecure-randomness-collective-flip] +path = "../substrate/frame/insecure-randomness-collective-flip" +default-features = false +optional = true + +[dependencies.pallet-lottery] +path = "../substrate/frame/lottery" +default-features = false +optional = true + +[dependencies.pallet-membership] +path = "../substrate/frame/membership" +default-features = false +optional = true + +[dependencies.pallet-message-queue] +path = "../substrate/frame/message-queue" +default-features = false +optional = true + +[dependencies.pallet-migrations] +path = "../substrate/frame/migrations" +default-features = false +optional = true + +[dependencies.pallet-mixnet] +path = "../substrate/frame/mixnet" +default-features = false +optional = true + +[dependencies.pallet-mmr] +path = "../substrate/frame/merkle-mountain-range" +default-features = false +optional = true + +[dependencies.pallet-multisig] +path = "../substrate/frame/multisig" +default-features = false +optional = true + +[dependencies.pallet-nft-fractionalization] +path = "../substrate/frame/nft-fractionalization" +default-features = false +optional = true + +[dependencies.pallet-nfts] +path = "../substrate/frame/nfts" +default-features = false +optional = true + +[dependencies.pallet-nfts-runtime-api] +path = "../substrate/frame/nfts/runtime-api" +default-features = false +optional = true + +[dependencies.pallet-nis] +path = "../substrate/frame/nis" +default-features = false +optional = true + +[dependencies.pallet-node-authorization] +path = "../substrate/frame/node-authorization" +default-features = false +optional = true + +[dependencies.pallet-nomination-pools] +path = "../substrate/frame/nomination-pools" +default-features = false +optional = true + +[dependencies.pallet-nomination-pools-benchmarking] +path = "../substrate/frame/nomination-pools/benchmarking" +default-features = false +optional = true + +[dependencies.pallet-nomination-pools-runtime-api] +path = "../substrate/frame/nomination-pools/runtime-api" +default-features = false +optional = true + +[dependencies.pallet-offences] +path = "../substrate/frame/offences" +default-features = false +optional = true + +[dependencies.pallet-offences-benchmarking] +path = "../substrate/frame/offences/benchmarking" +default-features = false +optional = true + +[dependencies.pallet-paged-list] +path = "../substrate/frame/paged-list" +default-features = false +optional = true + +[dependencies.pallet-parameters] +path = "../substrate/frame/parameters" +default-features = false +optional = true + +[dependencies.pallet-preimage] +path = "../substrate/frame/preimage" +default-features = false +optional = true + +[dependencies.pallet-proxy] +path = "../substrate/frame/proxy" +default-features = false +optional = true + +[dependencies.pallet-ranked-collective] +path = "../substrate/frame/ranked-collective" +default-features = false +optional = true + +[dependencies.pallet-recovery] +path = "../substrate/frame/recovery" +default-features = false +optional = true + +[dependencies.pallet-referenda] +path = "../substrate/frame/referenda" +default-features = false +optional = true + +[dependencies.pallet-remark] +path = "../substrate/frame/remark" +default-features = false +optional = true + +[dependencies.pallet-root-offences] +path = "../substrate/frame/root-offences" +default-features = false +optional = true + +[dependencies.pallet-root-testing] +path = "../substrate/frame/root-testing" +default-features = false +optional = true + +[dependencies.pallet-safe-mode] +path = "../substrate/frame/safe-mode" +default-features = false +optional = true + +[dependencies.pallet-salary] +path = "../substrate/frame/salary" +default-features = false +optional = true + +[dependencies.pallet-scheduler] +path = "../substrate/frame/scheduler" +default-features = false +optional = true + +[dependencies.pallet-scored-pool] +path = "../substrate/frame/scored-pool" +default-features = false +optional = true + +[dependencies.pallet-session] +path = "../substrate/frame/session" +default-features = false +optional = true + +[dependencies.pallet-session-benchmarking] +path = "../substrate/frame/session/benchmarking" +default-features = false +optional = true + +[dependencies.pallet-skip-feeless-payment] +path = "../substrate/frame/transaction-payment/skip-feeless-payment" +default-features = false +optional = true + +[dependencies.pallet-society] +path = "../substrate/frame/society" +default-features = false +optional = true + +[dependencies.pallet-staking] +path = "../substrate/frame/staking" +default-features = false +optional = true + +[dependencies.pallet-staking-reward-curve] +path = "../substrate/frame/staking/reward-curve" +default-features = false +optional = true + +[dependencies.pallet-staking-reward-fn] +path = "../substrate/frame/staking/reward-fn" +default-features = false +optional = true + +[dependencies.pallet-staking-runtime-api] +path = "../substrate/frame/staking/runtime-api" +default-features = false +optional = true + +[dependencies.pallet-state-trie-migration] +path = "../substrate/frame/state-trie-migration" +default-features = false +optional = true + +[dependencies.pallet-statement] +path = "../substrate/frame/statement" +default-features = false +optional = true + +[dependencies.pallet-sudo] +path = "../substrate/frame/sudo" +default-features = false +optional = true + +[dependencies.pallet-timestamp] +path = "../substrate/frame/timestamp" +default-features = false +optional = true + +[dependencies.pallet-tips] +path = "../substrate/frame/tips" +default-features = false +optional = true + +[dependencies.pallet-transaction-payment] +path = "../substrate/frame/transaction-payment" +default-features = false +optional = true + +[dependencies.pallet-transaction-payment-rpc-runtime-api] +path = "../substrate/frame/transaction-payment/rpc/runtime-api" +default-features = false +optional = true + +[dependencies.pallet-transaction-storage] +path = "../substrate/frame/transaction-storage" +default-features = false +optional = true + +[dependencies.pallet-treasury] +path = "../substrate/frame/treasury" +default-features = false +optional = true + +[dependencies.pallet-tx-pause] +path = "../substrate/frame/tx-pause" +default-features = false +optional = true + +[dependencies.pallet-uniques] +path = "../substrate/frame/uniques" +default-features = false +optional = true + +[dependencies.pallet-utility] +path = "../substrate/frame/utility" +default-features = false +optional = true + +[dependencies.pallet-vesting] +path = "../substrate/frame/vesting" +default-features = false +optional = true + +[dependencies.pallet-whitelist] +path = "../substrate/frame/whitelist" +default-features = false +optional = true + +[dependencies.pallet-xcm] +path = "../polkadot/xcm/pallet-xcm" +default-features = false +optional = true + +[dependencies.pallet-xcm-benchmarks] +path = "../polkadot/xcm/pallet-xcm-benchmarks" +default-features = false +optional = true + +[dependencies.pallet-xcm-bridge-hub] +path = "../bridges/modules/xcm-bridge-hub" +default-features = false +optional = true + +[dependencies.pallet-xcm-bridge-hub-router] +path = "../bridges/modules/xcm-bridge-hub-router" +default-features = false +optional = true + +[dependencies.parachains-common] +path = "../cumulus/parachains/common" +default-features = false +optional = true + +[dependencies.polkadot-core-primitives] +path = "../polkadot/core-primitives" +default-features = false +optional = true + +[dependencies.polkadot-parachain-primitives] +path = "../polkadot/parachain" +default-features = false +optional = true + +[dependencies.polkadot-primitives] +path = "../polkadot/primitives" +default-features = false +optional = true + +[dependencies.polkadot-runtime-common] +path = "../polkadot/runtime/common" +default-features = false +optional = true + +[dependencies.polkadot-runtime-metrics] +path = "../polkadot/runtime/metrics" +default-features = false +optional = true + +[dependencies.polkadot-runtime-parachains] +path = "../polkadot/runtime/parachains" +default-features = false +optional = true + +[dependencies.rococo-runtime-constants] +path = "../polkadot/runtime/rococo/constants" +default-features = false +optional = true + +[dependencies.sc-chain-spec-derive] +path = "../substrate/client/chain-spec/derive" +default-features = false +optional = true + +[dependencies.sc-tracing-proc-macro] +path = "../substrate/client/tracing/proc-macro" +default-features = false +optional = true + +[dependencies.slot-range-helper] +path = "../polkadot/runtime/common/slot_range_helper" +default-features = false +optional = true + +[dependencies.snowbridge-beacon-primitives] +path = "../bridges/snowbridge/primitives/beacon" +default-features = false +optional = true + +[dependencies.snowbridge-core] +path = "../bridges/snowbridge/primitives/core" +default-features = false +optional = true + +[dependencies.snowbridge-ethereum] +path = "../bridges/snowbridge/primitives/ethereum" +default-features = false +optional = true + +[dependencies.snowbridge-outbound-queue-merkle-tree] +path = "../bridges/snowbridge/pallets/outbound-queue/merkle-tree" +default-features = false +optional = true + +[dependencies.snowbridge-outbound-queue-runtime-api] +path = "../bridges/snowbridge/pallets/outbound-queue/runtime-api" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-ethereum-client] +path = "../bridges/snowbridge/pallets/ethereum-client" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-ethereum-client-fixtures] +path = "../bridges/snowbridge/pallets/ethereum-client/fixtures" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-inbound-queue] +path = "../bridges/snowbridge/pallets/inbound-queue" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-inbound-queue-fixtures] +path = "../bridges/snowbridge/pallets/inbound-queue/fixtures" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-outbound-queue] +path = "../bridges/snowbridge/pallets/outbound-queue" +default-features = false +optional = true + +[dependencies.snowbridge-pallet-system] +path = "../bridges/snowbridge/pallets/system" +default-features = false +optional = true + +[dependencies.snowbridge-router-primitives] +path = "../bridges/snowbridge/primitives/router" +default-features = false +optional = true + +[dependencies.snowbridge-runtime-common] +path = "../bridges/snowbridge/runtime/runtime-common" +default-features = false +optional = true + +[dependencies.snowbridge-system-runtime-api] +path = "../bridges/snowbridge/pallets/system/runtime-api" +default-features = false +optional = true + +[dependencies.sp-api] +path = "../substrate/primitives/api" +default-features = false +optional = true + +[dependencies.sp-api-proc-macro] +path = "../substrate/primitives/api/proc-macro" +default-features = false +optional = true + +[dependencies.sp-application-crypto] +path = "../substrate/primitives/application-crypto" +default-features = false +optional = true + +[dependencies.sp-arithmetic] +path = "../substrate/primitives/arithmetic" +default-features = false +optional = true + +[dependencies.sp-authority-discovery] +path = "../substrate/primitives/authority-discovery" +default-features = false +optional = true + +[dependencies.sp-block-builder] +path = "../substrate/primitives/block-builder" +default-features = false +optional = true + +[dependencies.sp-consensus-aura] +path = "../substrate/primitives/consensus/aura" +default-features = false +optional = true + +[dependencies.sp-consensus-babe] +path = "../substrate/primitives/consensus/babe" +default-features = false +optional = true + +[dependencies.sp-consensus-beefy] +path = "../substrate/primitives/consensus/beefy" +default-features = false +optional = true + +[dependencies.sp-consensus-grandpa] +path = "../substrate/primitives/consensus/grandpa" +default-features = false +optional = true + +[dependencies.sp-consensus-pow] +path = "../substrate/primitives/consensus/pow" +default-features = false +optional = true + +[dependencies.sp-consensus-slots] +path = "../substrate/primitives/consensus/slots" +default-features = false +optional = true + +[dependencies.sp-core] +path = "../substrate/primitives/core" +default-features = false +optional = true + +[dependencies.sp-crypto-ec-utils] +path = "../substrate/primitives/crypto/ec-utils" +default-features = false +optional = true + +[dependencies.sp-crypto-hashing] +path = "../substrate/primitives/crypto/hashing" +default-features = false +optional = true + +[dependencies.sp-crypto-hashing-proc-macro] +path = "../substrate/primitives/crypto/hashing/proc-macro" +default-features = false +optional = true + +[dependencies.sp-debug-derive] +path = "../substrate/primitives/debug-derive" +default-features = false +optional = true + +[dependencies.sp-externalities] +path = "../substrate/primitives/externalities" +default-features = false +optional = true + +[dependencies.sp-genesis-builder] +path = "../substrate/primitives/genesis-builder" +default-features = false +optional = true + +[dependencies.sp-inherents] +path = "../substrate/primitives/inherents" +default-features = false +optional = true + +[dependencies.sp-io] +path = "../substrate/primitives/io" +default-features = false +optional = true + +[dependencies.sp-keyring] +path = "../substrate/primitives/keyring" +default-features = false +optional = true + +[dependencies.sp-keystore] +path = "../substrate/primitives/keystore" +default-features = false +optional = true + +[dependencies.sp-metadata-ir] +path = "../substrate/primitives/metadata-ir" +default-features = false +optional = true + +[dependencies.sp-mixnet] +path = "../substrate/primitives/mixnet" +default-features = false +optional = true + +[dependencies.sp-mmr-primitives] +path = "../substrate/primitives/merkle-mountain-range" +default-features = false +optional = true + +[dependencies.sp-npos-elections] +path = "../substrate/primitives/npos-elections" +default-features = false +optional = true + +[dependencies.sp-offchain] +path = "../substrate/primitives/offchain" +default-features = false +optional = true + +[dependencies.sp-runtime] +path = "../substrate/primitives/runtime" +default-features = false +optional = true + +[dependencies.sp-runtime-interface] +path = "../substrate/primitives/runtime-interface" +default-features = false +optional = true + +[dependencies.sp-runtime-interface-proc-macro] +path = "../substrate/primitives/runtime-interface/proc-macro" +default-features = false +optional = true + +[dependencies.sp-session] +path = "../substrate/primitives/session" +default-features = false +optional = true + +[dependencies.sp-staking] +path = "../substrate/primitives/staking" +default-features = false +optional = true + +[dependencies.sp-state-machine] +path = "../substrate/primitives/state-machine" +default-features = false +optional = true + +[dependencies.sp-statement-store] +path = "../substrate/primitives/statement-store" +default-features = false +optional = true + +[dependencies.sp-std] +path = "../substrate/primitives/std" +default-features = false +optional = true + +[dependencies.sp-storage] +path = "../substrate/primitives/storage" +default-features = false +optional = true + +[dependencies.sp-timestamp] +path = "../substrate/primitives/timestamp" +default-features = false +optional = true + +[dependencies.sp-tracing] +path = "../substrate/primitives/tracing" +default-features = false +optional = true + +[dependencies.sp-transaction-pool] +path = "../substrate/primitives/transaction-pool" +default-features = false +optional = true + +[dependencies.sp-transaction-storage-proof] +path = "../substrate/primitives/transaction-storage-proof" +default-features = false +optional = true + +[dependencies.sp-trie] +path = "../substrate/primitives/trie" +default-features = false +optional = true + +[dependencies.sp-version] +path = "../substrate/primitives/version" +default-features = false +optional = true + +[dependencies.sp-version-proc-macro] +path = "../substrate/primitives/version/proc-macro" +default-features = false +optional = true + +[dependencies.sp-wasm-interface] +path = "../substrate/primitives/wasm-interface" +default-features = false +optional = true + +[dependencies.sp-weights] +path = "../substrate/primitives/weights" +default-features = false +optional = true + +[dependencies.staging-parachain-info] +path = "../cumulus/parachains/pallets/parachain-info" +default-features = false +optional = true + +[dependencies.staging-xcm] +path = "../polkadot/xcm" +default-features = false +optional = true + +[dependencies.staging-xcm-builder] +path = "../polkadot/xcm/xcm-builder" +default-features = false +optional = true + +[dependencies.staging-xcm-executor] +path = "../polkadot/xcm/xcm-executor" +default-features = false +optional = true + +[dependencies.substrate-bip39] +path = "../substrate/utils/substrate-bip39" +default-features = false +optional = true + +[dependencies.testnet-parachains-constants] +path = "../cumulus/parachains/runtimes/constants" +default-features = false +optional = true + +[dependencies.tracing-gum-proc-macro] +path = "../polkadot/node/gum/proc-macro" +default-features = false +optional = true + +[dependencies.westend-runtime-constants] +path = "../polkadot/runtime/westend/constants" +default-features = false +optional = true + +[dependencies.xcm-fee-payment-runtime-api] +path = "../polkadot/xcm/xcm-fee-payment-runtime-api" +default-features = false +optional = true + +[dependencies.xcm-procedural] +path = "../polkadot/xcm/procedural" +default-features = false +optional = true + +[dependencies.asset-test-utils] +path = "../cumulus/parachains/runtimes/assets/test-utils" +default-features = false +optional = true + +[dependencies.bridge-hub-test-utils] +path = "../cumulus/parachains/runtimes/bridge-hubs/test-utils" +default-features = false +optional = true + +[dependencies.cumulus-client-cli] +path = "../cumulus/client/cli" +default-features = false +optional = true + +[dependencies.cumulus-client-collator] +path = "../cumulus/client/collator" +default-features = false +optional = true + +[dependencies.cumulus-client-consensus-aura] +path = "../cumulus/client/consensus/aura" +default-features = false +optional = true + +[dependencies.cumulus-client-consensus-common] +path = "../cumulus/client/consensus/common" +default-features = false +optional = true + +[dependencies.cumulus-client-consensus-proposer] +path = "../cumulus/client/consensus/proposer" +default-features = false +optional = true + +[dependencies.cumulus-client-consensus-relay-chain] +path = "../cumulus/client/consensus/relay-chain" +default-features = false +optional = true + +[dependencies.cumulus-client-network] +path = "../cumulus/client/network" +default-features = false +optional = true + +[dependencies.cumulus-client-parachain-inherent] +path = "../cumulus/client/parachain-inherent" +default-features = false +optional = true + +[dependencies.cumulus-client-pov-recovery] +path = "../cumulus/client/pov-recovery" +default-features = false +optional = true + +[dependencies.cumulus-client-service] +path = "../cumulus/client/service" +default-features = false +optional = true + +[dependencies.cumulus-relay-chain-inprocess-interface] +path = "../cumulus/client/relay-chain-inprocess-interface" +default-features = false +optional = true + +[dependencies.cumulus-relay-chain-interface] +path = "../cumulus/client/relay-chain-interface" +default-features = false +optional = true + +[dependencies.cumulus-relay-chain-minimal-node] +path = "../cumulus/client/relay-chain-minimal-node" +default-features = false +optional = true + +[dependencies.cumulus-relay-chain-rpc-interface] +path = "../cumulus/client/relay-chain-rpc-interface" +default-features = false +optional = true + +[dependencies.cumulus-test-relay-sproof-builder] +path = "../cumulus/test/relay-sproof-builder" +default-features = false +optional = true + +[dependencies.emulated-integration-tests-common] +path = "../cumulus/parachains/integration-tests/emulated/common" +default-features = false +optional = true + +[dependencies.fork-tree] +path = "../substrate/utils/fork-tree" +default-features = false +optional = true + +[dependencies.frame-benchmarking-cli] +path = "../substrate/utils/frame/benchmarking-cli" +default-features = false +optional = true + +[dependencies.frame-remote-externalities] +path = "../substrate/utils/frame/remote-externalities" +default-features = false +optional = true + +[dependencies.frame-support-procedural-tools] +path = "../substrate/frame/support/procedural/tools" +default-features = false +optional = true + +[dependencies.generate-bags] +path = "../substrate/utils/frame/generate-bags" +default-features = false +optional = true + +[dependencies.mmr-gadget] +path = "../substrate/client/merkle-mountain-range" +default-features = false +optional = true + +[dependencies.mmr-rpc] +path = "../substrate/client/merkle-mountain-range/rpc" +default-features = false +optional = true + +[dependencies.pallet-contracts-mock-network] +path = "../substrate/frame/contracts/mock-network" +default-features = false +optional = true + +[dependencies.pallet-transaction-payment-rpc] +path = "../substrate/frame/transaction-payment/rpc" +default-features = false +optional = true + +[dependencies.parachains-runtimes-test-utils] +path = "../cumulus/parachains/runtimes/test-utils" +default-features = false +optional = true + +[dependencies.polkadot-approval-distribution] +path = "../polkadot/node/network/approval-distribution" +default-features = false +optional = true + +[dependencies.polkadot-availability-bitfield-distribution] +path = "../polkadot/node/network/bitfield-distribution" +default-features = false +optional = true + +[dependencies.polkadot-availability-distribution] +path = "../polkadot/node/network/availability-distribution" +default-features = false +optional = true + +[dependencies.polkadot-availability-recovery] +path = "../polkadot/node/network/availability-recovery" +default-features = false +optional = true + +[dependencies.polkadot-cli] +path = "../polkadot/cli" +default-features = false +optional = true + +[dependencies.polkadot-collator-protocol] +path = "../polkadot/node/network/collator-protocol" +default-features = false +optional = true + +[dependencies.polkadot-dispute-distribution] +path = "../polkadot/node/network/dispute-distribution" +default-features = false +optional = true + +[dependencies.polkadot-erasure-coding] +path = "../polkadot/erasure-coding" +default-features = false +optional = true + +[dependencies.polkadot-gossip-support] +path = "../polkadot/node/network/gossip-support" +default-features = false +optional = true + +[dependencies.polkadot-network-bridge] +path = "../polkadot/node/network/bridge" +default-features = false +optional = true + +[dependencies.polkadot-node-collation-generation] +path = "../polkadot/node/collation-generation" +default-features = false +optional = true + +[dependencies.polkadot-node-core-approval-voting] +path = "../polkadot/node/core/approval-voting" +default-features = false +optional = true + +[dependencies.polkadot-node-core-av-store] +path = "../polkadot/node/core/av-store" +default-features = false +optional = true + +[dependencies.polkadot-node-core-backing] +path = "../polkadot/node/core/backing" +default-features = false +optional = true + +[dependencies.polkadot-node-core-bitfield-signing] +path = "../polkadot/node/core/bitfield-signing" +default-features = false +optional = true + +[dependencies.polkadot-node-core-candidate-validation] +path = "../polkadot/node/core/candidate-validation" +default-features = false +optional = true + +[dependencies.polkadot-node-core-chain-api] +path = "../polkadot/node/core/chain-api" +default-features = false +optional = true + +[dependencies.polkadot-node-core-chain-selection] +path = "../polkadot/node/core/chain-selection" +default-features = false +optional = true + +[dependencies.polkadot-node-core-dispute-coordinator] +path = "../polkadot/node/core/dispute-coordinator" +default-features = false +optional = true + +[dependencies.polkadot-node-core-parachains-inherent] +path = "../polkadot/node/core/parachains-inherent" +default-features = false +optional = true + +[dependencies.polkadot-node-core-prospective-parachains] +path = "../polkadot/node/core/prospective-parachains" +default-features = false +optional = true + +[dependencies.polkadot-node-core-provisioner] +path = "../polkadot/node/core/provisioner" +default-features = false +optional = true + +[dependencies.polkadot-node-core-pvf] +path = "../polkadot/node/core/pvf" +default-features = false +optional = true + +[dependencies.polkadot-node-core-pvf-checker] +path = "../polkadot/node/core/pvf-checker" +default-features = false +optional = true + +[dependencies.polkadot-node-core-pvf-common] +path = "../polkadot/node/core/pvf/common" +default-features = false +optional = true + +[dependencies.polkadot-node-core-pvf-execute-worker] +path = "../polkadot/node/core/pvf/execute-worker" +default-features = false +optional = true + +[dependencies.polkadot-node-core-pvf-prepare-worker] +path = "../polkadot/node/core/pvf/prepare-worker" +default-features = false +optional = true + +[dependencies.polkadot-node-core-runtime-api] +path = "../polkadot/node/core/runtime-api" +default-features = false +optional = true + +[dependencies.polkadot-node-jaeger] +path = "../polkadot/node/jaeger" +default-features = false +optional = true + +[dependencies.polkadot-node-metrics] +path = "../polkadot/node/metrics" +default-features = false +optional = true + +[dependencies.polkadot-node-network-protocol] +path = "../polkadot/node/network/protocol" +default-features = false +optional = true + +[dependencies.polkadot-node-primitives] +path = "../polkadot/node/primitives" +default-features = false +optional = true + +[dependencies.polkadot-node-subsystem] +path = "../polkadot/node/subsystem" +default-features = false +optional = true + +[dependencies.polkadot-node-subsystem-types] +path = "../polkadot/node/subsystem-types" +default-features = false +optional = true + +[dependencies.polkadot-node-subsystem-util] +path = "../polkadot/node/subsystem-util" +default-features = false +optional = true + +[dependencies.polkadot-overseer] +path = "../polkadot/node/overseer" +default-features = false +optional = true + +[dependencies.polkadot-rpc] +path = "../polkadot/rpc" +default-features = false +optional = true + +[dependencies.polkadot-service] +path = "../polkadot/node/service" +default-features = false +optional = true + +[dependencies.polkadot-statement-distribution] +path = "../polkadot/node/network/statement-distribution" +default-features = false +optional = true + +[dependencies.polkadot-statement-table] +path = "../polkadot/statement-table" +default-features = false +optional = true + +[dependencies.sc-allocator] +path = "../substrate/client/allocator" +default-features = false +optional = true + +[dependencies.sc-authority-discovery] +path = "../substrate/client/authority-discovery" +default-features = false +optional = true + +[dependencies.sc-basic-authorship] +path = "../substrate/client/basic-authorship" +default-features = false +optional = true + +[dependencies.sc-block-builder] +path = "../substrate/client/block-builder" +default-features = false +optional = true + +[dependencies.sc-chain-spec] +path = "../substrate/client/chain-spec" +default-features = false +optional = true + +[dependencies.sc-cli] +path = "../substrate/client/cli" +default-features = false +optional = true + +[dependencies.sc-client-api] +path = "../substrate/client/api" +default-features = false +optional = true + +[dependencies.sc-client-db] +path = "../substrate/client/db" +default-features = false +optional = true + +[dependencies.sc-consensus] +path = "../substrate/client/consensus/common" +default-features = false +optional = true + +[dependencies.sc-consensus-aura] +path = "../substrate/client/consensus/aura" +default-features = false +optional = true + +[dependencies.sc-consensus-babe] +path = "../substrate/client/consensus/babe" +default-features = false +optional = true + +[dependencies.sc-consensus-babe-rpc] +path = "../substrate/client/consensus/babe/rpc" +default-features = false +optional = true + +[dependencies.sc-consensus-beefy] +path = "../substrate/client/consensus/beefy" +default-features = false +optional = true + +[dependencies.sc-consensus-beefy-rpc] +path = "../substrate/client/consensus/beefy/rpc" +default-features = false +optional = true + +[dependencies.sc-consensus-epochs] +path = "../substrate/client/consensus/epochs" +default-features = false +optional = true + +[dependencies.sc-consensus-grandpa] +path = "../substrate/client/consensus/grandpa" +default-features = false +optional = true + +[dependencies.sc-consensus-grandpa-rpc] +path = "../substrate/client/consensus/grandpa/rpc" +default-features = false +optional = true + +[dependencies.sc-consensus-manual-seal] +path = "../substrate/client/consensus/manual-seal" +default-features = false +optional = true + +[dependencies.sc-consensus-pow] +path = "../substrate/client/consensus/pow" +default-features = false +optional = true + +[dependencies.sc-consensus-slots] +path = "../substrate/client/consensus/slots" +default-features = false +optional = true + +[dependencies.sc-executor] +path = "../substrate/client/executor" +default-features = false +optional = true + +[dependencies.sc-executor-common] +path = "../substrate/client/executor/common" +default-features = false +optional = true + +[dependencies.sc-executor-polkavm] +path = "../substrate/client/executor/polkavm" +default-features = false +optional = true + +[dependencies.sc-executor-wasmtime] +path = "../substrate/client/executor/wasmtime" +default-features = false +optional = true + +[dependencies.sc-informant] +path = "../substrate/client/informant" +default-features = false +optional = true + +[dependencies.sc-keystore] +path = "../substrate/client/keystore" +default-features = false +optional = true + +[dependencies.sc-mixnet] +path = "../substrate/client/mixnet" +default-features = false +optional = true + +[dependencies.sc-network] +path = "../substrate/client/network" +default-features = false +optional = true + +[dependencies.sc-network-common] +path = "../substrate/client/network/common" +default-features = false +optional = true + +[dependencies.sc-network-gossip] +path = "../substrate/client/network-gossip" +default-features = false +optional = true + +[dependencies.sc-network-light] +path = "../substrate/client/network/light" +default-features = false +optional = true + +[dependencies.sc-network-statement] +path = "../substrate/client/network/statement" +default-features = false +optional = true + +[dependencies.sc-network-sync] +path = "../substrate/client/network/sync" +default-features = false +optional = true + +[dependencies.sc-network-transactions] +path = "../substrate/client/network/transactions" +default-features = false +optional = true + +[dependencies.sc-network-types] +path = "../substrate/client/network/types" +default-features = false +optional = true + +[dependencies.sc-offchain] +path = "../substrate/client/offchain" +default-features = false +optional = true + +[dependencies.sc-proposer-metrics] +path = "../substrate/client/proposer-metrics" +default-features = false +optional = true + +[dependencies.sc-rpc] +path = "../substrate/client/rpc" +default-features = false +optional = true + +[dependencies.sc-rpc-api] +path = "../substrate/client/rpc-api" +default-features = false +optional = true + +[dependencies.sc-rpc-server] +path = "../substrate/client/rpc-servers" +default-features = false +optional = true + +[dependencies.sc-rpc-spec-v2] +path = "../substrate/client/rpc-spec-v2" +default-features = false +optional = true + +[dependencies.sc-service] +path = "../substrate/client/service" +default-features = false +optional = true + +[dependencies.sc-state-db] +path = "../substrate/client/state-db" +default-features = false +optional = true + +[dependencies.sc-statement-store] +path = "../substrate/client/statement-store" +default-features = false +optional = true + +[dependencies.sc-storage-monitor] +path = "../substrate/client/storage-monitor" +default-features = false +optional = true + +[dependencies.sc-sync-state-rpc] +path = "../substrate/client/sync-state-rpc" +default-features = false +optional = true + +[dependencies.sc-sysinfo] +path = "../substrate/client/sysinfo" +default-features = false +optional = true + +[dependencies.sc-telemetry] +path = "../substrate/client/telemetry" +default-features = false +optional = true + +[dependencies.sc-tracing] +path = "../substrate/client/tracing" +default-features = false +optional = true + +[dependencies.sc-transaction-pool] +path = "../substrate/client/transaction-pool" +default-features = false +optional = true + +[dependencies.sc-transaction-pool-api] +path = "../substrate/client/transaction-pool/api" +default-features = false +optional = true + +[dependencies.sc-utils] +path = "../substrate/client/utils" +default-features = false +optional = true + +[dependencies.snowbridge-runtime-test-common] +path = "../bridges/snowbridge/runtime/test-common" +default-features = false +optional = true + +[dependencies.sp-blockchain] +path = "../substrate/primitives/blockchain" +default-features = false +optional = true + +[dependencies.sp-consensus] +path = "../substrate/primitives/consensus/common" +default-features = false +optional = true + +[dependencies.sp-core-hashing] +path = "../substrate/deprecated/hashing" +default-features = false +optional = true + +[dependencies.sp-core-hashing-proc-macro] +path = "../substrate/deprecated/hashing/proc-macro" +default-features = false +optional = true + +[dependencies.sp-database] +path = "../substrate/primitives/database" +default-features = false +optional = true + +[dependencies.sp-maybe-compressed-blob] +path = "../substrate/primitives/maybe-compressed-blob" +default-features = false +optional = true + +[dependencies.sp-panic-handler] +path = "../substrate/primitives/panic-handler" +default-features = false +optional = true + +[dependencies.sp-rpc] +path = "../substrate/primitives/rpc" +default-features = false +optional = true + +[dependencies.staging-node-inspect] +path = "../substrate/bin/node/inspect" +default-features = false +optional = true + +[dependencies.staging-tracking-allocator] +path = "../polkadot/node/tracking-allocator" +default-features = false +optional = true + +[dependencies.subkey] +path = "../substrate/bin/utils/subkey" +default-features = false +optional = true + +[dependencies.substrate-build-script-utils] +path = "../substrate/utils/build-script-utils" +default-features = false +optional = true + +[dependencies.substrate-frame-cli] +path = "../substrate/utils/frame/frame-utilities-cli" +default-features = false +optional = true + +[dependencies.substrate-frame-rpc-support] +path = "../substrate/utils/frame/rpc/support" +default-features = false +optional = true + +[dependencies.substrate-frame-rpc-system] +path = "../substrate/utils/frame/rpc/system" +default-features = false +optional = true + +[dependencies.substrate-prometheus-endpoint] +path = "../substrate/utils/prometheus" +default-features = false +optional = true + +[dependencies.substrate-rpc-client] +path = "../substrate/utils/frame/rpc/client" +default-features = false +optional = true + +[dependencies.substrate-state-trie-migration-rpc] +path = "../substrate/utils/frame/rpc/state-trie-migration-rpc" +default-features = false +optional = true + +[dependencies.substrate-wasm-builder] +path = "../substrate/utils/wasm-builder" +default-features = false +optional = true + +[dependencies.tracing-gum] +path = "../polkadot/node/gum" +default-features = false +optional = true + +[dependencies.xcm-emulator] +path = "../cumulus/xcm/xcm-emulator" +default-features = false +optional = true + +[dependencies.xcm-simulator] +path = "../polkadot/xcm/xcm-simulator" +default-features = false +optional = true diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs new file mode 100644 index 000000000000..c6dbd5dd5bb4 --- /dev/null +++ b/umbrella/src/lib.rs @@ -0,0 +1,1129 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(feature = "asset-test-utils")] +pub use asset_test_utils; + +#[cfg(feature = "assets-common")] +pub use assets_common; + +#[cfg(feature = "binary-merkle-tree")] +pub use binary_merkle_tree; + +#[cfg(feature = "bp-asset-hub-rococo")] +pub use bp_asset_hub_rococo; + +#[cfg(feature = "bp-asset-hub-westend")] +pub use bp_asset_hub_westend; + +#[cfg(feature = "bp-bridge-hub-cumulus")] +pub use bp_bridge_hub_cumulus; + +#[cfg(feature = "bp-bridge-hub-kusama")] +pub use bp_bridge_hub_kusama; + +#[cfg(feature = "bp-bridge-hub-polkadot")] +pub use bp_bridge_hub_polkadot; + +#[cfg(feature = "bp-bridge-hub-rococo")] +pub use bp_bridge_hub_rococo; + +#[cfg(feature = "bp-bridge-hub-westend")] +pub use bp_bridge_hub_westend; + +#[cfg(feature = "bp-header-chain")] +pub use bp_header_chain; + +#[cfg(feature = "bp-kusama")] +pub use bp_kusama; + +#[cfg(feature = "bp-messages")] +pub use bp_messages; + +#[cfg(feature = "bp-parachains")] +pub use bp_parachains; + +#[cfg(feature = "bp-polkadot")] +pub use bp_polkadot; + +#[cfg(feature = "bp-polkadot-bulletin")] +pub use bp_polkadot_bulletin; + +#[cfg(feature = "bp-polkadot-core")] +pub use bp_polkadot_core; + +#[cfg(feature = "bp-relayers")] +pub use bp_relayers; + +#[cfg(feature = "bp-rococo")] +pub use bp_rococo; + +#[cfg(feature = "bp-runtime")] +pub use bp_runtime; + +#[cfg(feature = "bp-test-utils")] +pub use bp_test_utils; + +#[cfg(feature = "bp-westend")] +pub use bp_westend; + +#[cfg(feature = "bp-xcm-bridge-hub")] +pub use bp_xcm_bridge_hub; + +#[cfg(feature = "bp-xcm-bridge-hub-router")] +pub use bp_xcm_bridge_hub_router; + +#[cfg(feature = "bridge-hub-common")] +pub use bridge_hub_common; + +#[cfg(feature = "bridge-hub-test-utils")] +pub use bridge_hub_test_utils; + +#[cfg(feature = "bridge-runtime-common")] +pub use bridge_runtime_common; + +#[cfg(feature = "cumulus-client-cli")] +pub use cumulus_client_cli; + +#[cfg(feature = "cumulus-client-collator")] +pub use cumulus_client_collator; + +#[cfg(feature = "cumulus-client-consensus-aura")] +pub use cumulus_client_consensus_aura; + +#[cfg(feature = "cumulus-client-consensus-common")] +pub use cumulus_client_consensus_common; + +#[cfg(feature = "cumulus-client-consensus-proposer")] +pub use cumulus_client_consensus_proposer; + +#[cfg(feature = "cumulus-client-consensus-relay-chain")] +pub use cumulus_client_consensus_relay_chain; + +#[cfg(feature = "cumulus-client-network")] +pub use cumulus_client_network; + +#[cfg(feature = "cumulus-client-parachain-inherent")] +pub use cumulus_client_parachain_inherent; + +#[cfg(feature = "cumulus-client-pov-recovery")] +pub use cumulus_client_pov_recovery; + +#[cfg(feature = "cumulus-client-service")] +pub use cumulus_client_service; + +#[cfg(feature = "cumulus-pallet-aura-ext")] +pub use cumulus_pallet_aura_ext; + +#[cfg(feature = "cumulus-pallet-dmp-queue")] +pub use cumulus_pallet_dmp_queue; + +#[cfg(feature = "cumulus-pallet-parachain-system")] +pub use cumulus_pallet_parachain_system; + +#[cfg(feature = "cumulus-pallet-parachain-system-proc-macro")] +pub use cumulus_pallet_parachain_system_proc_macro; + +#[cfg(feature = "cumulus-pallet-session-benchmarking")] +pub use cumulus_pallet_session_benchmarking; + +#[cfg(feature = "cumulus-pallet-solo-to-para")] +pub use cumulus_pallet_solo_to_para; + +#[cfg(feature = "cumulus-pallet-xcm")] +pub use cumulus_pallet_xcm; + +#[cfg(feature = "cumulus-pallet-xcmp-queue")] +pub use cumulus_pallet_xcmp_queue; + +#[cfg(feature = "cumulus-ping")] +pub use cumulus_ping; + +#[cfg(feature = "cumulus-primitives-aura")] +pub use cumulus_primitives_aura; + +#[cfg(feature = "cumulus-primitives-core")] +pub use cumulus_primitives_core; + +#[cfg(feature = "cumulus-primitives-parachain-inherent")] +pub use cumulus_primitives_parachain_inherent; + +#[cfg(feature = "cumulus-primitives-proof-size-hostfunction")] +pub use cumulus_primitives_proof_size_hostfunction; + +#[cfg(feature = "cumulus-primitives-storage-weight-reclaim")] +pub use cumulus_primitives_storage_weight_reclaim; + +#[cfg(feature = "cumulus-primitives-timestamp")] +pub use cumulus_primitives_timestamp; + +#[cfg(feature = "cumulus-primitives-utility")] +pub use cumulus_primitives_utility; + +#[cfg(feature = "cumulus-relay-chain-inprocess-interface")] +pub use cumulus_relay_chain_inprocess_interface; + +#[cfg(feature = "cumulus-relay-chain-interface")] +pub use cumulus_relay_chain_interface; + +#[cfg(feature = "cumulus-relay-chain-minimal-node")] +pub use cumulus_relay_chain_minimal_node; + +#[cfg(feature = "cumulus-relay-chain-rpc-interface")] +pub use cumulus_relay_chain_rpc_interface; + +#[cfg(feature = "cumulus-test-relay-sproof-builder")] +pub use cumulus_test_relay_sproof_builder; + +#[cfg(feature = "emulated-integration-tests-common")] +pub use emulated_integration_tests_common; + +#[cfg(feature = "fork-tree")] +pub use fork_tree; + +#[cfg(feature = "frame-benchmarking")] +pub use frame_benchmarking; + +#[cfg(feature = "frame-benchmarking-cli")] +pub use frame_benchmarking_cli; + +#[cfg(feature = "frame-benchmarking-pallet-pov")] +pub use frame_benchmarking_pallet_pov; + +#[cfg(feature = "frame-election-provider-solution-type")] +pub use frame_election_provider_solution_type; + +#[cfg(feature = "frame-election-provider-support")] +pub use frame_election_provider_support; + +#[cfg(feature = "frame-executive")] +pub use frame_executive; + +#[cfg(feature = "frame-remote-externalities")] +pub use frame_remote_externalities; + +#[cfg(feature = "frame-support")] +pub use frame_support; + +#[cfg(feature = "frame-support-procedural")] +pub use frame_support_procedural; + +#[cfg(feature = "frame-support-procedural-tools")] +pub use frame_support_procedural_tools; + +#[cfg(feature = "frame-support-procedural-tools-derive")] +pub use frame_support_procedural_tools_derive; + +#[cfg(feature = "frame-system")] +pub use frame_system; + +#[cfg(feature = "frame-system-benchmarking")] +pub use frame_system_benchmarking; + +#[cfg(feature = "frame-system-rpc-runtime-api")] +pub use frame_system_rpc_runtime_api; + +#[cfg(feature = "generate-bags")] +pub use generate_bags; + +#[cfg(feature = "mmr-gadget")] +pub use mmr_gadget; + +#[cfg(feature = "mmr-rpc")] +pub use mmr_rpc; + +#[cfg(feature = "pallet-alliance")] +pub use pallet_alliance; + +#[cfg(feature = "pallet-asset-conversion")] +pub use pallet_asset_conversion; + +#[cfg(feature = "pallet-asset-conversion-ops")] +pub use pallet_asset_conversion_ops; + +#[cfg(feature = "pallet-asset-conversion-tx-payment")] +pub use pallet_asset_conversion_tx_payment; + +#[cfg(feature = "pallet-asset-rate")] +pub use pallet_asset_rate; + +#[cfg(feature = "pallet-asset-tx-payment")] +pub use pallet_asset_tx_payment; + +#[cfg(feature = "pallet-assets")] +pub use pallet_assets; + +#[cfg(feature = "pallet-atomic-swap")] +pub use pallet_atomic_swap; + +#[cfg(feature = "pallet-aura")] +pub use pallet_aura; + +#[cfg(feature = "pallet-authority-discovery")] +pub use pallet_authority_discovery; + +#[cfg(feature = "pallet-authorship")] +pub use pallet_authorship; + +#[cfg(feature = "pallet-babe")] +pub use pallet_babe; + +#[cfg(feature = "pallet-bags-list")] +pub use pallet_bags_list; + +#[cfg(feature = "pallet-balances")] +pub use pallet_balances; + +#[cfg(feature = "pallet-beefy")] +pub use pallet_beefy; + +#[cfg(feature = "pallet-beefy-mmr")] +pub use pallet_beefy_mmr; + +#[cfg(feature = "pallet-bounties")] +pub use pallet_bounties; + +#[cfg(feature = "pallet-bridge-grandpa")] +pub use pallet_bridge_grandpa; + +#[cfg(feature = "pallet-bridge-messages")] +pub use pallet_bridge_messages; + +#[cfg(feature = "pallet-bridge-parachains")] +pub use pallet_bridge_parachains; + +#[cfg(feature = "pallet-bridge-relayers")] +pub use pallet_bridge_relayers; + +#[cfg(feature = "pallet-broker")] +pub use pallet_broker; + +#[cfg(feature = "pallet-child-bounties")] +pub use pallet_child_bounties; + +#[cfg(feature = "pallet-collator-selection")] +pub use pallet_collator_selection; + +#[cfg(feature = "pallet-collective")] +pub use pallet_collective; + +#[cfg(feature = "pallet-collective-content")] +pub use pallet_collective_content; + +#[cfg(feature = "pallet-contracts")] +pub use pallet_contracts; + +#[cfg(feature = "pallet-contracts-mock-network")] +pub use pallet_contracts_mock_network; + +#[cfg(feature = "pallet-contracts-proc-macro")] +pub use pallet_contracts_proc_macro; + +#[cfg(feature = "pallet-contracts-uapi")] +pub use pallet_contracts_uapi; + +#[cfg(feature = "pallet-conviction-voting")] +pub use pallet_conviction_voting; + +#[cfg(feature = "pallet-core-fellowship")] +pub use pallet_core_fellowship; + +#[cfg(feature = "pallet-democracy")] +pub use pallet_democracy; + +#[cfg(feature = "pallet-dev-mode")] +pub use pallet_dev_mode; + +#[cfg(feature = "pallet-election-provider-multi-phase")] +pub use pallet_election_provider_multi_phase; + +#[cfg(feature = "pallet-election-provider-support-benchmarking")] +pub use pallet_election_provider_support_benchmarking; + +#[cfg(feature = "pallet-elections-phragmen")] +pub use pallet_elections_phragmen; + +#[cfg(feature = "pallet-fast-unstake")] +pub use pallet_fast_unstake; + +#[cfg(feature = "pallet-glutton")] +pub use pallet_glutton; + +#[cfg(feature = "pallet-grandpa")] +pub use pallet_grandpa; + +#[cfg(feature = "pallet-identity")] +pub use pallet_identity; + +#[cfg(feature = "pallet-im-online")] +pub use pallet_im_online; + +#[cfg(feature = "pallet-indices")] +pub use pallet_indices; + +#[cfg(feature = "pallet-insecure-randomness-collective-flip")] +pub use pallet_insecure_randomness_collective_flip; + +#[cfg(feature = "pallet-lottery")] +pub use pallet_lottery; + +#[cfg(feature = "pallet-membership")] +pub use pallet_membership; + +#[cfg(feature = "pallet-message-queue")] +pub use pallet_message_queue; + +#[cfg(feature = "pallet-migrations")] +pub use pallet_migrations; + +#[cfg(feature = "pallet-mixnet")] +pub use pallet_mixnet; + +#[cfg(feature = "pallet-mmr")] +pub use pallet_mmr; + +#[cfg(feature = "pallet-multisig")] +pub use pallet_multisig; + +#[cfg(feature = "pallet-nft-fractionalization")] +pub use pallet_nft_fractionalization; + +#[cfg(feature = "pallet-nfts")] +pub use pallet_nfts; + +#[cfg(feature = "pallet-nfts-runtime-api")] +pub use pallet_nfts_runtime_api; + +#[cfg(feature = "pallet-nis")] +pub use pallet_nis; + +#[cfg(feature = "pallet-node-authorization")] +pub use pallet_node_authorization; + +#[cfg(feature = "pallet-nomination-pools")] +pub use pallet_nomination_pools; + +#[cfg(feature = "pallet-nomination-pools-benchmarking")] +pub use pallet_nomination_pools_benchmarking; + +#[cfg(feature = "pallet-nomination-pools-runtime-api")] +pub use pallet_nomination_pools_runtime_api; + +#[cfg(feature = "pallet-offences")] +pub use pallet_offences; + +#[cfg(feature = "pallet-offences-benchmarking")] +pub use pallet_offences_benchmarking; + +#[cfg(feature = "pallet-paged-list")] +pub use pallet_paged_list; + +#[cfg(feature = "pallet-parameters")] +pub use pallet_parameters; + +#[cfg(feature = "pallet-preimage")] +pub use pallet_preimage; + +#[cfg(feature = "pallet-proxy")] +pub use pallet_proxy; + +#[cfg(feature = "pallet-ranked-collective")] +pub use pallet_ranked_collective; + +#[cfg(feature = "pallet-recovery")] +pub use pallet_recovery; + +#[cfg(feature = "pallet-referenda")] +pub use pallet_referenda; + +#[cfg(feature = "pallet-remark")] +pub use pallet_remark; + +#[cfg(feature = "pallet-root-offences")] +pub use pallet_root_offences; + +#[cfg(feature = "pallet-root-testing")] +pub use pallet_root_testing; + +#[cfg(feature = "pallet-safe-mode")] +pub use pallet_safe_mode; + +#[cfg(feature = "pallet-salary")] +pub use pallet_salary; + +#[cfg(feature = "pallet-scheduler")] +pub use pallet_scheduler; + +#[cfg(feature = "pallet-scored-pool")] +pub use pallet_scored_pool; + +#[cfg(feature = "pallet-session")] +pub use pallet_session; + +#[cfg(feature = "pallet-session-benchmarking")] +pub use pallet_session_benchmarking; + +#[cfg(feature = "pallet-skip-feeless-payment")] +pub use pallet_skip_feeless_payment; + +#[cfg(feature = "pallet-society")] +pub use pallet_society; + +#[cfg(feature = "pallet-staking")] +pub use pallet_staking; + +#[cfg(feature = "pallet-staking-reward-curve")] +pub use pallet_staking_reward_curve; + +#[cfg(feature = "pallet-staking-reward-fn")] +pub use pallet_staking_reward_fn; + +#[cfg(feature = "pallet-staking-runtime-api")] +pub use pallet_staking_runtime_api; + +#[cfg(feature = "pallet-state-trie-migration")] +pub use pallet_state_trie_migration; + +#[cfg(feature = "pallet-statement")] +pub use pallet_statement; + +#[cfg(feature = "pallet-sudo")] +pub use pallet_sudo; + +#[cfg(feature = "pallet-timestamp")] +pub use pallet_timestamp; + +#[cfg(feature = "pallet-tips")] +pub use pallet_tips; + +#[cfg(feature = "pallet-transaction-payment")] +pub use pallet_transaction_payment; + +#[cfg(feature = "pallet-transaction-payment-rpc")] +pub use pallet_transaction_payment_rpc; + +#[cfg(feature = "pallet-transaction-payment-rpc-runtime-api")] +pub use pallet_transaction_payment_rpc_runtime_api; + +#[cfg(feature = "pallet-transaction-storage")] +pub use pallet_transaction_storage; + +#[cfg(feature = "pallet-treasury")] +pub use pallet_treasury; + +#[cfg(feature = "pallet-tx-pause")] +pub use pallet_tx_pause; + +#[cfg(feature = "pallet-uniques")] +pub use pallet_uniques; + +#[cfg(feature = "pallet-utility")] +pub use pallet_utility; + +#[cfg(feature = "pallet-vesting")] +pub use pallet_vesting; + +#[cfg(feature = "pallet-whitelist")] +pub use pallet_whitelist; + +#[cfg(feature = "pallet-xcm")] +pub use pallet_xcm; + +#[cfg(feature = "pallet-xcm-benchmarks")] +pub use pallet_xcm_benchmarks; + +#[cfg(feature = "pallet-xcm-bridge-hub")] +pub use pallet_xcm_bridge_hub; + +#[cfg(feature = "pallet-xcm-bridge-hub-router")] +pub use pallet_xcm_bridge_hub_router; + +#[cfg(feature = "parachains-common")] +pub use parachains_common; + +#[cfg(feature = "parachains-runtimes-test-utils")] +pub use parachains_runtimes_test_utils; + +#[cfg(feature = "polkadot-approval-distribution")] +pub use polkadot_approval_distribution; + +#[cfg(feature = "polkadot-availability-bitfield-distribution")] +pub use polkadot_availability_bitfield_distribution; + +#[cfg(feature = "polkadot-availability-distribution")] +pub use polkadot_availability_distribution; + +#[cfg(feature = "polkadot-availability-recovery")] +pub use polkadot_availability_recovery; + +#[cfg(feature = "polkadot-cli")] +pub use polkadot_cli; + +#[cfg(feature = "polkadot-collator-protocol")] +pub use polkadot_collator_protocol; + +#[cfg(feature = "polkadot-core-primitives")] +pub use polkadot_core_primitives; + +#[cfg(feature = "polkadot-dispute-distribution")] +pub use polkadot_dispute_distribution; + +#[cfg(feature = "polkadot-erasure-coding")] +pub use polkadot_erasure_coding; + +#[cfg(feature = "polkadot-gossip-support")] +pub use polkadot_gossip_support; + +#[cfg(feature = "polkadot-network-bridge")] +pub use polkadot_network_bridge; + +#[cfg(feature = "polkadot-node-collation-generation")] +pub use polkadot_node_collation_generation; + +#[cfg(feature = "polkadot-node-core-approval-voting")] +pub use polkadot_node_core_approval_voting; + +#[cfg(feature = "polkadot-node-core-av-store")] +pub use polkadot_node_core_av_store; + +#[cfg(feature = "polkadot-node-core-backing")] +pub use polkadot_node_core_backing; + +#[cfg(feature = "polkadot-node-core-bitfield-signing")] +pub use polkadot_node_core_bitfield_signing; + +#[cfg(feature = "polkadot-node-core-candidate-validation")] +pub use polkadot_node_core_candidate_validation; + +#[cfg(feature = "polkadot-node-core-chain-api")] +pub use polkadot_node_core_chain_api; + +#[cfg(feature = "polkadot-node-core-chain-selection")] +pub use polkadot_node_core_chain_selection; + +#[cfg(feature = "polkadot-node-core-dispute-coordinator")] +pub use polkadot_node_core_dispute_coordinator; + +#[cfg(feature = "polkadot-node-core-parachains-inherent")] +pub use polkadot_node_core_parachains_inherent; + +#[cfg(feature = "polkadot-node-core-prospective-parachains")] +pub use polkadot_node_core_prospective_parachains; + +#[cfg(feature = "polkadot-node-core-provisioner")] +pub use polkadot_node_core_provisioner; + +#[cfg(feature = "polkadot-node-core-pvf")] +pub use polkadot_node_core_pvf; + +#[cfg(feature = "polkadot-node-core-pvf-checker")] +pub use polkadot_node_core_pvf_checker; + +#[cfg(feature = "polkadot-node-core-pvf-common")] +pub use polkadot_node_core_pvf_common; + +#[cfg(feature = "polkadot-node-core-pvf-execute-worker")] +pub use polkadot_node_core_pvf_execute_worker; + +#[cfg(feature = "polkadot-node-core-pvf-prepare-worker")] +pub use polkadot_node_core_pvf_prepare_worker; + +#[cfg(feature = "polkadot-node-core-runtime-api")] +pub use polkadot_node_core_runtime_api; + +#[cfg(feature = "polkadot-node-jaeger")] +pub use polkadot_node_jaeger; + +#[cfg(feature = "polkadot-node-metrics")] +pub use polkadot_node_metrics; + +#[cfg(feature = "polkadot-node-network-protocol")] +pub use polkadot_node_network_protocol; + +#[cfg(feature = "polkadot-node-primitives")] +pub use polkadot_node_primitives; + +#[cfg(feature = "polkadot-node-subsystem")] +pub use polkadot_node_subsystem; + +#[cfg(feature = "polkadot-node-subsystem-types")] +pub use polkadot_node_subsystem_types; + +#[cfg(feature = "polkadot-node-subsystem-util")] +pub use polkadot_node_subsystem_util; + +#[cfg(feature = "polkadot-overseer")] +pub use polkadot_overseer; + +#[cfg(feature = "polkadot-parachain-primitives")] +pub use polkadot_parachain_primitives; + +#[cfg(feature = "polkadot-primitives")] +pub use polkadot_primitives; + +#[cfg(feature = "polkadot-rpc")] +pub use polkadot_rpc; + +#[cfg(feature = "polkadot-runtime-common")] +pub use polkadot_runtime_common; + +#[cfg(feature = "polkadot-runtime-metrics")] +pub use polkadot_runtime_metrics; + +#[cfg(feature = "polkadot-runtime-parachains")] +pub use polkadot_runtime_parachains; + +#[cfg(feature = "polkadot-service")] +pub use polkadot_service; + +#[cfg(feature = "polkadot-statement-distribution")] +pub use polkadot_statement_distribution; + +#[cfg(feature = "polkadot-statement-table")] +pub use polkadot_statement_table; + +#[cfg(feature = "rococo-runtime-constants")] +pub use rococo_runtime_constants; + +#[cfg(feature = "sc-allocator")] +pub use sc_allocator; + +#[cfg(feature = "sc-authority-discovery")] +pub use sc_authority_discovery; + +#[cfg(feature = "sc-basic-authorship")] +pub use sc_basic_authorship; + +#[cfg(feature = "sc-block-builder")] +pub use sc_block_builder; + +#[cfg(feature = "sc-chain-spec")] +pub use sc_chain_spec; + +#[cfg(feature = "sc-chain-spec-derive")] +pub use sc_chain_spec_derive; + +#[cfg(feature = "sc-cli")] +pub use sc_cli; + +#[cfg(feature = "sc-client-api")] +pub use sc_client_api; + +#[cfg(feature = "sc-client-db")] +pub use sc_client_db; + +#[cfg(feature = "sc-consensus")] +pub use sc_consensus; + +#[cfg(feature = "sc-consensus-aura")] +pub use sc_consensus_aura; + +#[cfg(feature = "sc-consensus-babe")] +pub use sc_consensus_babe; + +#[cfg(feature = "sc-consensus-babe-rpc")] +pub use sc_consensus_babe_rpc; + +#[cfg(feature = "sc-consensus-beefy")] +pub use sc_consensus_beefy; + +#[cfg(feature = "sc-consensus-beefy-rpc")] +pub use sc_consensus_beefy_rpc; + +#[cfg(feature = "sc-consensus-epochs")] +pub use sc_consensus_epochs; + +#[cfg(feature = "sc-consensus-grandpa")] +pub use sc_consensus_grandpa; + +#[cfg(feature = "sc-consensus-grandpa-rpc")] +pub use sc_consensus_grandpa_rpc; + +#[cfg(feature = "sc-consensus-manual-seal")] +pub use sc_consensus_manual_seal; + +#[cfg(feature = "sc-consensus-pow")] +pub use sc_consensus_pow; + +#[cfg(feature = "sc-consensus-slots")] +pub use sc_consensus_slots; + +#[cfg(feature = "sc-executor")] +pub use sc_executor; + +#[cfg(feature = "sc-executor-common")] +pub use sc_executor_common; + +#[cfg(feature = "sc-executor-polkavm")] +pub use sc_executor_polkavm; + +#[cfg(feature = "sc-executor-wasmtime")] +pub use sc_executor_wasmtime; + +#[cfg(feature = "sc-informant")] +pub use sc_informant; + +#[cfg(feature = "sc-keystore")] +pub use sc_keystore; + +#[cfg(feature = "sc-mixnet")] +pub use sc_mixnet; + +#[cfg(feature = "sc-network")] +pub use sc_network; + +#[cfg(feature = "sc-network-common")] +pub use sc_network_common; + +#[cfg(feature = "sc-network-gossip")] +pub use sc_network_gossip; + +#[cfg(feature = "sc-network-light")] +pub use sc_network_light; + +#[cfg(feature = "sc-network-statement")] +pub use sc_network_statement; + +#[cfg(feature = "sc-network-sync")] +pub use sc_network_sync; + +#[cfg(feature = "sc-network-transactions")] +pub use sc_network_transactions; + +#[cfg(feature = "sc-network-types")] +pub use sc_network_types; + +#[cfg(feature = "sc-offchain")] +pub use sc_offchain; + +#[cfg(feature = "sc-proposer-metrics")] +pub use sc_proposer_metrics; + +#[cfg(feature = "sc-rpc")] +pub use sc_rpc; + +#[cfg(feature = "sc-rpc-api")] +pub use sc_rpc_api; + +#[cfg(feature = "sc-rpc-server")] +pub use sc_rpc_server; + +#[cfg(feature = "sc-rpc-spec-v2")] +pub use sc_rpc_spec_v2; + +#[cfg(feature = "sc-service")] +pub use sc_service; + +#[cfg(feature = "sc-state-db")] +pub use sc_state_db; + +#[cfg(feature = "sc-statement-store")] +pub use sc_statement_store; + +#[cfg(feature = "sc-storage-monitor")] +pub use sc_storage_monitor; + +#[cfg(feature = "sc-sync-state-rpc")] +pub use sc_sync_state_rpc; + +#[cfg(feature = "sc-sysinfo")] +pub use sc_sysinfo; + +#[cfg(feature = "sc-telemetry")] +pub use sc_telemetry; + +#[cfg(feature = "sc-tracing")] +pub use sc_tracing; + +#[cfg(feature = "sc-tracing-proc-macro")] +pub use sc_tracing_proc_macro; + +#[cfg(feature = "sc-transaction-pool")] +pub use sc_transaction_pool; + +#[cfg(feature = "sc-transaction-pool-api")] +pub use sc_transaction_pool_api; + +#[cfg(feature = "sc-utils")] +pub use sc_utils; + +#[cfg(feature = "slot-range-helper")] +pub use slot_range_helper; + +#[cfg(feature = "snowbridge-beacon-primitives")] +pub use snowbridge_beacon_primitives; + +#[cfg(feature = "snowbridge-core")] +pub use snowbridge_core; + +#[cfg(feature = "snowbridge-ethereum")] +pub use snowbridge_ethereum; + +#[cfg(feature = "snowbridge-outbound-queue-merkle-tree")] +pub use snowbridge_outbound_queue_merkle_tree; + +#[cfg(feature = "snowbridge-outbound-queue-runtime-api")] +pub use snowbridge_outbound_queue_runtime_api; + +#[cfg(feature = "snowbridge-pallet-ethereum-client")] +pub use snowbridge_pallet_ethereum_client; + +#[cfg(feature = "snowbridge-pallet-ethereum-client-fixtures")] +pub use snowbridge_pallet_ethereum_client_fixtures; + +#[cfg(feature = "snowbridge-pallet-inbound-queue")] +pub use snowbridge_pallet_inbound_queue; + +#[cfg(feature = "snowbridge-pallet-inbound-queue-fixtures")] +pub use snowbridge_pallet_inbound_queue_fixtures; + +#[cfg(feature = "snowbridge-pallet-outbound-queue")] +pub use snowbridge_pallet_outbound_queue; + +#[cfg(feature = "snowbridge-pallet-system")] +pub use snowbridge_pallet_system; + +#[cfg(feature = "snowbridge-router-primitives")] +pub use snowbridge_router_primitives; + +#[cfg(feature = "snowbridge-runtime-common")] +pub use snowbridge_runtime_common; + +#[cfg(feature = "snowbridge-runtime-test-common")] +pub use snowbridge_runtime_test_common; + +#[cfg(feature = "snowbridge-system-runtime-api")] +pub use snowbridge_system_runtime_api; + +#[cfg(feature = "sp-api")] +pub use sp_api; + +#[cfg(feature = "sp-api-proc-macro")] +pub use sp_api_proc_macro; + +#[cfg(feature = "sp-application-crypto")] +pub use sp_application_crypto; + +#[cfg(feature = "sp-arithmetic")] +pub use sp_arithmetic; + +#[cfg(feature = "sp-authority-discovery")] +pub use sp_authority_discovery; + +#[cfg(feature = "sp-block-builder")] +pub use sp_block_builder; + +#[cfg(feature = "sp-blockchain")] +pub use sp_blockchain; + +#[cfg(feature = "sp-consensus")] +pub use sp_consensus; + +#[cfg(feature = "sp-consensus-aura")] +pub use sp_consensus_aura; + +#[cfg(feature = "sp-consensus-babe")] +pub use sp_consensus_babe; + +#[cfg(feature = "sp-consensus-beefy")] +pub use sp_consensus_beefy; + +#[cfg(feature = "sp-consensus-grandpa")] +pub use sp_consensus_grandpa; + +#[cfg(feature = "sp-consensus-pow")] +pub use sp_consensus_pow; + +#[cfg(feature = "sp-consensus-slots")] +pub use sp_consensus_slots; + +#[cfg(feature = "sp-core")] +pub use sp_core; + +#[cfg(feature = "sp-core-hashing")] +pub use sp_core_hashing; + +#[cfg(feature = "sp-core-hashing-proc-macro")] +pub use sp_core_hashing_proc_macro; + +#[cfg(feature = "sp-crypto-ec-utils")] +pub use sp_crypto_ec_utils; + +#[cfg(feature = "sp-crypto-hashing")] +pub use sp_crypto_hashing; + +#[cfg(feature = "sp-crypto-hashing-proc-macro")] +pub use sp_crypto_hashing_proc_macro; + +#[cfg(feature = "sp-database")] +pub use sp_database; + +#[cfg(feature = "sp-debug-derive")] +pub use sp_debug_derive; + +#[cfg(feature = "sp-externalities")] +pub use sp_externalities; + +#[cfg(feature = "sp-genesis-builder")] +pub use sp_genesis_builder; + +#[cfg(feature = "sp-inherents")] +pub use sp_inherents; + +#[cfg(feature = "sp-io")] +pub use sp_io; + +#[cfg(feature = "sp-keyring")] +pub use sp_keyring; + +#[cfg(feature = "sp-keystore")] +pub use sp_keystore; + +#[cfg(feature = "sp-maybe-compressed-blob")] +pub use sp_maybe_compressed_blob; + +#[cfg(feature = "sp-metadata-ir")] +pub use sp_metadata_ir; + +#[cfg(feature = "sp-mixnet")] +pub use sp_mixnet; + +#[cfg(feature = "sp-mmr-primitives")] +pub use sp_mmr_primitives; + +#[cfg(feature = "sp-npos-elections")] +pub use sp_npos_elections; + +#[cfg(feature = "sp-offchain")] +pub use sp_offchain; + +#[cfg(feature = "sp-panic-handler")] +pub use sp_panic_handler; + +#[cfg(feature = "sp-rpc")] +pub use sp_rpc; + +#[cfg(feature = "sp-runtime")] +pub use sp_runtime; + +#[cfg(feature = "sp-runtime-interface")] +pub use sp_runtime_interface; + +#[cfg(feature = "sp-runtime-interface-proc-macro")] +pub use sp_runtime_interface_proc_macro; + +#[cfg(feature = "sp-session")] +pub use sp_session; + +#[cfg(feature = "sp-staking")] +pub use sp_staking; + +#[cfg(feature = "sp-state-machine")] +pub use sp_state_machine; + +#[cfg(feature = "sp-statement-store")] +pub use sp_statement_store; + +#[cfg(feature = "sp-std")] +pub use sp_std; + +#[cfg(feature = "sp-storage")] +pub use sp_storage; + +#[cfg(feature = "sp-timestamp")] +pub use sp_timestamp; + +#[cfg(feature = "sp-tracing")] +pub use sp_tracing; + +#[cfg(feature = "sp-transaction-pool")] +pub use sp_transaction_pool; + +#[cfg(feature = "sp-transaction-storage-proof")] +pub use sp_transaction_storage_proof; + +#[cfg(feature = "sp-trie")] +pub use sp_trie; + +#[cfg(feature = "sp-version")] +pub use sp_version; + +#[cfg(feature = "sp-version-proc-macro")] +pub use sp_version_proc_macro; + +#[cfg(feature = "sp-wasm-interface")] +pub use sp_wasm_interface; + +#[cfg(feature = "sp-weights")] +pub use sp_weights; + +#[cfg(feature = "staging-node-inspect")] +pub use staging_node_inspect; + +#[cfg(feature = "staging-parachain-info")] +pub use staging_parachain_info; + +#[cfg(feature = "staging-tracking-allocator")] +pub use staging_tracking_allocator; + +#[cfg(feature = "staging-xcm")] +pub use staging_xcm; + +#[cfg(feature = "staging-xcm-builder")] +pub use staging_xcm_builder; + +#[cfg(feature = "staging-xcm-executor")] +pub use staging_xcm_executor; + +#[cfg(feature = "subkey")] +pub use subkey; + +#[cfg(feature = "substrate-bip39")] +pub use substrate_bip39; + +#[cfg(feature = "substrate-build-script-utils")] +pub use substrate_build_script_utils; + +#[cfg(feature = "substrate-frame-cli")] +pub use substrate_frame_cli; + +#[cfg(feature = "substrate-frame-rpc-support")] +pub use substrate_frame_rpc_support; + +#[cfg(feature = "substrate-frame-rpc-system")] +pub use substrate_frame_rpc_system; + +#[cfg(feature = "substrate-prometheus-endpoint")] +pub use substrate_prometheus_endpoint; + +#[cfg(feature = "substrate-rpc-client")] +pub use substrate_rpc_client; + +#[cfg(feature = "substrate-state-trie-migration-rpc")] +pub use substrate_state_trie_migration_rpc; + +#[cfg(feature = "substrate-wasm-builder")] +pub use substrate_wasm_builder; + +#[cfg(feature = "testnet-parachains-constants")] +pub use testnet_parachains_constants; + +#[cfg(feature = "tracing-gum")] +pub use tracing_gum; + +#[cfg(feature = "tracing-gum-proc-macro")] +pub use tracing_gum_proc_macro; + +#[cfg(feature = "westend-runtime-constants")] +pub use westend_runtime_constants; + +#[cfg(feature = "xcm-emulator")] +pub use xcm_emulator; + +#[cfg(feature = "xcm-fee-payment-runtime-api")] +pub use xcm_fee_payment_runtime_api; + +#[cfg(feature = "xcm-procedural")] +pub use xcm_procedural; + +#[cfg(feature = "xcm-simulator")] +pub use xcm_simulator; From c918fe9e7dc7c0ed73a491eda8633f818c44acc5 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 12:09:02 +0200 Subject: [PATCH 02/39] Fix FRAME macro stuff Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 158 +++++++----------- Cargo.toml | 1 - substrate/bin/node/cli/Cargo.toml | 22 +-- .../src/pallet/expand/tt_default_parts.rs | 4 +- umbrella/Cargo.toml | 24 +-- umbrella/src/lib.rs | 6 +- 6 files changed, 83 insertions(+), 132 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a78040a03db..e42cd5ccaec3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3450,6 +3450,34 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +dependencies = [ + "anes", + "atty", + "cast", + "ciborium", + "clap 3.2.25", + "criterion-plot", + "futures", + "itertools 0.10.5", + "lazy_static", + "num-traits", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + [[package]] name = "criterion" version = "0.5.1" @@ -4372,7 +4400,7 @@ version = "0.1.0" dependencies = [ "async-trait", "clap 4.5.3", - "criterion", + "criterion 0.5.1", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -5982,7 +6010,7 @@ name = "frame-system" version = "28.0.0" dependencies = [ "cfg-if", - "criterion", + "criterion 0.5.1", "docify", "frame-support", "log", @@ -8224,6 +8252,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -8774,6 +8811,8 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", + "memoffset 0.7.1", + "pin-utils", "static_assertions", ] @@ -11807,8 +11846,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand 0.7.3", - "rand_core 0.5.1", + "rand 0.8.5", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -12678,7 +12717,7 @@ dependencies = [ name = "polkadot-erasure-coding" version = "7.0.0" dependencies = [ - "criterion", + "criterion 0.5.1", "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", @@ -13056,7 +13095,7 @@ dependencies = [ "assert_matches", "blake3", "cfg-if", - "criterion", + "criterion 0.5.1", "futures", "futures-timer", "hex-literal", @@ -13161,7 +13200,7 @@ version = "7.0.0" dependencies = [ "blake3", "cfg-if", - "criterion", + "criterion 0.5.1", "libc", "nix 0.27.1", "parity-scale-codec", @@ -13734,8 +13773,6 @@ dependencies = [ name = "polkadot-sdk" version = "1.9.0" dependencies = [ - "asset-hub-rococo-runtime", - "asset-hub-westend-runtime", "asset-test-utils", "assets-common", "binary-merkle-tree", @@ -13761,14 +13798,8 @@ dependencies = [ "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", - "bridge-hub-rococo-runtime", "bridge-hub-test-utils", - "bridge-hub-westend-runtime", "bridge-runtime-common", - "collectives-westend-runtime", - "contracts-rococo-runtime", - "coretime-rococo-runtime", - "coretime-westend-runtime", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -13816,9 +13847,7 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "frame-try-runtime", "generate-bags", - "glutton-westend-runtime", "mmr-gadget", "mmr-rpc", "pallet-alliance", @@ -13853,16 +13882,11 @@ dependencies = [ "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", - "pallet-default-config-example", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", - "pallet-example-basic", - "pallet-example-offchain-worker", - "pallet-example-split", - "pallet-example-tasks", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", @@ -13930,9 +13954,6 @@ dependencies = [ "pallet-xcm-bridge-hub-router", "parachains-common", "parachains-runtimes-test-utils", - "penpal-runtime", - "people-rococo-runtime", - "people-westend-runtime", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -13976,11 +13997,10 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", + "polkadot-sdk-frame", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", - "rococo-parachain-runtime", - "rococo-runtime", "rococo-runtime-constants", "sc-allocator", "sc-authority-discovery", @@ -14036,8 +14056,6 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", - "seedling-runtime", - "shell-runtime", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", @@ -14117,7 +14135,6 @@ dependencies = [ "subkey", "substrate-bip39", "substrate-build-script-utils", - "substrate-frame-cli", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", @@ -14127,13 +14144,11 @@ dependencies = [ "testnet-parachains-constants", "tracing-gum", "tracing-gum-proc-macro", - "westend-runtime", "westend-runtime-constants", "xcm-emulator", "xcm-fee-payment-runtime-api", "xcm-procedural", "xcm-simulator", - "xcm-simulator-example", ] [[package]] @@ -16717,7 +16732,7 @@ name = "sc-client-db" version = "0.35.0" dependencies = [ "array-bytes", - "criterion", + "criterion 0.5.1", "hash-db", "kitchensink-runtime", "kvdb", @@ -17120,7 +17135,7 @@ version = "0.32.0" dependencies = [ "array-bytes", "assert_matches", - "criterion", + "criterion 0.5.1", "env_logger 0.11.3", "num_cpus", "parity-scale-codec", @@ -17901,7 +17916,7 @@ version = "28.0.0" dependencies = [ "ansi_term", "chrono", - "criterion", + "criterion 0.5.1", "is-terminal", "lazy_static", "libc", @@ -17942,7 +17957,7 @@ dependencies = [ "array-bytes", "assert_matches", "async-trait", - "criterion", + "criterion 0.5.1", "futures", "futures-timer", "linked-hash-map", @@ -19322,7 +19337,7 @@ dependencies = [ name = "sp-api-test" version = "2.0.1" dependencies = [ - "criterion", + "criterion 0.5.1", "futures", "log", "parity-scale-codec", @@ -19368,7 +19383,7 @@ dependencies = [ name = "sp-arithmetic" version = "23.0.0" dependencies = [ - "criterion", + "criterion 0.5.1", "docify", "integer-sqrt", "num-traits", @@ -19576,7 +19591,7 @@ dependencies = [ "blake2 0.10.6", "bounded-collections", "bs58 0.5.0", - "criterion", + "criterion 0.5.1", "dyn-clonable", "ed25519-zebra", "futures", @@ -19686,7 +19701,7 @@ version = "0.1.0" dependencies = [ "blake2b_simd", "byteorder", - "criterion", + "criterion 0.5.1", "digest 0.10.7", "sha2 0.10.8", "sha3", @@ -20227,7 +20242,7 @@ version = "29.0.0" dependencies = [ "ahash 0.8.8", "array-bytes", - "criterion", + "criterion 0.5.1", "hash-db", "lazy_static", "memory-db", @@ -20409,80 +20424,27 @@ dependencies = [ "assert_cmd", "clap 4.5.3", "clap_complete", - "criterion", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", + "criterion 0.4.0", "futures", "jsonrpsee", "kitchensink-runtime", "log", - "mmr-gadget", - "nix 0.27.1", + "nix 0.26.2", "node-primitives", "node-rpc", "node-testing", - "pallet-asset-conversion-tx-payment", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-balances", - "pallet-contracts", - "pallet-glutton", - "pallet-im-online", - "pallet-root-testing", - "pallet-skip-feeless-payment", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", "parity-scale-codec", "platforms", "polkadot-sdk", "rand 0.8.5", "regex", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-beefy", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-network-common", - "sc-network-statement", - "sc-network-sync", - "sc-offchain", - "sc-rpc", - "sc-service", "sc-service-test", - "sc-statement-store", - "sc-storage-monitor", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", "scale-info", "serde", "serde_json", "soketto", - "sp-consensus-beefy", - "sp-consensus-grandpa", "staging-node-inspect", - "substrate-build-script-utils", "substrate-cli-test-utils", - "substrate-rpc-client", "tempfile", "tokio", "tokio-util", @@ -22005,7 +21967,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3092f400e9f7e3ce8c1756016a8b6287163ab7a11dd47d82169260cb4cc2d680" dependencies = [ - "criterion", + "criterion 0.5.1", "hash-db", "keccak-hasher", "memory-db", @@ -22200,7 +22162,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] diff --git a/Cargo.toml b/Cargo.toml index f4b6ef7e4c3e..6bd25fa5fb9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -511,7 +511,6 @@ members = [ "substrate/utils/prometheus", "substrate/utils/substrate-bip39", "substrate/utils/wasm-builder", - "templates/minimal", "templates/minimal/node", "templates/minimal/pallets/template", diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index 5bbca6201c8a..022bc95be708 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -34,8 +34,8 @@ required-features = ["cli"] crate-type = ["cdylib", "rlib"] [dependencies] -# third-party dependencies -array-bytes = "6.2.2" +# External dependencies: +array-bytes = "6.1" clap = { version = "4.5.3", features = ["derive"], optional = true } codec = { package = "parity-scale-codec", version = "3.6.1" } serde = { features = ["derive"], workspace = true, default-features = true } @@ -58,11 +58,11 @@ node-inspect = { package = "staging-node-inspect", path = "../inspect", optional futures = "0.3.30" tempfile = "3.1.0" assert_cmd = "2.0.2" -nix = { version = "0.27.1", features = ["signal"] } +nix = { version = "0.26.1", features = ["signal"] } regex = "1.6.0" platforms = "3.0" soketto = "0.7.1" -criterion = { version = "0.5.1", features = ["async_tokio"] } +criterion = { version = "0.4.0", features = ["async_tokio"] } tokio = { version = "1.22.0", features = ["macros", "parking_lot", "time"] } tokio-util = { version = "0.7.4", features = ["compat"] } wait-timeout = "0.2" @@ -80,17 +80,9 @@ clap = { version = "4.5.3", optional = true } clap_complete = { version = "4.0.2", optional = true } node-inspect = { package = "staging-node-inspect", path = "../inspect", optional = true } -<<<<<<< HEAD -frame-benchmarking-cli = { path = "../../../utils/frame/benchmarking-cli", optional = true } -substrate-build-script-utils = { path = "../../../utils/build-script-utils", optional = true } -sc-cli = { path = "../../../client/cli", optional = true } -pallet-balances = { path = "../../../frame/balances" } -sc-storage-monitor = { path = "../../../client/storage-monitor" } -======= polkadot-sdk = { path = "../../../../umbrella", features = ["substrate-build-script-utils"], optional = true } ->>>>>>> db44df834fb (First umbrella) [features] default = ["cli"] @@ -98,13 +90,7 @@ cli = [ "clap", "clap_complete", "node-inspect", -<<<<<<< HEAD - "sc-cli", - "sc-service/rocksdb", - "substrate-build-script-utils", -======= "polkadot-sdk", ->>>>>>> db44df834fb (First umbrella) ] runtime-benchmarks = [ "kitchensink-runtime/runtime-benchmarks", diff --git a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs index a3b2c3ad2235..28f74c284069 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs @@ -198,9 +198,9 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream { macro_rules! #default_parts_unique_id_v2 { { $caller:tt - frame_support = [{ $($frame_support:tt)* }] + your_tt_return = [{ $($my_tt_return:tt)* }] } => { - $my_tt_return! { + $( $my_tt_return )*! { $caller tokens = [{ + Pallet #call_part_v2 #storage_part_v2 #event_part_v2 #error_part_v2 #origin_part_v2 #config_part_v2 diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 6aa9bd1ed573..df7a3d8d47ae 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -166,6 +166,7 @@ std = [ "polkadot-runtime-common?/std", "polkadot-runtime-metrics?/std", "polkadot-runtime-parachains?/std", + "polkadot-sdk-frame?/std", "rococo-runtime-constants?/std", "sc-executor?/std", "slot-range-helper?/std", @@ -339,6 +340,7 @@ runtime-benchmarks = [ "polkadot-primitives?/runtime-benchmarks", "polkadot-runtime-common?/runtime-benchmarks", "polkadot-runtime-parachains?/runtime-benchmarks", + "polkadot-sdk-frame?/runtime-benchmarks", "polkadot-service?/runtime-benchmarks", "sc-client-db?/runtime-benchmarks", "sc-service?/runtime-benchmarks", @@ -356,7 +358,8 @@ runtime-benchmarks = [ "sp-staking?/runtime-benchmarks", "staging-node-inspect?/runtime-benchmarks", "staging-xcm-builder?/runtime-benchmarks", - "staging-xcm-executor?/runtime-benchmarks" + "staging-xcm-executor?/runtime-benchmarks", + "xcm-fee-payment-runtime-api?/runtime-benchmarks" ] try-runtime = [ "cumulus-pallet-aura-ext?/try-runtime", @@ -461,6 +464,7 @@ try-runtime = [ "polkadot-cli?/try-runtime", "polkadot-runtime-common?/try-runtime", "polkadot-runtime-parachains?/try-runtime", + "polkadot-sdk-frame?/try-runtime", "polkadot-service?/try-runtime", "snowbridge-pallet-ethereum-client?/try-runtime", "snowbridge-pallet-inbound-queue?/try-runtime", @@ -515,15 +519,16 @@ serde = [ experimental = [ "frame-support?/experimental", "frame-support-procedural?/experimental", - "frame-system?/experimental" + "frame-system?/experimental", + "polkadot-sdk-frame?/experimental" ] with-tracing = [ "frame-executive?/with-tracing", "sp-io?/with-tracing", "sp-tracing?/with-tracing" ] -runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] -node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-cli", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] +runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] +node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] tuples-96 = [ "frame-support?/tuples-96", "frame-support-procedural?/tuples-96" @@ -661,7 +666,6 @@ staging-node-inspect = [ "dep:staging-node-inspect",] staging-tracking-allocator = [ "dep:staging-tracking-allocator",] subkey = [ "dep:subkey",] substrate-build-script-utils = [ "dep:substrate-build-script-utils",] -substrate-frame-cli = [ "dep:substrate-frame-cli",] substrate-frame-rpc-support = [ "dep:substrate-frame-rpc-support",] substrate-frame-rpc-system = [ "dep:substrate-frame-rpc-system",] substrate-prometheus-endpoint = [ "dep:substrate-prometheus-endpoint",] @@ -1473,6 +1477,11 @@ path = "../polkadot/runtime/parachains" default-features = false optional = true +[dependencies.polkadot-sdk-frame] +path = "../substrate/frame" +default-features = false +optional = true + [dependencies.rococo-runtime-constants] path = "../polkadot/runtime/rococo/constants" default-features = false @@ -2508,11 +2517,6 @@ path = "../substrate/utils/build-script-utils" default-features = false optional = true -[dependencies.substrate-frame-cli] -path = "../substrate/utils/frame/frame-utilities-cli" -default-features = false -optional = true - [dependencies.substrate-frame-rpc-support] path = "../substrate/utils/frame/rpc/support" default-features = false diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index c6dbd5dd5bb4..4fe4e4cf6701 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -672,6 +672,9 @@ pub use polkadot_runtime_metrics; #[cfg(feature = "polkadot-runtime-parachains")] pub use polkadot_runtime_parachains; +#[cfg(feature = "polkadot-sdk-frame")] +pub use polkadot_sdk_frame; + #[cfg(feature = "polkadot-service")] pub use polkadot_service; @@ -1083,9 +1086,6 @@ pub use substrate_bip39; #[cfg(feature = "substrate-build-script-utils")] pub use substrate_build_script_utils; -#[cfg(feature = "substrate-frame-cli")] -pub use substrate_frame_cli; - #[cfg(feature = "substrate-frame-rpc-support")] pub use substrate_frame_rpc_support; From d7cd7db86b7bf8ddb6c5b34454937822f1abe40c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 12:40:06 +0200 Subject: [PATCH 03/39] Add docs Signed-off-by: Oliver Tale-Yazdi --- docs/sdk/src/reference_docs/mod.rs | 3 + docs/sdk/src/reference_docs/umbrella_crate.rs | 85 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 docs/sdk/src/reference_docs/umbrella_crate.rs diff --git a/docs/sdk/src/reference_docs/mod.rs b/docs/sdk/src/reference_docs/mod.rs index 145df8844f26..7d74b9a71600 100644 --- a/docs/sdk/src/reference_docs/mod.rs +++ b/docs/sdk/src/reference_docs/mod.rs @@ -106,3 +106,6 @@ pub mod frame_offchain_workers; /// Learn about the different ways through which multiple [`frame`] pallets can be combined to work /// together. pub mod frame_pallet_coupling; + +/// Lean about the Polkadot Umbrella crate that re-exports all other crates. +pub mod umbrella_crate; diff --git a/docs/sdk/src/reference_docs/umbrella_crate.rs b/docs/sdk/src/reference_docs/umbrella_crate.rs new file mode 100644 index 000000000000..bde431ceebc3 --- /dev/null +++ b/docs/sdk/src/reference_docs/umbrella_crate.rs @@ -0,0 +1,85 @@ +// # Umbrella Crate +// +// The Polkadot-SDK "umbrella" is a crate that re-exports all other published crates. This makes it +// possible to have a very small `Cargo.toml` file that only has one dependency, the umbrella crate. +// This helps with selecting the right combination of crate versions, since otherwise 3rd party +// tools are needed to select a compatible set of versions. +// +// ## Features +// +// The umbrella crate supports no-std builds and can therefore be used in the runtime and node. +// There are two main features: `runtime` and `node`. The `runtime` feature enables all `no-std` +// crates, while the `node` feature enables all `std` crates. It should be used like any other crate +// in the repo, with `default-features = false`. +// +// For more fine-grained control, additionally, each crate can be enabled selectively. The umbrella +// exposes one feature per dependency. For example, if you only want to use the `frame-support` +// crate, you can enable the `frame-support` feature. +// +// The umbrella exposes a few more general features: +// - `tuples-96`: Needs to be enabled for runtimes that have more than 64 pallets. +// - `serde`: Specifically enable `serde` en/decoding support. +// - `experimental`: Experimental enable experimental features - should not yet used in production. +// - `with-tracing`: Enable tracing support. +// - `try-runtime`, `runtime-benchmarks` and `std`: These follow the standard conventions. +// - `runtime`: As described above, enable all `no-std` crates. +// - `node`: As described above, enable all `std` crates. +// +// There is a specific `zepter` check in place to ensure that the features of the umbrella are +// correctly configured. This check is run in CI and locally when running `zepter`. +// +// ## Generation +// +// The umbrella crate needs to be updated every time when a new crate is added or removed from the +// workspace. It is checked in CI by calling its generation script. The generation script is located +// in `./scripts/generate-umbrella.py` and needs dependency `cargo_workspace`. +// +// Example: `python3 scripts/generate-umbrella.py --sdk . --version 1.9.0` +// +// ## Usage +// +// > Note: You can see a live example in the `staging-node-cli` and `kitchensink-runtime` crates. +// +// The umbrella crate can be added to your runtime crate like this: +// +// `polkadot-sdk = { path = "../../../../umbrella", features = ["runtime"], default-features = +// false}` +// +// or for a node: +// +// `polkadot-sdk = { path = "../../../../umbrella", features = ["node"], default-features = false }` +// +// In the code, it is then possible to bring all dependencies into scope via: +// +// `use polkadot_sdk::*;` +// +// ### Known Issues +// +// The only known issue so far is the fact that the `use` statement brings the dependencies only +// into the outer module scope - not the global crate scope. For example, the following code would +// need to be adjusted: +// +// ```rust +// use polkadot_sdk::*; +// +// mod foo { +// // This does sadly not compile: +// frame_support::parameter_types! { } +// +// // Instead, we need to do this (or add an equivalent `use` statement): +// polkadot_sdk::frame_support::parameter_types! { } +// } +// ``` +// +// Apart from this, no issues are known. There could be some bugs with how macros locate their own +// re-exports. Please compile issues that arise from using this crate. +// +// ## Dependencies +// +// The umbrella crate re-exports all published crates, with a few exceptions: +// - Runtime crates like `rococo-runtime` etc are not exported. This otherwise leads to very weird +// compile errors and should not be needed anyway. +// - Example and fuzzing crates are not exported. This is currently detected by checking the name of +// the crate for these magic words. In the future, it will utilize custom metadata, as it is done +// in the `rococo-runtime` crate. +// - The umbrella crate itself. Should be obvious :) From 9d4b6df4f31f34c2176a142e1dae9f09bc4f0ddd Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 12:40:14 +0200 Subject: [PATCH 04/39] fmt Signed-off-by: Oliver Tale-Yazdi --- substrate/bin/node/cli/build.rs | 4 ++- substrate/bin/node/cli/src/chain_spec.rs | 4 +-- substrate/bin/node/cli/src/service.rs | 6 ++-- substrate/bin/node/cli/tests/basic.rs | 2 +- substrate/bin/node/cli/tests/common.rs | 2 +- substrate/bin/node/cli/tests/fees.rs | 2 +- .../bin/node/cli/tests/submit_transaction.rs | 2 +- substrate/bin/node/runtime/src/impls.rs | 29 ++++++++++--------- .../client/chain-spec/derive/src/impls.rs | 14 ++++----- .../solution-type/src/lib.rs | 2 +- .../frame/staking/reward-curve/src/lib.rs | 14 ++++----- .../support/procedural/src/runtime/mod.rs | 20 ++++++------- .../frame/support/procedural/tools/src/lib.rs | 3 +- .../primitives/api/proc-macro/src/utils.rs | 3 +- 14 files changed, 52 insertions(+), 55 deletions(-) diff --git a/substrate/bin/node/cli/build.rs b/substrate/bin/node/cli/build.rs index e76226c92314..7d05b103272b 100644 --- a/substrate/bin/node/cli/build.rs +++ b/substrate/bin/node/cli/build.rs @@ -27,8 +27,10 @@ mod cli { use clap::{CommandFactory, ValueEnum}; use clap_complete::{generate_to, Shell}; + use polkadot_sdk::substrate_build_script_utils::{ + generate_cargo_keys, rerun_if_git_head_changed, + }; use std::{env, fs, path::Path}; - use polkadot_sdk::substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; pub fn main() { //build_shell_completion(); diff --git a/substrate/bin/node/cli/src/chain_spec.rs b/substrate/bin/node/cli/src/chain_spec.rs index edea5ec4a3ec..a3b536e54342 100644 --- a/substrate/bin/node/cli/src/chain_spec.rs +++ b/substrate/bin/node/cli/src/chain_spec.rs @@ -20,8 +20,6 @@ use polkadot_sdk::*; -use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; -use sp_consensus_grandpa::AuthorityId as GrandpaId; use kitchensink_runtime::{ constants::currency::*, wasm_binary_unwrap, Block, MaxNominations, SessionKeys, StakerStatus, }; @@ -32,6 +30,8 @@ use sc_telemetry::TelemetryEndpoints; use serde::{Deserialize, Serialize}; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_babe::AuthorityId as BabeId; +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; +use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::{crypto::UncheckedInto, sr25519, Pair, Public}; use sp_mixnet::types::AuthorityId as MixnetId; use sp_runtime::{ diff --git a/substrate/bin/node/cli/src/service.rs b/substrate/bin/node/cli/src/service.rs index 1ab65f82d266..3ff48ed70ef6 100644 --- a/substrate/bin/node/cli/src/service.rs +++ b/substrate/bin/node/cli/src/service.rs @@ -20,9 +20,7 @@ //! Service implementation. Specialized wrapper over substrate service. -use polkadot_sdk::*; -use polkadot_sdk::sc_consensus_beefy as beefy; -use polkadot_sdk::sc_consensus_grandpa as grandpa; +use polkadot_sdk::{sc_consensus_beefy as beefy, sc_consensus_grandpa as grandpa, *}; use crate::Cli; use codec::Encode; @@ -839,7 +837,6 @@ pub fn new_full(config: Configuration, cli: Cli) -> Result for AllianceProposalProvider #[cfg(test)] mod multiplier_tests { - use polkadot_sdk::frame_support::{ - dispatch::DispatchClass, - weights::{Weight, WeightToFee}, - }; - use polkadot_sdk::pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}; - use polkadot_sdk::sp_runtime::{ - assert_eq_error_rate, - traits::{Convert, One, Zero}, - BuildStorage, FixedPointNumber, + use polkadot_sdk::{ + frame_support::{ + dispatch::DispatchClass, + weights::{Weight, WeightToFee}, + }, + pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}, + sp_runtime::{ + assert_eq_error_rate, + traits::{Convert, One, Zero}, + BuildStorage, FixedPointNumber, + }, }; use crate::{ @@ -200,10 +202,11 @@ mod multiplier_tests { where F: Fn() -> (), { - let mut t: polkadot_sdk::sp_io::TestExternalities = polkadot_sdk::frame_system::GenesisConfig::::default() - .build_storage() - .unwrap() - .into(); + let mut t: polkadot_sdk::sp_io::TestExternalities = + polkadot_sdk::frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); t.execute_with(|| { System::set_block_consumed_resources(w, 0); assertions() diff --git a/substrate/client/chain-spec/derive/src/impls.rs b/substrate/client/chain-spec/derive/src/impls.rs index 00ccfe15f068..1068a3548d48 100644 --- a/substrate/client/chain-spec/derive/src/impls.rs +++ b/substrate/client/chain-spec/derive/src/impls.rs @@ -19,7 +19,7 @@ use proc_macro2::{Span, TokenStream}; use proc_macro_crate::{crate_name, FoundCrate}; use quote::quote; -use syn::{DeriveInput, Error, Path, Ident}; +use syn::{DeriveInput, Error, Ident, Path}; const CRATE_NAME: &str = "sc-chain-spec"; const ATTRIBUTE_NAME: &str = "forks"; @@ -174,13 +174,11 @@ pub fn derive( let crate_name = match crate_name(CRATE_NAME) { Ok(FoundCrate::Itself) => CRATE_NAME.replace("-", "_"), Ok(FoundCrate::Name(chain_spec_name)) => chain_spec_name, - Err(e) => { - match crate_name("polkadot-sdk") { - Ok(FoundCrate::Name(sdk)) => format!("{sdk}::{CRATE_NAME}").replace("-", "_"), - _ => { - return Error::new(Span::call_site(), &e).to_compile_error().into(); - }, - } + Err(e) => match crate_name("polkadot-sdk") { + Ok(FoundCrate::Name(sdk)) => format!("{sdk}::{CRATE_NAME}").replace("-", "_"), + _ => { + return Error::new(Span::call_site(), &e).to_compile_error().into(); + }, }, }; let crate_path = syn::parse_str::(&crate_name).unwrap(); diff --git a/substrate/frame/election-provider-support/solution-type/src/lib.rs b/substrate/frame/election-provider-support/solution-type/src/lib.rs index 450db7deb95d..1a88f0cf835f 100644 --- a/substrate/frame/election-provider-support/solution-type/src/lib.rs +++ b/substrate/frame/election-provider-support/solution-type/src/lib.rs @@ -271,7 +271,7 @@ fn imports() -> Result { use _feps::private as _fepsp; )) }, - _ => Err(syn::Error::new(Span::call_site(), e)), + _ => Err(syn::Error::new(Span::call_site(), e)), }, } } diff --git a/substrate/frame/staking/reward-curve/src/lib.rs b/substrate/frame/staking/reward-curve/src/lib.rs index 0cca24fd4361..cfb8b896f939 100644 --- a/substrate/frame/staking/reward-curve/src/lib.rs +++ b/substrate/frame/staking/reward-curve/src/lib.rs @@ -88,14 +88,12 @@ pub fn build(input: TokenStream) -> TokenStream { let ident = syn::Ident::new(&sp_runtime, Span::call_site()); quote!( #[doc(hidden)] pub use #ident as _sp_runtime; ) }, - Err(e) => { - match crate_name("polkadot-sdk") { - Ok(FoundCrate::Name(polkadot_sdk)) => { - let ident = syn::Ident::new(&polkadot_sdk, Span::call_site()); - quote!( #[doc(hidden)] pub use #ident::sp_runtime as _sp_runtime; ) - }, - _ => syn::Error::new(Span::call_site(), e).to_compile_error(), - } + Err(e) => match crate_name("polkadot-sdk") { + Ok(FoundCrate::Name(polkadot_sdk)) => { + let ident = syn::Ident::new(&polkadot_sdk, Span::call_site()); + quote!( #[doc(hidden)] pub use #ident::sp_runtime as _sp_runtime; ) + }, + _ => syn::Error::new(Span::call_site(), e).to_compile_error(), }, }; diff --git a/substrate/frame/support/procedural/src/runtime/mod.rs b/substrate/frame/support/procedural/src/runtime/mod.rs index d11a9a1e62c5..7f5f871dbeda 100644 --- a/substrate/frame/support/procedural/src/runtime/mod.rs +++ b/substrate/frame/support/procedural/src/runtime/mod.rs @@ -218,16 +218,16 @@ pub fn runtime(attr: TokenStream, tokens: TokenStream) -> TokenStream { /*use expander::*; let expanded = Expander::new("baz") - .add_comment("This is generated code!".to_owned()) - .fmt(Edition::_2021) - .verbose(true) - // common way of gating this, by making it part of the default feature set - .dry(cfg!(feature="no-file-expansion")) - .write_to_out_dir(modified.clone().into()).unwrap_or_else(|e| { - eprintln!("Failed to write to file: {:?}", e); - modified.into() - }); - expanded.into()*/ + .add_comment("This is generated code!".to_owned()) + .fmt(Edition::_2021) + .verbose(true) + // common way of gating this, by making it part of the default feature set + .dry(cfg!(feature="no-file-expansion")) + .write_to_out_dir(modified.clone().into()).unwrap_or_else(|e| { + eprintln!("Failed to write to file: {:?}", e); + modified.into() + }); + expanded.into()*/ modified } diff --git a/substrate/frame/support/procedural/tools/src/lib.rs b/substrate/frame/support/procedural/tools/src/lib.rs index b75c59ed2349..a126711647d4 100644 --- a/substrate/frame/support/procedural/tools/src/lib.rs +++ b/substrate/frame/support/procedural/tools/src/lib.rs @@ -139,8 +139,7 @@ fn get_frame_crate_path(def_crate: &str) -> Option { fn get_sdk_crate_path(def_crate: &str) -> Option { // This does not work if the frame crate is renamed. - if let Ok(FoundCrate::Name(name)) = crate_name(&"polkadot-sdk") - { + if let Ok(FoundCrate::Name(name)) = crate_name(&"polkadot-sdk") { let path = format!("{}::{}", name, def_crate.to_string()).replace("-", "_"); Some(syn::parse_str::(&path).expect("is a valid path; qed")) } else { diff --git a/substrate/primitives/api/proc-macro/src/utils.rs b/substrate/primitives/api/proc-macro/src/utils.rs index e4c6cf71b126..36577670a40c 100644 --- a/substrate/primitives/api/proc-macro/src/utils.rs +++ b/substrate/primitives/api/proc-macro/src/utils.rs @@ -40,8 +40,7 @@ pub fn generate_crate_access() -> TokenStream { let path = format!("{}::deps::sp_api::__private", name); let path = syn::parse_str::(&path).expect("is a valid path; qed"); quote!( #path ) - } else if let Ok(FoundCrate::Name(name)) = - crate_name(&"polkadot-sdk") { + } else if let Ok(FoundCrate::Name(name)) = crate_name(&"polkadot-sdk") { let path = format!("{}::sp_api::__private", name); let path = syn::parse_str::(&path).expect("is a valid path; qed"); quote!( #path ) From aac32119c49c2cd6ca3038eeb2591e491d6f0a45 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 12:44:52 +0200 Subject: [PATCH 05/39] fmt toml Signed-off-by: Oliver Tale-Yazdi --- umbrella/Cargo.toml | 388 ++++++++++++++++++++++---------------------- 1 file changed, 194 insertions(+), 194 deletions(-) diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index df7a3d8d47ae..d7837ba0cbe9 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -5,7 +5,7 @@ description = "Polkadot SDK umbrella crate." license = "Apache-2.0" [features] -default = [ "std",] +default = ["std"] std = [ "asset-test-utils?/std", "assets-common?/std", @@ -21,23 +21,23 @@ std = [ "bp-kusama?/std", "bp-messages?/std", "bp-parachains?/std", - "bp-polkadot?/std", "bp-polkadot-bulletin?/std", "bp-polkadot-core?/std", + "bp-polkadot?/std", "bp-relayers?/std", "bp-rococo?/std", "bp-runtime?/std", "bp-test-utils?/std", "bp-westend?/std", - "bp-xcm-bridge-hub?/std", "bp-xcm-bridge-hub-router?/std", + "bp-xcm-bridge-hub?/std", "bridge-hub-common?/std", "bridge-hub-test-utils?/std", "bridge-runtime-common?/std", "cumulus-pallet-aura-ext?/std", "cumulus-pallet-dmp-queue?/std", - "cumulus-pallet-parachain-system?/std", "cumulus-pallet-parachain-system-proc-macro?/std", + "cumulus-pallet-parachain-system?/std", "cumulus-pallet-session-benchmarking?/std", "cumulus-pallet-solo-to-para?/std", "cumulus-pallet-xcm?/std", @@ -51,19 +51,19 @@ std = [ "cumulus-primitives-timestamp?/std", "cumulus-primitives-utility?/std", "cumulus-test-relay-sproof-builder?/std", - "frame-benchmarking?/std", "frame-benchmarking-pallet-pov?/std", + "frame-benchmarking?/std", "frame-election-provider-support?/std", "frame-executive?/std", - "frame-support?/std", "frame-support-procedural?/std", - "frame-system?/std", + "frame-support?/std", "frame-system-benchmarking?/std", "frame-system-rpc-runtime-api?/std", + "frame-system?/std", "pallet-alliance?/std", - "pallet-asset-conversion?/std", "pallet-asset-conversion-ops?/std", "pallet-asset-conversion-tx-payment?/std", + "pallet-asset-conversion?/std", "pallet-asset-rate?/std", "pallet-asset-tx-payment?/std", "pallet-assets?/std", @@ -74,8 +74,8 @@ std = [ "pallet-babe?/std", "pallet-bags-list?/std", "pallet-balances?/std", - "pallet-beefy?/std", "pallet-beefy-mmr?/std", + "pallet-beefy?/std", "pallet-bounties?/std", "pallet-bridge-grandpa?/std", "pallet-bridge-messages?/std", @@ -84,10 +84,10 @@ std = [ "pallet-broker?/std", "pallet-child-bounties?/std", "pallet-collator-selection?/std", - "pallet-collective?/std", "pallet-collective-content?/std", - "pallet-contracts?/std", + "pallet-collective?/std", "pallet-contracts-mock-network?/std", + "pallet-contracts?/std", "pallet-conviction-voting?/std", "pallet-core-fellowship?/std", "pallet-democracy?/std", @@ -110,15 +110,15 @@ std = [ "pallet-mmr?/std", "pallet-multisig?/std", "pallet-nft-fractionalization?/std", - "pallet-nfts?/std", "pallet-nfts-runtime-api?/std", + "pallet-nfts?/std", "pallet-nis?/std", "pallet-node-authorization?/std", - "pallet-nomination-pools?/std", "pallet-nomination-pools-benchmarking?/std", "pallet-nomination-pools-runtime-api?/std", - "pallet-offences?/std", + "pallet-nomination-pools?/std", "pallet-offences-benchmarking?/std", + "pallet-offences?/std", "pallet-paged-list?/std", "pallet-parameters?/std", "pallet-preimage?/std", @@ -133,20 +133,20 @@ std = [ "pallet-salary?/std", "pallet-scheduler?/std", "pallet-scored-pool?/std", - "pallet-session?/std", "pallet-session-benchmarking?/std", + "pallet-session?/std", "pallet-skip-feeless-payment?/std", "pallet-society?/std", - "pallet-staking?/std", "pallet-staking-reward-fn?/std", "pallet-staking-runtime-api?/std", + "pallet-staking?/std", "pallet-state-trie-migration?/std", "pallet-statement?/std", "pallet-sudo?/std", "pallet-timestamp?/std", "pallet-tips?/std", - "pallet-transaction-payment?/std", "pallet-transaction-payment-rpc-runtime-api?/std", + "pallet-transaction-payment?/std", "pallet-transaction-storage?/std", "pallet-treasury?/std", "pallet-tx-pause?/std", @@ -154,10 +154,10 @@ std = [ "pallet-utility?/std", "pallet-vesting?/std", "pallet-whitelist?/std", - "pallet-xcm?/std", "pallet-xcm-benchmarks?/std", - "pallet-xcm-bridge-hub?/std", "pallet-xcm-bridge-hub-router?/std", + "pallet-xcm-bridge-hub?/std", + "pallet-xcm?/std", "parachains-common?/std", "parachains-runtimes-test-utils?/std", "polkadot-core-primitives?/std", @@ -175,18 +175,18 @@ std = [ "snowbridge-ethereum?/std", "snowbridge-outbound-queue-merkle-tree?/std", "snowbridge-outbound-queue-runtime-api?/std", - "snowbridge-pallet-ethereum-client?/std", "snowbridge-pallet-ethereum-client-fixtures?/std", - "snowbridge-pallet-inbound-queue?/std", + "snowbridge-pallet-ethereum-client?/std", "snowbridge-pallet-inbound-queue-fixtures?/std", + "snowbridge-pallet-inbound-queue?/std", "snowbridge-pallet-outbound-queue?/std", "snowbridge-pallet-system?/std", "snowbridge-router-primitives?/std", "snowbridge-runtime-common?/std", "snowbridge-runtime-test-common?/std", "snowbridge-system-runtime-api?/std", - "sp-api?/std", "sp-api-proc-macro?/std", + "sp-api?/std", "sp-application-crypto?/std", "sp-arithmetic?/std", "sp-authority-discovery?/std", @@ -197,8 +197,8 @@ std = [ "sp-consensus-grandpa?/std", "sp-consensus-pow?/std", "sp-consensus-slots?/std", - "sp-core?/std", "sp-core-hashing?/std", + "sp-core?/std", "sp-crypto-ec-utils?/std", "sp-crypto-hashing?/std", "sp-debug-derive?/std", @@ -213,8 +213,8 @@ std = [ "sp-mmr-primitives?/std", "sp-npos-elections?/std", "sp-offchain?/std", - "sp-runtime?/std", "sp-runtime-interface?/std", + "sp-runtime?/std", "sp-session?/std", "sp-staking?/std", "sp-state-machine?/std", @@ -230,13 +230,13 @@ std = [ "sp-wasm-interface?/std", "sp-weights?/std", "staging-parachain-info?/std", - "staging-xcm?/std", "staging-xcm-builder?/std", "staging-xcm-executor?/std", + "staging-xcm?/std", "substrate-bip39?/std", "testnet-parachains-constants?/std", "westend-runtime-constants?/std", - "xcm-fee-payment-runtime-api?/std" + "xcm-fee-payment-runtime-api?/std", ] runtime-benchmarks = [ "assets-common?/runtime-benchmarks", @@ -248,16 +248,16 @@ runtime-benchmarks = [ "cumulus-pallet-xcmp-queue?/runtime-benchmarks", "cumulus-primitives-core?/runtime-benchmarks", "cumulus-primitives-utility?/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", "frame-benchmarking-cli?/runtime-benchmarks", "frame-benchmarking-pallet-pov?/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", "frame-election-provider-support?/runtime-benchmarks", "frame-support?/runtime-benchmarks", - "frame-system?/runtime-benchmarks", "frame-system-benchmarking?/runtime-benchmarks", + "frame-system?/runtime-benchmarks", "pallet-alliance?/runtime-benchmarks", - "pallet-asset-conversion?/runtime-benchmarks", "pallet-asset-conversion-ops?/runtime-benchmarks", + "pallet-asset-conversion?/runtime-benchmarks", "pallet-asset-rate?/runtime-benchmarks", "pallet-asset-tx-payment?/runtime-benchmarks", "pallet-assets?/runtime-benchmarks", @@ -272,10 +272,10 @@ runtime-benchmarks = [ "pallet-broker?/runtime-benchmarks", "pallet-child-bounties?/runtime-benchmarks", "pallet-collator-selection?/runtime-benchmarks", - "pallet-collective?/runtime-benchmarks", "pallet-collective-content?/runtime-benchmarks", - "pallet-contracts?/runtime-benchmarks", + "pallet-collective?/runtime-benchmarks", "pallet-contracts-mock-network?/runtime-benchmarks", + "pallet-contracts?/runtime-benchmarks", "pallet-conviction-voting?/runtime-benchmarks", "pallet-core-fellowship?/runtime-benchmarks", "pallet-democracy?/runtime-benchmarks", @@ -298,10 +298,10 @@ runtime-benchmarks = [ "pallet-nft-fractionalization?/runtime-benchmarks", "pallet-nfts?/runtime-benchmarks", "pallet-nis?/runtime-benchmarks", - "pallet-nomination-pools?/runtime-benchmarks", "pallet-nomination-pools-benchmarking?/runtime-benchmarks", - "pallet-offences?/runtime-benchmarks", + "pallet-nomination-pools?/runtime-benchmarks", "pallet-offences-benchmarking?/runtime-benchmarks", + "pallet-offences?/runtime-benchmarks", "pallet-paged-list?/runtime-benchmarks", "pallet-parameters?/runtime-benchmarks", "pallet-preimage?/runtime-benchmarks", @@ -329,10 +329,10 @@ runtime-benchmarks = [ "pallet-utility?/runtime-benchmarks", "pallet-vesting?/runtime-benchmarks", "pallet-whitelist?/runtime-benchmarks", - "pallet-xcm?/runtime-benchmarks", "pallet-xcm-benchmarks?/runtime-benchmarks", - "pallet-xcm-bridge-hub?/runtime-benchmarks", "pallet-xcm-bridge-hub-router?/runtime-benchmarks", + "pallet-xcm-bridge-hub?/runtime-benchmarks", + "pallet-xcm?/runtime-benchmarks", "parachains-common?/runtime-benchmarks", "polkadot-cli?/runtime-benchmarks", "polkadot-node-metrics?/runtime-benchmarks", @@ -345,10 +345,10 @@ runtime-benchmarks = [ "sc-client-db?/runtime-benchmarks", "sc-service?/runtime-benchmarks", "snowbridge-core?/runtime-benchmarks", - "snowbridge-pallet-ethereum-client?/runtime-benchmarks", "snowbridge-pallet-ethereum-client-fixtures?/runtime-benchmarks", - "snowbridge-pallet-inbound-queue?/runtime-benchmarks", + "snowbridge-pallet-ethereum-client?/runtime-benchmarks", "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue?/runtime-benchmarks", "snowbridge-pallet-outbound-queue?/runtime-benchmarks", "snowbridge-pallet-system?/runtime-benchmarks", "snowbridge-router-primitives?/runtime-benchmarks", @@ -359,7 +359,7 @@ runtime-benchmarks = [ "staging-node-inspect?/runtime-benchmarks", "staging-xcm-builder?/runtime-benchmarks", "staging-xcm-executor?/runtime-benchmarks", - "xcm-fee-payment-runtime-api?/runtime-benchmarks" + "xcm-fee-payment-runtime-api?/runtime-benchmarks", ] try-runtime = [ "cumulus-pallet-aura-ext?/try-runtime", @@ -375,9 +375,9 @@ try-runtime = [ "frame-support?/try-runtime", "frame-system?/try-runtime", "pallet-alliance?/try-runtime", - "pallet-asset-conversion?/try-runtime", "pallet-asset-conversion-ops?/try-runtime", "pallet-asset-conversion-tx-payment?/try-runtime", + "pallet-asset-conversion?/try-runtime", "pallet-asset-rate?/try-runtime", "pallet-asset-tx-payment?/try-runtime", "pallet-assets?/try-runtime", @@ -388,8 +388,8 @@ try-runtime = [ "pallet-babe?/try-runtime", "pallet-bags-list?/try-runtime", "pallet-balances?/try-runtime", - "pallet-beefy?/try-runtime", "pallet-beefy-mmr?/try-runtime", + "pallet-beefy?/try-runtime", "pallet-bounties?/try-runtime", "pallet-bridge-grandpa?/try-runtime", "pallet-bridge-messages?/try-runtime", @@ -398,8 +398,8 @@ try-runtime = [ "pallet-broker?/try-runtime", "pallet-child-bounties?/try-runtime", "pallet-collator-selection?/try-runtime", - "pallet-collective?/try-runtime", "pallet-collective-content?/try-runtime", + "pallet-collective?/try-runtime", "pallet-contracts?/try-runtime", "pallet-conviction-voting?/try-runtime", "pallet-core-fellowship?/try-runtime", @@ -458,9 +458,9 @@ try-runtime = [ "pallet-utility?/try-runtime", "pallet-vesting?/try-runtime", "pallet-whitelist?/try-runtime", - "pallet-xcm?/try-runtime", - "pallet-xcm-bridge-hub?/try-runtime", "pallet-xcm-bridge-hub-router?/try-runtime", + "pallet-xcm-bridge-hub?/try-runtime", + "pallet-xcm?/try-runtime", "polkadot-cli?/try-runtime", "polkadot-runtime-common?/try-runtime", "polkadot-runtime-parachains?/try-runtime", @@ -471,14 +471,14 @@ try-runtime = [ "snowbridge-pallet-outbound-queue?/try-runtime", "snowbridge-pallet-system?/try-runtime", "sp-runtime?/try-runtime", - "staging-parachain-info?/try-runtime" + "staging-parachain-info?/try-runtime", ] serde = [ "bp-polkadot-core?/serde", "frame-benchmarking?/serde", "pallet-asset-tx-payment?/serde", - "pallet-beefy?/serde", "pallet-beefy-mmr?/serde", + "pallet-beefy?/serde", "pallet-contracts?/serde", "pallet-conviction-voting?/serde", "pallet-democracy?/serde", @@ -514,167 +514,167 @@ serde = [ "sp-statement-store?/serde", "sp-storage?/serde", "sp-version?/serde", - "sp-weights?/serde" + "sp-weights?/serde", ] experimental = [ - "frame-support?/experimental", "frame-support-procedural?/experimental", + "frame-support?/experimental", "frame-system?/experimental", - "polkadot-sdk-frame?/experimental" + "polkadot-sdk-frame?/experimental", ] with-tracing = [ "frame-executive?/with-tracing", "sp-io?/with-tracing", - "sp-tracing?/with-tracing" + "sp-tracing?/with-tracing", ] -runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] -node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] +runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] +node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] tuples-96 = [ + "frame-support-procedural?/tuples-96", "frame-support?/tuples-96", - "frame-support-procedural?/tuples-96" ] -asset-test-utils = [ "dep:asset-test-utils",] -bridge-hub-test-utils = [ "dep:bridge-hub-test-utils",] -cumulus-client-cli = [ "dep:cumulus-client-cli",] -cumulus-client-collator = [ "dep:cumulus-client-collator",] -cumulus-client-consensus-aura = [ "dep:cumulus-client-consensus-aura",] -cumulus-client-consensus-common = [ "dep:cumulus-client-consensus-common",] -cumulus-client-consensus-proposer = [ "dep:cumulus-client-consensus-proposer",] -cumulus-client-consensus-relay-chain = [ "dep:cumulus-client-consensus-relay-chain",] -cumulus-client-network = [ "dep:cumulus-client-network",] -cumulus-client-parachain-inherent = [ "dep:cumulus-client-parachain-inherent",] -cumulus-client-pov-recovery = [ "dep:cumulus-client-pov-recovery",] -cumulus-client-service = [ "dep:cumulus-client-service",] -cumulus-relay-chain-inprocess-interface = [ "dep:cumulus-relay-chain-inprocess-interface",] -cumulus-relay-chain-interface = [ "dep:cumulus-relay-chain-interface",] -cumulus-relay-chain-minimal-node = [ "dep:cumulus-relay-chain-minimal-node",] -cumulus-relay-chain-rpc-interface = [ "dep:cumulus-relay-chain-rpc-interface",] -cumulus-test-relay-sproof-builder = [ "dep:cumulus-test-relay-sproof-builder",] -emulated-integration-tests-common = [ "dep:emulated-integration-tests-common",] -fork-tree = [ "dep:fork-tree",] -frame-benchmarking-cli = [ "dep:frame-benchmarking-cli",] -frame-remote-externalities = [ "dep:frame-remote-externalities",] -frame-support-procedural-tools = [ "dep:frame-support-procedural-tools",] -generate-bags = [ "dep:generate-bags",] -mmr-gadget = [ "dep:mmr-gadget",] -mmr-rpc = [ "dep:mmr-rpc",] -pallet-contracts-mock-network = [ "dep:pallet-contracts-mock-network",] -pallet-transaction-payment-rpc = [ "dep:pallet-transaction-payment-rpc",] -parachains-runtimes-test-utils = [ "dep:parachains-runtimes-test-utils",] -polkadot-approval-distribution = [ "dep:polkadot-approval-distribution",] -polkadot-availability-bitfield-distribution = [ "dep:polkadot-availability-bitfield-distribution",] -polkadot-availability-distribution = [ "dep:polkadot-availability-distribution",] -polkadot-availability-recovery = [ "dep:polkadot-availability-recovery",] -polkadot-cli = [ "dep:polkadot-cli",] -polkadot-collator-protocol = [ "dep:polkadot-collator-protocol",] -polkadot-dispute-distribution = [ "dep:polkadot-dispute-distribution",] -polkadot-erasure-coding = [ "dep:polkadot-erasure-coding",] -polkadot-gossip-support = [ "dep:polkadot-gossip-support",] -polkadot-network-bridge = [ "dep:polkadot-network-bridge",] -polkadot-node-collation-generation = [ "dep:polkadot-node-collation-generation",] -polkadot-node-core-approval-voting = [ "dep:polkadot-node-core-approval-voting",] -polkadot-node-core-av-store = [ "dep:polkadot-node-core-av-store",] -polkadot-node-core-backing = [ "dep:polkadot-node-core-backing",] -polkadot-node-core-bitfield-signing = [ "dep:polkadot-node-core-bitfield-signing",] -polkadot-node-core-candidate-validation = [ "dep:polkadot-node-core-candidate-validation",] -polkadot-node-core-chain-api = [ "dep:polkadot-node-core-chain-api",] -polkadot-node-core-chain-selection = [ "dep:polkadot-node-core-chain-selection",] -polkadot-node-core-dispute-coordinator = [ "dep:polkadot-node-core-dispute-coordinator",] -polkadot-node-core-parachains-inherent = [ "dep:polkadot-node-core-parachains-inherent",] -polkadot-node-core-prospective-parachains = [ "dep:polkadot-node-core-prospective-parachains",] -polkadot-node-core-provisioner = [ "dep:polkadot-node-core-provisioner",] -polkadot-node-core-pvf = [ "dep:polkadot-node-core-pvf",] -polkadot-node-core-pvf-checker = [ "dep:polkadot-node-core-pvf-checker",] -polkadot-node-core-pvf-common = [ "dep:polkadot-node-core-pvf-common",] -polkadot-node-core-pvf-execute-worker = [ "dep:polkadot-node-core-pvf-execute-worker",] -polkadot-node-core-pvf-prepare-worker = [ "dep:polkadot-node-core-pvf-prepare-worker",] -polkadot-node-core-runtime-api = [ "dep:polkadot-node-core-runtime-api",] -polkadot-node-jaeger = [ "dep:polkadot-node-jaeger",] -polkadot-node-metrics = [ "dep:polkadot-node-metrics",] -polkadot-node-network-protocol = [ "dep:polkadot-node-network-protocol",] -polkadot-node-primitives = [ "dep:polkadot-node-primitives",] -polkadot-node-subsystem = [ "dep:polkadot-node-subsystem",] -polkadot-node-subsystem-types = [ "dep:polkadot-node-subsystem-types",] -polkadot-node-subsystem-util = [ "dep:polkadot-node-subsystem-util",] -polkadot-overseer = [ "dep:polkadot-overseer",] -polkadot-rpc = [ "dep:polkadot-rpc",] -polkadot-service = [ "dep:polkadot-service",] -polkadot-statement-distribution = [ "dep:polkadot-statement-distribution",] -polkadot-statement-table = [ "dep:polkadot-statement-table",] -sc-allocator = [ "dep:sc-allocator",] -sc-authority-discovery = [ "dep:sc-authority-discovery",] -sc-basic-authorship = [ "dep:sc-basic-authorship",] -sc-block-builder = [ "dep:sc-block-builder",] -sc-chain-spec = [ "dep:sc-chain-spec",] -sc-cli = [ "dep:sc-cli",] -sc-client-api = [ "dep:sc-client-api",] -sc-client-db = [ "dep:sc-client-db",] -sc-consensus = [ "dep:sc-consensus",] -sc-consensus-aura = [ "dep:sc-consensus-aura",] -sc-consensus-babe = [ "dep:sc-consensus-babe",] -sc-consensus-babe-rpc = [ "dep:sc-consensus-babe-rpc",] -sc-consensus-beefy = [ "dep:sc-consensus-beefy",] -sc-consensus-beefy-rpc = [ "dep:sc-consensus-beefy-rpc",] -sc-consensus-epochs = [ "dep:sc-consensus-epochs",] -sc-consensus-grandpa = [ "dep:sc-consensus-grandpa",] -sc-consensus-grandpa-rpc = [ "dep:sc-consensus-grandpa-rpc",] -sc-consensus-manual-seal = [ "dep:sc-consensus-manual-seal",] -sc-consensus-pow = [ "dep:sc-consensus-pow",] -sc-consensus-slots = [ "dep:sc-consensus-slots",] -sc-executor = [ "dep:sc-executor",] -sc-executor-common = [ "dep:sc-executor-common",] -sc-executor-polkavm = [ "dep:sc-executor-polkavm",] -sc-executor-wasmtime = [ "dep:sc-executor-wasmtime",] -sc-informant = [ "dep:sc-informant",] -sc-keystore = [ "dep:sc-keystore",] -sc-mixnet = [ "dep:sc-mixnet",] -sc-network = [ "dep:sc-network",] -sc-network-common = [ "dep:sc-network-common",] -sc-network-gossip = [ "dep:sc-network-gossip",] -sc-network-light = [ "dep:sc-network-light",] -sc-network-statement = [ "dep:sc-network-statement",] -sc-network-sync = [ "dep:sc-network-sync",] -sc-network-transactions = [ "dep:sc-network-transactions",] -sc-network-types = [ "dep:sc-network-types",] -sc-offchain = [ "dep:sc-offchain",] -sc-proposer-metrics = [ "dep:sc-proposer-metrics",] -sc-rpc = [ "dep:sc-rpc",] -sc-rpc-api = [ "dep:sc-rpc-api",] -sc-rpc-server = [ "dep:sc-rpc-server",] -sc-rpc-spec-v2 = [ "dep:sc-rpc-spec-v2",] -sc-service = [ "dep:sc-service",] -sc-state-db = [ "dep:sc-state-db",] -sc-statement-store = [ "dep:sc-statement-store",] -sc-storage-monitor = [ "dep:sc-storage-monitor",] -sc-sync-state-rpc = [ "dep:sc-sync-state-rpc",] -sc-sysinfo = [ "dep:sc-sysinfo",] -sc-telemetry = [ "dep:sc-telemetry",] -sc-tracing = [ "dep:sc-tracing",] -sc-transaction-pool = [ "dep:sc-transaction-pool",] -sc-transaction-pool-api = [ "dep:sc-transaction-pool-api",] -sc-utils = [ "dep:sc-utils",] -snowbridge-runtime-test-common = [ "dep:snowbridge-runtime-test-common",] -sp-blockchain = [ "dep:sp-blockchain",] -sp-consensus = [ "dep:sp-consensus",] -sp-core-hashing = [ "dep:sp-core-hashing",] -sp-core-hashing-proc-macro = [ "dep:sp-core-hashing-proc-macro",] -sp-database = [ "dep:sp-database",] -sp-maybe-compressed-blob = [ "dep:sp-maybe-compressed-blob",] -sp-panic-handler = [ "dep:sp-panic-handler",] -sp-rpc = [ "dep:sp-rpc",] -staging-node-inspect = [ "dep:staging-node-inspect",] -staging-tracking-allocator = [ "dep:staging-tracking-allocator",] -subkey = [ "dep:subkey",] -substrate-build-script-utils = [ "dep:substrate-build-script-utils",] -substrate-frame-rpc-support = [ "dep:substrate-frame-rpc-support",] -substrate-frame-rpc-system = [ "dep:substrate-frame-rpc-system",] -substrate-prometheus-endpoint = [ "dep:substrate-prometheus-endpoint",] -substrate-rpc-client = [ "dep:substrate-rpc-client",] -substrate-state-trie-migration-rpc = [ "dep:substrate-state-trie-migration-rpc",] -substrate-wasm-builder = [ "dep:substrate-wasm-builder",] -tracing-gum = [ "dep:tracing-gum",] -xcm-emulator = [ "dep:xcm-emulator",] -xcm-simulator = [ "dep:xcm-simulator",] +asset-test-utils = ["dep:asset-test-utils"] +bridge-hub-test-utils = ["dep:bridge-hub-test-utils"] +cumulus-client-cli = ["dep:cumulus-client-cli"] +cumulus-client-collator = ["dep:cumulus-client-collator"] +cumulus-client-consensus-aura = ["dep:cumulus-client-consensus-aura"] +cumulus-client-consensus-common = ["dep:cumulus-client-consensus-common"] +cumulus-client-consensus-proposer = ["dep:cumulus-client-consensus-proposer"] +cumulus-client-consensus-relay-chain = ["dep:cumulus-client-consensus-relay-chain"] +cumulus-client-network = ["dep:cumulus-client-network"] +cumulus-client-parachain-inherent = ["dep:cumulus-client-parachain-inherent"] +cumulus-client-pov-recovery = ["dep:cumulus-client-pov-recovery"] +cumulus-client-service = ["dep:cumulus-client-service"] +cumulus-relay-chain-inprocess-interface = ["dep:cumulus-relay-chain-inprocess-interface"] +cumulus-relay-chain-interface = ["dep:cumulus-relay-chain-interface"] +cumulus-relay-chain-minimal-node = ["dep:cumulus-relay-chain-minimal-node"] +cumulus-relay-chain-rpc-interface = ["dep:cumulus-relay-chain-rpc-interface"] +cumulus-test-relay-sproof-builder = ["dep:cumulus-test-relay-sproof-builder"] +emulated-integration-tests-common = ["dep:emulated-integration-tests-common"] +fork-tree = ["dep:fork-tree"] +frame-benchmarking-cli = ["dep:frame-benchmarking-cli"] +frame-remote-externalities = ["dep:frame-remote-externalities"] +frame-support-procedural-tools = ["dep:frame-support-procedural-tools"] +generate-bags = ["dep:generate-bags"] +mmr-gadget = ["dep:mmr-gadget"] +mmr-rpc = ["dep:mmr-rpc"] +pallet-contracts-mock-network = ["dep:pallet-contracts-mock-network"] +pallet-transaction-payment-rpc = ["dep:pallet-transaction-payment-rpc"] +parachains-runtimes-test-utils = ["dep:parachains-runtimes-test-utils"] +polkadot-approval-distribution = ["dep:polkadot-approval-distribution"] +polkadot-availability-bitfield-distribution = ["dep:polkadot-availability-bitfield-distribution"] +polkadot-availability-distribution = ["dep:polkadot-availability-distribution"] +polkadot-availability-recovery = ["dep:polkadot-availability-recovery"] +polkadot-cli = ["dep:polkadot-cli"] +polkadot-collator-protocol = ["dep:polkadot-collator-protocol"] +polkadot-dispute-distribution = ["dep:polkadot-dispute-distribution"] +polkadot-erasure-coding = ["dep:polkadot-erasure-coding"] +polkadot-gossip-support = ["dep:polkadot-gossip-support"] +polkadot-network-bridge = ["dep:polkadot-network-bridge"] +polkadot-node-collation-generation = ["dep:polkadot-node-collation-generation"] +polkadot-node-core-approval-voting = ["dep:polkadot-node-core-approval-voting"] +polkadot-node-core-av-store = ["dep:polkadot-node-core-av-store"] +polkadot-node-core-backing = ["dep:polkadot-node-core-backing"] +polkadot-node-core-bitfield-signing = ["dep:polkadot-node-core-bitfield-signing"] +polkadot-node-core-candidate-validation = ["dep:polkadot-node-core-candidate-validation"] +polkadot-node-core-chain-api = ["dep:polkadot-node-core-chain-api"] +polkadot-node-core-chain-selection = ["dep:polkadot-node-core-chain-selection"] +polkadot-node-core-dispute-coordinator = ["dep:polkadot-node-core-dispute-coordinator"] +polkadot-node-core-parachains-inherent = ["dep:polkadot-node-core-parachains-inherent"] +polkadot-node-core-prospective-parachains = ["dep:polkadot-node-core-prospective-parachains"] +polkadot-node-core-provisioner = ["dep:polkadot-node-core-provisioner"] +polkadot-node-core-pvf = ["dep:polkadot-node-core-pvf"] +polkadot-node-core-pvf-checker = ["dep:polkadot-node-core-pvf-checker"] +polkadot-node-core-pvf-common = ["dep:polkadot-node-core-pvf-common"] +polkadot-node-core-pvf-execute-worker = ["dep:polkadot-node-core-pvf-execute-worker"] +polkadot-node-core-pvf-prepare-worker = ["dep:polkadot-node-core-pvf-prepare-worker"] +polkadot-node-core-runtime-api = ["dep:polkadot-node-core-runtime-api"] +polkadot-node-jaeger = ["dep:polkadot-node-jaeger"] +polkadot-node-metrics = ["dep:polkadot-node-metrics"] +polkadot-node-network-protocol = ["dep:polkadot-node-network-protocol"] +polkadot-node-primitives = ["dep:polkadot-node-primitives"] +polkadot-node-subsystem = ["dep:polkadot-node-subsystem"] +polkadot-node-subsystem-types = ["dep:polkadot-node-subsystem-types"] +polkadot-node-subsystem-util = ["dep:polkadot-node-subsystem-util"] +polkadot-overseer = ["dep:polkadot-overseer"] +polkadot-rpc = ["dep:polkadot-rpc"] +polkadot-service = ["dep:polkadot-service"] +polkadot-statement-distribution = ["dep:polkadot-statement-distribution"] +polkadot-statement-table = ["dep:polkadot-statement-table"] +sc-allocator = ["dep:sc-allocator"] +sc-authority-discovery = ["dep:sc-authority-discovery"] +sc-basic-authorship = ["dep:sc-basic-authorship"] +sc-block-builder = ["dep:sc-block-builder"] +sc-chain-spec = ["dep:sc-chain-spec"] +sc-cli = ["dep:sc-cli"] +sc-client-api = ["dep:sc-client-api"] +sc-client-db = ["dep:sc-client-db"] +sc-consensus = ["dep:sc-consensus"] +sc-consensus-aura = ["dep:sc-consensus-aura"] +sc-consensus-babe = ["dep:sc-consensus-babe"] +sc-consensus-babe-rpc = ["dep:sc-consensus-babe-rpc"] +sc-consensus-beefy = ["dep:sc-consensus-beefy"] +sc-consensus-beefy-rpc = ["dep:sc-consensus-beefy-rpc"] +sc-consensus-epochs = ["dep:sc-consensus-epochs"] +sc-consensus-grandpa = ["dep:sc-consensus-grandpa"] +sc-consensus-grandpa-rpc = ["dep:sc-consensus-grandpa-rpc"] +sc-consensus-manual-seal = ["dep:sc-consensus-manual-seal"] +sc-consensus-pow = ["dep:sc-consensus-pow"] +sc-consensus-slots = ["dep:sc-consensus-slots"] +sc-executor = ["dep:sc-executor"] +sc-executor-common = ["dep:sc-executor-common"] +sc-executor-polkavm = ["dep:sc-executor-polkavm"] +sc-executor-wasmtime = ["dep:sc-executor-wasmtime"] +sc-informant = ["dep:sc-informant"] +sc-keystore = ["dep:sc-keystore"] +sc-mixnet = ["dep:sc-mixnet"] +sc-network = ["dep:sc-network"] +sc-network-common = ["dep:sc-network-common"] +sc-network-gossip = ["dep:sc-network-gossip"] +sc-network-light = ["dep:sc-network-light"] +sc-network-statement = ["dep:sc-network-statement"] +sc-network-sync = ["dep:sc-network-sync"] +sc-network-transactions = ["dep:sc-network-transactions"] +sc-network-types = ["dep:sc-network-types"] +sc-offchain = ["dep:sc-offchain"] +sc-proposer-metrics = ["dep:sc-proposer-metrics"] +sc-rpc = ["dep:sc-rpc"] +sc-rpc-api = ["dep:sc-rpc-api"] +sc-rpc-server = ["dep:sc-rpc-server"] +sc-rpc-spec-v2 = ["dep:sc-rpc-spec-v2"] +sc-service = ["dep:sc-service"] +sc-state-db = ["dep:sc-state-db"] +sc-statement-store = ["dep:sc-statement-store"] +sc-storage-monitor = ["dep:sc-storage-monitor"] +sc-sync-state-rpc = ["dep:sc-sync-state-rpc"] +sc-sysinfo = ["dep:sc-sysinfo"] +sc-telemetry = ["dep:sc-telemetry"] +sc-tracing = ["dep:sc-tracing"] +sc-transaction-pool = ["dep:sc-transaction-pool"] +sc-transaction-pool-api = ["dep:sc-transaction-pool-api"] +sc-utils = ["dep:sc-utils"] +snowbridge-runtime-test-common = ["dep:snowbridge-runtime-test-common"] +sp-blockchain = ["dep:sp-blockchain"] +sp-consensus = ["dep:sp-consensus"] +sp-core-hashing = ["dep:sp-core-hashing"] +sp-core-hashing-proc-macro = ["dep:sp-core-hashing-proc-macro"] +sp-database = ["dep:sp-database"] +sp-maybe-compressed-blob = ["dep:sp-maybe-compressed-blob"] +sp-panic-handler = ["dep:sp-panic-handler"] +sp-rpc = ["dep:sp-rpc"] +staging-node-inspect = ["dep:staging-node-inspect"] +staging-tracking-allocator = ["dep:staging-tracking-allocator"] +subkey = ["dep:subkey"] +substrate-build-script-utils = ["dep:substrate-build-script-utils"] +substrate-frame-rpc-support = ["dep:substrate-frame-rpc-support"] +substrate-frame-rpc-system = ["dep:substrate-frame-rpc-system"] +substrate-prometheus-endpoint = ["dep:substrate-prometheus-endpoint"] +substrate-rpc-client = ["dep:substrate-rpc-client"] +substrate-state-trie-migration-rpc = ["dep:substrate-state-trie-migration-rpc"] +substrate-wasm-builder = ["dep:substrate-wasm-builder"] +tracing-gum = ["dep:tracing-gum"] +xcm-emulator = ["dep:xcm-emulator"] +xcm-simulator = ["dep:xcm-simulator"] [package.edition] workspace = true From 7321721093511296d10c5347d18127d12bc58c8f Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 13:39:04 +0200 Subject: [PATCH 06/39] Fix compile Signed-off-by: Oliver Tale-Yazdi --- substrate/bin/node/cli/Cargo.toml | 3 +-- substrate/bin/node/cli/build.rs | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index 022bc95be708..f2942879f2d7 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -81,8 +81,7 @@ clap_complete = { version = "4.0.2", optional = true } node-inspect = { package = "staging-node-inspect", path = "../inspect", optional = true } -polkadot-sdk = { path = "../../../../umbrella", features = ["substrate-build-script-utils"], optional = true } - +polkadot-sdk = { path = "../../../../umbrella", features = ["substrate-build-script-utils", "sc-cli", "sc-storage-monitor", "frame-benchmarking-cli"], optional = true } [features] default = ["cli"] diff --git a/substrate/bin/node/cli/build.rs b/substrate/bin/node/cli/build.rs index 7d05b103272b..b206707d91bc 100644 --- a/substrate/bin/node/cli/build.rs +++ b/substrate/bin/node/cli/build.rs @@ -23,7 +23,7 @@ fn main() { #[cfg(feature = "cli")] mod cli { - //include!("src/cli.rs"); + include!("src/cli.rs"); use clap::{CommandFactory, ValueEnum}; use clap_complete::{generate_to, Shell}; @@ -33,13 +33,13 @@ mod cli { use std::{env, fs, path::Path}; pub fn main() { - //build_shell_completion(); + build_shell_completion(); generate_cargo_keys(); rerun_if_git_head_changed(); } - /*/ Build shell completion scripts for all known shells. + // Build shell completion scripts for all known shells. fn build_shell_completion() { for shell in Shell::value_variants() { build_completion(shell); @@ -64,5 +64,5 @@ mod cli { fs::create_dir(&path).ok(); let _ = generate_to(*shell, &mut Cli::command(), "substrate-node", &path); - }*/ + } } From 93de2124332a517267eba9ecd7b335cd4bed0f30 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 14:39:54 +0200 Subject: [PATCH 07/39] Fix test Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 13 +------------ substrate/bin/node/cli/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e42cd5ccaec3..606ddf4f0e52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8252,15 +8252,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.8.0" @@ -8811,8 +8802,6 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.7.1", - "pin-utils", "static_assertions", ] @@ -20429,7 +20418,7 @@ dependencies = [ "jsonrpsee", "kitchensink-runtime", "log", - "nix 0.26.2", + "nix 0.27.1", "node-primitives", "node-rpc", "node-testing", diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index f2942879f2d7..a6417e354312 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -58,7 +58,7 @@ node-inspect = { package = "staging-node-inspect", path = "../inspect", optional futures = "0.3.30" tempfile = "3.1.0" assert_cmd = "2.0.2" -nix = { version = "0.26.1", features = ["signal"] } +nix = { version = "0.27.1", features = ["signal"] } regex = "1.6.0" platforms = "3.0" soketto = "0.7.1" From cbd764ad1d5ebd2f13f6006c8475d25f91fdc06c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 15:13:28 +0200 Subject: [PATCH 08/39] Fix umbrella Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 1 + umbrella/Cargo.toml | 395 ++++++++++++++++++++++---------------------- umbrella/src/lib.rs | 11 +- 3 files changed, 212 insertions(+), 195 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 606ddf4f0e52..704a37ead39e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13836,6 +13836,7 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", + "frame-try-runtime", "generate-bags", "mmr-gadget", "mmr-rpc", diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index d7837ba0cbe9..b6120239d9a8 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -5,7 +5,7 @@ description = "Polkadot SDK umbrella crate." license = "Apache-2.0" [features] -default = ["std"] +default = [ "std",] std = [ "asset-test-utils?/std", "assets-common?/std", @@ -21,23 +21,23 @@ std = [ "bp-kusama?/std", "bp-messages?/std", "bp-parachains?/std", + "bp-polkadot?/std", "bp-polkadot-bulletin?/std", "bp-polkadot-core?/std", - "bp-polkadot?/std", "bp-relayers?/std", "bp-rococo?/std", "bp-runtime?/std", "bp-test-utils?/std", "bp-westend?/std", - "bp-xcm-bridge-hub-router?/std", "bp-xcm-bridge-hub?/std", + "bp-xcm-bridge-hub-router?/std", "bridge-hub-common?/std", "bridge-hub-test-utils?/std", "bridge-runtime-common?/std", "cumulus-pallet-aura-ext?/std", "cumulus-pallet-dmp-queue?/std", - "cumulus-pallet-parachain-system-proc-macro?/std", "cumulus-pallet-parachain-system?/std", + "cumulus-pallet-parachain-system-proc-macro?/std", "cumulus-pallet-session-benchmarking?/std", "cumulus-pallet-solo-to-para?/std", "cumulus-pallet-xcm?/std", @@ -51,19 +51,20 @@ std = [ "cumulus-primitives-timestamp?/std", "cumulus-primitives-utility?/std", "cumulus-test-relay-sproof-builder?/std", - "frame-benchmarking-pallet-pov?/std", "frame-benchmarking?/std", + "frame-benchmarking-pallet-pov?/std", "frame-election-provider-support?/std", "frame-executive?/std", - "frame-support-procedural?/std", "frame-support?/std", + "frame-support-procedural?/std", + "frame-system?/std", "frame-system-benchmarking?/std", "frame-system-rpc-runtime-api?/std", - "frame-system?/std", + "frame-try-runtime?/std", "pallet-alliance?/std", + "pallet-asset-conversion?/std", "pallet-asset-conversion-ops?/std", "pallet-asset-conversion-tx-payment?/std", - "pallet-asset-conversion?/std", "pallet-asset-rate?/std", "pallet-asset-tx-payment?/std", "pallet-assets?/std", @@ -74,8 +75,8 @@ std = [ "pallet-babe?/std", "pallet-bags-list?/std", "pallet-balances?/std", - "pallet-beefy-mmr?/std", "pallet-beefy?/std", + "pallet-beefy-mmr?/std", "pallet-bounties?/std", "pallet-bridge-grandpa?/std", "pallet-bridge-messages?/std", @@ -84,10 +85,10 @@ std = [ "pallet-broker?/std", "pallet-child-bounties?/std", "pallet-collator-selection?/std", - "pallet-collective-content?/std", "pallet-collective?/std", - "pallet-contracts-mock-network?/std", + "pallet-collective-content?/std", "pallet-contracts?/std", + "pallet-contracts-mock-network?/std", "pallet-conviction-voting?/std", "pallet-core-fellowship?/std", "pallet-democracy?/std", @@ -110,15 +111,15 @@ std = [ "pallet-mmr?/std", "pallet-multisig?/std", "pallet-nft-fractionalization?/std", - "pallet-nfts-runtime-api?/std", "pallet-nfts?/std", + "pallet-nfts-runtime-api?/std", "pallet-nis?/std", "pallet-node-authorization?/std", + "pallet-nomination-pools?/std", "pallet-nomination-pools-benchmarking?/std", "pallet-nomination-pools-runtime-api?/std", - "pallet-nomination-pools?/std", - "pallet-offences-benchmarking?/std", "pallet-offences?/std", + "pallet-offences-benchmarking?/std", "pallet-paged-list?/std", "pallet-parameters?/std", "pallet-preimage?/std", @@ -133,20 +134,20 @@ std = [ "pallet-salary?/std", "pallet-scheduler?/std", "pallet-scored-pool?/std", - "pallet-session-benchmarking?/std", "pallet-session?/std", + "pallet-session-benchmarking?/std", "pallet-skip-feeless-payment?/std", "pallet-society?/std", + "pallet-staking?/std", "pallet-staking-reward-fn?/std", "pallet-staking-runtime-api?/std", - "pallet-staking?/std", "pallet-state-trie-migration?/std", "pallet-statement?/std", "pallet-sudo?/std", "pallet-timestamp?/std", "pallet-tips?/std", - "pallet-transaction-payment-rpc-runtime-api?/std", "pallet-transaction-payment?/std", + "pallet-transaction-payment-rpc-runtime-api?/std", "pallet-transaction-storage?/std", "pallet-treasury?/std", "pallet-tx-pause?/std", @@ -154,10 +155,10 @@ std = [ "pallet-utility?/std", "pallet-vesting?/std", "pallet-whitelist?/std", + "pallet-xcm?/std", "pallet-xcm-benchmarks?/std", - "pallet-xcm-bridge-hub-router?/std", "pallet-xcm-bridge-hub?/std", - "pallet-xcm?/std", + "pallet-xcm-bridge-hub-router?/std", "parachains-common?/std", "parachains-runtimes-test-utils?/std", "polkadot-core-primitives?/std", @@ -175,18 +176,18 @@ std = [ "snowbridge-ethereum?/std", "snowbridge-outbound-queue-merkle-tree?/std", "snowbridge-outbound-queue-runtime-api?/std", - "snowbridge-pallet-ethereum-client-fixtures?/std", "snowbridge-pallet-ethereum-client?/std", - "snowbridge-pallet-inbound-queue-fixtures?/std", + "snowbridge-pallet-ethereum-client-fixtures?/std", "snowbridge-pallet-inbound-queue?/std", + "snowbridge-pallet-inbound-queue-fixtures?/std", "snowbridge-pallet-outbound-queue?/std", "snowbridge-pallet-system?/std", "snowbridge-router-primitives?/std", "snowbridge-runtime-common?/std", "snowbridge-runtime-test-common?/std", "snowbridge-system-runtime-api?/std", - "sp-api-proc-macro?/std", "sp-api?/std", + "sp-api-proc-macro?/std", "sp-application-crypto?/std", "sp-arithmetic?/std", "sp-authority-discovery?/std", @@ -197,8 +198,8 @@ std = [ "sp-consensus-grandpa?/std", "sp-consensus-pow?/std", "sp-consensus-slots?/std", - "sp-core-hashing?/std", "sp-core?/std", + "sp-core-hashing?/std", "sp-crypto-ec-utils?/std", "sp-crypto-hashing?/std", "sp-debug-derive?/std", @@ -213,8 +214,8 @@ std = [ "sp-mmr-primitives?/std", "sp-npos-elections?/std", "sp-offchain?/std", - "sp-runtime-interface?/std", "sp-runtime?/std", + "sp-runtime-interface?/std", "sp-session?/std", "sp-staking?/std", "sp-state-machine?/std", @@ -230,13 +231,13 @@ std = [ "sp-wasm-interface?/std", "sp-weights?/std", "staging-parachain-info?/std", + "staging-xcm?/std", "staging-xcm-builder?/std", "staging-xcm-executor?/std", - "staging-xcm?/std", "substrate-bip39?/std", "testnet-parachains-constants?/std", "westend-runtime-constants?/std", - "xcm-fee-payment-runtime-api?/std", + "xcm-fee-payment-runtime-api?/std" ] runtime-benchmarks = [ "assets-common?/runtime-benchmarks", @@ -248,16 +249,16 @@ runtime-benchmarks = [ "cumulus-pallet-xcmp-queue?/runtime-benchmarks", "cumulus-primitives-core?/runtime-benchmarks", "cumulus-primitives-utility?/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", "frame-benchmarking-cli?/runtime-benchmarks", "frame-benchmarking-pallet-pov?/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", "frame-election-provider-support?/runtime-benchmarks", "frame-support?/runtime-benchmarks", - "frame-system-benchmarking?/runtime-benchmarks", "frame-system?/runtime-benchmarks", + "frame-system-benchmarking?/runtime-benchmarks", "pallet-alliance?/runtime-benchmarks", - "pallet-asset-conversion-ops?/runtime-benchmarks", "pallet-asset-conversion?/runtime-benchmarks", + "pallet-asset-conversion-ops?/runtime-benchmarks", "pallet-asset-rate?/runtime-benchmarks", "pallet-asset-tx-payment?/runtime-benchmarks", "pallet-assets?/runtime-benchmarks", @@ -272,10 +273,10 @@ runtime-benchmarks = [ "pallet-broker?/runtime-benchmarks", "pallet-child-bounties?/runtime-benchmarks", "pallet-collator-selection?/runtime-benchmarks", - "pallet-collective-content?/runtime-benchmarks", "pallet-collective?/runtime-benchmarks", - "pallet-contracts-mock-network?/runtime-benchmarks", + "pallet-collective-content?/runtime-benchmarks", "pallet-contracts?/runtime-benchmarks", + "pallet-contracts-mock-network?/runtime-benchmarks", "pallet-conviction-voting?/runtime-benchmarks", "pallet-core-fellowship?/runtime-benchmarks", "pallet-democracy?/runtime-benchmarks", @@ -298,10 +299,10 @@ runtime-benchmarks = [ "pallet-nft-fractionalization?/runtime-benchmarks", "pallet-nfts?/runtime-benchmarks", "pallet-nis?/runtime-benchmarks", - "pallet-nomination-pools-benchmarking?/runtime-benchmarks", "pallet-nomination-pools?/runtime-benchmarks", - "pallet-offences-benchmarking?/runtime-benchmarks", + "pallet-nomination-pools-benchmarking?/runtime-benchmarks", "pallet-offences?/runtime-benchmarks", + "pallet-offences-benchmarking?/runtime-benchmarks", "pallet-paged-list?/runtime-benchmarks", "pallet-parameters?/runtime-benchmarks", "pallet-preimage?/runtime-benchmarks", @@ -329,10 +330,10 @@ runtime-benchmarks = [ "pallet-utility?/runtime-benchmarks", "pallet-vesting?/runtime-benchmarks", "pallet-whitelist?/runtime-benchmarks", + "pallet-xcm?/runtime-benchmarks", "pallet-xcm-benchmarks?/runtime-benchmarks", - "pallet-xcm-bridge-hub-router?/runtime-benchmarks", "pallet-xcm-bridge-hub?/runtime-benchmarks", - "pallet-xcm?/runtime-benchmarks", + "pallet-xcm-bridge-hub-router?/runtime-benchmarks", "parachains-common?/runtime-benchmarks", "polkadot-cli?/runtime-benchmarks", "polkadot-node-metrics?/runtime-benchmarks", @@ -345,10 +346,10 @@ runtime-benchmarks = [ "sc-client-db?/runtime-benchmarks", "sc-service?/runtime-benchmarks", "snowbridge-core?/runtime-benchmarks", - "snowbridge-pallet-ethereum-client-fixtures?/runtime-benchmarks", "snowbridge-pallet-ethereum-client?/runtime-benchmarks", - "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", + "snowbridge-pallet-ethereum-client-fixtures?/runtime-benchmarks", "snowbridge-pallet-inbound-queue?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", "snowbridge-pallet-outbound-queue?/runtime-benchmarks", "snowbridge-pallet-system?/runtime-benchmarks", "snowbridge-router-primitives?/runtime-benchmarks", @@ -359,7 +360,7 @@ runtime-benchmarks = [ "staging-node-inspect?/runtime-benchmarks", "staging-xcm-builder?/runtime-benchmarks", "staging-xcm-executor?/runtime-benchmarks", - "xcm-fee-payment-runtime-api?/runtime-benchmarks", + "xcm-fee-payment-runtime-api?/runtime-benchmarks" ] try-runtime = [ "cumulus-pallet-aura-ext?/try-runtime", @@ -374,10 +375,11 @@ try-runtime = [ "frame-executive?/try-runtime", "frame-support?/try-runtime", "frame-system?/try-runtime", + "frame-try-runtime/try-runtime", "pallet-alliance?/try-runtime", + "pallet-asset-conversion?/try-runtime", "pallet-asset-conversion-ops?/try-runtime", "pallet-asset-conversion-tx-payment?/try-runtime", - "pallet-asset-conversion?/try-runtime", "pallet-asset-rate?/try-runtime", "pallet-asset-tx-payment?/try-runtime", "pallet-assets?/try-runtime", @@ -388,8 +390,8 @@ try-runtime = [ "pallet-babe?/try-runtime", "pallet-bags-list?/try-runtime", "pallet-balances?/try-runtime", - "pallet-beefy-mmr?/try-runtime", "pallet-beefy?/try-runtime", + "pallet-beefy-mmr?/try-runtime", "pallet-bounties?/try-runtime", "pallet-bridge-grandpa?/try-runtime", "pallet-bridge-messages?/try-runtime", @@ -398,8 +400,8 @@ try-runtime = [ "pallet-broker?/try-runtime", "pallet-child-bounties?/try-runtime", "pallet-collator-selection?/try-runtime", - "pallet-collective-content?/try-runtime", "pallet-collective?/try-runtime", + "pallet-collective-content?/try-runtime", "pallet-contracts?/try-runtime", "pallet-conviction-voting?/try-runtime", "pallet-core-fellowship?/try-runtime", @@ -458,9 +460,9 @@ try-runtime = [ "pallet-utility?/try-runtime", "pallet-vesting?/try-runtime", "pallet-whitelist?/try-runtime", - "pallet-xcm-bridge-hub-router?/try-runtime", - "pallet-xcm-bridge-hub?/try-runtime", "pallet-xcm?/try-runtime", + "pallet-xcm-bridge-hub?/try-runtime", + "pallet-xcm-bridge-hub-router?/try-runtime", "polkadot-cli?/try-runtime", "polkadot-runtime-common?/try-runtime", "polkadot-runtime-parachains?/try-runtime", @@ -471,14 +473,14 @@ try-runtime = [ "snowbridge-pallet-outbound-queue?/try-runtime", "snowbridge-pallet-system?/try-runtime", "sp-runtime?/try-runtime", - "staging-parachain-info?/try-runtime", + "staging-parachain-info?/try-runtime" ] serde = [ "bp-polkadot-core?/serde", "frame-benchmarking?/serde", "pallet-asset-tx-payment?/serde", - "pallet-beefy-mmr?/serde", "pallet-beefy?/serde", + "pallet-beefy-mmr?/serde", "pallet-contracts?/serde", "pallet-conviction-voting?/serde", "pallet-democracy?/serde", @@ -514,167 +516,167 @@ serde = [ "sp-statement-store?/serde", "sp-storage?/serde", "sp-version?/serde", - "sp-weights?/serde", + "sp-weights?/serde" ] experimental = [ - "frame-support-procedural?/experimental", "frame-support?/experimental", + "frame-support-procedural?/experimental", "frame-system?/experimental", - "polkadot-sdk-frame?/experimental", + "polkadot-sdk-frame?/experimental" ] with-tracing = [ "frame-executive?/with-tracing", "sp-io?/with-tracing", - "sp-tracing?/with-tracing", + "sp-tracing?/with-tracing" ] -runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] -node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] +runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] +node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] tuples-96 = [ - "frame-support-procedural?/tuples-96", "frame-support?/tuples-96", + "frame-support-procedural?/tuples-96" ] -asset-test-utils = ["dep:asset-test-utils"] -bridge-hub-test-utils = ["dep:bridge-hub-test-utils"] -cumulus-client-cli = ["dep:cumulus-client-cli"] -cumulus-client-collator = ["dep:cumulus-client-collator"] -cumulus-client-consensus-aura = ["dep:cumulus-client-consensus-aura"] -cumulus-client-consensus-common = ["dep:cumulus-client-consensus-common"] -cumulus-client-consensus-proposer = ["dep:cumulus-client-consensus-proposer"] -cumulus-client-consensus-relay-chain = ["dep:cumulus-client-consensus-relay-chain"] -cumulus-client-network = ["dep:cumulus-client-network"] -cumulus-client-parachain-inherent = ["dep:cumulus-client-parachain-inherent"] -cumulus-client-pov-recovery = ["dep:cumulus-client-pov-recovery"] -cumulus-client-service = ["dep:cumulus-client-service"] -cumulus-relay-chain-inprocess-interface = ["dep:cumulus-relay-chain-inprocess-interface"] -cumulus-relay-chain-interface = ["dep:cumulus-relay-chain-interface"] -cumulus-relay-chain-minimal-node = ["dep:cumulus-relay-chain-minimal-node"] -cumulus-relay-chain-rpc-interface = ["dep:cumulus-relay-chain-rpc-interface"] -cumulus-test-relay-sproof-builder = ["dep:cumulus-test-relay-sproof-builder"] -emulated-integration-tests-common = ["dep:emulated-integration-tests-common"] -fork-tree = ["dep:fork-tree"] -frame-benchmarking-cli = ["dep:frame-benchmarking-cli"] -frame-remote-externalities = ["dep:frame-remote-externalities"] -frame-support-procedural-tools = ["dep:frame-support-procedural-tools"] -generate-bags = ["dep:generate-bags"] -mmr-gadget = ["dep:mmr-gadget"] -mmr-rpc = ["dep:mmr-rpc"] -pallet-contracts-mock-network = ["dep:pallet-contracts-mock-network"] -pallet-transaction-payment-rpc = ["dep:pallet-transaction-payment-rpc"] -parachains-runtimes-test-utils = ["dep:parachains-runtimes-test-utils"] -polkadot-approval-distribution = ["dep:polkadot-approval-distribution"] -polkadot-availability-bitfield-distribution = ["dep:polkadot-availability-bitfield-distribution"] -polkadot-availability-distribution = ["dep:polkadot-availability-distribution"] -polkadot-availability-recovery = ["dep:polkadot-availability-recovery"] -polkadot-cli = ["dep:polkadot-cli"] -polkadot-collator-protocol = ["dep:polkadot-collator-protocol"] -polkadot-dispute-distribution = ["dep:polkadot-dispute-distribution"] -polkadot-erasure-coding = ["dep:polkadot-erasure-coding"] -polkadot-gossip-support = ["dep:polkadot-gossip-support"] -polkadot-network-bridge = ["dep:polkadot-network-bridge"] -polkadot-node-collation-generation = ["dep:polkadot-node-collation-generation"] -polkadot-node-core-approval-voting = ["dep:polkadot-node-core-approval-voting"] -polkadot-node-core-av-store = ["dep:polkadot-node-core-av-store"] -polkadot-node-core-backing = ["dep:polkadot-node-core-backing"] -polkadot-node-core-bitfield-signing = ["dep:polkadot-node-core-bitfield-signing"] -polkadot-node-core-candidate-validation = ["dep:polkadot-node-core-candidate-validation"] -polkadot-node-core-chain-api = ["dep:polkadot-node-core-chain-api"] -polkadot-node-core-chain-selection = ["dep:polkadot-node-core-chain-selection"] -polkadot-node-core-dispute-coordinator = ["dep:polkadot-node-core-dispute-coordinator"] -polkadot-node-core-parachains-inherent = ["dep:polkadot-node-core-parachains-inherent"] -polkadot-node-core-prospective-parachains = ["dep:polkadot-node-core-prospective-parachains"] -polkadot-node-core-provisioner = ["dep:polkadot-node-core-provisioner"] -polkadot-node-core-pvf = ["dep:polkadot-node-core-pvf"] -polkadot-node-core-pvf-checker = ["dep:polkadot-node-core-pvf-checker"] -polkadot-node-core-pvf-common = ["dep:polkadot-node-core-pvf-common"] -polkadot-node-core-pvf-execute-worker = ["dep:polkadot-node-core-pvf-execute-worker"] -polkadot-node-core-pvf-prepare-worker = ["dep:polkadot-node-core-pvf-prepare-worker"] -polkadot-node-core-runtime-api = ["dep:polkadot-node-core-runtime-api"] -polkadot-node-jaeger = ["dep:polkadot-node-jaeger"] -polkadot-node-metrics = ["dep:polkadot-node-metrics"] -polkadot-node-network-protocol = ["dep:polkadot-node-network-protocol"] -polkadot-node-primitives = ["dep:polkadot-node-primitives"] -polkadot-node-subsystem = ["dep:polkadot-node-subsystem"] -polkadot-node-subsystem-types = ["dep:polkadot-node-subsystem-types"] -polkadot-node-subsystem-util = ["dep:polkadot-node-subsystem-util"] -polkadot-overseer = ["dep:polkadot-overseer"] -polkadot-rpc = ["dep:polkadot-rpc"] -polkadot-service = ["dep:polkadot-service"] -polkadot-statement-distribution = ["dep:polkadot-statement-distribution"] -polkadot-statement-table = ["dep:polkadot-statement-table"] -sc-allocator = ["dep:sc-allocator"] -sc-authority-discovery = ["dep:sc-authority-discovery"] -sc-basic-authorship = ["dep:sc-basic-authorship"] -sc-block-builder = ["dep:sc-block-builder"] -sc-chain-spec = ["dep:sc-chain-spec"] -sc-cli = ["dep:sc-cli"] -sc-client-api = ["dep:sc-client-api"] -sc-client-db = ["dep:sc-client-db"] -sc-consensus = ["dep:sc-consensus"] -sc-consensus-aura = ["dep:sc-consensus-aura"] -sc-consensus-babe = ["dep:sc-consensus-babe"] -sc-consensus-babe-rpc = ["dep:sc-consensus-babe-rpc"] -sc-consensus-beefy = ["dep:sc-consensus-beefy"] -sc-consensus-beefy-rpc = ["dep:sc-consensus-beefy-rpc"] -sc-consensus-epochs = ["dep:sc-consensus-epochs"] -sc-consensus-grandpa = ["dep:sc-consensus-grandpa"] -sc-consensus-grandpa-rpc = ["dep:sc-consensus-grandpa-rpc"] -sc-consensus-manual-seal = ["dep:sc-consensus-manual-seal"] -sc-consensus-pow = ["dep:sc-consensus-pow"] -sc-consensus-slots = ["dep:sc-consensus-slots"] -sc-executor = ["dep:sc-executor"] -sc-executor-common = ["dep:sc-executor-common"] -sc-executor-polkavm = ["dep:sc-executor-polkavm"] -sc-executor-wasmtime = ["dep:sc-executor-wasmtime"] -sc-informant = ["dep:sc-informant"] -sc-keystore = ["dep:sc-keystore"] -sc-mixnet = ["dep:sc-mixnet"] -sc-network = ["dep:sc-network"] -sc-network-common = ["dep:sc-network-common"] -sc-network-gossip = ["dep:sc-network-gossip"] -sc-network-light = ["dep:sc-network-light"] -sc-network-statement = ["dep:sc-network-statement"] -sc-network-sync = ["dep:sc-network-sync"] -sc-network-transactions = ["dep:sc-network-transactions"] -sc-network-types = ["dep:sc-network-types"] -sc-offchain = ["dep:sc-offchain"] -sc-proposer-metrics = ["dep:sc-proposer-metrics"] -sc-rpc = ["dep:sc-rpc"] -sc-rpc-api = ["dep:sc-rpc-api"] -sc-rpc-server = ["dep:sc-rpc-server"] -sc-rpc-spec-v2 = ["dep:sc-rpc-spec-v2"] -sc-service = ["dep:sc-service"] -sc-state-db = ["dep:sc-state-db"] -sc-statement-store = ["dep:sc-statement-store"] -sc-storage-monitor = ["dep:sc-storage-monitor"] -sc-sync-state-rpc = ["dep:sc-sync-state-rpc"] -sc-sysinfo = ["dep:sc-sysinfo"] -sc-telemetry = ["dep:sc-telemetry"] -sc-tracing = ["dep:sc-tracing"] -sc-transaction-pool = ["dep:sc-transaction-pool"] -sc-transaction-pool-api = ["dep:sc-transaction-pool-api"] -sc-utils = ["dep:sc-utils"] -snowbridge-runtime-test-common = ["dep:snowbridge-runtime-test-common"] -sp-blockchain = ["dep:sp-blockchain"] -sp-consensus = ["dep:sp-consensus"] -sp-core-hashing = ["dep:sp-core-hashing"] -sp-core-hashing-proc-macro = ["dep:sp-core-hashing-proc-macro"] -sp-database = ["dep:sp-database"] -sp-maybe-compressed-blob = ["dep:sp-maybe-compressed-blob"] -sp-panic-handler = ["dep:sp-panic-handler"] -sp-rpc = ["dep:sp-rpc"] -staging-node-inspect = ["dep:staging-node-inspect"] -staging-tracking-allocator = ["dep:staging-tracking-allocator"] -subkey = ["dep:subkey"] -substrate-build-script-utils = ["dep:substrate-build-script-utils"] -substrate-frame-rpc-support = ["dep:substrate-frame-rpc-support"] -substrate-frame-rpc-system = ["dep:substrate-frame-rpc-system"] -substrate-prometheus-endpoint = ["dep:substrate-prometheus-endpoint"] -substrate-rpc-client = ["dep:substrate-rpc-client"] -substrate-state-trie-migration-rpc = ["dep:substrate-state-trie-migration-rpc"] -substrate-wasm-builder = ["dep:substrate-wasm-builder"] -tracing-gum = ["dep:tracing-gum"] -xcm-emulator = ["dep:xcm-emulator"] -xcm-simulator = ["dep:xcm-simulator"] +asset-test-utils = [ "dep:asset-test-utils",] +bridge-hub-test-utils = [ "dep:bridge-hub-test-utils",] +cumulus-client-cli = [ "dep:cumulus-client-cli",] +cumulus-client-collator = [ "dep:cumulus-client-collator",] +cumulus-client-consensus-aura = [ "dep:cumulus-client-consensus-aura",] +cumulus-client-consensus-common = [ "dep:cumulus-client-consensus-common",] +cumulus-client-consensus-proposer = [ "dep:cumulus-client-consensus-proposer",] +cumulus-client-consensus-relay-chain = [ "dep:cumulus-client-consensus-relay-chain",] +cumulus-client-network = [ "dep:cumulus-client-network",] +cumulus-client-parachain-inherent = [ "dep:cumulus-client-parachain-inherent",] +cumulus-client-pov-recovery = [ "dep:cumulus-client-pov-recovery",] +cumulus-client-service = [ "dep:cumulus-client-service",] +cumulus-relay-chain-inprocess-interface = [ "dep:cumulus-relay-chain-inprocess-interface",] +cumulus-relay-chain-interface = [ "dep:cumulus-relay-chain-interface",] +cumulus-relay-chain-minimal-node = [ "dep:cumulus-relay-chain-minimal-node",] +cumulus-relay-chain-rpc-interface = [ "dep:cumulus-relay-chain-rpc-interface",] +cumulus-test-relay-sproof-builder = [ "dep:cumulus-test-relay-sproof-builder",] +emulated-integration-tests-common = [ "dep:emulated-integration-tests-common",] +fork-tree = [ "dep:fork-tree",] +frame-benchmarking-cli = [ "dep:frame-benchmarking-cli",] +frame-remote-externalities = [ "dep:frame-remote-externalities",] +frame-support-procedural-tools = [ "dep:frame-support-procedural-tools",] +generate-bags = [ "dep:generate-bags",] +mmr-gadget = [ "dep:mmr-gadget",] +mmr-rpc = [ "dep:mmr-rpc",] +pallet-contracts-mock-network = [ "dep:pallet-contracts-mock-network",] +pallet-transaction-payment-rpc = [ "dep:pallet-transaction-payment-rpc",] +parachains-runtimes-test-utils = [ "dep:parachains-runtimes-test-utils",] +polkadot-approval-distribution = [ "dep:polkadot-approval-distribution",] +polkadot-availability-bitfield-distribution = [ "dep:polkadot-availability-bitfield-distribution",] +polkadot-availability-distribution = [ "dep:polkadot-availability-distribution",] +polkadot-availability-recovery = [ "dep:polkadot-availability-recovery",] +polkadot-cli = [ "dep:polkadot-cli",] +polkadot-collator-protocol = [ "dep:polkadot-collator-protocol",] +polkadot-dispute-distribution = [ "dep:polkadot-dispute-distribution",] +polkadot-erasure-coding = [ "dep:polkadot-erasure-coding",] +polkadot-gossip-support = [ "dep:polkadot-gossip-support",] +polkadot-network-bridge = [ "dep:polkadot-network-bridge",] +polkadot-node-collation-generation = [ "dep:polkadot-node-collation-generation",] +polkadot-node-core-approval-voting = [ "dep:polkadot-node-core-approval-voting",] +polkadot-node-core-av-store = [ "dep:polkadot-node-core-av-store",] +polkadot-node-core-backing = [ "dep:polkadot-node-core-backing",] +polkadot-node-core-bitfield-signing = [ "dep:polkadot-node-core-bitfield-signing",] +polkadot-node-core-candidate-validation = [ "dep:polkadot-node-core-candidate-validation",] +polkadot-node-core-chain-api = [ "dep:polkadot-node-core-chain-api",] +polkadot-node-core-chain-selection = [ "dep:polkadot-node-core-chain-selection",] +polkadot-node-core-dispute-coordinator = [ "dep:polkadot-node-core-dispute-coordinator",] +polkadot-node-core-parachains-inherent = [ "dep:polkadot-node-core-parachains-inherent",] +polkadot-node-core-prospective-parachains = [ "dep:polkadot-node-core-prospective-parachains",] +polkadot-node-core-provisioner = [ "dep:polkadot-node-core-provisioner",] +polkadot-node-core-pvf = [ "dep:polkadot-node-core-pvf",] +polkadot-node-core-pvf-checker = [ "dep:polkadot-node-core-pvf-checker",] +polkadot-node-core-pvf-common = [ "dep:polkadot-node-core-pvf-common",] +polkadot-node-core-pvf-execute-worker = [ "dep:polkadot-node-core-pvf-execute-worker",] +polkadot-node-core-pvf-prepare-worker = [ "dep:polkadot-node-core-pvf-prepare-worker",] +polkadot-node-core-runtime-api = [ "dep:polkadot-node-core-runtime-api",] +polkadot-node-jaeger = [ "dep:polkadot-node-jaeger",] +polkadot-node-metrics = [ "dep:polkadot-node-metrics",] +polkadot-node-network-protocol = [ "dep:polkadot-node-network-protocol",] +polkadot-node-primitives = [ "dep:polkadot-node-primitives",] +polkadot-node-subsystem = [ "dep:polkadot-node-subsystem",] +polkadot-node-subsystem-types = [ "dep:polkadot-node-subsystem-types",] +polkadot-node-subsystem-util = [ "dep:polkadot-node-subsystem-util",] +polkadot-overseer = [ "dep:polkadot-overseer",] +polkadot-rpc = [ "dep:polkadot-rpc",] +polkadot-service = [ "dep:polkadot-service",] +polkadot-statement-distribution = [ "dep:polkadot-statement-distribution",] +polkadot-statement-table = [ "dep:polkadot-statement-table",] +sc-allocator = [ "dep:sc-allocator",] +sc-authority-discovery = [ "dep:sc-authority-discovery",] +sc-basic-authorship = [ "dep:sc-basic-authorship",] +sc-block-builder = [ "dep:sc-block-builder",] +sc-chain-spec = [ "dep:sc-chain-spec",] +sc-cli = [ "dep:sc-cli",] +sc-client-api = [ "dep:sc-client-api",] +sc-client-db = [ "dep:sc-client-db",] +sc-consensus = [ "dep:sc-consensus",] +sc-consensus-aura = [ "dep:sc-consensus-aura",] +sc-consensus-babe = [ "dep:sc-consensus-babe",] +sc-consensus-babe-rpc = [ "dep:sc-consensus-babe-rpc",] +sc-consensus-beefy = [ "dep:sc-consensus-beefy",] +sc-consensus-beefy-rpc = [ "dep:sc-consensus-beefy-rpc",] +sc-consensus-epochs = [ "dep:sc-consensus-epochs",] +sc-consensus-grandpa = [ "dep:sc-consensus-grandpa",] +sc-consensus-grandpa-rpc = [ "dep:sc-consensus-grandpa-rpc",] +sc-consensus-manual-seal = [ "dep:sc-consensus-manual-seal",] +sc-consensus-pow = [ "dep:sc-consensus-pow",] +sc-consensus-slots = [ "dep:sc-consensus-slots",] +sc-executor = [ "dep:sc-executor",] +sc-executor-common = [ "dep:sc-executor-common",] +sc-executor-polkavm = [ "dep:sc-executor-polkavm",] +sc-executor-wasmtime = [ "dep:sc-executor-wasmtime",] +sc-informant = [ "dep:sc-informant",] +sc-keystore = [ "dep:sc-keystore",] +sc-mixnet = [ "dep:sc-mixnet",] +sc-network = [ "dep:sc-network",] +sc-network-common = [ "dep:sc-network-common",] +sc-network-gossip = [ "dep:sc-network-gossip",] +sc-network-light = [ "dep:sc-network-light",] +sc-network-statement = [ "dep:sc-network-statement",] +sc-network-sync = [ "dep:sc-network-sync",] +sc-network-transactions = [ "dep:sc-network-transactions",] +sc-network-types = [ "dep:sc-network-types",] +sc-offchain = [ "dep:sc-offchain",] +sc-proposer-metrics = [ "dep:sc-proposer-metrics",] +sc-rpc = [ "dep:sc-rpc",] +sc-rpc-api = [ "dep:sc-rpc-api",] +sc-rpc-server = [ "dep:sc-rpc-server",] +sc-rpc-spec-v2 = [ "dep:sc-rpc-spec-v2",] +sc-service = [ "dep:sc-service",] +sc-state-db = [ "dep:sc-state-db",] +sc-statement-store = [ "dep:sc-statement-store",] +sc-storage-monitor = [ "dep:sc-storage-monitor",] +sc-sync-state-rpc = [ "dep:sc-sync-state-rpc",] +sc-sysinfo = [ "dep:sc-sysinfo",] +sc-telemetry = [ "dep:sc-telemetry",] +sc-tracing = [ "dep:sc-tracing",] +sc-transaction-pool = [ "dep:sc-transaction-pool",] +sc-transaction-pool-api = [ "dep:sc-transaction-pool-api",] +sc-utils = [ "dep:sc-utils",] +snowbridge-runtime-test-common = [ "dep:snowbridge-runtime-test-common",] +sp-blockchain = [ "dep:sp-blockchain",] +sp-consensus = [ "dep:sp-consensus",] +sp-core-hashing = [ "dep:sp-core-hashing",] +sp-core-hashing-proc-macro = [ "dep:sp-core-hashing-proc-macro",] +sp-database = [ "dep:sp-database",] +sp-maybe-compressed-blob = [ "dep:sp-maybe-compressed-blob",] +sp-panic-handler = [ "dep:sp-panic-handler",] +sp-rpc = [ "dep:sp-rpc",] +staging-node-inspect = [ "dep:staging-node-inspect",] +staging-tracking-allocator = [ "dep:staging-tracking-allocator",] +subkey = [ "dep:subkey",] +substrate-build-script-utils = [ "dep:substrate-build-script-utils",] +substrate-frame-rpc-support = [ "dep:substrate-frame-rpc-support",] +substrate-frame-rpc-system = [ "dep:substrate-frame-rpc-system",] +substrate-prometheus-endpoint = [ "dep:substrate-prometheus-endpoint",] +substrate-rpc-client = [ "dep:substrate-rpc-client",] +substrate-state-trie-migration-rpc = [ "dep:substrate-state-trie-migration-rpc",] +substrate-wasm-builder = [ "dep:substrate-wasm-builder",] +tracing-gum = [ "dep:tracing-gum",] +xcm-emulator = [ "dep:xcm-emulator",] +xcm-simulator = [ "dep:xcm-simulator",] [package.edition] workspace = true @@ -942,6 +944,11 @@ path = "../substrate/frame/system/rpc/runtime-api" default-features = false optional = true +[dependencies.frame-try-runtime] +path = "../substrate/frame/try-runtime" +default-features = false +optional = true + [dependencies.pallet-alliance] path = "../substrate/frame/alliance" default-features = false diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index 4fe4e4cf6701..45aa2f0fde6b 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -1,5 +1,11 @@ -#![cfg_attr(not(feature = "std"), no_std)] +//! Polkadot SDK umbrella crate re-exporting all other published crates. +//! +//! This helps to set a single version number for all your dependencies. + +// This file is auto-generated and checked by the CI. You can edit it manually, but it must be +// exactly the way that the CI expects it. +#![cfg_attr(not(feature = "std"), no_std)] #[cfg(feature = "asset-test-utils")] pub use asset_test_utils; @@ -222,6 +228,9 @@ pub use frame_system_benchmarking; #[cfg(feature = "frame-system-rpc-runtime-api")] pub use frame_system_rpc_runtime_api; +#[cfg(feature = "frame-try-runtime")] +pub use frame_try_runtime; + #[cfg(feature = "generate-bags")] pub use generate_bags; From 9b3c45e66854230810d3409d977168c11128f709 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 15:14:02 +0200 Subject: [PATCH 09/39] Add python generation script Signed-off-by: Oliver Tale-Yazdi --- scripts/generate-umbrella.py | 199 +++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 scripts/generate-umbrella.py diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py new file mode 100644 index 000000000000..4cde48be54a3 --- /dev/null +++ b/scripts/generate-umbrella.py @@ -0,0 +1,199 @@ +""" + +Creates the Polkadot-SDK umbrella crate that re-exports all other crates. + +This re-creates the `umbrella/` folder. Ensure that it does not contain any changes you want to keep. + +Usage: + python3 polkadot-sdk-umbrella-crate.py --sdk --version + +Example: + python3 polkadot-sdk-umbrella-crate.py --sdk ../polkadot-sdk --version 1.11.0 +""" + +import argparse +import os +import re +import toml +import shutil + +from cargo_workspace import Workspace + +""" +Crate names that should be excluded from the umbrella crate. +""" +def exclude(crate): + name = crate.name + if crate.metadata.get("polkadot-sdk.skip-umbrella", False): + return True + + # No fuzzers or examples: + if "example" in name or name.endswith("fuzzer"): + return True + # No runtime crates: + if name.endswith("-runtime"): + # Note: this is a bit hacky. We should use custom crate metadata instead. + return name != "sp-runtime" and name != "bp-runtime" and name != "frame-try-runtime" + + return False + +def main(path, version): + delete_umbrella(path) + workspace = Workspace.from_path(path) + print(f'Indexed {workspace}') + + std_crates = [] # name -> path. use list for sorting + nostd_crates = [] + for crate in workspace.crates: + if crate.name == 'polkadot-sdk': + continue + if not crate.publish: + print(f"Skipping {crate.name} as it is not published") + continue + + lib_path = os.path.dirname(crate.abs_path) + manifest_path = os.path.join(lib_path, "Cargo.toml") + lib_path = os.path.join(lib_path, "src", "lib.rs") + path = os.path.dirname(crate.rel_path) + + # Guess which crates support no_std. Proc-macro crates are always no_std: + with open(manifest_path, "r") as f: + manifest = toml.load(f) + if 'lib' in manifest and 'proc-macro' in manifest['lib']: + if manifest['lib']['proc-macro']: + nostd_crates.append((crate.name, path)) + continue + + # Crates without a lib.rs cannot be no_std + if not os.path.exists(lib_path): + print(f"Skipping {crate.name} as it does not have a 'src/lib.rs'") + continue + if exclude(crate): + print(f"Skipping {crate.name} as it is in the exclude list") + continue + + # No search for a no_std attribute: + with open(lib_path, "r") as f: + content = f.read() + if "#![no_std]" in content or '#![cfg_attr(not(feature = "std"), no_std)]' in content: + nostd_crates.append((crate.name, path)) + elif 'no_std' in content: + raise Exception(f"Found 'no_std' in {lib_path} without knowing how to handle it") + else: + std_crates.append((crate.name, path)) + + std_crates.sort() + nostd_crates.sort() + all_crates = std_crates + nostd_crates + all_crates.sort() + dependencies = {} + + for (crate, path) in nostd_crates: + dependencies[crate] = {"path": f"../{path}", "default-features": False, "optional": True} + + for (crate, path) in std_crates: + dependencies[crate] = {"path": f"../{path}", "default-features": False, "optional": True} + + # The empty features are filled by Zepter + features = { + "default": [ "std" ], + "std": [], + "runtime-benchmarks": [], + "try-runtime": [], + "serde": [], + "experimental": [], + "with-tracing": [], + "runtime": list([f"{d}" for d, _ in nostd_crates]), + "node": ["std"] + list([f"{d}" for d, _ in std_crates]), + "tuples-96": [], + } + + # Create one feature to enable each crate selectively + for crate, _ in std_crates: + if crate in features: + raise Exception(f"Feature {crate} already exists") + features[crate] = [f"dep:{crate}"] + + manifest = { + "package": { + "name": "polkadot-sdk", + "version": version, + "edition": { "workspace": True }, + "authors": { "workspace": True }, + "description": "Polkadot SDK umbrella crate.", + "license": "Apache-2.0" + }, + "dependencies": dependencies, + "features": features, + } + + umbrella_dir = os.path.join(workspace.path, "umbrella") + manifest_path = os.path.join(umbrella_dir, "Cargo.toml") + lib_path = os.path.join(umbrella_dir, "src", "lib.rs") + # create all dir + os.makedirs(os.path.dirname(lib_path), exist_ok=True) + # Write the manifest + with open(manifest_path, "w") as f: + toml_manifest = toml.dumps(manifest) + f.write(toml_manifest) + print(f"Wrote {manifest_path}") + # and the lib.rs + with open(lib_path, "w") as f: + f.write(''' +//! Polkadot SDK umbrella crate re-exporting all other published crates. +//! +//! This helps to set a single version number for all your dependencies. + +// This file is auto-generated and checked by the CI. You can edit it manually, but it must be +// exactly the way that the CI expects it. + +#![cfg_attr(not(feature = "std"), no_std)]''') + + for crate, _ in all_crates: + use = crate.replace("-", "_") + f.write(f'\n#[cfg(feature = "{crate}")]\n') + f.write(f"pub use {use};\n") + + print(f"Wrote {lib_path}") + + add_to_workspace(workspace.path) + +""" +Delete the umbrella folder and remove the umbrella crate from the workspace. +""" +def delete_umbrella(path): + umbrella_dir = os.path.join(path, "umbrella") + if os.path.exists(umbrella_dir): + print(f"Deleting {umbrella_dir}") + shutil.rmtree(umbrella_dir) + # remove the umbrella crate from the workspace + manifest = os.path.join(path, "Cargo.toml") + manifest = open(manifest, "r").read() + manifest = re.sub(r'\s+"umbrella",\n', "", manifest) + with open(os.path.join(path, "Cargo.toml"), "w") as f: + f.write(manifest) + +""" +Create the umbrella crate and add it to the workspace. +""" +def add_to_workspace(path): + manifest = os.path.join(path, "Cargo.toml") + manifest = open(manifest, "r").read() + manifest = re.sub(r'members = \[', 'members = [\n "umbrella",', manifest) + with open(os.path.join(path, "Cargo.toml"), "w") as f: + f.write(manifest) + + os.chdir(path) # hack + os.system("cargo metadata --format-version 1 > /dev/null") # update the lockfile + os.system(f"zepter") # enable the features + os.system(f"taplo format --config .config/taplo.toml Cargo.toml") + +def parse_args(): + parser = argparse.ArgumentParser(description="Create a polkadot-sdk crate") + parser.add_argument("--sdk", type=str, default="polkadot-sdk", help="Path to the polkadot-sdk crate") + parser.add_argument("--version", type=str, help="Version of the polkadot-sdk crate") + return parser.parse_args() + +if __name__ == "__main__": + args = parse_args() + main(args.sdk, args.version) From 505ad601124152fc6d8e55571d45522cad1f8ec2 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Tue, 14 May 2024 20:10:49 +0200 Subject: [PATCH 10/39] Comment slow check Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/check-features.yml | 39 ++++++++++++++-------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/.github/workflows/check-features.yml b/.github/workflows/check-features.yml index 53d6ac6b4dbf..a66f4dd3e86f 100644 --- a/.github/workflows/check-features.yml +++ b/.github/workflows/check-features.yml @@ -1,19 +1,20 @@ -name: Check Features - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - -jobs: - check-features: - runs-on: ubuntu-latest - steps: - - name: Fetch latest code - uses: actions/checkout@v4 - - name: Check - uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 - with: - crate: substrate/bin/node/runtime - features: std,runtime-benchmarks,try-runtime - ignore: sc-executor - default-std: true +# FAIL-CI +#name: Check Features +# +#on: +# pull_request: +# types: [opened, synchronize, reopened, ready_for_review] +# +#jobs: +# check-features: +# runs-on: ubuntu-latest +# steps: +# - name: Fetch latest code +# uses: actions/checkout@v4 +# - name: Check +# uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 +# with: +# crate: substrate/bin/node/runtime +# features: std,runtime-benchmarks,try-runtime +# ignore: sc-executor +# default-std: true From a9f27392205f308d908bb49f125b318761891d7c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 12:43:42 +0200 Subject: [PATCH 11/39] Update Signed-off-by: Oliver Tale-Yazdi --- Cargo.toml | 1 - docs/sdk/src/reference_docs/umbrella_crate.rs | 6 +- umbrella/Cargo.toml | 4 + umbrella/src/lib.rs | 422 +++++++++++++++++- 4 files changed, 429 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6bd25fa5fb9c..1bbc950cad22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -527,7 +527,6 @@ members = [ default-members = [ "polkadot", "substrate/bin/node/cli", - "umbrella", ] [workspace.lints.rust] diff --git a/docs/sdk/src/reference_docs/umbrella_crate.rs b/docs/sdk/src/reference_docs/umbrella_crate.rs index bde431ceebc3..2b2e5c1f918c 100644 --- a/docs/sdk/src/reference_docs/umbrella_crate.rs +++ b/docs/sdk/src/reference_docs/umbrella_crate.rs @@ -24,6 +24,9 @@ // - `try-runtime`, `runtime-benchmarks` and `std`: These follow the standard conventions. // - `runtime`: As described above, enable all `no-std` crates. // - `node`: As described above, enable all `std` crates. +// - There does *not* exist a dedicated docs feature. To generate docs, enable the `runtime` and +// `node` feature. For docs.rs the manifest contains specific configuration to make it show up all +// re-exports. // // There is a specific `zepter` check in place to ensure that the features of the umbrella are // correctly configured. This check is run in CI and locally when running `zepter`. @@ -34,7 +37,8 @@ // workspace. It is checked in CI by calling its generation script. The generation script is located // in `./scripts/generate-umbrella.py` and needs dependency `cargo_workspace`. // -// Example: `python3 scripts/generate-umbrella.py --sdk . --version 1.9.0` +// Example: `python3 scripts/generate-umbrella.py --sdk . --version 1.9.0 --header +// substrate/HEADER-APACHE2` // // ## Usage // diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index b6120239d9a8..ea86c4d78c86 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -2568,3 +2568,7 @@ optional = true path = "../polkadot/xcm/xcm-simulator" default-features = false optional = true + +[package.metadata.docs.rs] +features = [ "runtime", "node",] +targets = [ "x86_64-unknown-linux-gnu",] diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index 45aa2f0fde6b..4ff24825ff82 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -1,1138 +1,1556 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +#![cfg_attr(not(feature = "std"), no_std)] + //! Polkadot SDK umbrella crate re-exporting all other published crates. //! -//! This helps to set a single version number for all your dependencies. +//! This helps to set a single version number for all your dependencies. Docs are in the +//! `polkadot-sdk-docs` crate. // This file is auto-generated and checked by the CI. You can edit it manually, but it must be // exactly the way that the CI expects it. -#![cfg_attr(not(feature = "std"), no_std)] +/// Test utils for Asset Hub runtimes. #[cfg(feature = "asset-test-utils")] pub use asset_test_utils; +/// Assets common utilities. #[cfg(feature = "assets-common")] pub use assets_common; +/// A no-std/Substrate compatible library to construct binary merkle tree. #[cfg(feature = "binary-merkle-tree")] pub use binary_merkle_tree; +/// Primitives of AssetHubRococo parachain runtime. #[cfg(feature = "bp-asset-hub-rococo")] pub use bp_asset_hub_rococo; +/// Primitives of AssetHubWestend parachain runtime. #[cfg(feature = "bp-asset-hub-westend")] pub use bp_asset_hub_westend; +/// Primitives for BridgeHub parachain runtimes. #[cfg(feature = "bp-bridge-hub-cumulus")] pub use bp_bridge_hub_cumulus; +/// Primitives of BridgeHubKusama parachain runtime. #[cfg(feature = "bp-bridge-hub-kusama")] pub use bp_bridge_hub_kusama; +/// Primitives of BridgeHubPolkadot parachain runtime. #[cfg(feature = "bp-bridge-hub-polkadot")] pub use bp_bridge_hub_polkadot; +/// Primitives of BridgeHubRococo parachain runtime. #[cfg(feature = "bp-bridge-hub-rococo")] pub use bp_bridge_hub_rococo; +/// Primitives of BridgeHubWestend parachain runtime. #[cfg(feature = "bp-bridge-hub-westend")] pub use bp_bridge_hub_westend; +/// A common interface for describing what a bridge pallet should be able to do. #[cfg(feature = "bp-header-chain")] pub use bp_header_chain; +/// Primitives of Kusama runtime. #[cfg(feature = "bp-kusama")] pub use bp_kusama; +/// Primitives of messages module. #[cfg(feature = "bp-messages")] pub use bp_messages; +/// Primitives of parachains module. #[cfg(feature = "bp-parachains")] pub use bp_parachains; +/// Primitives of Polkadot runtime. #[cfg(feature = "bp-polkadot")] pub use bp_polkadot; +/// Primitives of Polkadot Bulletin chain runtime. #[cfg(feature = "bp-polkadot-bulletin")] pub use bp_polkadot_bulletin; +/// Primitives of Polkadot-like runtime. #[cfg(feature = "bp-polkadot-core")] pub use bp_polkadot_core; +/// Primitives of relayers module. #[cfg(feature = "bp-relayers")] pub use bp_relayers; +/// Primitives of Rococo runtime. #[cfg(feature = "bp-rococo")] pub use bp_rococo; +/// Primitives that may be used at (bridges) runtime level. #[cfg(feature = "bp-runtime")] pub use bp_runtime; +/// Utilities for testing substrate-based runtime bridge code. #[cfg(feature = "bp-test-utils")] pub use bp_test_utils; +/// Primitives of Westend runtime. #[cfg(feature = "bp-westend")] pub use bp_westend; +/// Primitives of the xcm-bridge-hub pallet. #[cfg(feature = "bp-xcm-bridge-hub")] pub use bp_xcm_bridge_hub; +/// Primitives of the xcm-bridge-hub fee pallet. #[cfg(feature = "bp-xcm-bridge-hub-router")] pub use bp_xcm_bridge_hub_router; +/// Bridge hub common utilities. #[cfg(feature = "bridge-hub-common")] pub use bridge_hub_common; +/// Utils for BridgeHub testing. #[cfg(feature = "bridge-hub-test-utils")] pub use bridge_hub_test_utils; +/// Common types and functions that may be used by substrate-based runtimes of all bridged +/// chains. #[cfg(feature = "bridge-runtime-common")] pub use bridge_runtime_common; +/// Parachain node CLI utilities. #[cfg(feature = "cumulus-client-cli")] pub use cumulus_client_cli; +/// Common node-side functionality and glue code to collate parachain blocks. #[cfg(feature = "cumulus-client-collator")] pub use cumulus_client_collator; +/// AURA consensus algorithm for parachains. #[cfg(feature = "cumulus-client-consensus-aura")] pub use cumulus_client_consensus_aura; +/// Cumulus specific common consensus implementations. #[cfg(feature = "cumulus-client-consensus-common")] pub use cumulus_client_consensus_common; +/// A Substrate `Proposer` for building parachain blocks. #[cfg(feature = "cumulus-client-consensus-proposer")] pub use cumulus_client_consensus_proposer; +/// The relay-chain provided consensus algorithm. #[cfg(feature = "cumulus-client-consensus-relay-chain")] pub use cumulus_client_consensus_relay_chain; +/// Cumulus-specific networking protocol. #[cfg(feature = "cumulus-client-network")] pub use cumulus_client_network; +/// Inherent that needs to be present in every parachain block. Contains messages and a relay +/// chain storage-proof. #[cfg(feature = "cumulus-client-parachain-inherent")] pub use cumulus_client_parachain_inherent; +/// Cumulus-specific networking protocol. #[cfg(feature = "cumulus-client-pov-recovery")] pub use cumulus_client_pov_recovery; +/// Common functions used to assemble the components of a parachain node. #[cfg(feature = "cumulus-client-service")] pub use cumulus_client_service; +/// AURA consensus extension pallet for parachains. #[cfg(feature = "cumulus-pallet-aura-ext")] pub use cumulus_pallet_aura_ext; +/// Migrates messages from the old DMP queue pallet. #[cfg(feature = "cumulus-pallet-dmp-queue")] pub use cumulus_pallet_dmp_queue; +/// Base pallet for cumulus-based parachains. #[cfg(feature = "cumulus-pallet-parachain-system")] pub use cumulus_pallet_parachain_system; +/// Proc macros provided by the parachain-system pallet. #[cfg(feature = "cumulus-pallet-parachain-system-proc-macro")] pub use cumulus_pallet_parachain_system_proc_macro; +/// FRAME sessions pallet benchmarking. #[cfg(feature = "cumulus-pallet-session-benchmarking")] pub use cumulus_pallet_session_benchmarking; +/// Adds functionality to migrate from a Solo to a Parachain. #[cfg(feature = "cumulus-pallet-solo-to-para")] pub use cumulus_pallet_solo_to_para; +/// Pallet for stuff specific to parachains' usage of XCM. #[cfg(feature = "cumulus-pallet-xcm")] pub use cumulus_pallet_xcm; +/// Pallet to queue outbound and inbound XCMP messages. #[cfg(feature = "cumulus-pallet-xcmp-queue")] pub use cumulus_pallet_xcmp_queue; +/// Ping Pallet for Cumulus XCM/UMP testing. #[cfg(feature = "cumulus-ping")] pub use cumulus_ping; +/// Core primitives for Aura in Cumulus. #[cfg(feature = "cumulus-primitives-aura")] pub use cumulus_primitives_aura; +/// Cumulus related core primitive types and traits. #[cfg(feature = "cumulus-primitives-core")] pub use cumulus_primitives_core; +/// Inherent that needs to be present in every parachain block. Contains messages and a relay +/// chain storage-proof. #[cfg(feature = "cumulus-primitives-parachain-inherent")] pub use cumulus_primitives_parachain_inherent; +/// Hostfunction exposing storage proof size to the runtime. #[cfg(feature = "cumulus-primitives-proof-size-hostfunction")] pub use cumulus_primitives_proof_size_hostfunction; +/// Utilities to reclaim storage weight. #[cfg(feature = "cumulus-primitives-storage-weight-reclaim")] pub use cumulus_primitives_storage_weight_reclaim; +/// Provides timestamp related functionality for parachains. #[cfg(feature = "cumulus-primitives-timestamp")] pub use cumulus_primitives_timestamp; +/// Helper datatypes for Cumulus. #[cfg(feature = "cumulus-primitives-utility")] pub use cumulus_primitives_utility; +/// Implementation of the RelayChainInterface trait for Polkadot full-nodes. #[cfg(feature = "cumulus-relay-chain-inprocess-interface")] pub use cumulus_relay_chain_inprocess_interface; +/// Common interface for different relay chain datasources. #[cfg(feature = "cumulus-relay-chain-interface")] pub use cumulus_relay_chain_interface; +/// Minimal node implementation to be used in tandem with RPC or light-client mode. #[cfg(feature = "cumulus-relay-chain-minimal-node")] pub use cumulus_relay_chain_minimal_node; +/// Implementation of the RelayChainInterface trait that connects to a remote RPC-node. #[cfg(feature = "cumulus-relay-chain-rpc-interface")] pub use cumulus_relay_chain_rpc_interface; +/// Mocked relay state proof builder for testing Cumulus. #[cfg(feature = "cumulus-test-relay-sproof-builder")] pub use cumulus_test_relay_sproof_builder; +/// Common resources for integration testing with xcm-emulator. #[cfg(feature = "emulated-integration-tests-common")] pub use emulated_integration_tests_common; +/// Utility library for managing tree-like ordered data with logic for pruning the tree while +/// finalizing nodes. #[cfg(feature = "fork-tree")] pub use fork_tree; +/// Macro for benchmarking a FRAME runtime. #[cfg(feature = "frame-benchmarking")] pub use frame_benchmarking; +/// CLI for benchmarking FRAME. #[cfg(feature = "frame-benchmarking-cli")] pub use frame_benchmarking_cli; +/// Pallet for testing FRAME PoV benchmarking. #[cfg(feature = "frame-benchmarking-pallet-pov")] pub use frame_benchmarking_pallet_pov; +/// NPoS Solution Type. #[cfg(feature = "frame-election-provider-solution-type")] pub use frame_election_provider_solution_type; +/// election provider supporting traits. #[cfg(feature = "frame-election-provider-support")] pub use frame_election_provider_support; +/// FRAME executives engine. #[cfg(feature = "frame-executive")] pub use frame_executive; +/// An externalities provided environment that can load itself from remote nodes or cached +/// files. #[cfg(feature = "frame-remote-externalities")] pub use frame_remote_externalities; +/// Support code for the runtime. #[cfg(feature = "frame-support")] pub use frame_support; +/// Proc macro of Support code for the runtime. #[cfg(feature = "frame-support-procedural")] pub use frame_support_procedural; +/// Proc macro helpers for procedural macros. #[cfg(feature = "frame-support-procedural-tools")] pub use frame_support_procedural_tools; +/// Use to derive parsing for parsing struct. #[cfg(feature = "frame-support-procedural-tools-derive")] pub use frame_support_procedural_tools_derive; +/// FRAME system module. #[cfg(feature = "frame-system")] pub use frame_system; +/// FRAME System benchmarking. #[cfg(feature = "frame-system-benchmarking")] pub use frame_system_benchmarking; +/// Runtime API definition required by System RPC extensions. #[cfg(feature = "frame-system-rpc-runtime-api")] pub use frame_system_rpc_runtime_api; +/// FRAME pallet for democracy. #[cfg(feature = "frame-try-runtime")] pub use frame_try_runtime; +/// Bag threshold generation script for pallet-bag-list. #[cfg(feature = "generate-bags")] pub use generate_bags; +/// MMR Client gadget for substrate. #[cfg(feature = "mmr-gadget")] pub use mmr_gadget; +/// Node-specific RPC methods for interaction with Merkle Mountain Range pallet. #[cfg(feature = "mmr-rpc")] pub use mmr_rpc; +/// The Alliance pallet provides a collective for standard-setting industry collaboration. #[cfg(feature = "pallet-alliance")] pub use pallet_alliance; +/// FRAME asset conversion pallet. #[cfg(feature = "pallet-asset-conversion")] pub use pallet_asset_conversion; +/// FRAME asset conversion pallet's operations suite. #[cfg(feature = "pallet-asset-conversion-ops")] pub use pallet_asset_conversion_ops; +/// Pallet to manage transaction payments in assets by converting them to native assets. #[cfg(feature = "pallet-asset-conversion-tx-payment")] pub use pallet_asset_conversion_tx_payment; +/// Whitelist non-native assets for treasury spending and provide conversion to native balance. #[cfg(feature = "pallet-asset-rate")] pub use pallet_asset_rate; +/// pallet to manage transaction payments in assets. #[cfg(feature = "pallet-asset-tx-payment")] pub use pallet_asset_tx_payment; +/// FRAME asset management pallet. #[cfg(feature = "pallet-assets")] pub use pallet_assets; +/// FRAME atomic swap pallet. #[cfg(feature = "pallet-atomic-swap")] pub use pallet_atomic_swap; +/// FRAME AURA consensus pallet. #[cfg(feature = "pallet-aura")] pub use pallet_aura; +/// FRAME pallet for authority discovery. #[cfg(feature = "pallet-authority-discovery")] pub use pallet_authority_discovery; +/// Block and Uncle Author tracking for the FRAME. #[cfg(feature = "pallet-authorship")] pub use pallet_authorship; +/// Consensus extension module for BABE consensus. Collects on-chain randomness from VRF +/// outputs and manages epoch transitions. #[cfg(feature = "pallet-babe")] pub use pallet_babe; +/// FRAME pallet bags list. #[cfg(feature = "pallet-bags-list")] pub use pallet_bags_list; +/// FRAME pallet to manage balances. #[cfg(feature = "pallet-balances")] pub use pallet_balances; +/// BEEFY FRAME pallet. #[cfg(feature = "pallet-beefy")] pub use pallet_beefy; +/// BEEFY + MMR runtime utilities. #[cfg(feature = "pallet-beefy-mmr")] pub use pallet_beefy_mmr; +/// FRAME pallet to manage bounties. #[cfg(feature = "pallet-bounties")] pub use pallet_bounties; +/// Module implementing GRANDPA on-chain light client used for bridging consensus of +/// substrate-based chains. #[cfg(feature = "pallet-bridge-grandpa")] pub use pallet_bridge_grandpa; +/// Module that allows bridged chains to exchange messages using lane concept. #[cfg(feature = "pallet-bridge-messages")] pub use pallet_bridge_messages; +/// Module that allows bridged relay chains to exchange information on their parachains' heads. #[cfg(feature = "pallet-bridge-parachains")] pub use pallet_bridge_parachains; +/// Module used to store relayer rewards and coordinate relayers set. #[cfg(feature = "pallet-bridge-relayers")] pub use pallet_bridge_relayers; +/// Brokerage tool for managing Polkadot Core scheduling. #[cfg(feature = "pallet-broker")] pub use pallet_broker; +/// FRAME pallet to manage child bounties. #[cfg(feature = "pallet-child-bounties")] pub use pallet_child_bounties; +/// Simple pallet to select collators for a parachain. #[cfg(feature = "pallet-collator-selection")] pub use pallet_collator_selection; +/// Collective system: Members of a set of account IDs can make their collective feelings known +/// through dispatched calls from one of two specialized origins. #[cfg(feature = "pallet-collective")] pub use pallet_collective; +/// Managed content. #[cfg(feature = "pallet-collective-content")] pub use pallet_collective_content; +/// FRAME pallet for WASM contracts. #[cfg(feature = "pallet-contracts")] pub use pallet_contracts; +/// A mock network for testing pallet-contracts. #[cfg(feature = "pallet-contracts-mock-network")] pub use pallet_contracts_mock_network; +/// Procedural macros used in pallet_contracts. #[cfg(feature = "pallet-contracts-proc-macro")] pub use pallet_contracts_proc_macro; +/// Exposes all the host functions that a contract can import. #[cfg(feature = "pallet-contracts-uapi")] pub use pallet_contracts_uapi; +/// FRAME pallet for conviction voting in referenda. #[cfg(feature = "pallet-conviction-voting")] pub use pallet_conviction_voting; +/// Logic as per the description of The Fellowship for core Polkadot technology. #[cfg(feature = "pallet-core-fellowship")] pub use pallet_core_fellowship; +/// FRAME pallet for democracy. #[cfg(feature = "pallet-democracy")] pub use pallet_democracy; +/// FRAME example pallet. #[cfg(feature = "pallet-dev-mode")] pub use pallet_dev_mode; +/// PALLET two phase election providers. #[cfg(feature = "pallet-election-provider-multi-phase")] pub use pallet_election_provider_multi_phase; +/// Benchmarking for election provider support onchain config trait. #[cfg(feature = "pallet-election-provider-support-benchmarking")] pub use pallet_election_provider_support_benchmarking; +/// FRAME pallet based on seq-Phragmén election method. #[cfg(feature = "pallet-elections-phragmen")] pub use pallet_elections_phragmen; +/// FRAME fast unstake pallet. #[cfg(feature = "pallet-fast-unstake")] pub use pallet_fast_unstake; +/// FRAME pallet for pushing a chain to its weight limits. #[cfg(feature = "pallet-glutton")] pub use pallet_glutton; +/// FRAME pallet for GRANDPA finality gadget. #[cfg(feature = "pallet-grandpa")] pub use pallet_grandpa; +/// FRAME identity management pallet. #[cfg(feature = "pallet-identity")] pub use pallet_identity; +/// FRAME's I'm online pallet. #[cfg(feature = "pallet-im-online")] pub use pallet_im_online; +/// FRAME indices management pallet. #[cfg(feature = "pallet-indices")] pub use pallet_indices; +/// Insecure do not use in production: FRAME randomness collective flip pallet. #[cfg(feature = "pallet-insecure-randomness-collective-flip")] pub use pallet_insecure_randomness_collective_flip; +/// FRAME Participation Lottery Pallet. #[cfg(feature = "pallet-lottery")] pub use pallet_lottery; +/// FRAME membership management pallet. #[cfg(feature = "pallet-membership")] pub use pallet_membership; +/// FRAME pallet to queue and process messages. #[cfg(feature = "pallet-message-queue")] pub use pallet_message_queue; +/// FRAME pallet to execute multi-block migrations. #[cfg(feature = "pallet-migrations")] pub use pallet_migrations; +/// FRAME's mixnet pallet. #[cfg(feature = "pallet-mixnet")] pub use pallet_mixnet; +/// FRAME Merkle Mountain Range pallet. #[cfg(feature = "pallet-mmr")] pub use pallet_mmr; +/// FRAME multi-signature dispatch pallet. #[cfg(feature = "pallet-multisig")] pub use pallet_multisig; +/// FRAME pallet to convert non-fungible to fungible tokens. #[cfg(feature = "pallet-nft-fractionalization")] pub use pallet_nft_fractionalization; +/// FRAME NFTs pallet. #[cfg(feature = "pallet-nfts")] pub use pallet_nfts; +/// Runtime API for the FRAME NFTs pallet. #[cfg(feature = "pallet-nfts-runtime-api")] pub use pallet_nfts_runtime_api; +/// FRAME pallet for rewarding account freezing. #[cfg(feature = "pallet-nis")] pub use pallet_nis; +/// FRAME pallet for node authorization. #[cfg(feature = "pallet-node-authorization")] pub use pallet_node_authorization; +/// FRAME nomination pools pallet. #[cfg(feature = "pallet-nomination-pools")] pub use pallet_nomination_pools; +/// FRAME nomination pools pallet benchmarking. #[cfg(feature = "pallet-nomination-pools-benchmarking")] pub use pallet_nomination_pools_benchmarking; +/// Runtime API for nomination-pools FRAME pallet. #[cfg(feature = "pallet-nomination-pools-runtime-api")] pub use pallet_nomination_pools_runtime_api; +/// FRAME offences pallet. #[cfg(feature = "pallet-offences")] pub use pallet_offences; +/// FRAME offences pallet benchmarking. #[cfg(feature = "pallet-offences-benchmarking")] pub use pallet_offences_benchmarking; +/// FRAME pallet that provides a paged list data structure. #[cfg(feature = "pallet-paged-list")] pub use pallet_paged_list; +/// Pallet to store and configure parameters. #[cfg(feature = "pallet-parameters")] pub use pallet_parameters; +/// FRAME pallet for storing preimages of hashes. #[cfg(feature = "pallet-preimage")] pub use pallet_preimage; +/// FRAME proxying pallet. #[cfg(feature = "pallet-proxy")] pub use pallet_proxy; +/// Ranked collective system: Members of a set of account IDs can make their collective +/// feelings known through dispatched calls from one of two specialized origins. #[cfg(feature = "pallet-ranked-collective")] pub use pallet_ranked_collective; +/// FRAME account recovery pallet. #[cfg(feature = "pallet-recovery")] pub use pallet_recovery; +/// FRAME pallet for inclusive on-chain decisions. #[cfg(feature = "pallet-referenda")] pub use pallet_referenda; +/// Remark storage pallet. #[cfg(feature = "pallet-remark")] pub use pallet_remark; +/// FRAME root offences pallet. #[cfg(feature = "pallet-root-offences")] pub use pallet_root_offences; +/// FRAME root testing pallet. #[cfg(feature = "pallet-root-testing")] pub use pallet_root_testing; +/// FRAME safe-mode pallet. #[cfg(feature = "pallet-safe-mode")] pub use pallet_safe_mode; +/// Paymaster. #[cfg(feature = "pallet-salary")] pub use pallet_salary; +/// FRAME Scheduler pallet. #[cfg(feature = "pallet-scheduler")] pub use pallet_scheduler; +/// FRAME pallet for scored pools. #[cfg(feature = "pallet-scored-pool")] pub use pallet_scored_pool; +/// FRAME sessions pallet. #[cfg(feature = "pallet-session")] pub use pallet_session; +/// FRAME sessions pallet benchmarking. #[cfg(feature = "pallet-session-benchmarking")] pub use pallet_session_benchmarking; +/// Pallet to skip payments for calls annotated with `feeless_if` if the respective conditions +/// are satisfied. #[cfg(feature = "pallet-skip-feeless-payment")] pub use pallet_skip_feeless_payment; +/// FRAME society pallet. #[cfg(feature = "pallet-society")] pub use pallet_society; +/// FRAME pallet staking. #[cfg(feature = "pallet-staking")] pub use pallet_staking; +/// Reward Curve for FRAME staking pallet. #[cfg(feature = "pallet-staking-reward-curve")] pub use pallet_staking_reward_curve; +/// Reward function for FRAME staking pallet. #[cfg(feature = "pallet-staking-reward-fn")] pub use pallet_staking_reward_fn; +/// RPC runtime API for transaction payment FRAME pallet. #[cfg(feature = "pallet-staking-runtime-api")] pub use pallet_staking_runtime_api; +/// FRAME pallet migration of trie. #[cfg(feature = "pallet-state-trie-migration")] pub use pallet_state_trie_migration; +/// FRAME pallet for statement store. #[cfg(feature = "pallet-statement")] pub use pallet_statement; +/// FRAME pallet for sudo. #[cfg(feature = "pallet-sudo")] pub use pallet_sudo; +/// FRAME Timestamp Module. #[cfg(feature = "pallet-timestamp")] pub use pallet_timestamp; +/// FRAME pallet to manage tips. #[cfg(feature = "pallet-tips")] pub use pallet_tips; +/// FRAME pallet to manage transaction payments. #[cfg(feature = "pallet-transaction-payment")] pub use pallet_transaction_payment; +/// RPC interface for the transaction payment pallet. #[cfg(feature = "pallet-transaction-payment-rpc")] pub use pallet_transaction_payment_rpc; +/// RPC runtime API for transaction payment FRAME pallet. #[cfg(feature = "pallet-transaction-payment-rpc-runtime-api")] pub use pallet_transaction_payment_rpc_runtime_api; +/// Storage chain pallet. #[cfg(feature = "pallet-transaction-storage")] pub use pallet_transaction_storage; +/// FRAME pallet to manage treasury. #[cfg(feature = "pallet-treasury")] pub use pallet_treasury; +/// FRAME transaction pause pallet. #[cfg(feature = "pallet-tx-pause")] pub use pallet_tx_pause; +/// FRAME NFT asset management pallet. #[cfg(feature = "pallet-uniques")] pub use pallet_uniques; +/// FRAME utilities pallet. #[cfg(feature = "pallet-utility")] pub use pallet_utility; +/// FRAME pallet for manage vesting. #[cfg(feature = "pallet-vesting")] pub use pallet_vesting; +/// FRAME pallet for whitelisting call, and dispatch from specific origin. #[cfg(feature = "pallet-whitelist")] pub use pallet_whitelist; +/// A pallet for handling XCM programs. #[cfg(feature = "pallet-xcm")] pub use pallet_xcm; +/// Benchmarks for the XCM pallet. #[cfg(feature = "pallet-xcm-benchmarks")] pub use pallet_xcm_benchmarks; +/// Module that adds dynamic bridges/lanes support to XCM infrastructure at the bridge hub. #[cfg(feature = "pallet-xcm-bridge-hub")] pub use pallet_xcm_bridge_hub; +/// Bridge hub interface for sibling/parent chains with dynamic fees support. #[cfg(feature = "pallet-xcm-bridge-hub-router")] pub use pallet_xcm_bridge_hub_router; +/// Logic which is common to all parachain runtimes. #[cfg(feature = "parachains-common")] pub use parachains_common; +/// Utils for Runtimes testing. #[cfg(feature = "parachains-runtimes-test-utils")] pub use parachains_runtimes_test_utils; +/// Polkadot Approval Distribution subsystem for the distribution of assignments and approvals +/// for approval checks on candidates over the network. #[cfg(feature = "polkadot-approval-distribution")] pub use polkadot_approval_distribution; +/// Polkadot Bitfiled Distribution subsystem, which gossips signed availability bitfields used +/// to compactly determine which backed candidates are available or not based on a 2/3+ quorum. #[cfg(feature = "polkadot-availability-bitfield-distribution")] pub use polkadot_availability_bitfield_distribution; +/// The Availability Distribution subsystem. Requests the required availability data. Also +/// distributes availability data and chunks to requesters. #[cfg(feature = "polkadot-availability-distribution")] pub use polkadot_availability_distribution; +/// The Availability Recovery subsystem. Handles requests for recovering the availability data +/// of included candidates. #[cfg(feature = "polkadot-availability-recovery")] pub use polkadot_availability_recovery; +/// Polkadot Relay-chain Client Node. #[cfg(feature = "polkadot-cli")] pub use polkadot_cli; +/// Polkadot Collator Protocol subsystem. Allows collators and validators to talk to each +/// other. #[cfg(feature = "polkadot-collator-protocol")] pub use polkadot_collator_protocol; +/// Core Polkadot types used by Relay Chains and parachains. #[cfg(feature = "polkadot-core-primitives")] pub use polkadot_core_primitives; +/// Polkadot Dispute Distribution subsystem, which ensures all concerned validators are aware +/// of a dispute and have the relevant votes. #[cfg(feature = "polkadot-dispute-distribution")] pub use polkadot_dispute_distribution; +/// Erasure coding used for Polkadot's availability system. #[cfg(feature = "polkadot-erasure-coding")] pub use polkadot_erasure_coding; +/// Polkadot Gossip Support subsystem. Responsible for keeping track of session changes and +/// issuing a connection request to the relevant validators on every new session. #[cfg(feature = "polkadot-gossip-support")] pub use polkadot_gossip_support; +/// The Network Bridge Subsystem — protocol multiplexer for Polkadot. #[cfg(feature = "polkadot-network-bridge")] pub use polkadot_network_bridge; +/// Collator-side subsystem that handles incoming candidate submissions from the parachain. #[cfg(feature = "polkadot-node-collation-generation")] pub use polkadot_node_collation_generation; +/// Approval Voting Subsystem of the Polkadot node. #[cfg(feature = "polkadot-node-core-approval-voting")] pub use polkadot_node_core_approval_voting; +/// The Availability Store subsystem. Wrapper over the DB that stores availability data and +/// chunks. #[cfg(feature = "polkadot-node-core-av-store")] pub use polkadot_node_core_av_store; +/// The Candidate Backing Subsystem. Tracks parachain candidates that can be backed, as well as +/// the issuance of statements about candidates. #[cfg(feature = "polkadot-node-core-backing")] pub use polkadot_node_core_backing; +/// Bitfield signing subsystem for the Polkadot node. #[cfg(feature = "polkadot-node-core-bitfield-signing")] pub use polkadot_node_core_bitfield_signing; +/// Polkadot crate that implements the Candidate Validation subsystem. Handles requests to +/// validate candidates according to a PVF. #[cfg(feature = "polkadot-node-core-candidate-validation")] pub use polkadot_node_core_candidate_validation; +/// The Chain API subsystem provides access to chain related utility functions like block +/// number to hash conversions. #[cfg(feature = "polkadot-node-core-chain-api")] pub use polkadot_node_core_chain_api; +/// Chain Selection Subsystem. #[cfg(feature = "polkadot-node-core-chain-selection")] pub use polkadot_node_core_chain_selection; +/// The node-side components that participate in disputes. #[cfg(feature = "polkadot-node-core-dispute-coordinator")] pub use polkadot_node_core_dispute_coordinator; +/// Parachains inherent data provider for Polkadot node. #[cfg(feature = "polkadot-node-core-parachains-inherent")] pub use polkadot_node_core_parachains_inherent; +/// The Prospective Parachains subsystem. Tracks and handles prospective parachain fragments. #[cfg(feature = "polkadot-node-core-prospective-parachains")] pub use polkadot_node_core_prospective_parachains; +/// Responsible for assembling a relay chain block from a set of available parachain +/// candidates. #[cfg(feature = "polkadot-node-core-provisioner")] pub use polkadot_node_core_provisioner; +/// Polkadot crate that implements the PVF validation host. Responsible for coordinating +/// preparation and execution of PVFs. #[cfg(feature = "polkadot-node-core-pvf")] pub use polkadot_node_core_pvf; +/// Polkadot crate that implements the PVF pre-checking subsystem. Responsible for checking and +/// voting for PVFs that are pending approval. #[cfg(feature = "polkadot-node-core-pvf-checker")] pub use polkadot_node_core_pvf_checker; +/// Polkadot crate that contains functionality related to PVFs that is shared by the PVF host +/// and the PVF workers. #[cfg(feature = "polkadot-node-core-pvf-common")] pub use polkadot_node_core_pvf_common; +/// Polkadot crate that contains the logic for executing PVFs. Used by the +/// polkadot-execute-worker binary. #[cfg(feature = "polkadot-node-core-pvf-execute-worker")] pub use polkadot_node_core_pvf_execute_worker; +/// Polkadot crate that contains the logic for preparing PVFs. Used by the +/// polkadot-prepare-worker binary. #[cfg(feature = "polkadot-node-core-pvf-prepare-worker")] pub use polkadot_node_core_pvf_prepare_worker; +/// Wrapper around the parachain-related runtime APIs. #[cfg(feature = "polkadot-node-core-runtime-api")] pub use polkadot_node_core_runtime_api; +/// Polkadot Jaeger primitives, but equally useful for Grafana/Tempo. #[cfg(feature = "polkadot-node-jaeger")] pub use polkadot_node_jaeger; +/// Subsystem metric helpers. #[cfg(feature = "polkadot-node-metrics")] pub use polkadot_node_metrics; +/// Primitives types for the Node-side. #[cfg(feature = "polkadot-node-network-protocol")] pub use polkadot_node_network_protocol; +/// Primitives types for the Node-side. #[cfg(feature = "polkadot-node-primitives")] pub use polkadot_node_primitives; +/// Subsystem traits and message definitions and the generated overseer. #[cfg(feature = "polkadot-node-subsystem")] pub use polkadot_node_subsystem; +/// Subsystem traits and message definitions. #[cfg(feature = "polkadot-node-subsystem-types")] pub use polkadot_node_subsystem_types; +/// Subsystem traits and message definitions. #[cfg(feature = "polkadot-node-subsystem-util")] pub use polkadot_node_subsystem_util; +/// System overseer of the Polkadot node. #[cfg(feature = "polkadot-overseer")] pub use polkadot_overseer; +/// Types and utilities for creating and working with parachains. #[cfg(feature = "polkadot-parachain-primitives")] pub use polkadot_parachain_primitives; +/// Shared primitives used by Polkadot runtime. #[cfg(feature = "polkadot-primitives")] pub use polkadot_primitives; +/// Polkadot specific RPC functionality. #[cfg(feature = "polkadot-rpc")] pub use polkadot_rpc; +/// Pallets and constants used in Relay Chain networks. #[cfg(feature = "polkadot-runtime-common")] pub use polkadot_runtime_common; +/// Runtime metric interface for the Polkadot node. #[cfg(feature = "polkadot-runtime-metrics")] pub use polkadot_runtime_metrics; +/// Relay Chain runtime code responsible for Parachains. #[cfg(feature = "polkadot-runtime-parachains")] pub use polkadot_runtime_parachains; +/// Experimental: The single package to get you started with building frame pallets and +/// runtimes. #[cfg(feature = "polkadot-sdk-frame")] pub use polkadot_sdk_frame; +/// Utils to tie different Polkadot components together and allow instantiation of a node. #[cfg(feature = "polkadot-service")] pub use polkadot_service; +/// Statement Distribution Subsystem. #[cfg(feature = "polkadot-statement-distribution")] pub use polkadot_statement_distribution; +/// Stores messages other authorities issue about candidates in Polkadot. #[cfg(feature = "polkadot-statement-table")] pub use polkadot_statement_table; +/// Constants used throughout the Rococo network. #[cfg(feature = "rococo-runtime-constants")] pub use rococo_runtime_constants; +/// Collection of allocator implementations. #[cfg(feature = "sc-allocator")] pub use sc_allocator; +/// Substrate authority discovery. #[cfg(feature = "sc-authority-discovery")] pub use sc_authority_discovery; +/// Basic implementation of block-authoring logic. #[cfg(feature = "sc-basic-authorship")] pub use sc_basic_authorship; +/// Substrate block builder. #[cfg(feature = "sc-block-builder")] pub use sc_block_builder; +/// Substrate chain configurations. #[cfg(feature = "sc-chain-spec")] pub use sc_chain_spec; +/// Macros to derive chain spec extension traits implementation. #[cfg(feature = "sc-chain-spec-derive")] pub use sc_chain_spec_derive; +/// Substrate CLI interface. #[cfg(feature = "sc-cli")] pub use sc_cli; +/// Substrate client interfaces. #[cfg(feature = "sc-client-api")] pub use sc_client_api; +/// Client backend that uses RocksDB database as storage. #[cfg(feature = "sc-client-db")] pub use sc_client_db; +/// Collection of common consensus specific implementations for Substrate (client). #[cfg(feature = "sc-consensus")] pub use sc_consensus; +/// Aura consensus algorithm for substrate. #[cfg(feature = "sc-consensus-aura")] pub use sc_consensus_aura; +/// BABE consensus algorithm for substrate. #[cfg(feature = "sc-consensus-babe")] pub use sc_consensus_babe; +/// RPC extensions for the BABE consensus algorithm. #[cfg(feature = "sc-consensus-babe-rpc")] pub use sc_consensus_babe_rpc; +/// BEEFY Client gadget for substrate. #[cfg(feature = "sc-consensus-beefy")] pub use sc_consensus_beefy; +/// RPC for the BEEFY Client gadget for substrate. #[cfg(feature = "sc-consensus-beefy-rpc")] pub use sc_consensus_beefy_rpc; +/// Generic epochs-based utilities for consensus. #[cfg(feature = "sc-consensus-epochs")] pub use sc_consensus_epochs; +/// Integration of the GRANDPA finality gadget into substrate. #[cfg(feature = "sc-consensus-grandpa")] pub use sc_consensus_grandpa; +/// RPC extensions for the GRANDPA finality gadget. #[cfg(feature = "sc-consensus-grandpa-rpc")] pub use sc_consensus_grandpa_rpc; +/// Manual sealing engine for Substrate. #[cfg(feature = "sc-consensus-manual-seal")] pub use sc_consensus_manual_seal; +/// PoW consensus algorithm for substrate. #[cfg(feature = "sc-consensus-pow")] pub use sc_consensus_pow; +/// Generic slots-based utilities for consensus. #[cfg(feature = "sc-consensus-slots")] pub use sc_consensus_slots; +/// A crate that provides means of executing/dispatching calls into the runtime. #[cfg(feature = "sc-executor")] pub use sc_executor; +/// A set of common definitions that are needed for defining execution engines. #[cfg(feature = "sc-executor-common")] pub use sc_executor_common; +/// PolkaVM executor for Substrate. #[cfg(feature = "sc-executor-polkavm")] pub use sc_executor_polkavm; +/// Defines a `WasmRuntime` that uses the Wasmtime JIT to execute. #[cfg(feature = "sc-executor-wasmtime")] pub use sc_executor_wasmtime; +/// Substrate informant. #[cfg(feature = "sc-informant")] pub use sc_informant; +/// Keystore (and session key management) for ed25519 based chains like Polkadot. #[cfg(feature = "sc-keystore")] pub use sc_keystore; +/// Substrate mixnet service. #[cfg(feature = "sc-mixnet")] pub use sc_mixnet; +/// Substrate network protocol. #[cfg(feature = "sc-network")] pub use sc_network; +/// Substrate network common. #[cfg(feature = "sc-network-common")] pub use sc_network_common; +/// Gossiping for the Substrate network protocol. #[cfg(feature = "sc-network-gossip")] pub use sc_network_gossip; +/// Substrate light network protocol. #[cfg(feature = "sc-network-light")] pub use sc_network_light; +/// Substrate statement protocol. #[cfg(feature = "sc-network-statement")] pub use sc_network_statement; +/// Substrate sync network protocol. #[cfg(feature = "sc-network-sync")] pub use sc_network_sync; +/// Substrate transaction protocol. #[cfg(feature = "sc-network-transactions")] pub use sc_network_transactions; +/// Substrate network types. #[cfg(feature = "sc-network-types")] pub use sc_network_types; +/// Substrate offchain workers. #[cfg(feature = "sc-offchain")] pub use sc_offchain; +/// Basic metrics for block production. #[cfg(feature = "sc-proposer-metrics")] pub use sc_proposer_metrics; +/// Substrate Client RPC. #[cfg(feature = "sc-rpc")] pub use sc_rpc; +/// Substrate RPC interfaces. #[cfg(feature = "sc-rpc-api")] pub use sc_rpc_api; +/// Substrate RPC servers. #[cfg(feature = "sc-rpc-server")] pub use sc_rpc_server; +/// Substrate RPC interface v2. #[cfg(feature = "sc-rpc-spec-v2")] pub use sc_rpc_spec_v2; +/// Substrate service. Starts a thread that spins up the network, client, and extrinsic pool. +/// Manages communication between them. #[cfg(feature = "sc-service")] pub use sc_service; +/// State database maintenance. Handles canonicalization and pruning in the database. #[cfg(feature = "sc-state-db")] pub use sc_state_db; +/// Substrate statement store. #[cfg(feature = "sc-statement-store")] pub use sc_statement_store; +/// Storage monitor service for substrate. #[cfg(feature = "sc-storage-monitor")] pub use sc_storage_monitor; +/// A RPC handler to create sync states for light clients. #[cfg(feature = "sc-sync-state-rpc")] pub use sc_sync_state_rpc; +/// A crate that provides basic hardware and software telemetry information. #[cfg(feature = "sc-sysinfo")] pub use sc_sysinfo; +/// Telemetry utils. #[cfg(feature = "sc-telemetry")] pub use sc_telemetry; +/// Instrumentation implementation for substrate. #[cfg(feature = "sc-tracing")] pub use sc_tracing; +/// Helper macros for Substrate's client CLI. #[cfg(feature = "sc-tracing-proc-macro")] pub use sc_tracing_proc_macro; +/// Substrate transaction pool implementation. #[cfg(feature = "sc-transaction-pool")] pub use sc_transaction_pool; +/// Transaction pool client facing API. #[cfg(feature = "sc-transaction-pool-api")] pub use sc_transaction_pool_api; +/// I/O for Substrate runtimes. #[cfg(feature = "sc-utils")] pub use sc_utils; +/// Helper crate for generating slot ranges for the Polkadot runtime. #[cfg(feature = "slot-range-helper")] pub use slot_range_helper; +/// Snowbridge Beacon Primitives. #[cfg(feature = "snowbridge-beacon-primitives")] pub use snowbridge_beacon_primitives; +/// Snowbridge Core. #[cfg(feature = "snowbridge-core")] pub use snowbridge_core; +/// Snowbridge Ethereum. #[cfg(feature = "snowbridge-ethereum")] pub use snowbridge_ethereum; +/// Snowbridge Outbound Queue Merkle Tree. #[cfg(feature = "snowbridge-outbound-queue-merkle-tree")] pub use snowbridge_outbound_queue_merkle_tree; +/// Snowbridge Outbound Queue Runtime API. #[cfg(feature = "snowbridge-outbound-queue-runtime-api")] pub use snowbridge_outbound_queue_runtime_api; +/// Snowbridge Ethereum Client Pallet. #[cfg(feature = "snowbridge-pallet-ethereum-client")] pub use snowbridge_pallet_ethereum_client; +/// Snowbridge Ethereum Client Test Fixtures. #[cfg(feature = "snowbridge-pallet-ethereum-client-fixtures")] pub use snowbridge_pallet_ethereum_client_fixtures; +/// Snowbridge Inbound Queue Pallet. #[cfg(feature = "snowbridge-pallet-inbound-queue")] pub use snowbridge_pallet_inbound_queue; +/// Snowbridge Inbound Queue Test Fixtures. #[cfg(feature = "snowbridge-pallet-inbound-queue-fixtures")] pub use snowbridge_pallet_inbound_queue_fixtures; +/// Snowbridge Outbound Queue Pallet. #[cfg(feature = "snowbridge-pallet-outbound-queue")] pub use snowbridge_pallet_outbound_queue; +/// Snowbridge System Pallet. #[cfg(feature = "snowbridge-pallet-system")] pub use snowbridge_pallet_system; +/// Snowbridge Router Primitives. #[cfg(feature = "snowbridge-router-primitives")] pub use snowbridge_router_primitives; +/// Snowbridge Runtime Common. #[cfg(feature = "snowbridge-runtime-common")] pub use snowbridge_runtime_common; +/// Snowbridge Runtime Tests. #[cfg(feature = "snowbridge-runtime-test-common")] pub use snowbridge_runtime_test_common; +/// Snowbridge System Runtime API. #[cfg(feature = "snowbridge-system-runtime-api")] pub use snowbridge_system_runtime_api; +/// Substrate runtime api primitives. #[cfg(feature = "sp-api")] pub use sp_api; +/// Macros for declaring and implementing runtime apis. #[cfg(feature = "sp-api-proc-macro")] pub use sp_api_proc_macro; +/// Provides facilities for generating application specific crypto wrapper types. #[cfg(feature = "sp-application-crypto")] pub use sp_application_crypto; +/// Minimal fixed point arithmetic primitives and types for runtime. #[cfg(feature = "sp-arithmetic")] pub use sp_arithmetic; +/// Authority discovery primitives. #[cfg(feature = "sp-authority-discovery")] pub use sp_authority_discovery; +/// The block builder runtime api. #[cfg(feature = "sp-block-builder")] pub use sp_block_builder; +/// Substrate blockchain traits and primitives. #[cfg(feature = "sp-blockchain")] pub use sp_blockchain; +/// Common utilities for building and using consensus engines in substrate. #[cfg(feature = "sp-consensus")] pub use sp_consensus; +/// Primitives for Aura consensus. #[cfg(feature = "sp-consensus-aura")] pub use sp_consensus_aura; +/// Primitives for BABE consensus. #[cfg(feature = "sp-consensus-babe")] pub use sp_consensus_babe; +/// Primitives for BEEFY protocol. #[cfg(feature = "sp-consensus-beefy")] pub use sp_consensus_beefy; +/// Primitives for GRANDPA integration, suitable for WASM compilation. #[cfg(feature = "sp-consensus-grandpa")] pub use sp_consensus_grandpa; +/// Primitives for Aura consensus. #[cfg(feature = "sp-consensus-pow")] pub use sp_consensus_pow; +/// Primitives for slots-based consensus. #[cfg(feature = "sp-consensus-slots")] pub use sp_consensus_slots; +/// Shareable Substrate types. #[cfg(feature = "sp-core")] pub use sp_core; +/// Hashing primitives (deprecated: use sp-crypto-hashing for new applications). #[cfg(feature = "sp-core-hashing")] pub use sp_core_hashing; +/// Procedural macros for calculating static hashes (deprecated in favor of +/// `sp-crypto-hashing-proc-macro`). #[cfg(feature = "sp-core-hashing-proc-macro")] pub use sp_core_hashing_proc_macro; +/// Host functions for common Arkworks elliptic curve operations. #[cfg(feature = "sp-crypto-ec-utils")] pub use sp_crypto_ec_utils; +/// Hashing primitives. #[cfg(feature = "sp-crypto-hashing")] pub use sp_crypto_hashing; +/// Procedural macros for calculating static hashes. #[cfg(feature = "sp-crypto-hashing-proc-macro")] pub use sp_crypto_hashing_proc_macro; +/// Substrate database trait. #[cfg(feature = "sp-database")] pub use sp_database; +/// Macros to derive runtime debug implementation. #[cfg(feature = "sp-debug-derive")] pub use sp_debug_derive; +/// Substrate externalities abstraction. #[cfg(feature = "sp-externalities")] pub use sp_externalities; +/// Substrate RuntimeGenesisConfig builder API. #[cfg(feature = "sp-genesis-builder")] pub use sp_genesis_builder; +/// Provides types and traits for creating and checking inherents. #[cfg(feature = "sp-inherents")] pub use sp_inherents; +/// I/O for Substrate runtimes. #[cfg(feature = "sp-io")] pub use sp_io; +/// Keyring support code for the runtime. A set of test accounts. #[cfg(feature = "sp-keyring")] pub use sp_keyring; +/// Keystore primitives. #[cfg(feature = "sp-keystore")] pub use sp_keystore; +/// Handling of blobs, usually Wasm code, which may be compressed. #[cfg(feature = "sp-maybe-compressed-blob")] pub use sp_maybe_compressed_blob; +/// Intermediate representation of the runtime metadata. #[cfg(feature = "sp-metadata-ir")] pub use sp_metadata_ir; +/// Substrate mixnet types and runtime interface. #[cfg(feature = "sp-mixnet")] pub use sp_mixnet; +/// Merkle Mountain Range primitives. #[cfg(feature = "sp-mmr-primitives")] pub use sp_mmr_primitives; +/// NPoS election algorithm primitives. #[cfg(feature = "sp-npos-elections")] pub use sp_npos_elections; +/// Substrate offchain workers primitives. #[cfg(feature = "sp-offchain")] pub use sp_offchain; +/// Custom panic hook with bug report link. #[cfg(feature = "sp-panic-handler")] pub use sp_panic_handler; +/// Substrate RPC primitives and utilities. #[cfg(feature = "sp-rpc")] pub use sp_rpc; +/// Runtime Modules shared primitive types. #[cfg(feature = "sp-runtime")] pub use sp_runtime; +/// Substrate runtime interface. #[cfg(feature = "sp-runtime-interface")] pub use sp_runtime_interface; +/// This crate provides procedural macros for usage within the context of the Substrate runtime +/// interface. #[cfg(feature = "sp-runtime-interface-proc-macro")] pub use sp_runtime_interface_proc_macro; +/// Primitives for sessions. #[cfg(feature = "sp-session")] pub use sp_session; +/// A crate which contains primitives that are useful for implementation that uses staking +/// approaches in general. Definitions related to sessions, slashing, etc go here. #[cfg(feature = "sp-staking")] pub use sp_staking; +/// Substrate State Machine. #[cfg(feature = "sp-state-machine")] pub use sp_state_machine; +/// A crate which contains primitives related to the statement store. #[cfg(feature = "sp-statement-store")] pub use sp_statement_store; +/// Lowest-abstraction level for the Substrate runtime: just exports useful primitives from std +/// or client/alloc to be used with any code that depends on the runtime. #[cfg(feature = "sp-std")] pub use sp_std; +/// Storage related primitives. #[cfg(feature = "sp-storage")] pub use sp_storage; +/// Substrate core types and inherents for timestamps. #[cfg(feature = "sp-timestamp")] pub use sp_timestamp; +/// Instrumentation primitives and macros for Substrate. #[cfg(feature = "sp-tracing")] pub use sp_tracing; +/// Transaction pool runtime facing API. #[cfg(feature = "sp-transaction-pool")] pub use sp_transaction_pool; +/// Transaction storage proof primitives. #[cfg(feature = "sp-transaction-storage-proof")] pub use sp_transaction_storage_proof; +/// Patricia trie stuff using a parity-scale-codec node format. #[cfg(feature = "sp-trie")] pub use sp_trie; +/// Version module for the Substrate runtime; Provides a function that returns the runtime +/// version. #[cfg(feature = "sp-version")] pub use sp_version; +/// Macro for defining a runtime version. #[cfg(feature = "sp-version-proc-macro")] pub use sp_version_proc_macro; +/// Types and traits for interfacing between the host and the wasm runtime. #[cfg(feature = "sp-wasm-interface")] pub use sp_wasm_interface; +/// Types and traits for interfacing between the host and the wasm runtime. #[cfg(feature = "sp-weights")] pub use sp_weights; +/// Substrate node block inspection tool. #[cfg(feature = "staging-node-inspect")] pub use staging_node_inspect; +/// Pallet to store the parachain ID. #[cfg(feature = "staging-parachain-info")] pub use staging_parachain_info; +/// Tracking allocator to control the amount of memory consumed by the process. #[cfg(feature = "staging-tracking-allocator")] pub use staging_tracking_allocator; +/// The basic XCM datastructures. #[cfg(feature = "staging-xcm")] pub use staging_xcm; +/// Tools & types for building with XCM and its executor. #[cfg(feature = "staging-xcm-builder")] pub use staging_xcm_builder; +/// An abstract and configurable XCM message executor. #[cfg(feature = "staging-xcm-executor")] pub use staging_xcm_executor; +/// Generate and restore keys for Substrate based chains such as Polkadot, Kusama and a growing +/// number of parachains and Substrate based projects. #[cfg(feature = "subkey")] pub use subkey; +/// Converting BIP39 entropy to valid Substrate (sr25519) SecretKeys. #[cfg(feature = "substrate-bip39")] pub use substrate_bip39; +/// Crate with utility functions for `build.rs` scripts. #[cfg(feature = "substrate-build-script-utils")] pub use substrate_build_script_utils; +/// Substrate RPC for FRAME's support. #[cfg(feature = "substrate-frame-rpc-support")] pub use substrate_frame_rpc_support; +/// FRAME's system exposed over Substrate RPC. #[cfg(feature = "substrate-frame-rpc-system")] pub use substrate_frame_rpc_system; +/// Endpoint to expose Prometheus metrics. #[cfg(feature = "substrate-prometheus-endpoint")] pub use substrate_prometheus_endpoint; +/// Shared JSON-RPC client. #[cfg(feature = "substrate-rpc-client")] pub use substrate_rpc_client; +/// Node-specific RPC methods for interaction with state trie migration. #[cfg(feature = "substrate-state-trie-migration-rpc")] pub use substrate_state_trie_migration_rpc; +/// Utility for building WASM binaries. #[cfg(feature = "substrate-wasm-builder")] pub use substrate_wasm_builder; +/// Common constants for Testnet Parachains runtimes. #[cfg(feature = "testnet-parachains-constants")] pub use testnet_parachains_constants; +/// Stick logs together with the TraceID as provided by tempo. #[cfg(feature = "tracing-gum")] pub use tracing_gum; +/// Generate an overseer including builder pattern and message wrapper from a single annotated +/// struct definition. #[cfg(feature = "tracing-gum-proc-macro")] pub use tracing_gum_proc_macro; +/// Constants used throughout the Westend network. #[cfg(feature = "westend-runtime-constants")] pub use westend_runtime_constants; +/// Test kit to emulate XCM program execution. #[cfg(feature = "xcm-emulator")] pub use xcm_emulator; +/// XCM fee payment runtime API. #[cfg(feature = "xcm-fee-payment-runtime-api")] pub use xcm_fee_payment_runtime_api; +/// Procedural macros for XCM. #[cfg(feature = "xcm-procedural")] pub use xcm_procedural; +/// Test kit to simulate cross-chain message passing and XCM execution. #[cfg(feature = "xcm-simulator")] pub use xcm_simulator; From d595ed03fc7413f595782f81f962406f5fda397b Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 12:44:06 +0200 Subject: [PATCH 12/39] Update script Signed-off-by: Oliver Tale-Yazdi --- scripts/generate-umbrella.py | 59 +++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py index 4cde48be54a3..ccdef3d7d582 100644 --- a/scripts/generate-umbrella.py +++ b/scripts/generate-umbrella.py @@ -61,7 +61,7 @@ def main(path, version): manifest = toml.load(f) if 'lib' in manifest and 'proc-macro' in manifest['lib']: if manifest['lib']['proc-macro']: - nostd_crates.append((crate.name, path)) + nostd_crates.append((crate, path)) continue # Crates without a lib.rs cannot be no_std @@ -76,23 +76,24 @@ def main(path, version): with open(lib_path, "r") as f: content = f.read() if "#![no_std]" in content or '#![cfg_attr(not(feature = "std"), no_std)]' in content: - nostd_crates.append((crate.name, path)) + nostd_crates.append((crate, path)) elif 'no_std' in content: raise Exception(f"Found 'no_std' in {lib_path} without knowing how to handle it") else: - std_crates.append((crate.name, path)) + std_crates.append((crate, path)) - std_crates.sort() - nostd_crates.sort() + # Sort by name + std_crates.sort(key=lambda x: x[0].name) + nostd_crates.sort(key=lambda x: x[0].name) all_crates = std_crates + nostd_crates - all_crates.sort() + all_crates.sort(key=lambda x: x[0].name) dependencies = {} for (crate, path) in nostd_crates: - dependencies[crate] = {"path": f"../{path}", "default-features": False, "optional": True} + dependencies[crate.name] = {"path": f"../{path}", "default-features": False, "optional": True} for (crate, path) in std_crates: - dependencies[crate] = {"path": f"../{path}", "default-features": False, "optional": True} + dependencies[crate.name] = {"path": f"../{path}", "default-features": False, "optional": True} # The empty features are filled by Zepter features = { @@ -103,16 +104,16 @@ def main(path, version): "serde": [], "experimental": [], "with-tracing": [], - "runtime": list([f"{d}" for d, _ in nostd_crates]), - "node": ["std"] + list([f"{d}" for d, _ in std_crates]), + "runtime": list([f"{d.name}" for d, _ in nostd_crates]), + "node": ["std"] + list([f"{d.name}" for d, _ in std_crates]), "tuples-96": [], } # Create one feature to enable each crate selectively for crate, _ in std_crates: - if crate in features: - raise Exception(f"Feature {crate} already exists") - features[crate] = [f"dep:{crate}"] + if crate.name in features: + raise Exception(f"Feature {crate.name} already exists") + features[crate.name] = [f"dep:{crate.name}"] manifest = { "package": { @@ -121,7 +122,11 @@ def main(path, version): "edition": { "workspace": True }, "authors": { "workspace": True }, "description": "Polkadot SDK umbrella crate.", - "license": "Apache-2.0" + "license": "Apache-2.0", + "metadata": { "docs": { "rs": { + "features": ["runtime", "node"], + "targets": ["x86_64-unknown-linux-gnu"] + }}} }, "dependencies": dependencies, "features": features, @@ -139,19 +144,25 @@ def main(path, version): print(f"Wrote {manifest_path}") # and the lib.rs with open(lib_path, "w") as f: - f.write(''' + f.write('''// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +#![cfg_attr(not(feature = "std"), no_std)] + //! Polkadot SDK umbrella crate re-exporting all other published crates. //! -//! This helps to set a single version number for all your dependencies. +//! This helps to set a single version number for all your dependencies. Docs are in the +//! `polkadot-sdk-docs` crate. // This file is auto-generated and checked by the CI. You can edit it manually, but it must be // exactly the way that the CI expects it. - -#![cfg_attr(not(feature = "std"), no_std)]''') +''') for crate, _ in all_crates: - use = crate.replace("-", "_") - f.write(f'\n#[cfg(feature = "{crate}")]\n') + use = crate.name.replace("-", "_") + desc = crate.description if crate.description.endswith(".") else crate.description + "." + f.write(f'\n/// {desc}') + f.write(f'\n#[cfg(feature = "{crate.name}")]\n') f.write(f"pub use {use};\n") print(f"Wrote {lib_path}") @@ -163,15 +174,15 @@ def main(path, version): """ def delete_umbrella(path): umbrella_dir = os.path.join(path, "umbrella") - if os.path.exists(umbrella_dir): - print(f"Deleting {umbrella_dir}") - shutil.rmtree(umbrella_dir) # remove the umbrella crate from the workspace manifest = os.path.join(path, "Cargo.toml") manifest = open(manifest, "r").read() manifest = re.sub(r'\s+"umbrella",\n', "", manifest) with open(os.path.join(path, "Cargo.toml"), "w") as f: f.write(manifest) + if os.path.exists(umbrella_dir): + print(f"Deleting {umbrella_dir}") + shutil.rmtree(umbrella_dir) """ Create the umbrella crate and add it to the workspace. @@ -179,7 +190,7 @@ def delete_umbrella(path): def add_to_workspace(path): manifest = os.path.join(path, "Cargo.toml") manifest = open(manifest, "r").read() - manifest = re.sub(r'members = \[', 'members = [\n "umbrella",', manifest) + manifest = re.sub(r'^members = \[', 'members = [\n "umbrella",', manifest, flags=re.M) with open(os.path.join(path, "Cargo.toml"), "w") as f: f.write(manifest) From e588f9b4b1eaf7719f82a18b2ad21e07c303012f Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 12:50:26 +0200 Subject: [PATCH 13/39] Update lockfile Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 654 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 441 insertions(+), 213 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2b2576d1adfa..b5e5b133cedb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3450,6 +3450,34 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +dependencies = [ + "anes", + "atty", + "cast", + "ciborium", + "clap 3.2.25", + "criterion-plot", + "futures", + "itertools 0.10.5", + "lazy_static", + "num-traits", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + [[package]] name = "criterion" version = "0.5.1" @@ -4372,7 +4400,7 @@ version = "0.1.0" dependencies = [ "async-trait", "clap 4.5.3", - "criterion", + "criterion 0.5.1", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -5971,7 +5999,7 @@ name = "frame-system" version = "28.0.0" dependencies = [ "cfg-if", - "criterion", + "criterion 0.5.1", "docify", "frame-support", "log", @@ -7236,123 +7264,15 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "frame-benchmarking", - "frame-benchmarking-pallet-pov", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", "log", "node-primitives", - "pallet-alliance", - "pallet-asset-conversion", - "pallet-asset-conversion-ops", - "pallet-asset-conversion-tx-payment", - "pallet-asset-rate", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-broker", - "pallet-child-bounties", - "pallet-collective", - "pallet-contracts", - "pallet-conviction-voting", - "pallet-core-fellowship", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", "pallet-example-mbm", "pallet-example-tasks", - "pallet-fast-unstake", - "pallet-glutton", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-insecure-randomness-collective-flip", - "pallet-lottery", - "pallet-membership", - "pallet-message-queue", - "pallet-migrations", - "pallet-mixnet", - "pallet-mmr", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-parameters", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-remark", - "pallet-root-testing", - "pallet-safe-mode", - "pallet-salary", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-skip-feeless-payment", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-statement", - "pallet-sudo", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-transaction-storage", - "pallet-treasury", - "pallet-tx-pause", - "pallet-uniques", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", "parity-scale-codec", + "polkadot-sdk", "primitive-types", "scale-info", "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-mixnet", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-statement-store", - "sp-std 14.0.0", - "sp-storage 19.0.0", - "sp-transaction-pool", - "sp-version", "static_assertions", "substrate-wasm-builder", ] @@ -12777,7 +12697,7 @@ dependencies = [ name = "polkadot-erasure-coding" version = "7.0.0" dependencies = [ - "criterion", + "criterion 0.5.1", "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", @@ -13154,7 +13074,7 @@ dependencies = [ "assert_matches", "blake3", "cfg-if", - "criterion", + "criterion 0.5.1", "futures", "futures-timer", "hex-literal", @@ -13259,7 +13179,7 @@ version = "7.0.0" dependencies = [ "blake3", "cfg-if", - "criterion", + "criterion 0.5.1", "libc", "nix 0.28.0", "parity-scale-codec", @@ -13829,37 +13749,420 @@ dependencies = [ ] [[package]] -name = "polkadot-sdk-docs" -version = "0.0.1" +name = "polkadot-sdk" +version = "1.9.0" dependencies = [ + "asset-test-utils", + "assets-common", + "binary-merkle-tree", + "bp-asset-hub-rococo", + "bp-asset-hub-westend", + "bp-bridge-hub-cumulus", + "bp-bridge-hub-kusama", + "bp-bridge-hub-polkadot", + "bp-bridge-hub-rococo", + "bp-bridge-hub-westend", + "bp-header-chain", + "bp-kusama", + "bp-messages", + "bp-parachains", + "bp-polkadot", + "bp-polkadot-bulletin", + "bp-polkadot-core", + "bp-relayers", + "bp-rococo", + "bp-runtime", + "bp-test-utils", + "bp-westend", + "bp-xcm-bridge-hub", + "bp-xcm-bridge-hub-router", + "bridge-hub-common", + "bridge-hub-test-utils", + "bridge-runtime-common", + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-consensus-relay-chain", + "cumulus-client-network", + "cumulus-client-parachain-inherent", + "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-solo-to-para", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-ping", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", - "docify", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "cumulus-relay-chain-inprocess-interface", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", + "cumulus-relay-chain-rpc-interface", + "cumulus-test-relay-sproof-builder", + "emulated-integration-tests-common", + "fork-tree", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-benchmarking-pallet-pov", + "frame-election-provider-solution-type", + "frame-election-provider-support", "frame-executive", + "frame-remote-externalities", "frame-support", + "frame-support-procedural", + "frame-support-procedural-tools", + "frame-support-procedural-tools-derive", "frame-system", - "kitchensink-runtime", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "generate-bags", + "mmr-gadget", + "mmr-rpc", + "pallet-alliance", + "pallet-asset-conversion", + "pallet-asset-conversion-ops", + "pallet-asset-conversion-tx-payment", + "pallet-asset-rate", + "pallet-asset-tx-payment", "pallet-assets", + "pallet-atomic-swap", "pallet-aura", + "pallet-authority-discovery", "pallet-authorship", "pallet-babe", + "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bounties", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-parachains", + "pallet-bridge-relayers", "pallet-broker", + "pallet-child-bounties", + "pallet-collator-selection", "pallet-collective", - "pallet-default-config-example", + "pallet-collective-content", + "pallet-contracts", + "pallet-contracts-mock-network", + "pallet-contracts-proc-macro", + "pallet-contracts-uapi", + "pallet-conviction-voting", + "pallet-core-fellowship", "pallet-democracy", - "pallet-example-offchain-worker", - "pallet-example-single-block-migrations", - "pallet-examples", + "pallet-dev-mode", + "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", + "pallet-elections-phragmen", + "pallet-fast-unstake", + "pallet-glutton", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-insecure-randomness-collective-flip", + "pallet-lottery", + "pallet-membership", + "pallet-message-queue", + "pallet-migrations", + "pallet-mixnet", + "pallet-mmr", "pallet-multisig", + "pallet-nft-fractionalization", "pallet-nfts", - "pallet-preimage", - "pallet-proxy", - "pallet-referenda", - "pallet-scheduler", + "pallet-nfts-runtime-api", + "pallet-nis", + "pallet-node-authorization", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-paged-list", + "pallet-parameters", + "pallet-preimage", + "pallet-proxy", + "pallet-ranked-collective", + "pallet-recovery", + "pallet-referenda", + "pallet-remark", + "pallet-root-offences", + "pallet-root-testing", + "pallet-safe-mode", + "pallet-salary", + "pallet-scheduler", + "pallet-scored-pool", + "pallet-session", + "pallet-session-benchmarking", + "pallet-skip-feeless-payment", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-staking-reward-fn", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", + "pallet-statement", + "pallet-sudo", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-storage", + "pallet-treasury", + "pallet-tx-pause", + "pallet-uniques", + "pallet-utility", + "pallet-vesting", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-bridge-hub", + "pallet-xcm-bridge-hub-router", + "parachains-common", + "parachains-runtimes-test-utils", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-cli", + "polkadot-collator-protocol", + "polkadot-core-primitives", + "polkadot-dispute-distribution", + "polkadot-erasure-coding", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", + "polkadot-node-core-pvf-checker", + "polkadot-node-core-pvf-common", + "polkadot-node-core-pvf-execute-worker", + "polkadot-node-core-pvf-prepare-worker", + "polkadot-node-core-runtime-api", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime-common", + "polkadot-runtime-metrics", + "polkadot-runtime-parachains", + "polkadot-sdk-frame", + "polkadot-service", + "polkadot-statement-distribution", + "polkadot-statement-table", + "rococo-runtime-constants", + "sc-allocator", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-chain-spec-derive", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", + "sc-consensus-manual-seal", + "sc-consensus-pow", + "sc-consensus-slots", + "sc-executor", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "sc-informant", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-light", + "sc-network-statement", + "sc-network-sync", + "sc-network-transactions", + "sc-network-types", + "sc-offchain", + "sc-proposer-metrics", + "sc-rpc", + "sc-rpc-api", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-service", + "sc-state-db", + "sc-statement-store", + "sc-storage-monitor", + "sc-sync-state-rpc", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-tracing-proc-macro", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "slot-range-helper", + "snowbridge-beacon-primitives", + "snowbridge-core", + "snowbridge-ethereum", + "snowbridge-outbound-queue-merkle-tree", + "snowbridge-outbound-queue-runtime-api", + "snowbridge-pallet-ethereum-client", + "snowbridge-pallet-ethereum-client-fixtures", + "snowbridge-pallet-inbound-queue", + "snowbridge-pallet-inbound-queue-fixtures", + "snowbridge-pallet-outbound-queue", + "snowbridge-pallet-system", + "snowbridge-router-primitives", + "snowbridge-runtime-common", + "snowbridge-runtime-test-common", + "snowbridge-system-runtime-api", + "sp-api", + "sp-api-proc-macro", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", + "sp-consensus-pow", + "sp-consensus-slots", + "sp-core", + "sp-core-hashing", + "sp-core-hashing-proc-macro", + "sp-crypto-ec-utils 0.10.0", + "sp-crypto-hashing", + "sp-crypto-hashing-proc-macro", + "sp-database", + "sp-debug-derive 14.0.0", + "sp-externalities 0.25.0", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-keystore", + "sp-maybe-compressed-blob", + "sp-metadata-ir", + "sp-mixnet", + "sp-mmr-primitives", + "sp-npos-elections", + "sp-offchain", + "sp-panic-handler", + "sp-rpc", + "sp-runtime", + "sp-runtime-interface 24.0.0", + "sp-runtime-interface-proc-macro 17.0.0", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-statement-store", + "sp-std 14.0.0", + "sp-storage 19.0.0", + "sp-timestamp", + "sp-tracing 16.0.0", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "sp-version-proc-macro", + "sp-wasm-interface 20.0.0", + "sp-weights", + "staging-node-inspect", + "staging-parachain-info", + "staging-tracking-allocator", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "subkey", + "substrate-bip39", + "substrate-build-script-utils", + "substrate-frame-rpc-support", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "substrate-rpc-client", + "substrate-state-trie-migration-rpc", + "substrate-wasm-builder", + "testnet-parachains-constants", + "tracing-gum", + "tracing-gum-proc-macro", + "westend-runtime-constants", + "xcm-emulator", + "xcm-fee-payment-runtime-api", + "xcm-procedural", + "xcm-simulator", +] + +[[package]] +name = "polkadot-sdk-docs" +version = "0.0.1" +dependencies = [ + "cumulus-client-service", + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-storage-weight-reclaim", + "docify", + "frame-executive", + "frame-support", + "frame-system", + "kitchensink-runtime", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-broker", + "pallet-collective", + "pallet-default-config-example", + "pallet-democracy", + "pallet-example-offchain-worker", + "pallet-example-single-block-migrations", + "pallet-examples", + "pallet-multisig", + "pallet-nfts", + "pallet-preimage", + "pallet-proxy", + "pallet-referenda", + "pallet-scheduler", "pallet-timestamp", "pallet-transaction-payment", "pallet-uniques", @@ -16418,7 +16721,7 @@ name = "sc-client-db" version = "0.35.0" dependencies = [ "array-bytes", - "criterion", + "criterion 0.5.1", "hash-db", "kitchensink-runtime", "kvdb", @@ -16821,7 +17124,7 @@ version = "0.32.0" dependencies = [ "array-bytes", "assert_matches", - "criterion", + "criterion 0.5.1", "env_logger 0.11.3", "num_cpus", "parity-scale-codec", @@ -17602,7 +17905,7 @@ version = "28.0.0" dependencies = [ "ansi_term", "chrono", - "criterion", + "criterion 0.5.1", "is-terminal", "lazy_static", "libc", @@ -17643,7 +17946,7 @@ dependencies = [ "array-bytes", "assert_matches", "async-trait", - "criterion", + "criterion 0.5.1", "futures", "futures-timer", "linked-hash-map", @@ -19023,7 +19326,7 @@ dependencies = [ name = "sp-api-test" version = "2.0.1" dependencies = [ - "criterion", + "criterion 0.5.1", "futures", "log", "parity-scale-codec", @@ -19069,7 +19372,7 @@ dependencies = [ name = "sp-arithmetic" version = "23.0.0" dependencies = [ - "criterion", + "criterion 0.5.1", "docify", "integer-sqrt", "num-traits", @@ -19277,7 +19580,7 @@ dependencies = [ "blake2 0.10.6", "bounded-collections", "bs58 0.5.0", - "criterion", + "criterion 0.5.1", "dyn-clonable", "ed25519-zebra", "futures", @@ -19387,7 +19690,7 @@ version = "0.1.0" dependencies = [ "blake2b_simd", "byteorder", - "criterion", + "criterion 0.5.1", "digest 0.10.7", "sha2 0.10.8", "sha3", @@ -19928,7 +20231,7 @@ version = "29.0.0" dependencies = [ "ahash 0.8.8", "array-bytes", - "criterion", + "criterion 0.5.1", "hash-db", "lazy_static", "memory-db", @@ -20110,102 +20413,27 @@ dependencies = [ "assert_cmd", "clap 4.5.3", "clap_complete", - "criterion", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", + "criterion 0.4.0", "futures", "jsonrpsee", "kitchensink-runtime", "log", - "mmr-gadget", "nix 0.28.0", "node-primitives", "node-rpc", "node-testing", - "pallet-asset-conversion-tx-payment", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-balances", - "pallet-contracts", - "pallet-glutton", - "pallet-im-online", - "pallet-root-testing", - "pallet-skip-feeless-payment", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", "parity-scale-codec", "platforms", + "polkadot-sdk", "rand 0.8.5", "regex", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-beefy", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-network-common", - "sc-network-statement", - "sc-network-sync", - "sc-offchain", - "sc-rpc", - "sc-service", "sc-service-test", - "sc-statement-store", - "sc-storage-monitor", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", "scale-info", "serde", "serde_json", "soketto", - "sp-api", - "sp-application-crypto", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing", - "sp-externalities 0.25.0", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-keystore", - "sp-mixnet", - "sp-mmr-primitives", - "sp-runtime", - "sp-state-machine", - "sp-statement-store", - "sp-timestamp", - "sp-tracing 16.0.0", - "sp-transaction-storage-proof", - "sp-trie", "staging-node-inspect", - "substrate-build-script-utils", "substrate-cli-test-utils", - "substrate-rpc-client", "tempfile", "tokio", "tokio-util", @@ -21739,7 +21967,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3092f400e9f7e3ce8c1756016a8b6287163ab7a11dd47d82169260cb4cc2d680" dependencies = [ - "criterion", + "criterion 0.5.1", "hash-db", "keccak-hasher", "memory-db", From 2bded842a3c35e8f3fcce4c4a0cd53c25d996307 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 13:10:42 +0200 Subject: [PATCH 14/39] Fix formatting Signed-off-by: Oliver Tale-Yazdi --- scripts/generate-umbrella.py | 2 +- substrate/bin/node/cli/Cargo.toml | 2 +- umbrella/Cargo.toml | 392 +++++++++++++++--------------- 3 files changed, 198 insertions(+), 198 deletions(-) diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py index ccdef3d7d582..bf0f93183083 100644 --- a/scripts/generate-umbrella.py +++ b/scripts/generate-umbrella.py @@ -197,7 +197,7 @@ def add_to_workspace(path): os.chdir(path) # hack os.system("cargo metadata --format-version 1 > /dev/null") # update the lockfile os.system(f"zepter") # enable the features - os.system(f"taplo format --config .config/taplo.toml Cargo.toml") + os.system(f"taplo format --config .config/taplo.toml umbrella/Cargo.toml") def parse_args(): parser = argparse.ArgumentParser(description="Create a polkadot-sdk crate") diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index b3f7d3607e6e..dbc837ab1e4c 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -81,7 +81,7 @@ clap_complete = { version = "4.0.2", optional = true } node-inspect = { package = "staging-node-inspect", path = "../inspect", optional = true } -polkadot-sdk = { path = "../../../../umbrella", features = ["substrate-build-script-utils", "sc-cli", "sc-storage-monitor", "frame-benchmarking-cli"], optional = true } +polkadot-sdk = { path = "../../../../umbrella", features = ["frame-benchmarking-cli", "sc-cli", "sc-storage-monitor", "substrate-build-script-utils"], optional = true } [features] default = ["cli"] diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index ea86c4d78c86..af04ad91f2f8 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -5,7 +5,7 @@ description = "Polkadot SDK umbrella crate." license = "Apache-2.0" [features] -default = [ "std",] +default = ["std"] std = [ "asset-test-utils?/std", "assets-common?/std", @@ -21,23 +21,23 @@ std = [ "bp-kusama?/std", "bp-messages?/std", "bp-parachains?/std", - "bp-polkadot?/std", "bp-polkadot-bulletin?/std", "bp-polkadot-core?/std", + "bp-polkadot?/std", "bp-relayers?/std", "bp-rococo?/std", "bp-runtime?/std", "bp-test-utils?/std", "bp-westend?/std", - "bp-xcm-bridge-hub?/std", "bp-xcm-bridge-hub-router?/std", + "bp-xcm-bridge-hub?/std", "bridge-hub-common?/std", "bridge-hub-test-utils?/std", "bridge-runtime-common?/std", "cumulus-pallet-aura-ext?/std", "cumulus-pallet-dmp-queue?/std", - "cumulus-pallet-parachain-system?/std", "cumulus-pallet-parachain-system-proc-macro?/std", + "cumulus-pallet-parachain-system?/std", "cumulus-pallet-session-benchmarking?/std", "cumulus-pallet-solo-to-para?/std", "cumulus-pallet-xcm?/std", @@ -51,20 +51,20 @@ std = [ "cumulus-primitives-timestamp?/std", "cumulus-primitives-utility?/std", "cumulus-test-relay-sproof-builder?/std", - "frame-benchmarking?/std", "frame-benchmarking-pallet-pov?/std", + "frame-benchmarking?/std", "frame-election-provider-support?/std", "frame-executive?/std", - "frame-support?/std", "frame-support-procedural?/std", - "frame-system?/std", + "frame-support?/std", "frame-system-benchmarking?/std", "frame-system-rpc-runtime-api?/std", + "frame-system?/std", "frame-try-runtime?/std", "pallet-alliance?/std", - "pallet-asset-conversion?/std", "pallet-asset-conversion-ops?/std", "pallet-asset-conversion-tx-payment?/std", + "pallet-asset-conversion?/std", "pallet-asset-rate?/std", "pallet-asset-tx-payment?/std", "pallet-assets?/std", @@ -75,8 +75,8 @@ std = [ "pallet-babe?/std", "pallet-bags-list?/std", "pallet-balances?/std", - "pallet-beefy?/std", "pallet-beefy-mmr?/std", + "pallet-beefy?/std", "pallet-bounties?/std", "pallet-bridge-grandpa?/std", "pallet-bridge-messages?/std", @@ -85,10 +85,10 @@ std = [ "pallet-broker?/std", "pallet-child-bounties?/std", "pallet-collator-selection?/std", - "pallet-collective?/std", "pallet-collective-content?/std", - "pallet-contracts?/std", + "pallet-collective?/std", "pallet-contracts-mock-network?/std", + "pallet-contracts?/std", "pallet-conviction-voting?/std", "pallet-core-fellowship?/std", "pallet-democracy?/std", @@ -111,15 +111,15 @@ std = [ "pallet-mmr?/std", "pallet-multisig?/std", "pallet-nft-fractionalization?/std", - "pallet-nfts?/std", "pallet-nfts-runtime-api?/std", + "pallet-nfts?/std", "pallet-nis?/std", "pallet-node-authorization?/std", - "pallet-nomination-pools?/std", "pallet-nomination-pools-benchmarking?/std", "pallet-nomination-pools-runtime-api?/std", - "pallet-offences?/std", + "pallet-nomination-pools?/std", "pallet-offences-benchmarking?/std", + "pallet-offences?/std", "pallet-paged-list?/std", "pallet-parameters?/std", "pallet-preimage?/std", @@ -134,20 +134,20 @@ std = [ "pallet-salary?/std", "pallet-scheduler?/std", "pallet-scored-pool?/std", - "pallet-session?/std", "pallet-session-benchmarking?/std", + "pallet-session?/std", "pallet-skip-feeless-payment?/std", "pallet-society?/std", - "pallet-staking?/std", "pallet-staking-reward-fn?/std", "pallet-staking-runtime-api?/std", + "pallet-staking?/std", "pallet-state-trie-migration?/std", "pallet-statement?/std", "pallet-sudo?/std", "pallet-timestamp?/std", "pallet-tips?/std", - "pallet-transaction-payment?/std", "pallet-transaction-payment-rpc-runtime-api?/std", + "pallet-transaction-payment?/std", "pallet-transaction-storage?/std", "pallet-treasury?/std", "pallet-tx-pause?/std", @@ -155,10 +155,10 @@ std = [ "pallet-utility?/std", "pallet-vesting?/std", "pallet-whitelist?/std", - "pallet-xcm?/std", "pallet-xcm-benchmarks?/std", - "pallet-xcm-bridge-hub?/std", "pallet-xcm-bridge-hub-router?/std", + "pallet-xcm-bridge-hub?/std", + "pallet-xcm?/std", "parachains-common?/std", "parachains-runtimes-test-utils?/std", "polkadot-core-primitives?/std", @@ -176,18 +176,18 @@ std = [ "snowbridge-ethereum?/std", "snowbridge-outbound-queue-merkle-tree?/std", "snowbridge-outbound-queue-runtime-api?/std", - "snowbridge-pallet-ethereum-client?/std", "snowbridge-pallet-ethereum-client-fixtures?/std", - "snowbridge-pallet-inbound-queue?/std", + "snowbridge-pallet-ethereum-client?/std", "snowbridge-pallet-inbound-queue-fixtures?/std", + "snowbridge-pallet-inbound-queue?/std", "snowbridge-pallet-outbound-queue?/std", "snowbridge-pallet-system?/std", "snowbridge-router-primitives?/std", "snowbridge-runtime-common?/std", "snowbridge-runtime-test-common?/std", "snowbridge-system-runtime-api?/std", - "sp-api?/std", "sp-api-proc-macro?/std", + "sp-api?/std", "sp-application-crypto?/std", "sp-arithmetic?/std", "sp-authority-discovery?/std", @@ -198,8 +198,8 @@ std = [ "sp-consensus-grandpa?/std", "sp-consensus-pow?/std", "sp-consensus-slots?/std", - "sp-core?/std", "sp-core-hashing?/std", + "sp-core?/std", "sp-crypto-ec-utils?/std", "sp-crypto-hashing?/std", "sp-debug-derive?/std", @@ -214,8 +214,8 @@ std = [ "sp-mmr-primitives?/std", "sp-npos-elections?/std", "sp-offchain?/std", - "sp-runtime?/std", "sp-runtime-interface?/std", + "sp-runtime?/std", "sp-session?/std", "sp-staking?/std", "sp-state-machine?/std", @@ -231,13 +231,13 @@ std = [ "sp-wasm-interface?/std", "sp-weights?/std", "staging-parachain-info?/std", - "staging-xcm?/std", "staging-xcm-builder?/std", "staging-xcm-executor?/std", + "staging-xcm?/std", "substrate-bip39?/std", "testnet-parachains-constants?/std", "westend-runtime-constants?/std", - "xcm-fee-payment-runtime-api?/std" + "xcm-fee-payment-runtime-api?/std", ] runtime-benchmarks = [ "assets-common?/runtime-benchmarks", @@ -249,16 +249,16 @@ runtime-benchmarks = [ "cumulus-pallet-xcmp-queue?/runtime-benchmarks", "cumulus-primitives-core?/runtime-benchmarks", "cumulus-primitives-utility?/runtime-benchmarks", - "frame-benchmarking/runtime-benchmarks", "frame-benchmarking-cli?/runtime-benchmarks", "frame-benchmarking-pallet-pov?/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", "frame-election-provider-support?/runtime-benchmarks", "frame-support?/runtime-benchmarks", - "frame-system?/runtime-benchmarks", "frame-system-benchmarking?/runtime-benchmarks", + "frame-system?/runtime-benchmarks", "pallet-alliance?/runtime-benchmarks", - "pallet-asset-conversion?/runtime-benchmarks", "pallet-asset-conversion-ops?/runtime-benchmarks", + "pallet-asset-conversion?/runtime-benchmarks", "pallet-asset-rate?/runtime-benchmarks", "pallet-asset-tx-payment?/runtime-benchmarks", "pallet-assets?/runtime-benchmarks", @@ -273,10 +273,10 @@ runtime-benchmarks = [ "pallet-broker?/runtime-benchmarks", "pallet-child-bounties?/runtime-benchmarks", "pallet-collator-selection?/runtime-benchmarks", - "pallet-collective?/runtime-benchmarks", "pallet-collective-content?/runtime-benchmarks", - "pallet-contracts?/runtime-benchmarks", + "pallet-collective?/runtime-benchmarks", "pallet-contracts-mock-network?/runtime-benchmarks", + "pallet-contracts?/runtime-benchmarks", "pallet-conviction-voting?/runtime-benchmarks", "pallet-core-fellowship?/runtime-benchmarks", "pallet-democracy?/runtime-benchmarks", @@ -299,10 +299,10 @@ runtime-benchmarks = [ "pallet-nft-fractionalization?/runtime-benchmarks", "pallet-nfts?/runtime-benchmarks", "pallet-nis?/runtime-benchmarks", - "pallet-nomination-pools?/runtime-benchmarks", "pallet-nomination-pools-benchmarking?/runtime-benchmarks", - "pallet-offences?/runtime-benchmarks", + "pallet-nomination-pools?/runtime-benchmarks", "pallet-offences-benchmarking?/runtime-benchmarks", + "pallet-offences?/runtime-benchmarks", "pallet-paged-list?/runtime-benchmarks", "pallet-parameters?/runtime-benchmarks", "pallet-preimage?/runtime-benchmarks", @@ -330,10 +330,10 @@ runtime-benchmarks = [ "pallet-utility?/runtime-benchmarks", "pallet-vesting?/runtime-benchmarks", "pallet-whitelist?/runtime-benchmarks", - "pallet-xcm?/runtime-benchmarks", "pallet-xcm-benchmarks?/runtime-benchmarks", - "pallet-xcm-bridge-hub?/runtime-benchmarks", "pallet-xcm-bridge-hub-router?/runtime-benchmarks", + "pallet-xcm-bridge-hub?/runtime-benchmarks", + "pallet-xcm?/runtime-benchmarks", "parachains-common?/runtime-benchmarks", "polkadot-cli?/runtime-benchmarks", "polkadot-node-metrics?/runtime-benchmarks", @@ -346,10 +346,10 @@ runtime-benchmarks = [ "sc-client-db?/runtime-benchmarks", "sc-service?/runtime-benchmarks", "snowbridge-core?/runtime-benchmarks", - "snowbridge-pallet-ethereum-client?/runtime-benchmarks", "snowbridge-pallet-ethereum-client-fixtures?/runtime-benchmarks", - "snowbridge-pallet-inbound-queue?/runtime-benchmarks", + "snowbridge-pallet-ethereum-client?/runtime-benchmarks", "snowbridge-pallet-inbound-queue-fixtures?/runtime-benchmarks", + "snowbridge-pallet-inbound-queue?/runtime-benchmarks", "snowbridge-pallet-outbound-queue?/runtime-benchmarks", "snowbridge-pallet-system?/runtime-benchmarks", "snowbridge-router-primitives?/runtime-benchmarks", @@ -360,7 +360,7 @@ runtime-benchmarks = [ "staging-node-inspect?/runtime-benchmarks", "staging-xcm-builder?/runtime-benchmarks", "staging-xcm-executor?/runtime-benchmarks", - "xcm-fee-payment-runtime-api?/runtime-benchmarks" + "xcm-fee-payment-runtime-api?/runtime-benchmarks", ] try-runtime = [ "cumulus-pallet-aura-ext?/try-runtime", @@ -377,9 +377,9 @@ try-runtime = [ "frame-system?/try-runtime", "frame-try-runtime/try-runtime", "pallet-alliance?/try-runtime", - "pallet-asset-conversion?/try-runtime", "pallet-asset-conversion-ops?/try-runtime", "pallet-asset-conversion-tx-payment?/try-runtime", + "pallet-asset-conversion?/try-runtime", "pallet-asset-rate?/try-runtime", "pallet-asset-tx-payment?/try-runtime", "pallet-assets?/try-runtime", @@ -390,8 +390,8 @@ try-runtime = [ "pallet-babe?/try-runtime", "pallet-bags-list?/try-runtime", "pallet-balances?/try-runtime", - "pallet-beefy?/try-runtime", "pallet-beefy-mmr?/try-runtime", + "pallet-beefy?/try-runtime", "pallet-bounties?/try-runtime", "pallet-bridge-grandpa?/try-runtime", "pallet-bridge-messages?/try-runtime", @@ -400,8 +400,8 @@ try-runtime = [ "pallet-broker?/try-runtime", "pallet-child-bounties?/try-runtime", "pallet-collator-selection?/try-runtime", - "pallet-collective?/try-runtime", "pallet-collective-content?/try-runtime", + "pallet-collective?/try-runtime", "pallet-contracts?/try-runtime", "pallet-conviction-voting?/try-runtime", "pallet-core-fellowship?/try-runtime", @@ -460,9 +460,9 @@ try-runtime = [ "pallet-utility?/try-runtime", "pallet-vesting?/try-runtime", "pallet-whitelist?/try-runtime", - "pallet-xcm?/try-runtime", - "pallet-xcm-bridge-hub?/try-runtime", "pallet-xcm-bridge-hub-router?/try-runtime", + "pallet-xcm-bridge-hub?/try-runtime", + "pallet-xcm?/try-runtime", "polkadot-cli?/try-runtime", "polkadot-runtime-common?/try-runtime", "polkadot-runtime-parachains?/try-runtime", @@ -473,14 +473,14 @@ try-runtime = [ "snowbridge-pallet-outbound-queue?/try-runtime", "snowbridge-pallet-system?/try-runtime", "sp-runtime?/try-runtime", - "staging-parachain-info?/try-runtime" + "staging-parachain-info?/try-runtime", ] serde = [ "bp-polkadot-core?/serde", "frame-benchmarking?/serde", "pallet-asset-tx-payment?/serde", - "pallet-beefy?/serde", "pallet-beefy-mmr?/serde", + "pallet-beefy?/serde", "pallet-contracts?/serde", "pallet-conviction-voting?/serde", "pallet-democracy?/serde", @@ -516,167 +516,167 @@ serde = [ "sp-statement-store?/serde", "sp-storage?/serde", "sp-version?/serde", - "sp-weights?/serde" + "sp-weights?/serde", ] experimental = [ - "frame-support?/experimental", "frame-support-procedural?/experimental", + "frame-support?/experimental", "frame-system?/experimental", - "polkadot-sdk-frame?/experimental" + "polkadot-sdk-frame?/experimental", ] with-tracing = [ "frame-executive?/with-tracing", "sp-io?/with-tracing", - "sp-tracing?/with-tracing" + "sp-tracing?/with-tracing", ] -runtime = [ "assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural",] -node = [ "std", "asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator",] +runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] +node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] tuples-96 = [ + "frame-support-procedural?/tuples-96", "frame-support?/tuples-96", - "frame-support-procedural?/tuples-96" ] -asset-test-utils = [ "dep:asset-test-utils",] -bridge-hub-test-utils = [ "dep:bridge-hub-test-utils",] -cumulus-client-cli = [ "dep:cumulus-client-cli",] -cumulus-client-collator = [ "dep:cumulus-client-collator",] -cumulus-client-consensus-aura = [ "dep:cumulus-client-consensus-aura",] -cumulus-client-consensus-common = [ "dep:cumulus-client-consensus-common",] -cumulus-client-consensus-proposer = [ "dep:cumulus-client-consensus-proposer",] -cumulus-client-consensus-relay-chain = [ "dep:cumulus-client-consensus-relay-chain",] -cumulus-client-network = [ "dep:cumulus-client-network",] -cumulus-client-parachain-inherent = [ "dep:cumulus-client-parachain-inherent",] -cumulus-client-pov-recovery = [ "dep:cumulus-client-pov-recovery",] -cumulus-client-service = [ "dep:cumulus-client-service",] -cumulus-relay-chain-inprocess-interface = [ "dep:cumulus-relay-chain-inprocess-interface",] -cumulus-relay-chain-interface = [ "dep:cumulus-relay-chain-interface",] -cumulus-relay-chain-minimal-node = [ "dep:cumulus-relay-chain-minimal-node",] -cumulus-relay-chain-rpc-interface = [ "dep:cumulus-relay-chain-rpc-interface",] -cumulus-test-relay-sproof-builder = [ "dep:cumulus-test-relay-sproof-builder",] -emulated-integration-tests-common = [ "dep:emulated-integration-tests-common",] -fork-tree = [ "dep:fork-tree",] -frame-benchmarking-cli = [ "dep:frame-benchmarking-cli",] -frame-remote-externalities = [ "dep:frame-remote-externalities",] -frame-support-procedural-tools = [ "dep:frame-support-procedural-tools",] -generate-bags = [ "dep:generate-bags",] -mmr-gadget = [ "dep:mmr-gadget",] -mmr-rpc = [ "dep:mmr-rpc",] -pallet-contracts-mock-network = [ "dep:pallet-contracts-mock-network",] -pallet-transaction-payment-rpc = [ "dep:pallet-transaction-payment-rpc",] -parachains-runtimes-test-utils = [ "dep:parachains-runtimes-test-utils",] -polkadot-approval-distribution = [ "dep:polkadot-approval-distribution",] -polkadot-availability-bitfield-distribution = [ "dep:polkadot-availability-bitfield-distribution",] -polkadot-availability-distribution = [ "dep:polkadot-availability-distribution",] -polkadot-availability-recovery = [ "dep:polkadot-availability-recovery",] -polkadot-cli = [ "dep:polkadot-cli",] -polkadot-collator-protocol = [ "dep:polkadot-collator-protocol",] -polkadot-dispute-distribution = [ "dep:polkadot-dispute-distribution",] -polkadot-erasure-coding = [ "dep:polkadot-erasure-coding",] -polkadot-gossip-support = [ "dep:polkadot-gossip-support",] -polkadot-network-bridge = [ "dep:polkadot-network-bridge",] -polkadot-node-collation-generation = [ "dep:polkadot-node-collation-generation",] -polkadot-node-core-approval-voting = [ "dep:polkadot-node-core-approval-voting",] -polkadot-node-core-av-store = [ "dep:polkadot-node-core-av-store",] -polkadot-node-core-backing = [ "dep:polkadot-node-core-backing",] -polkadot-node-core-bitfield-signing = [ "dep:polkadot-node-core-bitfield-signing",] -polkadot-node-core-candidate-validation = [ "dep:polkadot-node-core-candidate-validation",] -polkadot-node-core-chain-api = [ "dep:polkadot-node-core-chain-api",] -polkadot-node-core-chain-selection = [ "dep:polkadot-node-core-chain-selection",] -polkadot-node-core-dispute-coordinator = [ "dep:polkadot-node-core-dispute-coordinator",] -polkadot-node-core-parachains-inherent = [ "dep:polkadot-node-core-parachains-inherent",] -polkadot-node-core-prospective-parachains = [ "dep:polkadot-node-core-prospective-parachains",] -polkadot-node-core-provisioner = [ "dep:polkadot-node-core-provisioner",] -polkadot-node-core-pvf = [ "dep:polkadot-node-core-pvf",] -polkadot-node-core-pvf-checker = [ "dep:polkadot-node-core-pvf-checker",] -polkadot-node-core-pvf-common = [ "dep:polkadot-node-core-pvf-common",] -polkadot-node-core-pvf-execute-worker = [ "dep:polkadot-node-core-pvf-execute-worker",] -polkadot-node-core-pvf-prepare-worker = [ "dep:polkadot-node-core-pvf-prepare-worker",] -polkadot-node-core-runtime-api = [ "dep:polkadot-node-core-runtime-api",] -polkadot-node-jaeger = [ "dep:polkadot-node-jaeger",] -polkadot-node-metrics = [ "dep:polkadot-node-metrics",] -polkadot-node-network-protocol = [ "dep:polkadot-node-network-protocol",] -polkadot-node-primitives = [ "dep:polkadot-node-primitives",] -polkadot-node-subsystem = [ "dep:polkadot-node-subsystem",] -polkadot-node-subsystem-types = [ "dep:polkadot-node-subsystem-types",] -polkadot-node-subsystem-util = [ "dep:polkadot-node-subsystem-util",] -polkadot-overseer = [ "dep:polkadot-overseer",] -polkadot-rpc = [ "dep:polkadot-rpc",] -polkadot-service = [ "dep:polkadot-service",] -polkadot-statement-distribution = [ "dep:polkadot-statement-distribution",] -polkadot-statement-table = [ "dep:polkadot-statement-table",] -sc-allocator = [ "dep:sc-allocator",] -sc-authority-discovery = [ "dep:sc-authority-discovery",] -sc-basic-authorship = [ "dep:sc-basic-authorship",] -sc-block-builder = [ "dep:sc-block-builder",] -sc-chain-spec = [ "dep:sc-chain-spec",] -sc-cli = [ "dep:sc-cli",] -sc-client-api = [ "dep:sc-client-api",] -sc-client-db = [ "dep:sc-client-db",] -sc-consensus = [ "dep:sc-consensus",] -sc-consensus-aura = [ "dep:sc-consensus-aura",] -sc-consensus-babe = [ "dep:sc-consensus-babe",] -sc-consensus-babe-rpc = [ "dep:sc-consensus-babe-rpc",] -sc-consensus-beefy = [ "dep:sc-consensus-beefy",] -sc-consensus-beefy-rpc = [ "dep:sc-consensus-beefy-rpc",] -sc-consensus-epochs = [ "dep:sc-consensus-epochs",] -sc-consensus-grandpa = [ "dep:sc-consensus-grandpa",] -sc-consensus-grandpa-rpc = [ "dep:sc-consensus-grandpa-rpc",] -sc-consensus-manual-seal = [ "dep:sc-consensus-manual-seal",] -sc-consensus-pow = [ "dep:sc-consensus-pow",] -sc-consensus-slots = [ "dep:sc-consensus-slots",] -sc-executor = [ "dep:sc-executor",] -sc-executor-common = [ "dep:sc-executor-common",] -sc-executor-polkavm = [ "dep:sc-executor-polkavm",] -sc-executor-wasmtime = [ "dep:sc-executor-wasmtime",] -sc-informant = [ "dep:sc-informant",] -sc-keystore = [ "dep:sc-keystore",] -sc-mixnet = [ "dep:sc-mixnet",] -sc-network = [ "dep:sc-network",] -sc-network-common = [ "dep:sc-network-common",] -sc-network-gossip = [ "dep:sc-network-gossip",] -sc-network-light = [ "dep:sc-network-light",] -sc-network-statement = [ "dep:sc-network-statement",] -sc-network-sync = [ "dep:sc-network-sync",] -sc-network-transactions = [ "dep:sc-network-transactions",] -sc-network-types = [ "dep:sc-network-types",] -sc-offchain = [ "dep:sc-offchain",] -sc-proposer-metrics = [ "dep:sc-proposer-metrics",] -sc-rpc = [ "dep:sc-rpc",] -sc-rpc-api = [ "dep:sc-rpc-api",] -sc-rpc-server = [ "dep:sc-rpc-server",] -sc-rpc-spec-v2 = [ "dep:sc-rpc-spec-v2",] -sc-service = [ "dep:sc-service",] -sc-state-db = [ "dep:sc-state-db",] -sc-statement-store = [ "dep:sc-statement-store",] -sc-storage-monitor = [ "dep:sc-storage-monitor",] -sc-sync-state-rpc = [ "dep:sc-sync-state-rpc",] -sc-sysinfo = [ "dep:sc-sysinfo",] -sc-telemetry = [ "dep:sc-telemetry",] -sc-tracing = [ "dep:sc-tracing",] -sc-transaction-pool = [ "dep:sc-transaction-pool",] -sc-transaction-pool-api = [ "dep:sc-transaction-pool-api",] -sc-utils = [ "dep:sc-utils",] -snowbridge-runtime-test-common = [ "dep:snowbridge-runtime-test-common",] -sp-blockchain = [ "dep:sp-blockchain",] -sp-consensus = [ "dep:sp-consensus",] -sp-core-hashing = [ "dep:sp-core-hashing",] -sp-core-hashing-proc-macro = [ "dep:sp-core-hashing-proc-macro",] -sp-database = [ "dep:sp-database",] -sp-maybe-compressed-blob = [ "dep:sp-maybe-compressed-blob",] -sp-panic-handler = [ "dep:sp-panic-handler",] -sp-rpc = [ "dep:sp-rpc",] -staging-node-inspect = [ "dep:staging-node-inspect",] -staging-tracking-allocator = [ "dep:staging-tracking-allocator",] -subkey = [ "dep:subkey",] -substrate-build-script-utils = [ "dep:substrate-build-script-utils",] -substrate-frame-rpc-support = [ "dep:substrate-frame-rpc-support",] -substrate-frame-rpc-system = [ "dep:substrate-frame-rpc-system",] -substrate-prometheus-endpoint = [ "dep:substrate-prometheus-endpoint",] -substrate-rpc-client = [ "dep:substrate-rpc-client",] -substrate-state-trie-migration-rpc = [ "dep:substrate-state-trie-migration-rpc",] -substrate-wasm-builder = [ "dep:substrate-wasm-builder",] -tracing-gum = [ "dep:tracing-gum",] -xcm-emulator = [ "dep:xcm-emulator",] -xcm-simulator = [ "dep:xcm-simulator",] +asset-test-utils = ["dep:asset-test-utils"] +bridge-hub-test-utils = ["dep:bridge-hub-test-utils"] +cumulus-client-cli = ["dep:cumulus-client-cli"] +cumulus-client-collator = ["dep:cumulus-client-collator"] +cumulus-client-consensus-aura = ["dep:cumulus-client-consensus-aura"] +cumulus-client-consensus-common = ["dep:cumulus-client-consensus-common"] +cumulus-client-consensus-proposer = ["dep:cumulus-client-consensus-proposer"] +cumulus-client-consensus-relay-chain = ["dep:cumulus-client-consensus-relay-chain"] +cumulus-client-network = ["dep:cumulus-client-network"] +cumulus-client-parachain-inherent = ["dep:cumulus-client-parachain-inherent"] +cumulus-client-pov-recovery = ["dep:cumulus-client-pov-recovery"] +cumulus-client-service = ["dep:cumulus-client-service"] +cumulus-relay-chain-inprocess-interface = ["dep:cumulus-relay-chain-inprocess-interface"] +cumulus-relay-chain-interface = ["dep:cumulus-relay-chain-interface"] +cumulus-relay-chain-minimal-node = ["dep:cumulus-relay-chain-minimal-node"] +cumulus-relay-chain-rpc-interface = ["dep:cumulus-relay-chain-rpc-interface"] +cumulus-test-relay-sproof-builder = ["dep:cumulus-test-relay-sproof-builder"] +emulated-integration-tests-common = ["dep:emulated-integration-tests-common"] +fork-tree = ["dep:fork-tree"] +frame-benchmarking-cli = ["dep:frame-benchmarking-cli"] +frame-remote-externalities = ["dep:frame-remote-externalities"] +frame-support-procedural-tools = ["dep:frame-support-procedural-tools"] +generate-bags = ["dep:generate-bags"] +mmr-gadget = ["dep:mmr-gadget"] +mmr-rpc = ["dep:mmr-rpc"] +pallet-contracts-mock-network = ["dep:pallet-contracts-mock-network"] +pallet-transaction-payment-rpc = ["dep:pallet-transaction-payment-rpc"] +parachains-runtimes-test-utils = ["dep:parachains-runtimes-test-utils"] +polkadot-approval-distribution = ["dep:polkadot-approval-distribution"] +polkadot-availability-bitfield-distribution = ["dep:polkadot-availability-bitfield-distribution"] +polkadot-availability-distribution = ["dep:polkadot-availability-distribution"] +polkadot-availability-recovery = ["dep:polkadot-availability-recovery"] +polkadot-cli = ["dep:polkadot-cli"] +polkadot-collator-protocol = ["dep:polkadot-collator-protocol"] +polkadot-dispute-distribution = ["dep:polkadot-dispute-distribution"] +polkadot-erasure-coding = ["dep:polkadot-erasure-coding"] +polkadot-gossip-support = ["dep:polkadot-gossip-support"] +polkadot-network-bridge = ["dep:polkadot-network-bridge"] +polkadot-node-collation-generation = ["dep:polkadot-node-collation-generation"] +polkadot-node-core-approval-voting = ["dep:polkadot-node-core-approval-voting"] +polkadot-node-core-av-store = ["dep:polkadot-node-core-av-store"] +polkadot-node-core-backing = ["dep:polkadot-node-core-backing"] +polkadot-node-core-bitfield-signing = ["dep:polkadot-node-core-bitfield-signing"] +polkadot-node-core-candidate-validation = ["dep:polkadot-node-core-candidate-validation"] +polkadot-node-core-chain-api = ["dep:polkadot-node-core-chain-api"] +polkadot-node-core-chain-selection = ["dep:polkadot-node-core-chain-selection"] +polkadot-node-core-dispute-coordinator = ["dep:polkadot-node-core-dispute-coordinator"] +polkadot-node-core-parachains-inherent = ["dep:polkadot-node-core-parachains-inherent"] +polkadot-node-core-prospective-parachains = ["dep:polkadot-node-core-prospective-parachains"] +polkadot-node-core-provisioner = ["dep:polkadot-node-core-provisioner"] +polkadot-node-core-pvf = ["dep:polkadot-node-core-pvf"] +polkadot-node-core-pvf-checker = ["dep:polkadot-node-core-pvf-checker"] +polkadot-node-core-pvf-common = ["dep:polkadot-node-core-pvf-common"] +polkadot-node-core-pvf-execute-worker = ["dep:polkadot-node-core-pvf-execute-worker"] +polkadot-node-core-pvf-prepare-worker = ["dep:polkadot-node-core-pvf-prepare-worker"] +polkadot-node-core-runtime-api = ["dep:polkadot-node-core-runtime-api"] +polkadot-node-jaeger = ["dep:polkadot-node-jaeger"] +polkadot-node-metrics = ["dep:polkadot-node-metrics"] +polkadot-node-network-protocol = ["dep:polkadot-node-network-protocol"] +polkadot-node-primitives = ["dep:polkadot-node-primitives"] +polkadot-node-subsystem = ["dep:polkadot-node-subsystem"] +polkadot-node-subsystem-types = ["dep:polkadot-node-subsystem-types"] +polkadot-node-subsystem-util = ["dep:polkadot-node-subsystem-util"] +polkadot-overseer = ["dep:polkadot-overseer"] +polkadot-rpc = ["dep:polkadot-rpc"] +polkadot-service = ["dep:polkadot-service"] +polkadot-statement-distribution = ["dep:polkadot-statement-distribution"] +polkadot-statement-table = ["dep:polkadot-statement-table"] +sc-allocator = ["dep:sc-allocator"] +sc-authority-discovery = ["dep:sc-authority-discovery"] +sc-basic-authorship = ["dep:sc-basic-authorship"] +sc-block-builder = ["dep:sc-block-builder"] +sc-chain-spec = ["dep:sc-chain-spec"] +sc-cli = ["dep:sc-cli"] +sc-client-api = ["dep:sc-client-api"] +sc-client-db = ["dep:sc-client-db"] +sc-consensus = ["dep:sc-consensus"] +sc-consensus-aura = ["dep:sc-consensus-aura"] +sc-consensus-babe = ["dep:sc-consensus-babe"] +sc-consensus-babe-rpc = ["dep:sc-consensus-babe-rpc"] +sc-consensus-beefy = ["dep:sc-consensus-beefy"] +sc-consensus-beefy-rpc = ["dep:sc-consensus-beefy-rpc"] +sc-consensus-epochs = ["dep:sc-consensus-epochs"] +sc-consensus-grandpa = ["dep:sc-consensus-grandpa"] +sc-consensus-grandpa-rpc = ["dep:sc-consensus-grandpa-rpc"] +sc-consensus-manual-seal = ["dep:sc-consensus-manual-seal"] +sc-consensus-pow = ["dep:sc-consensus-pow"] +sc-consensus-slots = ["dep:sc-consensus-slots"] +sc-executor = ["dep:sc-executor"] +sc-executor-common = ["dep:sc-executor-common"] +sc-executor-polkavm = ["dep:sc-executor-polkavm"] +sc-executor-wasmtime = ["dep:sc-executor-wasmtime"] +sc-informant = ["dep:sc-informant"] +sc-keystore = ["dep:sc-keystore"] +sc-mixnet = ["dep:sc-mixnet"] +sc-network = ["dep:sc-network"] +sc-network-common = ["dep:sc-network-common"] +sc-network-gossip = ["dep:sc-network-gossip"] +sc-network-light = ["dep:sc-network-light"] +sc-network-statement = ["dep:sc-network-statement"] +sc-network-sync = ["dep:sc-network-sync"] +sc-network-transactions = ["dep:sc-network-transactions"] +sc-network-types = ["dep:sc-network-types"] +sc-offchain = ["dep:sc-offchain"] +sc-proposer-metrics = ["dep:sc-proposer-metrics"] +sc-rpc = ["dep:sc-rpc"] +sc-rpc-api = ["dep:sc-rpc-api"] +sc-rpc-server = ["dep:sc-rpc-server"] +sc-rpc-spec-v2 = ["dep:sc-rpc-spec-v2"] +sc-service = ["dep:sc-service"] +sc-state-db = ["dep:sc-state-db"] +sc-statement-store = ["dep:sc-statement-store"] +sc-storage-monitor = ["dep:sc-storage-monitor"] +sc-sync-state-rpc = ["dep:sc-sync-state-rpc"] +sc-sysinfo = ["dep:sc-sysinfo"] +sc-telemetry = ["dep:sc-telemetry"] +sc-tracing = ["dep:sc-tracing"] +sc-transaction-pool = ["dep:sc-transaction-pool"] +sc-transaction-pool-api = ["dep:sc-transaction-pool-api"] +sc-utils = ["dep:sc-utils"] +snowbridge-runtime-test-common = ["dep:snowbridge-runtime-test-common"] +sp-blockchain = ["dep:sp-blockchain"] +sp-consensus = ["dep:sp-consensus"] +sp-core-hashing = ["dep:sp-core-hashing"] +sp-core-hashing-proc-macro = ["dep:sp-core-hashing-proc-macro"] +sp-database = ["dep:sp-database"] +sp-maybe-compressed-blob = ["dep:sp-maybe-compressed-blob"] +sp-panic-handler = ["dep:sp-panic-handler"] +sp-rpc = ["dep:sp-rpc"] +staging-node-inspect = ["dep:staging-node-inspect"] +staging-tracking-allocator = ["dep:staging-tracking-allocator"] +subkey = ["dep:subkey"] +substrate-build-script-utils = ["dep:substrate-build-script-utils"] +substrate-frame-rpc-support = ["dep:substrate-frame-rpc-support"] +substrate-frame-rpc-system = ["dep:substrate-frame-rpc-system"] +substrate-prometheus-endpoint = ["dep:substrate-prometheus-endpoint"] +substrate-rpc-client = ["dep:substrate-rpc-client"] +substrate-state-trie-migration-rpc = ["dep:substrate-state-trie-migration-rpc"] +substrate-wasm-builder = ["dep:substrate-wasm-builder"] +tracing-gum = ["dep:tracing-gum"] +xcm-emulator = ["dep:xcm-emulator"] +xcm-simulator = ["dep:xcm-simulator"] [package.edition] workspace = true @@ -2570,5 +2570,5 @@ default-features = false optional = true [package.metadata.docs.rs] -features = [ "runtime", "node",] -targets = [ "x86_64-unknown-linux-gnu",] +features = ["node", "runtime"] +targets = ["x86_64-unknown-linux-gnu"] From d6e93baf9aff92fb1dbc5436f151052e3af61185 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 13:20:13 +0200 Subject: [PATCH 15/39] Add CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 24 +++++++++++++++++++ docs/sdk/src/reference_docs/umbrella_crate.rs | 3 +-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 1fbf83e34650..2aa23eb6f756 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -119,3 +119,27 @@ jobs: run: | echo "Checking markdown formatting. More info: docs/contributor/markdown_linting.md" markdownlint --config "$CONFIG" --ignore target . + check-umbrella: + runs-on: arc-runners-polkadot-sdk + timeout-minutes: 10 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) + - name: install python deps + run: | + sudo apt-get update && sudo apt-get install -y python3-pip python3 + pip3 install cargo_workspace toml + - name: check umbrella correctness + run: > + python3 polkadot-sdk-umbrella-crate.py --sdk . --version 0.1.0 + if [ -n "$(git status --porcelain)" ]; then + cat < Date: Wed, 15 May 2024 13:21:42 +0200 Subject: [PATCH 16/39] Add CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 2 +- Cargo.lock | 2 +- Cargo.toml | 5 ++--- umbrella/Cargo.toml | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 2aa23eb6f756..022dae6308ef 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -130,7 +130,7 @@ jobs: pip3 install cargo_workspace toml - name: check umbrella correctness run: > - python3 polkadot-sdk-umbrella-crate.py --sdk . --version 0.1.0 + python3 scripts/generate-umbrella.py --sdk . --version 0.1.0 if [ -n "$(git status --porcelain)" ]; then cat < Date: Wed, 15 May 2024 13:33:43 +0200 Subject: [PATCH 17/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 022dae6308ef..41cdcc7b004f 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -126,20 +126,22 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) - name: install python deps run: | - sudo apt-get update && sudo apt-get install -y python3-pip python3 + sudo apt-get install -y python3-pip python3 pip3 install cargo_workspace toml - name: check umbrella correctness - run: > + run: | python3 scripts/generate-umbrella.py --sdk . --version 0.1.0 + cargo +nightly fmt --all if [ -n "$(git status --porcelain)" ]; then cat < Date: Wed, 15 May 2024 13:37:33 +0200 Subject: [PATCH 18/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 2 +- Cargo.toml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 41cdcc7b004f..7d57bfbd3854 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -126,7 +126,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) - name: install python deps run: | - sudo apt-get install -y python3-pip python3 + sudo apt-get update && sudo apt-get install -y python3-pip python3 pip3 install cargo_workspace toml - name: check umbrella correctness run: | diff --git a/Cargo.toml b/Cargo.toml index 854d04b85ce4..1bbc950cad22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,6 @@ homepage = "https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/i resolver = "2" members = [ - "umbrella", "bridges/bin/runtime-common", "bridges/chains/chain-asset-hub-rococo", "bridges/chains/chain-asset-hub-westend", @@ -521,7 +520,9 @@ members = [ "templates/parachain/runtime", "templates/solochain/node", "templates/solochain/pallets/template", - "templates/solochain/runtime",] + "templates/solochain/runtime", + "umbrella", +] default-members = [ "polkadot", From 8c15f6d79d41050f57b1f18fc9452e7fde3df2e0 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 13:47:58 +0200 Subject: [PATCH 19/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 7d57bfbd3854..0c7e833215c5 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -127,7 +127,7 @@ jobs: - name: install python deps run: | sudo apt-get update && sudo apt-get install -y python3-pip python3 - pip3 install cargo_workspace toml + pip3 install "cargo-workspace>=1.2.4" toml - name: check umbrella correctness run: | python3 scripts/generate-umbrella.py --sdk . --version 0.1.0 From b6eb564b15e816dc99f5d867c6d6c7d593f5f4b2 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 13:55:05 +0200 Subject: [PATCH 20/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 0c7e833215c5..aa1642e6980d 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -122,6 +122,9 @@ jobs: check-umbrella: runs-on: arc-runners-polkadot-sdk timeout-minutes: 10 + needs: [set-image] + container: + image: ${{ needs.set-image.outputs.IMAGE }} steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) - name: install python deps From a694824aa13e1fe13ad8997bad5891c4b567cf5f Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 14:04:37 +0200 Subject: [PATCH 21/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/checks-quick.yml | 1 + scripts/generate-umbrella.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index aa1642e6980d..ef4d9a55a936 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -146,5 +146,6 @@ jobs: Otherwise feel free to ask in the Merge Request or in Matrix chat. EOF + git diff exit 1 fi diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py index bf0f93183083..4f56f5915f2d 100644 --- a/scripts/generate-umbrella.py +++ b/scripts/generate-umbrella.py @@ -190,7 +190,7 @@ def delete_umbrella(path): def add_to_workspace(path): manifest = os.path.join(path, "Cargo.toml") manifest = open(manifest, "r").read() - manifest = re.sub(r'^members = \[', 'members = [\n "umbrella",', manifest, flags=re.M) + manifest = re.sub(r'^members = \[', 'members = [\n "umbrella",', manifest, flags=re.M) with open(os.path.join(path, "Cargo.toml"), "w") as f: f.write(manifest) From 65af80937e9c177e05d24bc64677f62031a018f3 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 14:10:26 +0200 Subject: [PATCH 22/39] Fix generator Signed-off-by: Oliver Tale-Yazdi --- scripts/generate-umbrella.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py index 4f56f5915f2d..0f0480593901 100644 --- a/scripts/generate-umbrella.py +++ b/scripts/generate-umbrella.py @@ -197,7 +197,7 @@ def add_to_workspace(path): os.chdir(path) # hack os.system("cargo metadata --format-version 1 > /dev/null") # update the lockfile os.system(f"zepter") # enable the features - os.system(f"taplo format --config .config/taplo.toml umbrella/Cargo.toml") + os.system(f"taplo format --config .config/taplo.toml Cargo.toml umbrella/Cargo.toml") def parse_args(): parser = argparse.ArgumentParser(description="Create a polkadot-sdk crate") From 88ab9756f8a724153e1851f02095a6552b4f519b Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 15:38:13 +0200 Subject: [PATCH 23/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/check-features.yml | 39 +++++++++---------- .../runtime/parachains/src/inclusion/mod.rs | 2 +- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/check-features.yml b/.github/workflows/check-features.yml index a66f4dd3e86f..e64287d22a5f 100644 --- a/.github/workflows/check-features.yml +++ b/.github/workflows/check-features.yml @@ -1,20 +1,19 @@ -# FAIL-CI -#name: Check Features -# -#on: -# pull_request: -# types: [opened, synchronize, reopened, ready_for_review] -# -#jobs: -# check-features: -# runs-on: ubuntu-latest -# steps: -# - name: Fetch latest code -# uses: actions/checkout@v4 -# - name: Check -# uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 -# with: -# crate: substrate/bin/node/runtime -# features: std,runtime-benchmarks,try-runtime -# ignore: sc-executor -# default-std: true +name: Check Features + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + check-features: + runs-on: ubuntu-latest + steps: + - name: Fetch latest code + uses: actions/checkout@v4 + - name: Check + uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 + with: + crate: templates/minimal/node/runtime + features: std,runtime-benchmarks,try-runtime + ignore: sc-executor + default-std: true diff --git a/polkadot/runtime/parachains/src/inclusion/mod.rs b/polkadot/runtime/parachains/src/inclusion/mod.rs index 48160e422710..0c7274984085 100644 --- a/polkadot/runtime/parachains/src/inclusion/mod.rs +++ b/polkadot/runtime/parachains/src/inclusion/mod.rs @@ -421,7 +421,7 @@ impl From for AcceptanceCheckErr { /// An error returned by [`Pallet::check_upward_messages`] that indicates a violation of one of /// acceptance criteria rules. #[cfg_attr(test, derive(PartialEq))] -#[allow(dead_code)] // FAIL-CI: why is this now needed? +#[allow(dead_code)] pub(crate) enum UmpAcceptanceCheckErr { /// The maximal number of messages that can be submitted in one batch was exceeded. MoreMessagesThanPermitted { sent: u32, permitted: u32 }, From cb46f7898ebbda1c9203faef5740c9f5cda5a345 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 15:39:25 +0200 Subject: [PATCH 24/39] Fix docs Signed-off-by: Oliver Tale-Yazdi --- docs/sdk/src/reference_docs/umbrella_crate.rs | 177 +++++++++--------- 1 file changed, 89 insertions(+), 88 deletions(-) diff --git a/docs/sdk/src/reference_docs/umbrella_crate.rs b/docs/sdk/src/reference_docs/umbrella_crate.rs index fce0747685ad..c3760a4eaf0c 100644 --- a/docs/sdk/src/reference_docs/umbrella_crate.rs +++ b/docs/sdk/src/reference_docs/umbrella_crate.rs @@ -1,88 +1,89 @@ -// # Umbrella Crate -// -// The Polkadot-SDK "umbrella" is a crate that re-exports all other published crates. This makes it -// possible to have a very small `Cargo.toml` file that only has one dependency, the umbrella crate. -// This helps with selecting the right combination of crate versions, since otherwise 3rd party -// tools are needed to select a compatible set of versions. -// -// ## Features -// -// The umbrella crate supports no-std builds and can therefore be used in the runtime and node. -// There are two main features: `runtime` and `node`. The `runtime` feature enables all `no-std` -// crates, while the `node` feature enables all `std` crates. It should be used like any other crate -// in the repo, with `default-features = false`. -// -// For more fine-grained control, additionally, each crate can be enabled selectively. The umbrella -// exposes one feature per dependency. For example, if you only want to use the `frame-support` -// crate, you can enable the `frame-support` feature. -// -// The umbrella exposes a few more general features: -// - `tuples-96`: Needs to be enabled for runtimes that have more than 64 pallets. -// - `serde`: Specifically enable `serde` en/decoding support. -// - `experimental`: Experimental enable experimental features - should not yet used in production. -// - `with-tracing`: Enable tracing support. -// - `try-runtime`, `runtime-benchmarks` and `std`: These follow the standard conventions. -// - `runtime`: As described above, enable all `no-std` crates. -// - `node`: As described above, enable all `std` crates. -// - There does *not* exist a dedicated docs feature. To generate docs, enable the `runtime` and -// `node` feature. For docs.rs the manifest contains specific configuration to make it show up all -// re-exports. -// -// There is a specific `zepter` check in place to ensure that the features of the umbrella are -// correctly configured. This check is run in CI and locally when running `zepter`. -// -// ## Generation -// -// The umbrella crate needs to be updated every time when a new crate is added or removed from the -// workspace. It is checked in CI by calling its generation script. The generation script is located -// in `./scripts/generate-umbrella.py` and needs dependency `cargo_workspace`. -// -// Example: `python3 scripts/generate-umbrella.py --sdk . --version 1.9.0` -// -// ## Usage -// -// > Note: You can see a live example in the `staging-node-cli` and `kitchensink-runtime` crates. -// -// The umbrella crate can be added to your runtime crate like this: -// -// `polkadot-sdk = { path = "../../../../umbrella", features = ["runtime"], default-features = -// false}` -// -// or for a node: -// -// `polkadot-sdk = { path = "../../../../umbrella", features = ["node"], default-features = false }` -// -// In the code, it is then possible to bring all dependencies into scope via: -// -// `use polkadot_sdk::*;` -// -// ### Known Issues -// -// The only known issue so far is the fact that the `use` statement brings the dependencies only -// into the outer module scope - not the global crate scope. For example, the following code would -// need to be adjusted: -// -// ```rust -// use polkadot_sdk::*; -// -// mod foo { -// // This does sadly not compile: -// frame_support::parameter_types! { } -// -// // Instead, we need to do this (or add an equivalent `use` statement): -// polkadot_sdk::frame_support::parameter_types! { } -// } -// ``` -// -// Apart from this, no issues are known. There could be some bugs with how macros locate their own -// re-exports. Please compile issues that arise from using this crate. -// -// ## Dependencies -// -// The umbrella crate re-exports all published crates, with a few exceptions: -// - Runtime crates like `rococo-runtime` etc are not exported. This otherwise leads to very weird -// compile errors and should not be needed anyway. -// - Example and fuzzing crates are not exported. This is currently detected by checking the name of -// the crate for these magic words. In the future, it will utilize custom metadata, as it is done -// in the `rococo-runtime` crate. -// - The umbrella crate itself. Should be obvious :) +//! # Umbrella Crate +//! +//! The Polkadot-SDK "umbrella" is a crate that re-exports all other published crates. This makes it +//! possible to have a very small `Cargo.toml` file that only has one dependency, the umbrella +//! crate. This helps with selecting the right combination of crate versions, since otherwise 3rd +//! party tools are needed to select a compatible set of versions. +//! +//! ## Features +//! +//! The umbrella crate supports no-std builds and can therefore be used in the runtime and node. +//! There are two main features: `runtime` and `node`. The `runtime` feature enables all `no-std` +//! crates, while the `node` feature enables all `std` crates. It should be used like any other +//! crate in the repo, with `default-features = false`. +//! +//! For more fine-grained control, additionally, each crate can be enabled selectively. The umbrella +//! exposes one feature per dependency. For example, if you only want to use the `frame-support` +//! crate, you can enable the `frame-support` feature. +//! +//! The umbrella exposes a few more general features: +//! - `tuples-96`: Needs to be enabled for runtimes that have more than 64 pallets. +//! - `serde`: Specifically enable `serde` en/decoding support. +//! - `experimental`: Experimental enable experimental features - should not yet used in production. +//! - `with-tracing`: Enable tracing support. +//! - `try-runtime`, `runtime-benchmarks` and `std`: These follow the standard conventions. +//! - `runtime`: As described above, enable all `no-std` crates. +//! - `node`: As described above, enable all `std` crates. +//! - There does *not* exist a dedicated docs feature. To generate docs, enable the `runtime` and +//! `node` feature. For docs.rs the manifest contains specific configuration to make it show up +//! all re-exports. +//! +//! There is a specific `zepter` check in place to ensure that the features of the umbrella are +//! correctly configured. This check is run in CI and locally when running `zepter`. +//! +//! ## Generation +//! +//! The umbrella crate needs to be updated every time when a new crate is added or removed from the +//! workspace. It is checked in CI by calling its generation script. The generation script is +//! located in `./scripts/generate-umbrella.py` and needs dependency `cargo_workspace`. +//! +//! Example: `python3 scripts/generate-umbrella.py --sdk . --version 1.9.0` +//! +//! ## Usage +//! +//! > Note: You can see a live example in the `staging-node-cli` and `kitchensink-runtime` crates. +//! +//! The umbrella crate can be added to your runtime crate like this: +//! +//! `polkadot-sdk = { path = "../../../../umbrella", features = ["runtime"], default-features = +//! false}` +//! +//! or for a node: +//! +//! `polkadot-sdk = { path = "../../../../umbrella", features = ["node"], default-features = false +//! }` +//! +//! In the code, it is then possible to bring all dependencies into scope via: +//! +//! `use polkadot_sdk::*;` +//! +//! ### Known Issues +//! +//! The only known issue so far is the fact that the `use` statement brings the dependencies only +//! into the outer module scope - not the global crate scope. For example, the following code would +//! need to be adjusted: +//! +//! ```rust +//! use polkadot_sdk::*; +//! +//! mod foo { +//! // This does sadly not compile: +//! frame_support::parameter_types! { } +//! +//! // Instead, we need to do this (or add an equivalent `use` statement): +//! polkadot_sdk::frame_support::parameter_types! { } +//! } +//! ``` +//! +//! Apart from this, no issues are known. There could be some bugs with how macros locate their own +//! re-exports. Please compile issues that arise from using this crate. +//! +//! ## Dependencies +//! +//! The umbrella crate re-exports all published crates, with a few exceptions: +//! - Runtime crates like `rococo-runtime` etc are not exported. This otherwise leads to very weird +//! compile errors and should not be needed anyway. +//! - Example and fuzzing crates are not exported. This is currently detected by checking the name +//! of the crate for these magic words. In the future, it will utilize custom metadata, as it is +//! done in the `rococo-runtime` crate. +//! - The umbrella crate itself. Should be obvious :) From a01dfa627e37d10af34cb8c0548bef678a4cb114 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 15:46:43 +0200 Subject: [PATCH 25/39] Cleanup Signed-off-by: Oliver Tale-Yazdi --- .config/zepter.yaml | 2 +- Cargo.lock | 60 +++++++-------------------- substrate/bin/node/cli/Cargo.toml | 10 +++-- substrate/bin/node/cli/build.rs | 4 +- substrate/bin/node/runtime/Cargo.toml | 2 + 5 files changed, 27 insertions(+), 51 deletions(-) diff --git a/.config/zepter.yaml b/.config/zepter.yaml index 28a4018f5b38..9b3bd9d618c1 100644 --- a/.config/zepter.yaml +++ b/.config/zepter.yaml @@ -27,7 +27,7 @@ workflows: ] # The umbrella crate uses more features, so we to check those too: check_umbrella: - - [ $check.0, '--features=serde,experimental,with-tracing,tuples-96', '-p=polkadot-sdk' ] + - [ $check.0, '--features=serde,experimental,with-tracing,tuples-96,with-tracing', '-p=polkadot-sdk' ] # Same as `check_*`, but with the `--fix` flag. default: - [ $check.0, '--fix' ] diff --git a/Cargo.lock b/Cargo.lock index 1f492fceed8b..cda6503ab79c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3450,34 +3450,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "criterion" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" -dependencies = [ - "anes", - "atty", - "cast", - "ciborium", - "clap 3.2.25", - "criterion-plot", - "futures", - "itertools 0.10.5", - "lazy_static", - "num-traits", - "oorandom", - "plotters", - "rayon", - "regex", - "serde", - "serde_derive", - "serde_json", - "tinytemplate", - "tokio", - "walkdir", -] - [[package]] name = "criterion" version = "0.5.1" @@ -4400,7 +4372,7 @@ version = "0.1.0" dependencies = [ "async-trait", "clap 4.5.3", - "criterion 0.5.1", + "criterion", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -5999,7 +5971,7 @@ name = "frame-system" version = "28.0.0" dependencies = [ "cfg-if", - "criterion 0.5.1", + "criterion", "docify", "frame-support", "log", @@ -12697,7 +12669,7 @@ dependencies = [ name = "polkadot-erasure-coding" version = "7.0.0" dependencies = [ - "criterion 0.5.1", + "criterion", "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", @@ -13074,7 +13046,7 @@ dependencies = [ "assert_matches", "blake3", "cfg-if", - "criterion 0.5.1", + "criterion", "futures", "futures-timer", "hex-literal", @@ -13179,7 +13151,7 @@ version = "7.0.0" dependencies = [ "blake3", "cfg-if", - "criterion 0.5.1", + "criterion", "libc", "nix 0.28.0", "parity-scale-codec", @@ -16721,7 +16693,7 @@ name = "sc-client-db" version = "0.35.0" dependencies = [ "array-bytes", - "criterion 0.5.1", + "criterion", "hash-db", "kitchensink-runtime", "kvdb", @@ -17124,7 +17096,7 @@ version = "0.32.0" dependencies = [ "array-bytes", "assert_matches", - "criterion 0.5.1", + "criterion", "env_logger 0.11.3", "num_cpus", "parity-scale-codec", @@ -17905,7 +17877,7 @@ version = "28.0.0" dependencies = [ "ansi_term", "chrono", - "criterion 0.5.1", + "criterion", "is-terminal", "lazy_static", "libc", @@ -17946,7 +17918,7 @@ dependencies = [ "array-bytes", "assert_matches", "async-trait", - "criterion 0.5.1", + "criterion", "futures", "futures-timer", "linked-hash-map", @@ -19326,7 +19298,7 @@ dependencies = [ name = "sp-api-test" version = "2.0.1" dependencies = [ - "criterion 0.5.1", + "criterion", "futures", "log", "parity-scale-codec", @@ -19372,7 +19344,7 @@ dependencies = [ name = "sp-arithmetic" version = "23.0.0" dependencies = [ - "criterion 0.5.1", + "criterion", "docify", "integer-sqrt", "num-traits", @@ -19580,7 +19552,7 @@ dependencies = [ "blake2 0.10.6", "bounded-collections", "bs58 0.5.0", - "criterion 0.5.1", + "criterion", "dyn-clonable", "ed25519-zebra", "futures", @@ -19690,7 +19662,7 @@ version = "0.1.0" dependencies = [ "blake2b_simd", "byteorder", - "criterion 0.5.1", + "criterion", "digest 0.10.7", "sha2 0.10.8", "sha3", @@ -20231,7 +20203,7 @@ version = "29.0.0" dependencies = [ "ahash 0.8.8", "array-bytes", - "criterion 0.5.1", + "criterion", "hash-db", "lazy_static", "memory-db", @@ -20413,7 +20385,7 @@ dependencies = [ "assert_cmd", "clap 4.5.3", "clap_complete", - "criterion 0.4.0", + "criterion", "futures", "jsonrpsee", "kitchensink-runtime", @@ -21967,7 +21939,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3092f400e9f7e3ce8c1756016a8b6287163ab7a11dd47d82169260cb4cc2d680" dependencies = [ - "criterion 0.5.1", + "criterion", "hash-db", "keccak-hasher", "memory-db", diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index dbc837ab1e4c..bc5394bf7891 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -15,6 +15,8 @@ publish = false workspace = true [package.metadata.wasm-pack.profile.release] +# `wasm-opt` has some problems on linux, see +# https://github.com/rustwasm/wasm-pack/issues/781 etc. wasm-opt = false [package.metadata.docs.rs] @@ -34,7 +36,7 @@ required-features = ["cli"] crate-type = ["cdylib", "rlib"] [dependencies] -# External dependencies: +# third-party dependencies array-bytes = "6.1" clap = { version = "4.5.3", features = ["derive"], optional = true } codec = { package = "parity-scale-codec", version = "3.6.1" } @@ -48,7 +50,7 @@ serde_json = { workspace = true, default-features = true } # The Polkadot-SDK: polkadot-sdk = { path = "../../../../umbrella", features = ["node"] } -# Shared code of the staging-node: +# Shared code between the staging node and kitchensink runtime: kitchensink-runtime = { path = "../runtime" } node-rpc = { path = "../rpc" } node-primitives = { path = "../primitives" } @@ -62,7 +64,7 @@ nix = { version = "0.28.0", features = ["signal"] } regex = "1.6.0" platforms = "3.0" soketto = "0.7.1" -criterion = { version = "0.4.0", features = ["async_tokio"] } +criterion = { version = "0.5.1", features = ["async_tokio"] } tokio = { version = "1.22.0", features = ["macros", "parking_lot", "time"] } tokio-util = { version = "0.7.4", features = ["compat"] } wait-timeout = "0.2" @@ -70,8 +72,8 @@ wat = "1.0" serde_json = { workspace = true, default-features = true } scale-info = { version = "2.11.1", features = ["derive", "serde"] } +# These testing-only dependencies are not exported by the Polkadot-SDK crate: node-testing = { path = "../testing" } - substrate-cli-test-utils = { path = "../../../test-utils/cli" } sc-service-test = { path = "../../../client/service/test" } diff --git a/substrate/bin/node/cli/build.rs b/substrate/bin/node/cli/build.rs index b206707d91bc..c25d15de0574 100644 --- a/substrate/bin/node/cli/build.rs +++ b/substrate/bin/node/cli/build.rs @@ -39,14 +39,14 @@ mod cli { rerun_if_git_head_changed(); } - // Build shell completion scripts for all known shells. + /// Build shell completion scripts for all known shells. fn build_shell_completion() { for shell in Shell::value_variants() { build_completion(shell); } } - // Build the shell auto-completion for a given Shell. + /// Build the shell auto-completion for a given Shell. fn build_completion(shell: &Shell) { let outdir = match env::var_os("OUT_DIR") { None => return, diff --git a/substrate/bin/node/runtime/Cargo.toml b/substrate/bin/node/runtime/Cargo.toml index 6fb037400cfc..305a1e5ec294 100644 --- a/substrate/bin/node/runtime/Cargo.toml +++ b/substrate/bin/node/runtime/Cargo.toml @@ -27,6 +27,8 @@ scale-info = { version = "2.11.1", default-features = false, features = ["derive static_assertions = "1.1.0" log = { workspace = true } serde_json = { features = ["alloc", "arbitrary_precision"], workspace = true } + +# pallet-asset-conversion: turn on "num-traits" feature primitive-types = { version = "0.12.0", default-features = false, features = ["codec", "num-traits", "scale-info"] } polkadot-sdk = { path = "../../../../umbrella", features = ["runtime", "tuples-96"], default-features = false } From 890473a94e0e356258eefe36bf39eb687fa63cb1 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 16:09:28 +0200 Subject: [PATCH 26/39] Cleanup macros Signed-off-by: Oliver Tale-Yazdi --- substrate/bin/node/runtime/src/impls.rs | 34 +++++++++---------- substrate/bin/node/runtime/src/lib.rs | 6 ++-- .../client/chain-spec/derive/src/impls.rs | 5 +-- .../support/procedural/src/runtime/mod.rs | 18 ---------- .../frame/support/procedural/tools/src/lib.rs | 1 - 5 files changed, 21 insertions(+), 43 deletions(-) diff --git a/substrate/bin/node/runtime/src/impls.rs b/substrate/bin/node/runtime/src/impls.rs index 6f3dddf2b80a..dbe562857c99 100644 --- a/substrate/bin/node/runtime/src/impls.rs +++ b/substrate/bin/node/runtime/src/impls.rs @@ -115,17 +115,16 @@ impl ProposalProvider for AllianceProposalProvider #[cfg(test)] mod multiplier_tests { - use polkadot_sdk::{ - frame_support::{ - dispatch::DispatchClass, - weights::{Weight, WeightToFee}, - }, - pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}, - sp_runtime::{ - assert_eq_error_rate, - traits::{Convert, One, Zero}, - BuildStorage, FixedPointNumber, - }, + use frame_support::{ + dispatch::DispatchClass, + weights::{Weight, WeightToFee}, + }; + use pallet_transaction_payment::{Multiplier, TargetedFeeAdjustment}; + use polkadot_sdk::*; + use sp_runtime::{ + assert_eq_error_rate, + traits::{Convert, One, Zero}, + BuildStorage, FixedPointNumber, }; use crate::{ @@ -202,11 +201,10 @@ mod multiplier_tests { where F: Fn() -> (), { - let mut t: polkadot_sdk::sp_io::TestExternalities = - polkadot_sdk::frame_system::GenesisConfig::::default() - .build_storage() - .unwrap() - .into(); + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into(); t.execute_with(|| { System::set_block_consumed_resources(w, 0); assertions() @@ -313,7 +311,7 @@ mod multiplier_tests { Weight::from_parts(100, 0); // Default substrate weight. - let tx_weight = polkadot_sdk::frame_support::weights::constants::ExtrinsicBaseWeight::get(); + let tx_weight = frame_support::weights::constants::ExtrinsicBaseWeight::get(); run_with_system_weight(block_weight, || { // initial value configured on module @@ -330,7 +328,7 @@ mod multiplier_tests { fm = next; iterations += 1; let fee = - ::WeightToFee::weight_to_fee( + ::WeightToFee::weight_to_fee( &tx_weight, ); let adjusted_fee = fm.saturating_mul_acc_int(fee); diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index a35906872f6a..02488e90ef25 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -2241,9 +2241,7 @@ impl pallet_parameters::Config for Runtime { type WeightInfo = (); } -use frame_support::runtime; - -#[runtime] +#[frame_support::runtime] mod runtime { use super::*; @@ -2598,7 +2596,7 @@ mod mmr { #[cfg(feature = "runtime-benchmarks")] mod benches { - super::frame_benchmarking::define_benchmarks!( + polkadot_sdk::frame_benchmarking::define_benchmarks!( [frame_benchmarking, BaselineBench::] [frame_benchmarking_pallet_pov, Pov] [pallet_alliance, Alliance] diff --git a/substrate/client/chain-spec/derive/src/impls.rs b/substrate/client/chain-spec/derive/src/impls.rs index 1068a3548d48..d8b20c5c2a8c 100644 --- a/substrate/client/chain-spec/derive/src/impls.rs +++ b/substrate/client/chain-spec/derive/src/impls.rs @@ -171,7 +171,7 @@ pub fn derive( }; let name = &ast.ident; - let crate_name = match crate_name(CRATE_NAME) { + let crate_path = match crate_name(CRATE_NAME) { Ok(FoundCrate::Itself) => CRATE_NAME.replace("-", "_"), Ok(FoundCrate::Name(chain_spec_name)) => chain_spec_name, Err(e) => match crate_name("polkadot-sdk") { @@ -181,7 +181,8 @@ pub fn derive( }, }, }; - let crate_path = syn::parse_str::(&crate_name).unwrap(); + let crate_path = + syn::parse_str::(&crate_path).expect("crate_name returns valid path; qed"); let field_names = fields.named.iter().flat_map(|x| x.ident.as_ref()).collect::>(); let field_types = fields.named.iter().map(|x| &x.ty).collect::>(); diff --git a/substrate/frame/support/procedural/src/runtime/mod.rs b/substrate/frame/support/procedural/src/runtime/mod.rs index 7f5f871dbeda..aaae579eb086 100644 --- a/substrate/frame/support/procedural/src/runtime/mod.rs +++ b/substrate/frame/support/procedural/src/runtime/mod.rs @@ -214,24 +214,6 @@ mod keyword { } pub fn runtime(attr: TokenStream, tokens: TokenStream) -> TokenStream { - let modified = do_runtime(attr, tokens); - - /*use expander::*; - let expanded = Expander::new("baz") - .add_comment("This is generated code!".to_owned()) - .fmt(Edition::_2021) - .verbose(true) - // common way of gating this, by making it part of the default feature set - .dry(cfg!(feature="no-file-expansion")) - .write_to_out_dir(modified.clone().into()).unwrap_or_else(|e| { - eprintln!("Failed to write to file: {:?}", e); - modified.into() - }); - expanded.into()*/ - modified -} - -pub fn do_runtime(attr: TokenStream, tokens: TokenStream) -> TokenStream { let mut legacy_ordering = false; if !attr.is_empty() { if let Ok(_) = syn::parse::(attr.clone()) { diff --git a/substrate/frame/support/procedural/tools/src/lib.rs b/substrate/frame/support/procedural/tools/src/lib.rs index a126711647d4..ea53335a88fd 100644 --- a/substrate/frame/support/procedural/tools/src/lib.rs +++ b/substrate/frame/support/procedural/tools/src/lib.rs @@ -138,7 +138,6 @@ fn get_frame_crate_path(def_crate: &str) -> Option { } fn get_sdk_crate_path(def_crate: &str) -> Option { - // This does not work if the frame crate is renamed. if let Ok(FoundCrate::Name(name)) = crate_name(&"polkadot-sdk") { let path = format!("{}::{}", name, def_crate.to_string()).replace("-", "_"); Some(syn::parse_str::(&path).expect("is a valid path; qed")) From 515247131f75fe048f085cb94b7066da4004a736 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 16:31:38 +0200 Subject: [PATCH 27/39] Cleanup Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/check-features.yml | 2 +- docs/sdk/src/reference_docs/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-features.yml b/.github/workflows/check-features.yml index e64287d22a5f..a59430bf762a 100644 --- a/.github/workflows/check-features.yml +++ b/.github/workflows/check-features.yml @@ -12,7 +12,7 @@ jobs: uses: actions/checkout@v4 - name: Check uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 - with: + with: crate: templates/minimal/node/runtime features: std,runtime-benchmarks,try-runtime ignore: sc-executor diff --git a/docs/sdk/src/reference_docs/mod.rs b/docs/sdk/src/reference_docs/mod.rs index 7d74b9a71600..6fa25bf36e1b 100644 --- a/docs/sdk/src/reference_docs/mod.rs +++ b/docs/sdk/src/reference_docs/mod.rs @@ -107,5 +107,5 @@ pub mod frame_offchain_workers; /// together. pub mod frame_pallet_coupling; -/// Lean about the Polkadot Umbrella crate that re-exports all other crates. +/// Learn about the Polkadot Umbrella crate that re-exports all other crates. pub mod umbrella_crate; From dbdeaf0c230dedb37f0b173cef823e7397b50f8c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 16:38:54 +0200 Subject: [PATCH 28/39] Revert tt macro change Signed-off-by: Oliver Tale-Yazdi --- .../support/procedural/src/pallet/expand/tt_default_parts.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs index 28f74c284069..1975f059152c 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/tt_default_parts.rs @@ -198,9 +198,9 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream { macro_rules! #default_parts_unique_id_v2 { { $caller:tt - your_tt_return = [{ $($my_tt_return:tt)* }] + your_tt_return = [{ $my_tt_return:path }] } => { - $( $my_tt_return )*! { + $my_tt_return! { $caller tokens = [{ + Pallet #call_part_v2 #storage_part_v2 #event_part_v2 #error_part_v2 #origin_part_v2 #config_part_v2 From 4357d9aa38dd572169364291a3a89f04ddaef0e2 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 16:45:14 +0200 Subject: [PATCH 29/39] Fix CI Signed-off-by: Oliver Tale-Yazdi --- .github/workflows/check-features.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-features.yml b/.github/workflows/check-features.yml index a59430bf762a..d34b3d52c533 100644 --- a/.github/workflows/check-features.yml +++ b/.github/workflows/check-features.yml @@ -13,7 +13,7 @@ jobs: - name: Check uses: hack-ink/cargo-featalign-action@bea88a864d6ca7d0c53c26f1391ce1d431dc7f34 # v0.1.1 with: - crate: templates/minimal/node/runtime + crate: templates/parachain/runtime/ features: std,runtime-benchmarks,try-runtime ignore: sc-executor default-std: true From 3ffe52c5b4380e2bb94237a10aa2445aa44e729b Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 16:52:53 +0200 Subject: [PATCH 30/39] Add prdoc Signed-off-by: Oliver Tale-Yazdi --- prdoc/pr_3935.prdoc | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 prdoc/pr_3935.prdoc diff --git a/prdoc/pr_3935.prdoc b/prdoc/pr_3935.prdoc new file mode 100644 index 000000000000..414f937b4970 --- /dev/null +++ b/prdoc/pr_3935.prdoc @@ -0,0 +1,26 @@ +title: "Introduce Polkadot-SDK umbrella crate" + +doc: + - audience: Runtime Dev + description: | + Introduces a new "umbrella" crate that re-exports all published crates of the Polkadot-SDK. + This helps developers to select a valid set of versions for all underlying dependencies. + + You can now use this create and remove lots of dependencies from your runtime and node crates. + The `staging-node-cli` and `kitchensink-runtime` both adopt this pattern as an example. + + Full docs in `docs/sdk/src/reference_docs/umbrella_crate.rs`. + +crates: + - name: cumulus-pallet-parachain-system + bump: patch + - name: sc-chain-spec-derive + bump: patch + - name: frame-election-provider-solution-type + bump: patch + - name: pallet-staking-reward-curve + bump: patch + - name: frame-support-procedural-tools + bump: patch + - name: sp-api-proc-macro + bump: patch From 2ddb4fb4701dd9a40868e1ac8395868b8f1df6f2 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 17:29:39 +0200 Subject: [PATCH 31/39] Fix prdoc Signed-off-by: Oliver Tale-Yazdi --- prdoc/pr_3935.prdoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/prdoc/pr_3935.prdoc b/prdoc/pr_3935.prdoc index 414f937b4970..a598d2c0166f 100644 --- a/prdoc/pr_3935.prdoc +++ b/prdoc/pr_3935.prdoc @@ -24,3 +24,5 @@ crates: bump: patch - name: sp-api-proc-macro bump: patch + - name: polkadot-runtime-parachains + bump: patch From 08779397b96ffaab9806d31793cd86a5df941f62 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 17:32:30 +0200 Subject: [PATCH 32/39] Remove unneeded features Signed-off-by: Oliver Tale-Yazdi --- scripts/generate-umbrella.py | 6 -- umbrella/Cargo.toml | 145 +---------------------------------- 2 files changed, 3 insertions(+), 148 deletions(-) diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py index 0f0480593901..0bdf160e63b1 100644 --- a/scripts/generate-umbrella.py +++ b/scripts/generate-umbrella.py @@ -109,12 +109,6 @@ def main(path, version): "tuples-96": [], } - # Create one feature to enable each crate selectively - for crate, _ in std_crates: - if crate.name in features: - raise Exception(f"Feature {crate.name} already exists") - features[crate.name] = [f"dep:{crate.name}"] - manifest = { "package": { "name": "polkadot-sdk", diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index f38ae811cdc9..8a021165dda3 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -526,8 +526,11 @@ experimental = [ ] with-tracing = [ "frame-executive?/with-tracing", + "frame-executive?/with-tracing", + "sp-io?/with-tracing", "sp-io?/with-tracing", "sp-tracing?/with-tracing", + "sp-tracing?/with-tracing", ] runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] @@ -535,148 +538,6 @@ tuples-96 = [ "frame-support-procedural?/tuples-96", "frame-support?/tuples-96", ] -asset-test-utils = ["dep:asset-test-utils"] -bridge-hub-test-utils = ["dep:bridge-hub-test-utils"] -cumulus-client-cli = ["dep:cumulus-client-cli"] -cumulus-client-collator = ["dep:cumulus-client-collator"] -cumulus-client-consensus-aura = ["dep:cumulus-client-consensus-aura"] -cumulus-client-consensus-common = ["dep:cumulus-client-consensus-common"] -cumulus-client-consensus-proposer = ["dep:cumulus-client-consensus-proposer"] -cumulus-client-consensus-relay-chain = ["dep:cumulus-client-consensus-relay-chain"] -cumulus-client-network = ["dep:cumulus-client-network"] -cumulus-client-parachain-inherent = ["dep:cumulus-client-parachain-inherent"] -cumulus-client-pov-recovery = ["dep:cumulus-client-pov-recovery"] -cumulus-client-service = ["dep:cumulus-client-service"] -cumulus-relay-chain-inprocess-interface = ["dep:cumulus-relay-chain-inprocess-interface"] -cumulus-relay-chain-interface = ["dep:cumulus-relay-chain-interface"] -cumulus-relay-chain-minimal-node = ["dep:cumulus-relay-chain-minimal-node"] -cumulus-relay-chain-rpc-interface = ["dep:cumulus-relay-chain-rpc-interface"] -cumulus-test-relay-sproof-builder = ["dep:cumulus-test-relay-sproof-builder"] -emulated-integration-tests-common = ["dep:emulated-integration-tests-common"] -fork-tree = ["dep:fork-tree"] -frame-benchmarking-cli = ["dep:frame-benchmarking-cli"] -frame-remote-externalities = ["dep:frame-remote-externalities"] -frame-support-procedural-tools = ["dep:frame-support-procedural-tools"] -generate-bags = ["dep:generate-bags"] -mmr-gadget = ["dep:mmr-gadget"] -mmr-rpc = ["dep:mmr-rpc"] -pallet-contracts-mock-network = ["dep:pallet-contracts-mock-network"] -pallet-transaction-payment-rpc = ["dep:pallet-transaction-payment-rpc"] -parachains-runtimes-test-utils = ["dep:parachains-runtimes-test-utils"] -polkadot-approval-distribution = ["dep:polkadot-approval-distribution"] -polkadot-availability-bitfield-distribution = ["dep:polkadot-availability-bitfield-distribution"] -polkadot-availability-distribution = ["dep:polkadot-availability-distribution"] -polkadot-availability-recovery = ["dep:polkadot-availability-recovery"] -polkadot-cli = ["dep:polkadot-cli"] -polkadot-collator-protocol = ["dep:polkadot-collator-protocol"] -polkadot-dispute-distribution = ["dep:polkadot-dispute-distribution"] -polkadot-erasure-coding = ["dep:polkadot-erasure-coding"] -polkadot-gossip-support = ["dep:polkadot-gossip-support"] -polkadot-network-bridge = ["dep:polkadot-network-bridge"] -polkadot-node-collation-generation = ["dep:polkadot-node-collation-generation"] -polkadot-node-core-approval-voting = ["dep:polkadot-node-core-approval-voting"] -polkadot-node-core-av-store = ["dep:polkadot-node-core-av-store"] -polkadot-node-core-backing = ["dep:polkadot-node-core-backing"] -polkadot-node-core-bitfield-signing = ["dep:polkadot-node-core-bitfield-signing"] -polkadot-node-core-candidate-validation = ["dep:polkadot-node-core-candidate-validation"] -polkadot-node-core-chain-api = ["dep:polkadot-node-core-chain-api"] -polkadot-node-core-chain-selection = ["dep:polkadot-node-core-chain-selection"] -polkadot-node-core-dispute-coordinator = ["dep:polkadot-node-core-dispute-coordinator"] -polkadot-node-core-parachains-inherent = ["dep:polkadot-node-core-parachains-inherent"] -polkadot-node-core-prospective-parachains = ["dep:polkadot-node-core-prospective-parachains"] -polkadot-node-core-provisioner = ["dep:polkadot-node-core-provisioner"] -polkadot-node-core-pvf = ["dep:polkadot-node-core-pvf"] -polkadot-node-core-pvf-checker = ["dep:polkadot-node-core-pvf-checker"] -polkadot-node-core-pvf-common = ["dep:polkadot-node-core-pvf-common"] -polkadot-node-core-pvf-execute-worker = ["dep:polkadot-node-core-pvf-execute-worker"] -polkadot-node-core-pvf-prepare-worker = ["dep:polkadot-node-core-pvf-prepare-worker"] -polkadot-node-core-runtime-api = ["dep:polkadot-node-core-runtime-api"] -polkadot-node-jaeger = ["dep:polkadot-node-jaeger"] -polkadot-node-metrics = ["dep:polkadot-node-metrics"] -polkadot-node-network-protocol = ["dep:polkadot-node-network-protocol"] -polkadot-node-primitives = ["dep:polkadot-node-primitives"] -polkadot-node-subsystem = ["dep:polkadot-node-subsystem"] -polkadot-node-subsystem-types = ["dep:polkadot-node-subsystem-types"] -polkadot-node-subsystem-util = ["dep:polkadot-node-subsystem-util"] -polkadot-overseer = ["dep:polkadot-overseer"] -polkadot-rpc = ["dep:polkadot-rpc"] -polkadot-service = ["dep:polkadot-service"] -polkadot-statement-distribution = ["dep:polkadot-statement-distribution"] -polkadot-statement-table = ["dep:polkadot-statement-table"] -sc-allocator = ["dep:sc-allocator"] -sc-authority-discovery = ["dep:sc-authority-discovery"] -sc-basic-authorship = ["dep:sc-basic-authorship"] -sc-block-builder = ["dep:sc-block-builder"] -sc-chain-spec = ["dep:sc-chain-spec"] -sc-cli = ["dep:sc-cli"] -sc-client-api = ["dep:sc-client-api"] -sc-client-db = ["dep:sc-client-db"] -sc-consensus = ["dep:sc-consensus"] -sc-consensus-aura = ["dep:sc-consensus-aura"] -sc-consensus-babe = ["dep:sc-consensus-babe"] -sc-consensus-babe-rpc = ["dep:sc-consensus-babe-rpc"] -sc-consensus-beefy = ["dep:sc-consensus-beefy"] -sc-consensus-beefy-rpc = ["dep:sc-consensus-beefy-rpc"] -sc-consensus-epochs = ["dep:sc-consensus-epochs"] -sc-consensus-grandpa = ["dep:sc-consensus-grandpa"] -sc-consensus-grandpa-rpc = ["dep:sc-consensus-grandpa-rpc"] -sc-consensus-manual-seal = ["dep:sc-consensus-manual-seal"] -sc-consensus-pow = ["dep:sc-consensus-pow"] -sc-consensus-slots = ["dep:sc-consensus-slots"] -sc-executor = ["dep:sc-executor"] -sc-executor-common = ["dep:sc-executor-common"] -sc-executor-polkavm = ["dep:sc-executor-polkavm"] -sc-executor-wasmtime = ["dep:sc-executor-wasmtime"] -sc-informant = ["dep:sc-informant"] -sc-keystore = ["dep:sc-keystore"] -sc-mixnet = ["dep:sc-mixnet"] -sc-network = ["dep:sc-network"] -sc-network-common = ["dep:sc-network-common"] -sc-network-gossip = ["dep:sc-network-gossip"] -sc-network-light = ["dep:sc-network-light"] -sc-network-statement = ["dep:sc-network-statement"] -sc-network-sync = ["dep:sc-network-sync"] -sc-network-transactions = ["dep:sc-network-transactions"] -sc-network-types = ["dep:sc-network-types"] -sc-offchain = ["dep:sc-offchain"] -sc-proposer-metrics = ["dep:sc-proposer-metrics"] -sc-rpc = ["dep:sc-rpc"] -sc-rpc-api = ["dep:sc-rpc-api"] -sc-rpc-server = ["dep:sc-rpc-server"] -sc-rpc-spec-v2 = ["dep:sc-rpc-spec-v2"] -sc-service = ["dep:sc-service"] -sc-state-db = ["dep:sc-state-db"] -sc-statement-store = ["dep:sc-statement-store"] -sc-storage-monitor = ["dep:sc-storage-monitor"] -sc-sync-state-rpc = ["dep:sc-sync-state-rpc"] -sc-sysinfo = ["dep:sc-sysinfo"] -sc-telemetry = ["dep:sc-telemetry"] -sc-tracing = ["dep:sc-tracing"] -sc-transaction-pool = ["dep:sc-transaction-pool"] -sc-transaction-pool-api = ["dep:sc-transaction-pool-api"] -sc-utils = ["dep:sc-utils"] -snowbridge-runtime-test-common = ["dep:snowbridge-runtime-test-common"] -sp-blockchain = ["dep:sp-blockchain"] -sp-consensus = ["dep:sp-consensus"] -sp-core-hashing = ["dep:sp-core-hashing"] -sp-core-hashing-proc-macro = ["dep:sp-core-hashing-proc-macro"] -sp-database = ["dep:sp-database"] -sp-maybe-compressed-blob = ["dep:sp-maybe-compressed-blob"] -sp-panic-handler = ["dep:sp-panic-handler"] -sp-rpc = ["dep:sp-rpc"] -staging-node-inspect = ["dep:staging-node-inspect"] -staging-tracking-allocator = ["dep:staging-tracking-allocator"] -subkey = ["dep:subkey"] -substrate-build-script-utils = ["dep:substrate-build-script-utils"] -substrate-frame-rpc-support = ["dep:substrate-frame-rpc-support"] -substrate-frame-rpc-system = ["dep:substrate-frame-rpc-system"] -substrate-prometheus-endpoint = ["dep:substrate-prometheus-endpoint"] -substrate-rpc-client = ["dep:substrate-rpc-client"] -substrate-state-trie-migration-rpc = ["dep:substrate-state-trie-migration-rpc"] -substrate-wasm-builder = ["dep:substrate-wasm-builder"] -tracing-gum = ["dep:tracing-gum"] -xcm-emulator = ["dep:xcm-emulator"] -xcm-simulator = ["dep:xcm-simulator"] [package.edition] workspace = true From a147bc324d5b39b87823418abcc1f2eb7eba8314 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Wed, 15 May 2024 17:37:33 +0200 Subject: [PATCH 33/39] Post merge Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 1 + umbrella/Cargo.toml | 10 +++++++++- umbrella/src/lib.rs | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 26cb35f9451b..998dc69a2f9f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13854,6 +13854,7 @@ dependencies = [ "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", + "pallet-delegated-staking", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 8a021165dda3..50a4d45c2ad3 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -91,6 +91,7 @@ std = [ "pallet-contracts?/std", "pallet-conviction-voting?/std", "pallet-core-fellowship?/std", + "pallet-delegated-staking?/std", "pallet-democracy?/std", "pallet-dev-mode?/std", "pallet-election-provider-multi-phase?/std", @@ -279,6 +280,7 @@ runtime-benchmarks = [ "pallet-contracts?/runtime-benchmarks", "pallet-conviction-voting?/runtime-benchmarks", "pallet-core-fellowship?/runtime-benchmarks", + "pallet-delegated-staking?/runtime-benchmarks", "pallet-democracy?/runtime-benchmarks", "pallet-election-provider-multi-phase?/runtime-benchmarks", "pallet-election-provider-support-benchmarking?/runtime-benchmarks", @@ -405,6 +407,7 @@ try-runtime = [ "pallet-contracts?/try-runtime", "pallet-conviction-voting?/try-runtime", "pallet-core-fellowship?/try-runtime", + "pallet-delegated-staking?/try-runtime", "pallet-democracy?/try-runtime", "pallet-dev-mode?/try-runtime", "pallet-election-provider-multi-phase?/try-runtime", @@ -532,7 +535,7 @@ with-tracing = [ "sp-tracing?/with-tracing", "sp-tracing?/with-tracing", ] -runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] +runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-delegated-staking", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] tuples-96 = [ "frame-support-procedural?/tuples-96", @@ -965,6 +968,11 @@ path = "../substrate/frame/core-fellowship" default-features = false optional = true +[dependencies.pallet-delegated-staking] +path = "../substrate/frame/delegated-staking" +default-features = false +optional = true + [dependencies.pallet-democracy] path = "../substrate/frame/democracy" default-features = false diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index 4ff24825ff82..fcb669e87d01 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -459,6 +459,10 @@ pub use pallet_conviction_voting; #[cfg(feature = "pallet-core-fellowship")] pub use pallet_core_fellowship; +/// FRAME delegated staking pallet. +#[cfg(feature = "pallet-delegated-staking")] +pub use pallet_delegated_staking; + /// FRAME pallet for democracy. #[cfg(feature = "pallet-democracy")] pub use pallet_democracy; From 0c3ebcaf33cf091c22bede6be9b9702032d1200c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Thu, 23 May 2024 12:43:43 +0200 Subject: [PATCH 34/39] Add frame-metadata-extension to the umbrella Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 594 +++++++++++++++++++++++++++++--------------- umbrella/Cargo.toml | 8 +- umbrella/src/lib.rs | 4 + 3 files changed, 408 insertions(+), 198 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3a72ca23d88..481580b8d6a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7258,124 +7258,15 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "frame-benchmarking", - "frame-benchmarking-pallet-pov", - "frame-election-provider-support", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", "log", "node-primitives", - "pallet-alliance", - "pallet-asset-conversion", - "pallet-asset-conversion-ops", - "pallet-asset-conversion-tx-payment", - "pallet-asset-rate", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-broker", - "pallet-child-bounties", - "pallet-collective", - "pallet-contracts", - "pallet-conviction-voting", - "pallet-core-fellowship", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", "pallet-example-mbm", "pallet-example-tasks", - "pallet-fast-unstake", - "pallet-glutton", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-insecure-randomness-collective-flip", - "pallet-lottery", - "pallet-membership", - "pallet-message-queue", - "pallet-migrations", - "pallet-mixnet", - "pallet-mmr", - "pallet-multisig", - "pallet-nft-fractionalization", - "pallet-nfts", - "pallet-nfts-runtime-api", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-parameters", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-remark", - "pallet-root-testing", - "pallet-safe-mode", - "pallet-salary", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-skip-feeless-payment", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-statement", - "pallet-sudo", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-transaction-storage", - "pallet-treasury", - "pallet-tx-pause", - "pallet-uniques", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", "parity-scale-codec", + "polkadot-sdk", "primitive-types", "scale-info", "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-mixnet", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-statement-store", - "sp-std 14.0.0", - "sp-storage 19.0.0", - "sp-transaction-pool", - "sp-version", "static_assertions", "substrate-wasm-builder", ] @@ -13917,42 +13808,427 @@ dependencies = [ ] [[package]] -name = "polkadot-sdk-docs" -version = "0.0.1" +name = "polkadot-sdk" +version = "1.9.0" dependencies = [ + "asset-test-utils", + "assets-common", + "binary-merkle-tree", + "bp-asset-hub-rococo", + "bp-asset-hub-westend", + "bp-bridge-hub-cumulus", + "bp-bridge-hub-kusama", + "bp-bridge-hub-polkadot", + "bp-bridge-hub-rococo", + "bp-bridge-hub-westend", + "bp-header-chain", + "bp-kusama", + "bp-messages", + "bp-parachains", + "bp-polkadot", + "bp-polkadot-bulletin", + "bp-polkadot-core", + "bp-relayers", + "bp-rococo", + "bp-runtime", + "bp-test-utils", + "bp-westend", + "bp-xcm-bridge-hub", + "bp-xcm-bridge-hub-router", + "bridge-hub-common", + "bridge-hub-test-utils", + "bridge-runtime-common", + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-consensus-relay-chain", + "cumulus-client-network", + "cumulus-client-parachain-inherent", + "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-solo-to-para", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-ping", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", - "docify", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "cumulus-relay-chain-inprocess-interface", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", + "cumulus-relay-chain-rpc-interface", + "cumulus-test-relay-sproof-builder", + "emulated-integration-tests-common", + "fork-tree", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-benchmarking-pallet-pov", + "frame-election-provider-solution-type", + "frame-election-provider-support", "frame-executive", "frame-metadata-hash-extension", + "frame-remote-externalities", "frame-support", + "frame-support-procedural", + "frame-support-procedural-tools", + "frame-support-procedural-tools-derive", "frame-system", - "kitchensink-runtime", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "generate-bags", + "mmr-gadget", + "mmr-rpc", + "pallet-alliance", + "pallet-asset-conversion", + "pallet-asset-conversion-ops", + "pallet-asset-conversion-tx-payment", + "pallet-asset-rate", + "pallet-asset-tx-payment", "pallet-assets", + "pallet-atomic-swap", "pallet-aura", + "pallet-authority-discovery", "pallet-authorship", "pallet-babe", + "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bounties", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-bridge-parachains", + "pallet-bridge-relayers", "pallet-broker", + "pallet-child-bounties", + "pallet-collator-selection", "pallet-collective", - "pallet-default-config-example", + "pallet-collective-content", + "pallet-contracts", + "pallet-contracts-mock-network", + "pallet-contracts-proc-macro", + "pallet-contracts-uapi", + "pallet-conviction-voting", + "pallet-core-fellowship", + "pallet-delegated-staking", "pallet-democracy", - "pallet-example-offchain-worker", - "pallet-example-single-block-migrations", - "pallet-examples", + "pallet-dev-mode", + "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", + "pallet-elections-phragmen", + "pallet-fast-unstake", + "pallet-glutton", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-insecure-randomness-collective-flip", + "pallet-lottery", + "pallet-membership", + "pallet-message-queue", + "pallet-migrations", + "pallet-mixnet", + "pallet-mmr", "pallet-multisig", + "pallet-nft-fractionalization", "pallet-nfts", + "pallet-nfts-runtime-api", + "pallet-nis", + "pallet-node-authorization", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-paged-list", + "pallet-parameters", "pallet-preimage", "pallet-proxy", + "pallet-ranked-collective", + "pallet-recovery", "pallet-referenda", + "pallet-remark", + "pallet-root-offences", + "pallet-root-testing", + "pallet-safe-mode", + "pallet-salary", "pallet-scheduler", + "pallet-scored-pool", + "pallet-session", + "pallet-session-benchmarking", + "pallet-skip-feeless-payment", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-staking-reward-fn", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", + "pallet-statement", + "pallet-sudo", "pallet-timestamp", + "pallet-tips", "pallet-transaction-payment", - "pallet-uniques", - "pallet-utility", + "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-storage", + "pallet-treasury", + "pallet-tx-pause", + "pallet-uniques", + "pallet-utility", + "pallet-vesting", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "pallet-xcm-bridge-hub", + "pallet-xcm-bridge-hub-router", + "parachains-common", + "parachains-runtimes-test-utils", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-cli", + "polkadot-collator-protocol", + "polkadot-core-primitives", + "polkadot-dispute-distribution", + "polkadot-erasure-coding", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", + "polkadot-node-core-pvf-checker", + "polkadot-node-core-pvf-common", + "polkadot-node-core-pvf-execute-worker", + "polkadot-node-core-pvf-prepare-worker", + "polkadot-node-core-runtime-api", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime-common", + "polkadot-runtime-metrics", + "polkadot-runtime-parachains", + "polkadot-sdk-frame", + "polkadot-service", + "polkadot-statement-distribution", + "polkadot-statement-table", + "rococo-runtime-constants", + "sc-allocator", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-chain-spec-derive", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", + "sc-consensus-manual-seal", + "sc-consensus-pow", + "sc-consensus-slots", + "sc-executor", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "sc-informant", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-light", + "sc-network-statement", + "sc-network-sync", + "sc-network-transactions", + "sc-network-types", + "sc-offchain", + "sc-proposer-metrics", + "sc-rpc", + "sc-rpc-api", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-service", + "sc-state-db", + "sc-statement-store", + "sc-storage-monitor", + "sc-sync-state-rpc", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-tracing-proc-macro", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "slot-range-helper", + "snowbridge-beacon-primitives", + "snowbridge-core", + "snowbridge-ethereum", + "snowbridge-outbound-queue-merkle-tree", + "snowbridge-outbound-queue-runtime-api", + "snowbridge-pallet-ethereum-client", + "snowbridge-pallet-ethereum-client-fixtures", + "snowbridge-pallet-inbound-queue", + "snowbridge-pallet-inbound-queue-fixtures", + "snowbridge-pallet-outbound-queue", + "snowbridge-pallet-system", + "snowbridge-router-primitives", + "snowbridge-runtime-common", + "snowbridge-runtime-test-common", + "snowbridge-system-runtime-api", + "sp-api", + "sp-api-proc-macro", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", + "sp-consensus-pow", + "sp-consensus-slots", + "sp-core", + "sp-core-hashing", + "sp-core-hashing-proc-macro", + "sp-crypto-ec-utils 0.10.0", + "sp-crypto-hashing", + "sp-crypto-hashing-proc-macro", + "sp-database", + "sp-debug-derive 14.0.0", + "sp-externalities 0.25.0", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-keystore", + "sp-maybe-compressed-blob", + "sp-metadata-ir", + "sp-mixnet", + "sp-mmr-primitives", + "sp-npos-elections", + "sp-offchain", + "sp-panic-handler", + "sp-rpc", + "sp-runtime", + "sp-runtime-interface 24.0.0", + "sp-runtime-interface-proc-macro 17.0.0", + "sp-session", + "sp-staking", + "sp-state-machine", + "sp-statement-store", + "sp-std 14.0.0", + "sp-storage 19.0.0", + "sp-timestamp", + "sp-tracing 16.0.0", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "sp-version-proc-macro", + "sp-wasm-interface 20.0.0", + "sp-weights", + "staging-node-inspect", + "staging-parachain-info", + "staging-tracking-allocator", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "subkey", + "substrate-bip39", + "substrate-build-script-utils", + "substrate-frame-rpc-support", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "substrate-rpc-client", + "substrate-state-trie-migration-rpc", + "substrate-wasm-builder", + "testnet-parachains-constants", + "tracing-gum", + "tracing-gum-proc-macro", + "westend-runtime-constants", + "xcm-emulator", + "xcm-fee-payment-runtime-api", + "xcm-procedural", + "xcm-simulator", +] + +[[package]] +name = "polkadot-sdk-docs" +version = "0.0.1" +dependencies = [ + "cumulus-client-service", + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-storage-weight-reclaim", + "docify", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support", + "frame-system", + "kitchensink-runtime", + "pallet-assets", + "pallet-aura", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-broker", + "pallet-collective", + "pallet-default-config-example", + "pallet-democracy", + "pallet-example-offchain-worker", + "pallet-example-single-block-migrations", + "pallet-examples", + "pallet-multisig", + "pallet-nfts", + "pallet-preimage", + "pallet-proxy", + "pallet-referenda", + "pallet-scheduler", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-uniques", + "pallet-utility", "parity-scale-codec", "polkadot-sdk-frame", "sc-cli", @@ -20231,102 +20507,26 @@ dependencies = [ "clap 4.5.3", "clap_complete", "criterion", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-metadata-hash-extension", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", "futures", "jsonrpsee", "kitchensink-runtime", "log", - "mmr-gadget", "nix 0.28.0", "node-primitives", "node-rpc", "node-testing", - "pallet-asset-conversion-tx-payment", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-balances", - "pallet-contracts", - "pallet-glutton", - "pallet-im-online", - "pallet-root-testing", - "pallet-skip-feeless-payment", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", "parity-scale-codec", "platforms", + "polkadot-sdk", "rand 0.8.5", "regex", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-beefy", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-network-common", - "sc-network-statement", - "sc-network-sync", - "sc-offchain", - "sc-rpc", - "sc-service", "sc-service-test", - "sc-statement-store", - "sc-storage-monitor", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", "scale-info", "serde", "serde_json", "soketto", - "sp-api", - "sp-application-crypto", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-consensus-grandpa", - "sp-core", - "sp-crypto-hashing", - "sp-externalities 0.25.0", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-keystore", - "sp-mixnet", - "sp-mmr-primitives", - "sp-runtime", - "sp-state-machine", - "sp-statement-store", - "sp-timestamp", - "sp-tracing 16.0.0", - "sp-transaction-storage-proof", - "sp-trie", "staging-node-inspect", - "substrate-build-script-utils", "substrate-cli-test-utils", - "substrate-rpc-client", "tempfile", "tokio", "tokio-util", diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 50a4d45c2ad3..9f1308d5096c 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -55,6 +55,7 @@ std = [ "frame-benchmarking?/std", "frame-election-provider-support?/std", "frame-executive?/std", + "frame-metadata-hash-extension?/std", "frame-support-procedural?/std", "frame-support?/std", "frame-system-benchmarking?/std", @@ -535,7 +536,7 @@ with-tracing = [ "sp-tracing?/with-tracing", "sp-tracing?/with-tracing", ] -runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-delegated-staking", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] +runtime = ["assets-common", "binary-merkle-tree", "bp-asset-hub-rococo", "bp-asset-hub-westend", "bp-bridge-hub-cumulus", "bp-bridge-hub-kusama", "bp-bridge-hub-polkadot", "bp-bridge-hub-rococo", "bp-bridge-hub-westend", "bp-header-chain", "bp-kusama", "bp-messages", "bp-parachains", "bp-polkadot", "bp-polkadot-bulletin", "bp-polkadot-core", "bp-relayers", "bp-rococo", "bp-runtime", "bp-test-utils", "bp-westend", "bp-xcm-bridge-hub", "bp-xcm-bridge-hub-router", "bridge-hub-common", "bridge-runtime-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-parachain-system-proc-macro", "cumulus-pallet-session-benchmarking", "cumulus-pallet-solo-to-para", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-ping", "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-proof-size-hostfunction", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-benchmarking-pallet-pov", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-executive", "frame-metadata-hash-extension", "frame-support", "frame-support-procedural", "frame-support-procedural-tools-derive", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", "pallet-alliance", "pallet-asset-conversion", "pallet-asset-conversion-ops", "pallet-asset-conversion-tx-payment", "pallet-asset-rate", "pallet-asset-tx-payment", "pallet-assets", "pallet-atomic-swap", "pallet-aura", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-parachains", "pallet-bridge-relayers", "pallet-broker", "pallet-child-bounties", "pallet-collator-selection", "pallet-collective", "pallet-collective-content", "pallet-contracts", "pallet-contracts-proc-macro", "pallet-contracts-uapi", "pallet-conviction-voting", "pallet-core-fellowship", "pallet-delegated-staking", "pallet-democracy", "pallet-dev-mode", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-glutton", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-insecure-randomness-collective-flip", "pallet-lottery", "pallet-membership", "pallet-message-queue", "pallet-migrations", "pallet-mixnet", "pallet-mmr", "pallet-multisig", "pallet-nft-fractionalization", "pallet-nfts", "pallet-nfts-runtime-api", "pallet-nis", "pallet-node-authorization", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-paged-list", "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", "pallet-remark", "pallet-root-offences", "pallet-root-testing", "pallet-safe-mode", "pallet-salary", "pallet-scheduler", "pallet-scored-pool", "pallet-session", "pallet-session-benchmarking", "pallet-skip-feeless-payment", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-staking-reward-fn", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-statement", "pallet-sudo", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-transaction-storage", "pallet-treasury", "pallet-tx-pause", "pallet-uniques", "pallet-utility", "pallet-vesting", "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "pallet-xcm-bridge-hub", "pallet-xcm-bridge-hub-router", "parachains-common", "polkadot-core-primitives", "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-metrics", "polkadot-runtime-parachains", "polkadot-sdk-frame", "rococo-runtime-constants", "sc-chain-spec-derive", "sc-tracing-proc-macro", "slot-range-helper", "snowbridge-beacon-primitives", "snowbridge-core", "snowbridge-ethereum", "snowbridge-outbound-queue-merkle-tree", "snowbridge-outbound-queue-runtime-api", "snowbridge-pallet-ethereum-client", "snowbridge-pallet-ethereum-client-fixtures", "snowbridge-pallet-inbound-queue", "snowbridge-pallet-inbound-queue-fixtures", "snowbridge-pallet-outbound-queue", "snowbridge-pallet-system", "snowbridge-router-primitives", "snowbridge-runtime-common", "snowbridge-system-runtime-api", "sp-api", "sp-api-proc-macro", "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", "sp-consensus-babe", "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-pow", "sp-consensus-slots", "sp-core", "sp-crypto-ec-utils", "sp-crypto-hashing", "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-externalities", "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", "sp-keystore", "sp-metadata-ir", "sp-mixnet", "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-runtime-interface", "sp-runtime-interface-proc-macro", "sp-session", "sp-staking", "sp-state-machine", "sp-statement-store", "sp-std", "sp-storage", "sp-timestamp", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", "sp-version", "sp-version-proc-macro", "sp-wasm-interface", "sp-weights", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", "substrate-bip39", "testnet-parachains-constants", "tracing-gum-proc-macro", "westend-runtime-constants", "xcm-fee-payment-runtime-api", "xcm-procedural"] node = ["asset-test-utils", "bridge-hub-test-utils", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-parachain-inherent", "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-sproof-builder", "emulated-integration-tests-common", "fork-tree", "frame-benchmarking-cli", "frame-remote-externalities", "frame-support-procedural-tools", "generate-bags", "mmr-gadget", "mmr-rpc", "pallet-contracts-mock-network", "pallet-transaction-payment-rpc", "parachains-runtimes-test-utils", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-cli", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-erasure-coding", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-pvf-common", "polkadot-node-core-pvf-execute-worker", "polkadot-node-core-pvf-prepare-worker", "polkadot-node-core-runtime-api", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-rpc", "polkadot-service", "polkadot-statement-distribution", "polkadot-statement-table", "sc-allocator", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-consensus", "sc-consensus-aura", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-consensus-manual-seal", "sc-consensus-pow", "sc-consensus-slots", "sc-executor", "sc-executor-common", "sc-executor-polkavm", "sc-executor-wasmtime", "sc-informant", "sc-keystore", "sc-mixnet", "sc-network", "sc-network-common", "sc-network-gossip", "sc-network-light", "sc-network-statement", "sc-network-sync", "sc-network-transactions", "sc-network-types", "sc-offchain", "sc-proposer-metrics", "sc-rpc", "sc-rpc-api", "sc-rpc-server", "sc-rpc-spec-v2", "sc-service", "sc-state-db", "sc-statement-store", "sc-storage-monitor", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", "snowbridge-runtime-test-common", "sp-blockchain", "sp-consensus", "sp-core-hashing", "sp-core-hashing-proc-macro", "sp-database", "sp-maybe-compressed-blob", "sp-panic-handler", "sp-rpc", "staging-node-inspect", "staging-tracking-allocator", "std", "subkey", "substrate-build-script-utils", "substrate-frame-rpc-support", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", "substrate-rpc-client", "substrate-state-trie-migration-rpc", "substrate-wasm-builder", "tracing-gum", "xcm-emulator", "xcm-simulator"] tuples-96 = [ "frame-support-procedural?/tuples-96", @@ -778,6 +779,11 @@ path = "../substrate/frame/executive" default-features = false optional = true +[dependencies.frame-metadata-hash-extension] +path = "../substrate/frame/metadata-hash-extension" +default-features = false +optional = true + [dependencies.frame-support] path = "../substrate/frame/support" default-features = false diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs index fcb669e87d01..2e87c186edae 100644 --- a/umbrella/src/lib.rs +++ b/umbrella/src/lib.rs @@ -279,6 +279,10 @@ pub use frame_election_provider_support; #[cfg(feature = "frame-executive")] pub use frame_executive; +/// FRAME signed extension for verifying the metadata hash. +#[cfg(feature = "frame-metadata-hash-extension")] +pub use frame_metadata_hash_extension; + /// An externalities provided environment that can load itself from remote nodes or cached /// files. #[cfg(feature = "frame-remote-externalities")] From b50c977283305e6e1890be8e897f8713aa31b27d Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Thu, 23 May 2024 14:02:42 +0200 Subject: [PATCH 35/39] Lockfile Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 481580b8d6a6..7cc8295b2dae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13809,7 +13809,7 @@ dependencies = [ [[package]] name = "polkadot-sdk" -version = "1.9.0" +version = "0.1.0" dependencies = [ "asset-test-utils", "assets-common", From 70a41f478287ab111b29cfd1a78d293216138a3c Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Thu, 23 May 2024 14:52:27 +0200 Subject: [PATCH 36/39] Fix prdoc Signed-off-by: Oliver Tale-Yazdi --- prdoc/pr_3935.prdoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/prdoc/pr_3935.prdoc b/prdoc/pr_3935.prdoc index a598d2c0166f..93b0fba5d99b 100644 --- a/prdoc/pr_3935.prdoc +++ b/prdoc/pr_3935.prdoc @@ -26,3 +26,5 @@ crates: bump: patch - name: polkadot-runtime-parachains bump: patch + - name: polkadot-sdk + bump: major From 53add3002d2e38e694309e4e4f83b2e3ec4231e5 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Fri, 24 May 2024 13:52:29 +0200 Subject: [PATCH 37/39] Fix doctest Signed-off-by: Oliver Tale-Yazdi --- Cargo.lock | 1 + docs/sdk/Cargo.toml | 1 + docs/sdk/src/reference_docs/umbrella_crate.rs | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 7cc8295b2dae..3f88bb3a7817 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14230,6 +14230,7 @@ dependencies = [ "pallet-uniques", "pallet-utility", "parity-scale-codec", + "polkadot-sdk", "polkadot-sdk-frame", "sc-cli", "sc-client-db", diff --git a/docs/sdk/Cargo.toml b/docs/sdk/Cargo.toml index 4a4f333de793..f261e60705d1 100644 --- a/docs/sdk/Cargo.toml +++ b/docs/sdk/Cargo.toml @@ -30,6 +30,7 @@ simple-mermaid = "0.1.1" docify = "0.2.8" # Polkadot SDK deps, typically all should only be in scope such that we can link to their doc item. +polkadot-sdk = { path = "../../umbrella", features = ["runtime"] } node-cli = { package = "staging-node-cli", path = "../../substrate/bin/node/cli" } kitchensink-runtime = { path = "../../substrate/bin/node/runtime" } chain-spec-builder = { package = "staging-chain-spec-builder", path = "../../substrate/bin/utils/chain-spec-builder" } diff --git a/docs/sdk/src/reference_docs/umbrella_crate.rs b/docs/sdk/src/reference_docs/umbrella_crate.rs index c3760a4eaf0c..9751b0ad5ad6 100644 --- a/docs/sdk/src/reference_docs/umbrella_crate.rs +++ b/docs/sdk/src/reference_docs/umbrella_crate.rs @@ -46,7 +46,7 @@ //! The umbrella crate can be added to your runtime crate like this: //! //! `polkadot-sdk = { path = "../../../../umbrella", features = ["runtime"], default-features = -//! false}` +//! false }` //! //! or for a node: //! From 176181c1ec0eec346917d69bd46dd54f507393f8 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Fri, 24 May 2024 13:55:13 +0200 Subject: [PATCH 38/39] Fix link Signed-off-by: Oliver Tale-Yazdi --- .config/lychee.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/lychee.toml b/.config/lychee.toml index b7b5b83f35bc..e94b9011e2e7 100644 --- a/.config/lychee.toml +++ b/.config/lychee.toml @@ -52,4 +52,5 @@ exclude = [ # 403 rate limited: "https://etherscan.io/block/11090290", "https://substrate.stackexchange.com/.*", + "https://subscan.io/", ] From d064ced5e4406db87bcae5f00429c96b31241d59 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Fri, 24 May 2024 14:47:32 +0200 Subject: [PATCH 39/39] Toml format Signed-off-by: Oliver Tale-Yazdi --- .config/lychee.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/lychee.toml b/.config/lychee.toml index e94b9011e2e7..1de9fcd559dd 100644 --- a/.config/lychee.toml +++ b/.config/lychee.toml @@ -51,6 +51,6 @@ exclude = [ "https://www.reddit.com/r/rust/comments/3spfh1/does_collect_allocate_more_than_once_while/", # 403 rate limited: "https://etherscan.io/block/11090290", - "https://substrate.stackexchange.com/.*", "https://subscan.io/", + "https://substrate.stackexchange.com/.*", ]