[workspace.package]
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2021"
homepage = "https://paritytech.github.io/polkadot-sdk/"
license = "GPL-3.0-only"
repository = "https://github.com/paritytech/polkadot-sdk.git"

[workspace]
resolver = "2"

members = [
	"bridges/bin/runtime-common",
	"bridges/chains/chain-asset-hub-rococo",
	"bridges/chains/chain-asset-hub-westend",
	"bridges/chains/chain-bridge-hub-cumulus",
	"bridges/chains/chain-bridge-hub-kusama",
	"bridges/chains/chain-bridge-hub-polkadot",
	"bridges/chains/chain-bridge-hub-rococo",
	"bridges/chains/chain-bridge-hub-westend",
	"bridges/chains/chain-kusama",
	"bridges/chains/chain-polkadot",
	"bridges/chains/chain-polkadot-bulletin",
	"bridges/chains/chain-rococo",
	"bridges/chains/chain-westend",
	"bridges/modules/beefy",
	"bridges/modules/grandpa",
	"bridges/modules/messages",
	"bridges/modules/parachains",
	"bridges/modules/relayers",
	"bridges/modules/xcm-bridge-hub",
	"bridges/modules/xcm-bridge-hub-router",
	"bridges/primitives/beefy",
	"bridges/primitives/header-chain",
	"bridges/primitives/messages",
	"bridges/primitives/parachains",
	"bridges/primitives/polkadot-core",
	"bridges/primitives/relayers",
	"bridges/primitives/runtime",
	"bridges/primitives/test-utils",
	"bridges/primitives/xcm-bridge-hub",
	"bridges/primitives/xcm-bridge-hub-router",
	"bridges/relays/client-substrate",
	"bridges/relays/equivocation",
	"bridges/relays/finality",
	"bridges/relays/lib-substrate-relay",
	"bridges/relays/messages",
	"bridges/relays/parachains",
	"bridges/relays/utils",
	"bridges/snowbridge/pallets/ethereum-client",
	"bridges/snowbridge/pallets/ethereum-client/fixtures",
	"bridges/snowbridge/pallets/inbound-queue",
	"bridges/snowbridge/pallets/inbound-queue/fixtures",
	"bridges/snowbridge/pallets/outbound-queue",
	"bridges/snowbridge/pallets/outbound-queue/merkle-tree",
	"bridges/snowbridge/pallets/outbound-queue/runtime-api",
	"bridges/snowbridge/pallets/system",
	"bridges/snowbridge/pallets/system/runtime-api",
	"bridges/snowbridge/primitives/beacon",
	"bridges/snowbridge/primitives/core",
	"bridges/snowbridge/primitives/ethereum",
	"bridges/snowbridge/primitives/router",
	"bridges/snowbridge/runtime/runtime-common",
	"bridges/snowbridge/runtime/test-common",
	"cumulus/bin/pov-validator",
	"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/relay-chain-inprocess-interface",
	"cumulus/client/relay-chain-interface",
	"cumulus/client/relay-chain-minimal-node",
	"cumulus/client/relay-chain-rpc-interface",
	"cumulus/client/service",
	"cumulus/pallets/aura-ext",
	"cumulus/pallets/collator-selection",
	"cumulus/pallets/dmp-queue",
	"cumulus/pallets/parachain-system",
	"cumulus/pallets/parachain-system/proc-macro",
	"cumulus/pallets/session-benchmarking",
	"cumulus/pallets/solo-to-para",
	"cumulus/pallets/weight-reclaim",
	"cumulus/pallets/xcm",
	"cumulus/pallets/xcmp-queue",
	"cumulus/parachains/common",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend",
	"cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal",
	"cumulus/parachains/integration-tests/emulated/chains/relays/rococo",
	"cumulus/parachains/integration-tests/emulated/chains/relays/westend",
	"cumulus/parachains/integration-tests/emulated/common",
	"cumulus/parachains/integration-tests/emulated/networks/rococo-system",
	"cumulus/parachains/integration-tests/emulated/networks/rococo-westend-system",
	"cumulus/parachains/integration-tests/emulated/networks/westend-system",
	"cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo",
	"cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend",
	"cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo",
	"cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend",
	"cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend",
	"cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo",
	"cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend",
	"cumulus/parachains/integration-tests/emulated/tests/people/people-rococo",
	"cumulus/parachains/integration-tests/emulated/tests/people/people-westend",
	"cumulus/parachains/pallets/collective-content",
	"cumulus/parachains/pallets/parachain-info",
	"cumulus/parachains/pallets/ping",
	"cumulus/parachains/runtimes/assets/asset-hub-rococo",
	"cumulus/parachains/runtimes/assets/asset-hub-westend",
	"cumulus/parachains/runtimes/assets/common",
	"cumulus/parachains/runtimes/assets/test-utils",
	"cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo",
	"cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend",
	"cumulus/parachains/runtimes/bridge-hubs/common",
	"cumulus/parachains/runtimes/bridge-hubs/test-utils",
	"cumulus/parachains/runtimes/collectives/collectives-westend",
	"cumulus/parachains/runtimes/constants",
	"cumulus/parachains/runtimes/contracts/contracts-rococo",
	"cumulus/parachains/runtimes/coretime/coretime-rococo",
	"cumulus/parachains/runtimes/coretime/coretime-westend",
	"cumulus/parachains/runtimes/glutton/glutton-westend",
	"cumulus/parachains/runtimes/people/people-rococo",
	"cumulus/parachains/runtimes/people/people-westend",
	"cumulus/parachains/runtimes/test-utils",
	"cumulus/parachains/runtimes/testing/penpal",
	"cumulus/parachains/runtimes/testing/rococo-parachain",
	"cumulus/polkadot-omni-node",
	"cumulus/polkadot-omni-node/lib",
	"cumulus/polkadot-parachain",
	"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",
	"cumulus/test/client",
	"cumulus/test/relay-sproof-builder",
	"cumulus/test/runtime",
	"cumulus/test/service",
	"cumulus/xcm/xcm-emulator",
	"docs/sdk",
	"docs/sdk/packages/guides/first-pallet",
	"docs/sdk/packages/guides/first-runtime",
	"docs/sdk/src/reference_docs/chain_spec_runtime",
	"polkadot",
	"polkadot/cli",
	"polkadot/core-primitives",
	"polkadot/erasure-coding",
	"polkadot/erasure-coding/fuzzer",
	"polkadot/node/collation-generation",
	"polkadot/node/core/approval-voting",
	"polkadot/node/core/approval-voting-parallel",
	"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/gum",
	"polkadot/node/gum/proc-macro",
	"polkadot/node/malus",
	"polkadot/node/metrics",
	"polkadot/node/network/approval-distribution",
	"polkadot/node/network/availability-distribution",
	"polkadot/node/network/availability-recovery",
	"polkadot/node/network/bitfield-distribution",
	"polkadot/node/network/bridge",
	"polkadot/node/network/collator-protocol",
	"polkadot/node/network/dispute-distribution",
	"polkadot/node/network/gossip-support",
	"polkadot/node/network/protocol",
	"polkadot/node/network/statement-distribution",
	"polkadot/node/overseer",
	"polkadot/node/primitives",
	"polkadot/node/service",
	"polkadot/node/subsystem",
	"polkadot/node/subsystem-bench",
	"polkadot/node/subsystem-test-helpers",
	"polkadot/node/subsystem-types",
	"polkadot/node/subsystem-util",
	"polkadot/node/test/client",
	"polkadot/node/test/service",
	"polkadot/node/tracking-allocator",
	"polkadot/node/zombienet-backchannel",
	"polkadot/parachain",
	"polkadot/parachain/test-parachains",
	"polkadot/parachain/test-parachains/adder",
	"polkadot/parachain/test-parachains/adder/collator",
	"polkadot/parachain/test-parachains/halt",
	"polkadot/parachain/test-parachains/undying",
	"polkadot/parachain/test-parachains/undying/collator",
	"polkadot/primitives",
	"polkadot/primitives/test-helpers",
	"polkadot/rpc",
	"polkadot/runtime/common",
	"polkadot/runtime/common/slot_range_helper",
	"polkadot/runtime/metrics",
	"polkadot/runtime/parachains",
	"polkadot/runtime/rococo",
	"polkadot/runtime/rococo/constants",
	"polkadot/runtime/test-runtime",
	"polkadot/runtime/test-runtime/constants",
	"polkadot/runtime/westend",
	"polkadot/runtime/westend/constants",
	"polkadot/statement-table",
	"polkadot/utils/generate-bags",
	"polkadot/utils/remote-ext-tests/bags-list",
	"polkadot/xcm",
	"polkadot/xcm/docs",
	"polkadot/xcm/pallet-xcm",
	"polkadot/xcm/pallet-xcm-benchmarks",
	"polkadot/xcm/procedural",
	"polkadot/xcm/xcm-builder",
	"polkadot/xcm/xcm-executor",
	"polkadot/xcm/xcm-executor/integration-tests",
	"polkadot/xcm/xcm-runtime-apis",
	"polkadot/xcm/xcm-simulator",
	"polkadot/xcm/xcm-simulator/example",
	"polkadot/xcm/xcm-simulator/fuzzer",
	"polkadot/zombienet-sdk-tests",
	"substrate/bin/node/bench",
	"substrate/bin/node/cli",
	"substrate/bin/node/inspect",
	"substrate/bin/node/primitives",
	"substrate/bin/node/rpc",
	"substrate/bin/node/runtime",
	"substrate/bin/node/testing",
	"substrate/bin/utils/chain-spec-builder",
	"substrate/bin/utils/subkey",
	"substrate/client/allocator",
	"substrate/client/api",
	"substrate/client/authority-discovery",
	"substrate/client/basic-authorship",
	"substrate/client/block-builder",
	"substrate/client/chain-spec",
	"substrate/client/chain-spec/derive",
	"substrate/client/cli",
	"substrate/client/consensus/aura",
	"substrate/client/consensus/babe",
	"substrate/client/consensus/babe/rpc",
	"substrate/client/consensus/beefy",
	"substrate/client/consensus/beefy/rpc",
	"substrate/client/consensus/common",
	"substrate/client/consensus/epochs",
	"substrate/client/consensus/grandpa",
	"substrate/client/consensus/grandpa/rpc",
	"substrate/client/consensus/manual-seal",
	"substrate/client/consensus/pow",
	"substrate/client/consensus/slots",
	"substrate/client/db",
	"substrate/client/executor",
	"substrate/client/executor/common",
	"substrate/client/executor/polkavm",
	"substrate/client/executor/runtime-test",
	"substrate/client/executor/wasmtime",
	"substrate/client/informant",
	"substrate/client/keystore",
	"substrate/client/merkle-mountain-range",
	"substrate/client/merkle-mountain-range/rpc",
	"substrate/client/mixnet",
	"substrate/client/network",
	"substrate/client/network-gossip",
	"substrate/client/network/common",
	"substrate/client/network/light",
	"substrate/client/network/statement",
	"substrate/client/network/sync",
	"substrate/client/network/test",
	"substrate/client/network/transactions",
	"substrate/client/network/types",
	"substrate/client/offchain",
	"substrate/client/proposer-metrics",
	"substrate/client/rpc",
	"substrate/client/rpc-api",
	"substrate/client/rpc-servers",
	"substrate/client/rpc-spec-v2",
	"substrate/client/runtime-utilities",
	"substrate/client/service",
	"substrate/client/service/test",
	"substrate/client/state-db",
	"substrate/client/statement-store",
	"substrate/client/storage-monitor",
	"substrate/client/sync-state-rpc",
	"substrate/client/sysinfo",
	"substrate/client/telemetry",
	"substrate/client/tracing",
	"substrate/client/tracing/proc-macro",
	"substrate/client/transaction-pool",
	"substrate/client/transaction-pool/api",
	"substrate/client/utils",
	"substrate/deprecated/hashing",
	"substrate/deprecated/hashing/proc-macro",
	"substrate/frame",
	"substrate/frame/alliance",
	"substrate/frame/asset-conversion",
	"substrate/frame/asset-conversion/ops",
	"substrate/frame/asset-rate",
	"substrate/frame/asset-rewards",
	"substrate/frame/assets",
	"substrate/frame/assets-freezer",
	"substrate/frame/atomic-swap",
	"substrate/frame/aura",
	"substrate/frame/authority-discovery",
	"substrate/frame/authorship",
	"substrate/frame/babe",
	"substrate/frame/bags-list",
	"substrate/frame/bags-list/fuzzer",
	"substrate/frame/bags-list/remote-tests",
	"substrate/frame/balances",
	"substrate/frame/beefy",
	"substrate/frame/beefy-mmr",
	"substrate/frame/benchmarking",
	"substrate/frame/benchmarking/pov",
	"substrate/frame/bounties",
	"substrate/frame/broker",
	"substrate/frame/child-bounties",
	"substrate/frame/collective",
	"substrate/frame/contracts",
	"substrate/frame/contracts/fixtures",
	"substrate/frame/contracts/mock-network",
	"substrate/frame/contracts/proc-macro",
	"substrate/frame/contracts/uapi",
	"substrate/frame/conviction-voting",
	"substrate/frame/core-fellowship",
	"substrate/frame/delegated-staking",
	"substrate/frame/democracy",
	"substrate/frame/election-provider-multi-phase",
	"substrate/frame/election-provider-multi-phase/test-staking-e2e",
	"substrate/frame/election-provider-support",
	"substrate/frame/election-provider-support/benchmarking",
	"substrate/frame/election-provider-support/solution-type",
	"substrate/frame/election-provider-support/solution-type/fuzzer",
	"substrate/frame/elections-phragmen",
	"substrate/frame/examples",
	"substrate/frame/examples/authorization-tx-extension",
	"substrate/frame/examples/basic",
	"substrate/frame/examples/default-config",
	"substrate/frame/examples/dev-mode",
	"substrate/frame/examples/frame-crate",
	"substrate/frame/examples/kitchensink",
	"substrate/frame/examples/multi-block-migrations",
	"substrate/frame/examples/offchain-worker",
	"substrate/frame/examples/single-block-migrations",
	"substrate/frame/examples/split",
	"substrate/frame/examples/tasks",
	"substrate/frame/examples/view-functions",
	"substrate/frame/executive",
	"substrate/frame/fast-unstake",
	"substrate/frame/glutton",
	"substrate/frame/grandpa",
	"substrate/frame/identity",
	"substrate/frame/im-online",
	"substrate/frame/indices",
	"substrate/frame/insecure-randomness-collective-flip",
	"substrate/frame/lottery",
	"substrate/frame/membership",
	"substrate/frame/merkle-mountain-range",
	"substrate/frame/message-queue",
	"substrate/frame/metadata-hash-extension",
	"substrate/frame/migrations",
	"substrate/frame/mixnet",
	"substrate/frame/multisig",
	"substrate/frame/nft-fractionalization",
	"substrate/frame/nfts",
	"substrate/frame/nfts/runtime-api",
	"substrate/frame/nis",
	"substrate/frame/node-authorization",
	"substrate/frame/nomination-pools",
	"substrate/frame/nomination-pools/benchmarking",
	"substrate/frame/nomination-pools/fuzzer",
	"substrate/frame/nomination-pools/runtime-api",
	"substrate/frame/nomination-pools/test-delegate-stake",
	"substrate/frame/offences",
	"substrate/frame/offences/benchmarking",
	"substrate/frame/paged-list",
	"substrate/frame/paged-list/fuzzer",
	"substrate/frame/parameters",
	"substrate/frame/preimage",
	"substrate/frame/proxy",
	"substrate/frame/ranked-collective",
	"substrate/frame/recovery",
	"substrate/frame/referenda",
	"substrate/frame/remark",
	"substrate/frame/revive",
	"substrate/frame/revive/fixtures",
	"substrate/frame/revive/mock-network",
	"substrate/frame/revive/proc-macro",
	"substrate/frame/revive/rpc",
	"substrate/frame/revive/uapi",
	"substrate/frame/root-offences",
	"substrate/frame/root-testing",
	"substrate/frame/safe-mode",
	"substrate/frame/salary",
	"substrate/frame/sassafras",
	"substrate/frame/scheduler",
	"substrate/frame/scored-pool",
	"substrate/frame/session",
	"substrate/frame/session/benchmarking",
	"substrate/frame/society",
	"substrate/frame/staking",
	"substrate/frame/staking/reward-curve",
	"substrate/frame/staking/reward-fn",
	"substrate/frame/staking/runtime-api",
	"substrate/frame/state-trie-migration",
	"substrate/frame/statement",
	"substrate/frame/sudo",
	"substrate/frame/support",
	"substrate/frame/support/procedural",
	"substrate/frame/support/procedural/tools",
	"substrate/frame/support/procedural/tools/derive",
	"substrate/frame/support/test",
	"substrate/frame/support/test/compile_pass",
	"substrate/frame/support/test/pallet",
	"substrate/frame/support/test/stg_frame_crate",
	"substrate/frame/system",
	"substrate/frame/system/benchmarking",
	"substrate/frame/system/rpc/runtime-api",
	"substrate/frame/timestamp",
	"substrate/frame/tips",
	"substrate/frame/transaction-payment",
	"substrate/frame/transaction-payment/asset-conversion-tx-payment",
	"substrate/frame/transaction-payment/asset-tx-payment",
	"substrate/frame/transaction-payment/rpc",
	"substrate/frame/transaction-payment/rpc/runtime-api",
	"substrate/frame/transaction-payment/skip-feeless-payment",
	"substrate/frame/transaction-storage",
	"substrate/frame/treasury",
	"substrate/frame/try-runtime",
	"substrate/frame/tx-pause",
	"substrate/frame/uniques",
	"substrate/frame/utility",
	"substrate/frame/verify-signature",
	"substrate/frame/vesting",
	"substrate/frame/whitelist",
	"substrate/primitives/api",
	"substrate/primitives/api/proc-macro",
	"substrate/primitives/api/test",
	"substrate/primitives/application-crypto",
	"substrate/primitives/application-crypto/test",
	"substrate/primitives/arithmetic",
	"substrate/primitives/arithmetic/fuzzer",
	"substrate/primitives/authority-discovery",
	"substrate/primitives/block-builder",
	"substrate/primitives/blockchain",
	"substrate/primitives/consensus/aura",
	"substrate/primitives/consensus/babe",
	"substrate/primitives/consensus/beefy",
	"substrate/primitives/consensus/common",
	"substrate/primitives/consensus/grandpa",
	"substrate/primitives/consensus/pow",
	"substrate/primitives/consensus/sassafras",
	"substrate/primitives/consensus/slots",
	"substrate/primitives/core",
	"substrate/primitives/core/fuzz",
	"substrate/primitives/crypto/ec-utils",
	"substrate/primitives/crypto/hashing",
	"substrate/primitives/crypto/hashing/proc-macro",
	"substrate/primitives/database",
	"substrate/primitives/debug-derive",
	"substrate/primitives/externalities",
	"substrate/primitives/genesis-builder",
	"substrate/primitives/inherents",
	"substrate/primitives/io",
	"substrate/primitives/keyring",
	"substrate/primitives/keystore",
	"substrate/primitives/maybe-compressed-blob",
	"substrate/primitives/merkle-mountain-range",
	"substrate/primitives/metadata-ir",
	"substrate/primitives/mixnet",
	"substrate/primitives/npos-elections",
	"substrate/primitives/npos-elections/fuzzer",
	"substrate/primitives/offchain",
	"substrate/primitives/panic-handler",
	"substrate/primitives/rpc",
	"substrate/primitives/runtime",
	"substrate/primitives/runtime-interface",
	"substrate/primitives/runtime-interface/proc-macro",
	"substrate/primitives/runtime-interface/test",
	"substrate/primitives/runtime-interface/test-wasm",
	"substrate/primitives/runtime-interface/test-wasm-deprecated",
	"substrate/primitives/session",
	"substrate/primitives/staking",
	"substrate/primitives/state-machine",
	"substrate/primitives/statement-store",
	"substrate/primitives/std",
	"substrate/primitives/storage",
	"substrate/primitives/test-primitives",
	"substrate/primitives/timestamp",
	"substrate/primitives/tracing",
	"substrate/primitives/transaction-pool",
	"substrate/primitives/transaction-storage-proof",
	"substrate/primitives/trie",
	"substrate/primitives/version",
	"substrate/primitives/version/proc-macro",
	"substrate/primitives/wasm-interface",
	"substrate/primitives/weights",
	"substrate/scripts/ci/node-template-release",
	"substrate/test-utils",
	"substrate/test-utils/cli",
	"substrate/test-utils/client",
	"substrate/test-utils/runtime",
	"substrate/test-utils/runtime/client",
	"substrate/test-utils/runtime/transaction-pool",
	"substrate/utils/binary-merkle-tree",
	"substrate/utils/build-script-utils",
	"substrate/utils/fork-tree",
	"substrate/utils/frame/benchmarking-cli",
	"substrate/utils/frame/generate-bags",
	"substrate/utils/frame/generate-bags/node-runtime",
	"substrate/utils/frame/omni-bencher",
	"substrate/utils/frame/remote-externalities",
	"substrate/utils/frame/rpc/client",
	"substrate/utils/frame/rpc/state-trie-migration-rpc",
	"substrate/utils/frame/rpc/support",
	"substrate/utils/frame/rpc/system",
	"substrate/utils/prometheus",
	"substrate/utils/substrate-bip39",
	"substrate/utils/wasm-builder",
	"templates/minimal/node",
	"templates/minimal/pallets/template",
	"templates/minimal/runtime",
	"templates/parachain",
	"templates/parachain/node",
	"templates/parachain/pallets/template",
	"templates/parachain/runtime",
	"templates/solochain/node",
	"templates/solochain/pallets/template",
	"templates/solochain/runtime",
	"templates/zombienet",
	"umbrella",
]

default-members = [
	"cumulus/polkadot-omni-node",
	"cumulus/polkadot-parachain",
	"polkadot",
	"substrate/bin/node/cli",
]

[workspace.lints.rust]
suspicious_double_ref_op = { level = "allow", priority = 2 }
# `substrate_runtime` is a common `cfg` condition name used in the repo.
unexpected_cfgs = { level = "warn", check-cfg = [
	'cfg(build_opt_level, values("3"))',
	'cfg(build_profile, values("debug", "release"))',
	'cfg(enable_alloc_error_handler)',
	'cfg(fuzzing)',
	'cfg(substrate_runtime)',
] }

[workspace.lints.clippy]
all = { level = "allow", priority = 0 }
bind_instead_of_map = { level = "allow", priority = 2 }              # stylistic
borrowed-box = { level = "allow", priority = 2 }                     # Reasonable to fix this one
complexity = { level = "warn", priority = 1 }
correctness = { level = "warn", priority = 1 }
default_constructed_unit_structs = { level = "allow", priority = 2 } # stylistic
derivable_impls = { level = "allow", priority = 2 }                  # false positives
eq_op = { level = "allow", priority = 2 }                            # In tests we test equality.
erasing_op = { level = "allow", priority = 2 }                       # E.g. 0 * DOLLARS
extra-unused-type-parameters = { level = "allow", priority = 2 }     # stylistic
identity-op = { level = "allow", priority = 2 }                      # One case where we do 0 +
if-same-then-else = { level = "allow", priority = 2 }
needless-lifetimes = { level = "allow", priority = 2 }               # generated code
needless_option_as_deref = { level = "allow", priority = 2 }         # false positives
nonminimal-bool = { level = "allow", priority = 2 }                  # maybe
option-map-unit-fn = { level = "allow", priority = 2 }               # stylistic
stable_sort_primitive = { level = "allow", priority = 2 }            # prefer stable sort
too-many-arguments = { level = "allow", priority = 2 }               # (Turning this on would lead to)
type_complexity = { level = "allow", priority = 2 }                  # raison d'etre
unit_arg = { level = "allow", priority = 2 }                         # stylistic
unnecessary_cast = { level = "allow", priority = 2 }                 # Types may change
useless_conversion = { level = "allow", priority = 2 }               # Types may change
while_immutable_condition = { level = "allow", priority = 2 }        # false positives
zero-prefixed-literal = { level = "allow", priority = 2 }            # 00_1000_000

[workspace.dependencies]
Inflector = { version = "0.11.4" }
aes-gcm = { version = "0.10" }
ahash = { version = "0.8.2" }
alloy-core = { version = "0.8.15", default-features = false }
always-assert = { version = "0.1" }
anyhow = { version = "1.0.81", default-features = false }
approx = { version = "0.5.1" }
aquamarine = { version = "0.5.0" }
arbitrary = { version = "1.3.2" }
ark-bls12-377 = { version = "0.4.0", default-features = false }
ark-bls12-377-ext = { version = "0.4.1", default-features = false }
ark-bls12-381 = { version = "0.4.0", default-features = false }
ark-bls12-381-ext = { version = "0.4.1", default-features = false }
ark-bw6-761 = { version = "0.4.0", default-features = false }
ark-bw6-761-ext = { version = "0.4.1", default-features = false }
ark-ec = { version = "0.4.2", default-features = false }
ark-ed-on-bls12-377 = { version = "0.4.0", default-features = false }
ark-ed-on-bls12-377-ext = { version = "0.4.1", default-features = false }
ark-ed-on-bls12-381-bandersnatch = { version = "0.4.0", default-features = false }
ark-ed-on-bls12-381-bandersnatch-ext = { version = "0.4.1", default-features = false }
ark-scale = { version = "0.0.12", default-features = false }
array-bytes = { version = "6.2.2", default-features = false }
arrayvec = { version = "0.7.4" }
assert_cmd = { version = "2.0.14" }
assert_matches = { version = "1.5.0" }
asset-hub-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo" }
asset-hub-rococo-runtime = { path = "cumulus/parachains/runtimes/assets/asset-hub-rococo", default-features = false }
asset-hub-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend" }
asset-hub-westend-runtime = { path = "cumulus/parachains/runtimes/assets/asset-hub-westend" }
asset-test-utils = { path = "cumulus/parachains/runtimes/assets/test-utils", default-features = false }
assets-common = { path = "cumulus/parachains/runtimes/assets/common", default-features = false }
async-channel = { version = "1.8.0" }
async-std = { version = "1.9.0" }
async-trait = { version = "0.1.79" }
asynchronous-codec = { version = "0.6" }
backoff = { version = "0.4" }
backtrace = { version = "0.3.71" }
binary-merkle-tree = { path = "substrate/utils/binary-merkle-tree", default-features = false }
bincode = { version = "1.3.3" }
bip39 = { version = "2.0.0" }
bitflags = { version = "1.3.2" }
bitvec = { version = "1.0.1", default-features = false }
blake2 = { version = "0.10.4", default-features = false }
blake2b_simd = { version = "1.0.2", default-features = false }
blake3 = { version = "1.5" }
bounded-collections = { version = "0.2.3", default-features = false }
bounded-vec = { version = "0.7" }
bp-asset-hub-rococo = { path = "bridges/chains/chain-asset-hub-rococo", default-features = false }
bp-asset-hub-westend = { path = "bridges/chains/chain-asset-hub-westend", default-features = false }
bp-beefy = { path = "bridges/primitives/beefy", default-features = false }
bp-bridge-hub-cumulus = { path = "bridges/chains/chain-bridge-hub-cumulus", default-features = false }
bp-bridge-hub-kusama = { default-features = false, path = "bridges/chains/chain-bridge-hub-kusama" }
bp-bridge-hub-polkadot = { path = "bridges/chains/chain-bridge-hub-polkadot", default-features = false }
bp-bridge-hub-rococo = { path = "bridges/chains/chain-bridge-hub-rococo", default-features = false }
bp-bridge-hub-westend = { path = "bridges/chains/chain-bridge-hub-westend", default-features = false }
bp-header-chain = { path = "bridges/primitives/header-chain", default-features = false }
bp-kusama = { default-features = false, path = "bridges/chains/chain-kusama" }
bp-messages = { path = "bridges/primitives/messages", default-features = false }
bp-parachains = { path = "bridges/primitives/parachains", default-features = false }
bp-polkadot = { default-features = false, path = "bridges/chains/chain-polkadot" }
bp-polkadot-bulletin = { path = "bridges/chains/chain-polkadot-bulletin", default-features = false }
bp-polkadot-core = { path = "bridges/primitives/polkadot-core", default-features = false }
bp-relayers = { path = "bridges/primitives/relayers", default-features = false }
bp-rococo = { path = "bridges/chains/chain-rococo", default-features = false }
bp-runtime = { path = "bridges/primitives/runtime", default-features = false }
bp-test-utils = { path = "bridges/primitives/test-utils", default-features = false }
bp-westend = { path = "bridges/chains/chain-westend", default-features = false }
bp-xcm-bridge-hub = { path = "bridges/primitives/xcm-bridge-hub", default-features = false }
bp-xcm-bridge-hub-router = { path = "bridges/primitives/xcm-bridge-hub-router", default-features = false }
bridge-hub-common = { path = "cumulus/parachains/runtimes/bridge-hubs/common", default-features = false }
bridge-hub-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo" }
bridge-hub-rococo-runtime = { path = "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo", default-features = false }
bridge-hub-test-utils = { path = "cumulus/parachains/runtimes/bridge-hubs/test-utils", default-features = false }
bridge-hub-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend" }
bridge-hub-westend-runtime = { path = "cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend", default-features = false }
bridge-runtime-common = { path = "bridges/bin/runtime-common", default-features = false }
bs58 = { version = "0.5.1", default-features = false }
build-helper = { version = "0.1.1" }
byte-slice-cast = { version = "1.2.1", default-features = false }
byteorder = { version = "1.3.2", default-features = false }
bytes = { version = "1.4.0", default-features = false }
cargo_metadata = { version = "0.15.4" }
cfg-expr = { version = "0.15.5" }
cfg-if = { version = "1.0" }
chain-spec-builder = { path = "substrate/bin/utils/chain-spec-builder", default-features = false, package = "staging-chain-spec-builder" }
chain-spec-guide-runtime = { path = "docs/sdk/src/reference_docs/chain_spec_runtime" }
chrono = { version = "0.4.31" }
cid = { version = "0.9.0" }
clap = { version = "4.5.13" }
clap-num = { version = "1.0.2" }
clap_complete = { version = "4.5.13" }
cmd_lib = { version = "1.9.5" }
coarsetime = { version = "0.1.22" }
codec = { version = "3.7.4", default-features = false, package = "parity-scale-codec" }
collectives-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend" }
collectives-westend-runtime = { path = "cumulus/parachains/runtimes/collectives/collectives-westend" }
color-eyre = { version = "0.6.3", default-features = false }
color-print = { version = "0.3.4" }
colored = { version = "2.0.4" }
comfy-table = { version = "7.1.0", default-features = false }
console = { version = "0.15.8" }
const-hex = { version = "1.10.0", default-features = false }
contracts-rococo-runtime = { path = "cumulus/parachains/runtimes/contracts/contracts-rococo" }
coretime-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo" }
coretime-rococo-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-rococo" }
coretime-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend" }
coretime-westend-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-westend" }
cpu-time = { version = "1.0.0" }
criterion = { version = "0.5.1", default-features = false }
cumulus-client-cli = { path = "cumulus/client/cli", default-features = false }
cumulus-client-collator = { path = "cumulus/client/collator", default-features = false }
cumulus-client-consensus-aura = { path = "cumulus/client/consensus/aura", default-features = false }
cumulus-client-consensus-common = { path = "cumulus/client/consensus/common", default-features = false }
cumulus-client-consensus-proposer = { path = "cumulus/client/consensus/proposer", default-features = false }
cumulus-client-consensus-relay-chain = { path = "cumulus/client/consensus/relay-chain", default-features = false }
cumulus-client-network = { path = "cumulus/client/network", default-features = false }
cumulus-client-parachain-inherent = { path = "cumulus/client/parachain-inherent", default-features = false }
cumulus-client-pov-recovery = { path = "cumulus/client/pov-recovery", default-features = false }
cumulus-client-service = { path = "cumulus/client/service", default-features = false }
cumulus-pallet-aura-ext = { path = "cumulus/pallets/aura-ext", default-features = false }
cumulus-pallet-dmp-queue = { default-features = false, path = "cumulus/pallets/dmp-queue" }
cumulus-pallet-parachain-system = { path = "cumulus/pallets/parachain-system", default-features = false }
cumulus-pallet-parachain-system-proc-macro = { path = "cumulus/pallets/parachain-system/proc-macro", default-features = false }
cumulus-pallet-session-benchmarking = { path = "cumulus/pallets/session-benchmarking", default-features = false }
cumulus-pallet-solo-to-para = { path = "cumulus/pallets/solo-to-para", default-features = false }
cumulus-pallet-weight-reclaim = { path = "cumulus/pallets/weight-reclaim", default-features = false }
cumulus-pallet-xcm = { path = "cumulus/pallets/xcm", default-features = false }
cumulus-pallet-xcmp-queue = { path = "cumulus/pallets/xcmp-queue", default-features = false }
cumulus-ping = { path = "cumulus/parachains/pallets/ping", default-features = false }
cumulus-primitives-aura = { path = "cumulus/primitives/aura", default-features = false }
cumulus-primitives-core = { path = "cumulus/primitives/core", default-features = false }
cumulus-primitives-parachain-inherent = { path = "cumulus/primitives/parachain-inherent", default-features = false }
cumulus-primitives-proof-size-hostfunction = { path = "cumulus/primitives/proof-size-hostfunction", default-features = false }
cumulus-primitives-storage-weight-reclaim = { path = "cumulus/primitives/storage-weight-reclaim", default-features = false }
cumulus-primitives-timestamp = { path = "cumulus/primitives/timestamp", default-features = false }
cumulus-primitives-utility = { path = "cumulus/primitives/utility", default-features = false }
cumulus-relay-chain-inprocess-interface = { path = "cumulus/client/relay-chain-inprocess-interface", default-features = false }
cumulus-relay-chain-interface = { path = "cumulus/client/relay-chain-interface", default-features = false }
cumulus-relay-chain-minimal-node = { path = "cumulus/client/relay-chain-minimal-node", default-features = false }
cumulus-relay-chain-rpc-interface = { path = "cumulus/client/relay-chain-rpc-interface", default-features = false }
cumulus-test-client = { path = "cumulus/test/client" }
cumulus-test-relay-sproof-builder = { path = "cumulus/test/relay-sproof-builder", default-features = false }
cumulus-test-runtime = { path = "cumulus/test/runtime" }
cumulus-test-service = { path = "cumulus/test/service" }
curve25519-dalek = { version = "4.1.3" }
derive-syn-parse = { version = "0.2.0" }
derive-where = { version = "1.2.7" }
derive_more = { version = "0.99.17", default-features = false }
digest = { version = "0.10.3", default-features = false }
directories = { version = "5.0.1" }
dlmalloc = { version = "0.2.4" }
docify = { version = "0.2.9" }
dyn-clonable = { version = "0.9.0" }
dyn-clone = { version = "1.0.16" }
ed25519-dalek = { version = "2.1", default-features = false }
ed25519-zebra = { version = "4.0.3", default-features = false }
either = { version = "1.8.1", default-features = false }
emulated-integration-tests-common = { path = "cumulus/parachains/integration-tests/emulated/common", default-features = false }
enumflags2 = { version = "0.7.7" }
enumn = { version = "0.1.13" }
env_logger = { version = "0.11.2" }
environmental = { version = "1.1.4", default-features = false }
equivocation-detector = { path = "bridges/relays/equivocation" }
ethabi = { version = "2.0.0", default-features = false, package = "ethabi-decode" }
ethbloom = { version = "0.14.1", default-features = false }
ethereum-types = { version = "0.15.1", default-features = false }
exit-future = { version = "0.2.0" }
expander = { version = "2.0.0" }
fatality = { version = "0.1.1" }
fdlimit = { version = "0.3.0" }
femme = { version = "2.2.1" }
filetime = { version = "0.2.16" }
finality-grandpa = { version = "0.16.3", default-features = false }
finality-relay = { path = "bridges/relays/finality" }
first-pallet = { package = "polkadot-sdk-docs-first-pallet", path = "docs/sdk/packages/guides/first-pallet", default-features = false }
first-runtime = { package = "polkadot-sdk-docs-first-runtime", path = "docs/sdk/packages/guides/first-runtime", default-features = false }
flate2 = { version = "1.0" }
fnv = { version = "1.0.6" }
fork-tree = { path = "substrate/utils/fork-tree", default-features = false }
forwarded-header-value = { version = "0.1.1" }
fraction = { version = "0.13.1" }
frame = { path = "substrate/frame", default-features = false, package = "polkadot-sdk-frame" }
frame-benchmarking = { path = "substrate/frame/benchmarking", default-features = false }
frame-benchmarking-cli = { path = "substrate/utils/frame/benchmarking-cli", default-features = false }
frame-benchmarking-pallet-pov = { default-features = false, path = "substrate/frame/benchmarking/pov" }
frame-election-provider-solution-type = { path = "substrate/frame/election-provider-support/solution-type", default-features = false }
frame-election-provider-support = { path = "substrate/frame/election-provider-support", default-features = false }
frame-executive = { path = "substrate/frame/executive", default-features = false }
frame-metadata = { version = "18.0.0", default-features = false }
frame-metadata-hash-extension = { path = "substrate/frame/metadata-hash-extension", default-features = false }
frame-support = { path = "substrate/frame/support", default-features = false }
frame-support-procedural = { path = "substrate/frame/support/procedural", default-features = false }
frame-support-procedural-tools = { path = "substrate/frame/support/procedural/tools", default-features = false }
frame-support-procedural-tools-derive = { path = "substrate/frame/support/procedural/tools/derive", default-features = false }
frame-support-test = { path = "substrate/frame/support/test" }
frame-system = { path = "substrate/frame/system", default-features = false }
frame-system-benchmarking = { path = "substrate/frame/system/benchmarking", default-features = false }
frame-system-rpc-runtime-api = { path = "substrate/frame/system/rpc/runtime-api", default-features = false }
frame-try-runtime = { path = "substrate/frame/try-runtime", default-features = false }
fs4 = { version = "0.7.0" }
fs_extra = { version = "1.3.0" }
futures = { version = "0.3.31" }
futures-channel = { version = "0.3.23" }
futures-timer = { version = "3.0.2" }
futures-util = { version = "0.3.30", default-features = false }
generate-bags = { path = "substrate/utils/frame/generate-bags", default-features = false }
gethostname = { version = "0.2.3" }
glob = { version = "0.3" }
glutton-westend-runtime = { path = "cumulus/parachains/runtimes/glutton/glutton-westend" }
governor = { version = "0.6.0" }
gum = { path = "polkadot/node/gum", default-features = false, package = "tracing-gum" }
gum-proc-macro = { path = "polkadot/node/gum/proc-macro", default-features = false, package = "tracing-gum-proc-macro" }
handlebars = { version = "5.1.0" }
hash-db = { version = "0.16.0", default-features = false }
hash256-std-hasher = { version = "0.15.2", default-features = false }
hex = { version = "0.4.3", default-features = false }
hex-literal = { version = "0.4.1", default-features = false }
hkdf = { version = "0.12.0" }
hmac = { version = "0.12.1" }
honggfuzz = { version = "0.5.55" }
http = { version = "1.1" }
http-body = { version = "1", default-features = false }
http-body-util = { version = "0.1.2", default-features = false }
hyper = { version = "1.3.1", default-features = false }
hyper-rustls = { version = "0.27.3", default-features = false, features = ["http1", "http2", "logging", "ring", "rustls-native-certs", "tls12"] }
hyper-util = { version = "0.1.5", default-features = false }
impl-serde = { version = "0.5.0", default-features = false }
impl-trait-for-tuples = { version = "0.2.2" }
indexmap = { version = "2.0.0" }
indicatif = { version = "0.17.7" }
integer-sqrt = { version = "0.1.2" }
ip_network = { version = "0.4.1" }
is-terminal = { version = "0.4.9" }
is_executable = { version = "1.0.1" }
isahc = { version = "1.2" }
itertools = { version = "0.11" }
jemalloc_pprof = { version = "0.4" }
jobserver = { version = "0.1.26" }
jsonpath_lib = { version = "0.3" }
jsonrpsee = { version = "0.24.3" }
jsonrpsee-core = { version = "0.24.3" }
k256 = { version = "0.13.4", default-features = false }
kitchensink-runtime = { path = "substrate/bin/node/runtime" }
kvdb = { version = "0.13.0" }
kvdb-memorydb = { version = "0.13.0" }
kvdb-rocksdb = { version = "0.19.0" }
kvdb-shared-tests = { version = "0.11.0" }
landlock = { version = "0.3.0" }
libc = { version = "0.2.155" }
libfuzzer-sys = { version = "0.4" }
libp2p = { version = "0.54.1" }
libp2p-identity = { version = "0.2.9" }
libsecp256k1 = { version = "0.7.0", default-features = false }
linked-hash-map = { version = "0.5.4" }
linked_hash_set = { version = "0.1.4" }
linregress = { version = "0.5.1" }
lite-json = { version = "0.2.0", default-features = false }
litep2p = { version = "0.9.0", features = ["websocket"] }
log = { version = "0.4.22", default-features = false }
macro_magic = { version = "0.5.1" }
maplit = { version = "1.0.2" }
memmap2 = { version = "0.9.3" }
memory-db = { version = "0.32.0", default-features = false }
merkleized-metadata = { version = "0.2.0" }
merlin = { version = "3.0", default-features = false }
messages-relay = { path = "bridges/relays/messages" }
metered = { version = "0.6.1", default-features = false, package = "prioritized-metered-channel" }
milagro-bls = { version = "1.5.4", default-features = false, package = "snowbridge-milagro-bls" }
minimal-template-node = { path = "templates/minimal/node" }
minimal-template-runtime = { path = "templates/minimal/runtime" }
mixnet = { version = "0.7.0" }
mmr-gadget = { path = "substrate/client/merkle-mountain-range", default-features = false }
mmr-lib = { version = "0.5.2", package = "ckb-merkle-mountain-range" }
mmr-rpc = { path = "substrate/client/merkle-mountain-range/rpc", default-features = false }
mockall = { version = "0.11.3" }
multiaddr = { version = "0.18.1" }
multihash = { version = "0.19.1", default-features = false }
multihash-codetable = { version = "0.1.1" }
multistream-select = { version = "0.13.0" }
names = { version = "0.14.0", default-features = false }
nix = { version = "0.29.0" }
node-cli = { path = "substrate/bin/node/cli", package = "staging-node-cli" }
node-inspect = { path = "substrate/bin/node/inspect", default-features = false, package = "staging-node-inspect" }
node-primitives = { path = "substrate/bin/node/primitives", default-features = false }
node-rpc = { path = "substrate/bin/node/rpc" }
node-testing = { path = "substrate/bin/node/testing" }
nohash-hasher = { version = "0.2.0" }
novelpoly = { version = "2.0.0", package = "reed-solomon-novelpoly" }
num-bigint = { version = "0.4.3" }
num-format = { version = "0.4.3" }
num-rational = { version = "0.4.1" }
num-traits = { version = "0.2.17", default-features = false }
num_cpus = { version = "1.13.1" }
once_cell = { version = "1.19.0" }
orchestra = { version = "0.4.0", default-features = false }
pallet-alliance = { path = "substrate/frame/alliance", default-features = false }
pallet-asset-conversion = { path = "substrate/frame/asset-conversion", default-features = false }
pallet-asset-conversion-ops = { path = "substrate/frame/asset-conversion/ops", default-features = false }
pallet-asset-conversion-tx-payment = { path = "substrate/frame/transaction-payment/asset-conversion-tx-payment", default-features = false }
pallet-asset-rate = { path = "substrate/frame/asset-rate", default-features = false }
pallet-asset-rewards = { path = "substrate/frame/asset-rewards", default-features = false }
pallet-asset-tx-payment = { path = "substrate/frame/transaction-payment/asset-tx-payment", default-features = false }
pallet-assets = { path = "substrate/frame/assets", default-features = false }
pallet-assets-freezer = { path = "substrate/frame/assets-freezer", default-features = false }
pallet-atomic-swap = { default-features = false, path = "substrate/frame/atomic-swap" }
pallet-aura = { path = "substrate/frame/aura", default-features = false }
pallet-authority-discovery = { path = "substrate/frame/authority-discovery", default-features = false }
pallet-authorship = { path = "substrate/frame/authorship", default-features = false }
pallet-babe = { path = "substrate/frame/babe", default-features = false }
pallet-bags-list = { path = "substrate/frame/bags-list", default-features = false }
pallet-bags-list-remote-tests = { path = "substrate/frame/bags-list/remote-tests" }
pallet-balances = { path = "substrate/frame/balances", default-features = false }
pallet-beefy = { path = "substrate/frame/beefy", default-features = false }
pallet-beefy-mmr = { path = "substrate/frame/beefy-mmr", default-features = false }
pallet-bounties = { path = "substrate/frame/bounties", default-features = false }
pallet-bridge-grandpa = { path = "bridges/modules/grandpa", default-features = false }
pallet-bridge-messages = { path = "bridges/modules/messages", default-features = false }
pallet-bridge-parachains = { path = "bridges/modules/parachains", default-features = false }
pallet-bridge-relayers = { path = "bridges/modules/relayers", default-features = false }
pallet-broker = { path = "substrate/frame/broker", default-features = false }
pallet-child-bounties = { path = "substrate/frame/child-bounties", default-features = false }
pallet-collator-selection = { path = "cumulus/pallets/collator-selection", default-features = false }
pallet-collective = { path = "substrate/frame/collective", default-features = false }
pallet-collective-content = { path = "cumulus/parachains/pallets/collective-content", default-features = false }
pallet-contracts = { path = "substrate/frame/contracts", default-features = false }
pallet-contracts-fixtures = { path = "substrate/frame/contracts/fixtures", default-features = false }
pallet-contracts-mock-network = { default-features = false, path = "substrate/frame/contracts/mock-network" }
pallet-contracts-proc-macro = { path = "substrate/frame/contracts/proc-macro", default-features = false }
pallet-contracts-uapi = { path = "substrate/frame/contracts/uapi", default-features = false }
pallet-conviction-voting = { path = "substrate/frame/conviction-voting", default-features = false }
pallet-core-fellowship = { path = "substrate/frame/core-fellowship", default-features = false }
pallet-default-config-example = { path = "substrate/frame/examples/default-config", default-features = false }
pallet-delegated-staking = { path = "substrate/frame/delegated-staking", default-features = false }
pallet-democracy = { path = "substrate/frame/democracy", default-features = false }
pallet-dev-mode = { path = "substrate/frame/examples/dev-mode", default-features = false }
pallet-election-provider-multi-phase = { path = "substrate/frame/election-provider-multi-phase", default-features = false }
pallet-election-provider-support-benchmarking = { path = "substrate/frame/election-provider-support/benchmarking", default-features = false }
pallet-elections-phragmen = { path = "substrate/frame/elections-phragmen", default-features = false }
pallet-example-authorization-tx-extension = { path = "substrate/frame/examples/authorization-tx-extension", default-features = false }
pallet-example-basic = { path = "substrate/frame/examples/basic", default-features = false }
pallet-example-frame-crate = { path = "substrate/frame/examples/frame-crate", default-features = false }
pallet-example-kitchensink = { path = "substrate/frame/examples/kitchensink", default-features = false }
pallet-example-mbm = { path = "substrate/frame/examples/multi-block-migrations", default-features = false }
pallet-example-offchain-worker = { path = "substrate/frame/examples/offchain-worker", default-features = false }
pallet-example-single-block-migrations = { path = "substrate/frame/examples/single-block-migrations", default-features = false }
pallet-example-split = { path = "substrate/frame/examples/split", default-features = false }
pallet-example-tasks = { path = "substrate/frame/examples/tasks", default-features = false }
pallet-example-view-functions = { path = "substrate/frame/examples/view-functions", default-features = false }
pallet-examples = { path = "substrate/frame/examples" }
pallet-fast-unstake = { path = "substrate/frame/fast-unstake", default-features = false }
pallet-glutton = { path = "substrate/frame/glutton", default-features = false }
pallet-grandpa = { path = "substrate/frame/grandpa", default-features = false }
pallet-identity = { path = "substrate/frame/identity", default-features = false }
pallet-im-online = { path = "substrate/frame/im-online", default-features = false }
pallet-indices = { path = "substrate/frame/indices", default-features = false }
pallet-insecure-randomness-collective-flip = { path = "substrate/frame/insecure-randomness-collective-flip", default-features = false }
pallet-lottery = { default-features = false, path = "substrate/frame/lottery" }
pallet-membership = { path = "substrate/frame/membership", default-features = false }
pallet-message-queue = { path = "substrate/frame/message-queue", default-features = false }
pallet-migrations = { path = "substrate/frame/migrations", default-features = false }
pallet-minimal-template = { path = "templates/minimal/pallets/template", default-features = false }
pallet-mixnet = { default-features = false, path = "substrate/frame/mixnet" }
pallet-mmr = { path = "substrate/frame/merkle-mountain-range", default-features = false }
pallet-multisig = { path = "substrate/frame/multisig", default-features = false }
pallet-nft-fractionalization = { path = "substrate/frame/nft-fractionalization", default-features = false }
pallet-nfts = { path = "substrate/frame/nfts", default-features = false }
pallet-nfts-runtime-api = { path = "substrate/frame/nfts/runtime-api", default-features = false }
pallet-nis = { path = "substrate/frame/nis", default-features = false }
pallet-node-authorization = { default-features = false, path = "substrate/frame/node-authorization" }
pallet-nomination-pools = { path = "substrate/frame/nomination-pools", default-features = false }
pallet-nomination-pools-benchmarking = { path = "substrate/frame/nomination-pools/benchmarking", default-features = false }
pallet-nomination-pools-runtime-api = { path = "substrate/frame/nomination-pools/runtime-api", default-features = false }
pallet-offences = { path = "substrate/frame/offences", default-features = false }
pallet-offences-benchmarking = { path = "substrate/frame/offences/benchmarking", default-features = false }
pallet-paged-list = { path = "substrate/frame/paged-list", default-features = false }
pallet-parachain-template = { path = "templates/parachain/pallets/template", default-features = false }
pallet-parameters = { path = "substrate/frame/parameters", default-features = false }
pallet-preimage = { path = "substrate/frame/preimage", default-features = false }
pallet-proxy = { path = "substrate/frame/proxy", default-features = false }
pallet-ranked-collective = { path = "substrate/frame/ranked-collective", default-features = false }
pallet-recovery = { path = "substrate/frame/recovery", default-features = false }
pallet-referenda = { path = "substrate/frame/referenda", default-features = false }
pallet-remark = { default-features = false, path = "substrate/frame/remark" }
pallet-revive = { path = "substrate/frame/revive", default-features = false }
pallet-revive-eth-rpc = { path = "substrate/frame/revive/rpc", default-features = false }
pallet-revive-fixtures = { path = "substrate/frame/revive/fixtures", default-features = false }
pallet-revive-mock-network = { default-features = false, path = "substrate/frame/revive/mock-network" }
pallet-revive-proc-macro = { path = "substrate/frame/revive/proc-macro", default-features = false }
pallet-revive-uapi = { path = "substrate/frame/revive/uapi", default-features = false }
pallet-root-offences = { default-features = false, path = "substrate/frame/root-offences" }
pallet-root-testing = { path = "substrate/frame/root-testing", default-features = false }
pallet-safe-mode = { default-features = false, path = "substrate/frame/safe-mode" }
pallet-salary = { path = "substrate/frame/salary", default-features = false }
pallet-scheduler = { path = "substrate/frame/scheduler", default-features = false }
pallet-scored-pool = { default-features = false, path = "substrate/frame/scored-pool" }
pallet-session = { path = "substrate/frame/session", default-features = false }
pallet-session-benchmarking = { path = "substrate/frame/session/benchmarking", default-features = false }
pallet-skip-feeless-payment = { path = "substrate/frame/transaction-payment/skip-feeless-payment", default-features = false }
pallet-society = { path = "substrate/frame/society", default-features = false }
pallet-staking = { path = "substrate/frame/staking", default-features = false }
pallet-staking-reward-curve = { path = "substrate/frame/staking/reward-curve", default-features = false }
pallet-staking-reward-fn = { path = "substrate/frame/staking/reward-fn", default-features = false }
pallet-staking-runtime-api = { path = "substrate/frame/staking/runtime-api", default-features = false }
pallet-state-trie-migration = { path = "substrate/frame/state-trie-migration", default-features = false }
pallet-statement = { default-features = false, path = "substrate/frame/statement" }
pallet-sudo = { path = "substrate/frame/sudo", default-features = false }
pallet-template = { path = "templates/solochain/pallets/template", default-features = false }
pallet-timestamp = { path = "substrate/frame/timestamp", default-features = false }
pallet-tips = { path = "substrate/frame/tips", default-features = false }
pallet-transaction-payment = { path = "substrate/frame/transaction-payment", default-features = false }
pallet-transaction-payment-rpc = { path = "substrate/frame/transaction-payment/rpc", default-features = false }
pallet-transaction-payment-rpc-runtime-api = { path = "substrate/frame/transaction-payment/rpc/runtime-api", default-features = false }
pallet-transaction-storage = { default-features = false, path = "substrate/frame/transaction-storage" }
pallet-treasury = { path = "substrate/frame/treasury", default-features = false }
pallet-tx-pause = { default-features = false, path = "substrate/frame/tx-pause" }
pallet-uniques = { path = "substrate/frame/uniques", default-features = false }
pallet-utility = { path = "substrate/frame/utility", default-features = false }
pallet-verify-signature = { path = "substrate/frame/verify-signature", default-features = false }
pallet-vesting = { path = "substrate/frame/vesting", default-features = false }
pallet-whitelist = { path = "substrate/frame/whitelist", default-features = false }
pallet-xcm = { path = "polkadot/xcm/pallet-xcm", default-features = false }
pallet-xcm-benchmarks = { path = "polkadot/xcm/pallet-xcm-benchmarks", default-features = false }
pallet-xcm-bridge-hub = { path = "bridges/modules/xcm-bridge-hub", default-features = false }
pallet-xcm-bridge-hub-router = { path = "bridges/modules/xcm-bridge-hub-router", default-features = false }
parachain-info = { path = "cumulus/parachains/pallets/parachain-info", default-features = false, package = "staging-parachain-info" }
parachain-template-runtime = { path = "templates/parachain/runtime" }
parachains-common = { path = "cumulus/parachains/common", default-features = false }
parachains-relay = { path = "bridges/relays/parachains" }
parachains-runtimes-test-utils = { path = "cumulus/parachains/runtimes/test-utils", default-features = false }
parity-bytes = { version = "0.1.2", default-features = false }
parity-db = { version = "0.4.12" }
parity-wasm = { version = "0.45.0" }
parking_lot = { version = "0.12.1", default-features = false }
partial_sort = { version = "0.2.0" }
paste = { version = "1.0.15", default-features = false }
pbkdf2 = { version = "0.12.2", default-features = false }
penpal-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal" }
penpal-runtime = { path = "cumulus/parachains/runtimes/testing/penpal" }
people-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo" }
people-rococo-runtime = { path = "cumulus/parachains/runtimes/people/people-rococo" }
people-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend" }
people-westend-runtime = { path = "cumulus/parachains/runtimes/people/people-westend" }
pin-project = { version = "1.1.3" }
polkadot-approval-distribution = { path = "polkadot/node/network/approval-distribution", default-features = false }
polkadot-availability-bitfield-distribution = { path = "polkadot/node/network/bitfield-distribution", default-features = false }
polkadot-availability-distribution = { path = "polkadot/node/network/availability-distribution", default-features = false }
polkadot-availability-recovery = { path = "polkadot/node/network/availability-recovery", default-features = false }
polkadot-cli = { path = "polkadot/cli", default-features = false }
polkadot-collator-protocol = { path = "polkadot/node/network/collator-protocol", default-features = false }
polkadot-core-primitives = { path = "polkadot/core-primitives", default-features = false }
polkadot-dispute-distribution = { path = "polkadot/node/network/dispute-distribution", default-features = false }
polkadot-erasure-coding = { path = "polkadot/erasure-coding", default-features = false }
polkadot-gossip-support = { path = "polkadot/node/network/gossip-support", default-features = false }
polkadot-network-bridge = { path = "polkadot/node/network/bridge", default-features = false }
polkadot-node-collation-generation = { path = "polkadot/node/collation-generation", default-features = false }
polkadot-node-core-approval-voting = { path = "polkadot/node/core/approval-voting", default-features = false }
polkadot-node-core-approval-voting-parallel = { path = "polkadot/node/core/approval-voting-parallel", default-features = false }
polkadot-node-core-av-store = { path = "polkadot/node/core/av-store", default-features = false }
polkadot-node-core-backing = { path = "polkadot/node/core/backing", default-features = false }
polkadot-node-core-bitfield-signing = { path = "polkadot/node/core/bitfield-signing", default-features = false }
polkadot-node-core-candidate-validation = { path = "polkadot/node/core/candidate-validation", default-features = false }
polkadot-node-core-chain-api = { path = "polkadot/node/core/chain-api", default-features = false }
polkadot-node-core-chain-selection = { path = "polkadot/node/core/chain-selection", default-features = false }
polkadot-node-core-dispute-coordinator = { path = "polkadot/node/core/dispute-coordinator", default-features = false }
polkadot-node-core-parachains-inherent = { path = "polkadot/node/core/parachains-inherent", default-features = false }
polkadot-node-core-prospective-parachains = { path = "polkadot/node/core/prospective-parachains", default-features = false }
polkadot-node-core-provisioner = { path = "polkadot/node/core/provisioner", default-features = false }
polkadot-node-core-pvf = { path = "polkadot/node/core/pvf", default-features = false }
polkadot-node-core-pvf-checker = { path = "polkadot/node/core/pvf-checker", default-features = false }
polkadot-node-core-pvf-common = { path = "polkadot/node/core/pvf/common", default-features = false }
polkadot-node-core-pvf-execute-worker = { path = "polkadot/node/core/pvf/execute-worker", default-features = false }
polkadot-node-core-pvf-prepare-worker = { path = "polkadot/node/core/pvf/prepare-worker", default-features = false }
polkadot-node-core-runtime-api = { path = "polkadot/node/core/runtime-api", default-features = false }
polkadot-node-metrics = { path = "polkadot/node/metrics", default-features = false }
polkadot-node-network-protocol = { path = "polkadot/node/network/protocol", default-features = false }
polkadot-node-primitives = { path = "polkadot/node/primitives", default-features = false }
polkadot-node-subsystem = { path = "polkadot/node/subsystem", default-features = false }
polkadot-node-subsystem-test-helpers = { path = "polkadot/node/subsystem-test-helpers" }
polkadot-node-subsystem-types = { path = "polkadot/node/subsystem-types", default-features = false }
polkadot-node-subsystem-util = { path = "polkadot/node/subsystem-util", default-features = false }
polkadot-omni-node = { path = "cumulus/polkadot-omni-node", default-features = false }
polkadot-omni-node-lib = { path = "cumulus/polkadot-omni-node/lib", default-features = false }
polkadot-overseer = { path = "polkadot/node/overseer", default-features = false }
polkadot-parachain-primitives = { path = "polkadot/parachain", default-features = false }
polkadot-primitives = { path = "polkadot/primitives", default-features = false }
polkadot-primitives-test-helpers = { path = "polkadot/primitives/test-helpers" }
polkadot-rpc = { path = "polkadot/rpc", default-features = false }
polkadot-runtime-common = { path = "polkadot/runtime/common", default-features = false }
polkadot-runtime-metrics = { path = "polkadot/runtime/metrics", default-features = false }
polkadot-runtime-parachains = { path = "polkadot/runtime/parachains", default-features = false }
polkadot-sdk = { path = "umbrella", default-features = false }
polkadot-sdk-docs = { path = "docs/sdk" }
polkadot-service = { path = "polkadot/node/service", default-features = false }
polkadot-statement-distribution = { path = "polkadot/node/network/statement-distribution", default-features = false }
polkadot-statement-table = { path = "polkadot/statement-table", default-features = false }
polkadot-subsystem-bench = { path = "polkadot/node/subsystem-bench" }
polkadot-test-client = { path = "polkadot/node/test/client" }
polkadot-test-runtime = { path = "polkadot/runtime/test-runtime" }
polkadot-test-service = { path = "polkadot/node/test/service" }
polkavm = { version = "0.18.0", default-features = false }
polkavm-derive = "0.18.0"
polkavm-linker = "0.18.0"
portpicker = { version = "0.1.1" }
pretty_assertions = { version = "1.3.0" }
primitive-types = { version = "0.13.1", default-features = false, features = [
	"num-traits",
] }
proc-macro-crate = { version = "3.0.0" }
proc-macro-warning = { version = "1.0.0", default-features = false }
proc-macro2 = { version = "1.0.86" }
procfs = { version = "0.16.0" }
prometheus = { version = "0.13.0", default-features = false }
prometheus-endpoint = { path = "substrate/utils/prometheus", default-features = false, package = "substrate-prometheus-endpoint" }
prometheus-parse = { version = "0.2.2" }
prost = { version = "0.12.4" }
prost-build = { version = "0.13.2" }
pyroscope = { version = "0.5.7" }
pyroscope_pprofrs = { version = "0.2.7" }
quick_cache = { version = "0.3" }
quickcheck = { version = "1.0.3", default-features = false }
quote = { version = "1.0.37" }
rand = { version = "0.8.5", default-features = false }
rand_chacha = { version = "0.3.1", default-features = false }
rand_core = { version = "0.6.2" }
rand_distr = { version = "0.4.3" }
rand_pcg = { version = "0.3.1" }
rayon = { version = "1.5.1" }
rbtag = { version = "0.3" }
ref-cast = { version = "1.0.23" }
regex = { version = "1.10.2" }
relay-substrate-client = { path = "bridges/relays/client-substrate" }
relay-utils = { path = "bridges/relays/utils" }
remote-externalities = { path = "substrate/utils/frame/remote-externalities", default-features = false, package = "frame-remote-externalities" }
reqwest = { version = "0.12.9", default-features = false }
rlp = { version = "0.6.1", default-features = false }
rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/relays/rococo" }
rococo-parachain-runtime = { path = "cumulus/parachains/runtimes/testing/rococo-parachain" }
rococo-runtime = { path = "polkadot/runtime/rococo" }
rococo-runtime-constants = { path = "polkadot/runtime/rococo/constants", default-features = false }
rococo-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/rococo-system" }
rococo-westend-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/rococo-westend-system" }
rpassword = { version = "7.0.0" }
rstest = { version = "0.18.2" }
rustc-hash = { version = "1.1.0" }
rustc-hex = { version = "2.1.0", default-features = false }
rustix = { version = "0.36.7", default-features = false }
rustls = { version = "0.23.18", default-features = false, features = ["logging", "ring", "std", "tls12"] }
rustversion = { version = "1.0.17" }
rusty-fork = { version = "0.3.0", default-features = false }
safe-mix = { version = "1.0", default-features = false }
sc-allocator = { path = "substrate/client/allocator", default-features = false }
sc-authority-discovery = { path = "substrate/client/authority-discovery", default-features = false }
sc-basic-authorship = { path = "substrate/client/basic-authorship", default-features = false }
sc-block-builder = { path = "substrate/client/block-builder", default-features = false }
sc-chain-spec = { path = "substrate/client/chain-spec", default-features = false }
sc-chain-spec-derive = { path = "substrate/client/chain-spec/derive", default-features = false }
sc-cli = { path = "substrate/client/cli", default-features = false }
sc-client-api = { path = "substrate/client/api", default-features = false }
sc-client-db = { path = "substrate/client/db", default-features = false }
sc-consensus = { path = "substrate/client/consensus/common", default-features = false }
sc-consensus-aura = { path = "substrate/client/consensus/aura", default-features = false }
sc-consensus-babe = { path = "substrate/client/consensus/babe", default-features = false }
sc-consensus-babe-rpc = { path = "substrate/client/consensus/babe/rpc", default-features = false }
sc-consensus-beefy = { path = "substrate/client/consensus/beefy", default-features = false }
sc-consensus-beefy-rpc = { path = "substrate/client/consensus/beefy/rpc", default-features = false }
sc-consensus-epochs = { path = "substrate/client/consensus/epochs", default-features = false }
sc-consensus-grandpa = { path = "substrate/client/consensus/grandpa", default-features = false }
sc-consensus-grandpa-rpc = { path = "substrate/client/consensus/grandpa/rpc", default-features = false }
sc-consensus-manual-seal = { path = "substrate/client/consensus/manual-seal", default-features = false }
sc-consensus-pow = { path = "substrate/client/consensus/pow", default-features = false }
sc-consensus-slots = { path = "substrate/client/consensus/slots", default-features = false }
sc-executor = { path = "substrate/client/executor", default-features = false }
sc-executor-common = { path = "substrate/client/executor/common", default-features = false }
sc-executor-polkavm = { path = "substrate/client/executor/polkavm", default-features = false }
sc-executor-wasmtime = { path = "substrate/client/executor/wasmtime", default-features = false }
sc-informant = { path = "substrate/client/informant", default-features = false }
sc-keystore = { path = "substrate/client/keystore", default-features = false }
sc-mixnet = { path = "substrate/client/mixnet", default-features = false }
sc-network = { path = "substrate/client/network", default-features = false }
sc-network-common = { path = "substrate/client/network/common", default-features = false }
sc-network-gossip = { path = "substrate/client/network-gossip", default-features = false }
sc-network-light = { path = "substrate/client/network/light", default-features = false }
sc-network-statement = { default-features = false, path = "substrate/client/network/statement" }
sc-network-sync = { path = "substrate/client/network/sync", default-features = false }
sc-network-test = { path = "substrate/client/network/test" }
sc-network-transactions = { path = "substrate/client/network/transactions", default-features = false }
sc-network-types = { path = "substrate/client/network/types", default-features = false }
sc-offchain = { path = "substrate/client/offchain", default-features = false }
sc-proposer-metrics = { path = "substrate/client/proposer-metrics", default-features = false }
sc-rpc = { path = "substrate/client/rpc", default-features = false }
sc-rpc-api = { path = "substrate/client/rpc-api", default-features = false }
sc-rpc-server = { path = "substrate/client/rpc-servers", default-features = false }
sc-rpc-spec-v2 = { path = "substrate/client/rpc-spec-v2", default-features = false }
sc-runtime-test = { path = "substrate/client/executor/runtime-test" }
sc-runtime-utilities = { path = "substrate/client/runtime-utilities", default-features = true }
sc-service = { path = "substrate/client/service", default-features = false }
sc-service-test = { path = "substrate/client/service/test" }
sc-state-db = { path = "substrate/client/state-db", default-features = false }
sc-statement-store = { default-features = false, path = "substrate/client/statement-store" }
sc-storage-monitor = { path = "substrate/client/storage-monitor", default-features = false }
sc-sync-state-rpc = { path = "substrate/client/sync-state-rpc", default-features = false }
sc-sysinfo = { path = "substrate/client/sysinfo", default-features = false }
sc-telemetry = { path = "substrate/client/telemetry", default-features = false }
sc-tracing = { path = "substrate/client/tracing", default-features = false }
sc-tracing-proc-macro = { path = "substrate/client/tracing/proc-macro", default-features = false }
sc-transaction-pool = { path = "substrate/client/transaction-pool", default-features = false }
sc-transaction-pool-api = { path = "substrate/client/transaction-pool/api", default-features = false }
sc-utils = { path = "substrate/client/utils", default-features = false }
scale-info = { version = "2.11.6", default-features = false }
schemars = { version = "0.8.13", default-features = false }
schnellru = { version = "0.2.3" }
schnorrkel = { version = "0.11.4", default-features = false }
seccompiler = { version = "0.4.0" }
secp256k1 = { version = "0.28.0", default-features = false }
secrecy = { version = "0.8.0", default-features = false }
serde = { version = "1.0.214", default-features = false }
serde-big-array = { version = "0.3.2" }
serde_derive = { version = "1.0.117" }
serde_json = { version = "1.0.132", default-features = false }
serde_yaml = { version = "0.9" }
sha1 = { version = "0.10.6" }
sha2 = { version = "0.10.7", default-features = false }
sha3 = { version = "0.10.0", default-features = false }
shlex = { version = "1.3.0" }
slot-range-helper = { path = "polkadot/runtime/common/slot_range_helper", default-features = false }
slotmap = { version = "1.0" }
smallvec = { version = "1.11.0", default-features = false }
smoldot = { version = "0.11.0", default-features = false }
smoldot-light = { version = "0.9.0", default-features = false }
snowbridge-beacon-primitives = { path = "bridges/snowbridge/primitives/beacon", default-features = false }
snowbridge-core = { path = "bridges/snowbridge/primitives/core", default-features = false }
snowbridge-ethereum = { path = "bridges/snowbridge/primitives/ethereum", default-features = false }
snowbridge-outbound-queue-merkle-tree = { path = "bridges/snowbridge/pallets/outbound-queue/merkle-tree", default-features = false }
snowbridge-outbound-queue-runtime-api = { path = "bridges/snowbridge/pallets/outbound-queue/runtime-api", default-features = false }
snowbridge-pallet-ethereum-client = { path = "bridges/snowbridge/pallets/ethereum-client", default-features = false }
snowbridge-pallet-ethereum-client-fixtures = { path = "bridges/snowbridge/pallets/ethereum-client/fixtures", default-features = false }
snowbridge-pallet-inbound-queue = { path = "bridges/snowbridge/pallets/inbound-queue", default-features = false }
snowbridge-pallet-inbound-queue-fixtures = { path = "bridges/snowbridge/pallets/inbound-queue/fixtures", default-features = false }
snowbridge-pallet-outbound-queue = { path = "bridges/snowbridge/pallets/outbound-queue", default-features = false }
snowbridge-pallet-system = { path = "bridges/snowbridge/pallets/system", default-features = false }
snowbridge-router-primitives = { path = "bridges/snowbridge/primitives/router", default-features = false }
snowbridge-runtime-common = { path = "bridges/snowbridge/runtime/runtime-common", default-features = false }
snowbridge-runtime-test-common = { path = "bridges/snowbridge/runtime/test-common", default-features = false }
snowbridge-system-runtime-api = { path = "bridges/snowbridge/pallets/system/runtime-api", default-features = false }
soketto = { version = "0.8.0" }
solochain-template-runtime = { path = "templates/solochain/runtime" }
sp-api = { path = "substrate/primitives/api", default-features = false }
sp-api-proc-macro = { path = "substrate/primitives/api/proc-macro", default-features = false }
sp-application-crypto = { path = "substrate/primitives/application-crypto", default-features = false }
sp-arithmetic = { path = "substrate/primitives/arithmetic", default-features = false }
sp-authority-discovery = { path = "substrate/primitives/authority-discovery", default-features = false }
sp-block-builder = { path = "substrate/primitives/block-builder", default-features = false }
sp-blockchain = { path = "substrate/primitives/blockchain", default-features = false }
sp-consensus = { path = "substrate/primitives/consensus/common", default-features = false }
sp-consensus-aura = { path = "substrate/primitives/consensus/aura", default-features = false }
sp-consensus-babe = { path = "substrate/primitives/consensus/babe", default-features = false }
sp-consensus-beefy = { path = "substrate/primitives/consensus/beefy", default-features = false }
sp-consensus-grandpa = { path = "substrate/primitives/consensus/grandpa", default-features = false }
sp-consensus-pow = { path = "substrate/primitives/consensus/pow", default-features = false }
sp-consensus-sassafras = { path = "substrate/primitives/consensus/sassafras", default-features = false }
sp-consensus-slots = { path = "substrate/primitives/consensus/slots", default-features = false }
sp-core = { path = "substrate/primitives/core", default-features = false }
sp-core-hashing = { default-features = false, path = "substrate/deprecated/hashing" }
sp-core-hashing-proc-macro = { default-features = false, path = "substrate/deprecated/hashing/proc-macro" }
sp-crypto-ec-utils = { default-features = false, path = "substrate/primitives/crypto/ec-utils" }
sp-crypto-hashing = { path = "substrate/primitives/crypto/hashing", default-features = false }
sp-crypto-hashing-proc-macro = { path = "substrate/primitives/crypto/hashing/proc-macro", default-features = false }
sp-database = { path = "substrate/primitives/database", default-features = false }
sp-debug-derive = { path = "substrate/primitives/debug-derive", default-features = false }
sp-externalities = { path = "substrate/primitives/externalities", default-features = false }
sp-genesis-builder = { path = "substrate/primitives/genesis-builder", default-features = false }
sp-inherents = { path = "substrate/primitives/inherents", default-features = false }
sp-io = { path = "substrate/primitives/io", default-features = false }
sp-keyring = { path = "substrate/primitives/keyring", default-features = false }
sp-keystore = { path = "substrate/primitives/keystore", default-features = false }
sp-maybe-compressed-blob = { path = "substrate/primitives/maybe-compressed-blob", default-features = false }
sp-metadata-ir = { path = "substrate/primitives/metadata-ir", default-features = false }
sp-mixnet = { path = "substrate/primitives/mixnet", default-features = false }
sp-mmr-primitives = { path = "substrate/primitives/merkle-mountain-range", default-features = false }
sp-npos-elections = { path = "substrate/primitives/npos-elections", default-features = false }
sp-offchain = { path = "substrate/primitives/offchain", default-features = false }
sp-panic-handler = { path = "substrate/primitives/panic-handler", default-features = false }
sp-rpc = { path = "substrate/primitives/rpc", default-features = false }
sp-runtime = { path = "substrate/primitives/runtime", default-features = false }
sp-runtime-interface = { path = "substrate/primitives/runtime-interface", default-features = false }
sp-runtime-interface-proc-macro = { path = "substrate/primitives/runtime-interface/proc-macro", default-features = false }
sp-runtime-interface-test-wasm = { path = "substrate/primitives/runtime-interface/test-wasm" }
sp-runtime-interface-test-wasm-deprecated = { path = "substrate/primitives/runtime-interface/test-wasm-deprecated" }
sp-session = { path = "substrate/primitives/session", default-features = false }
sp-staking = { path = "substrate/primitives/staking", default-features = false }
sp-state-machine = { path = "substrate/primitives/state-machine", default-features = false }
sp-statement-store = { path = "substrate/primitives/statement-store", default-features = false }
sp-std = { path = "substrate/primitives/std", default-features = false }
sp-storage = { path = "substrate/primitives/storage", default-features = false }
sp-test-primitives = { path = "substrate/primitives/test-primitives" }
sp-timestamp = { path = "substrate/primitives/timestamp", default-features = false }
sp-tracing = { path = "substrate/primitives/tracing", default-features = false }
sp-transaction-pool = { path = "substrate/primitives/transaction-pool", default-features = false }
sp-transaction-storage-proof = { path = "substrate/primitives/transaction-storage-proof", default-features = false }
sp-trie = { path = "substrate/primitives/trie", default-features = false }
sp-version = { path = "substrate/primitives/version", default-features = false }
sp-version-proc-macro = { path = "substrate/primitives/version/proc-macro", default-features = false }
sp-wasm-interface = { path = "substrate/primitives/wasm-interface", default-features = false }
sp-weights = { path = "substrate/primitives/weights", default-features = false }
spinners = { version = "4.1.1" }
ss58-registry = { version = "1.34.0", default-features = false }
ssz_rs = { version = "0.9.0", default-features = false }
ssz_rs_derive = { version = "0.9.0", default-features = false }
static_assertions = { version = "1.1.0", default-features = false }
static_init = { version = "1.0.3" }
structopt = { version = "0.3" }
strum = { version = "0.26.3", default-features = false }
subkey = { path = "substrate/bin/utils/subkey", default-features = false }
substrate-bip39 = { path = "substrate/utils/substrate-bip39", default-features = false }
substrate-build-script-utils = { path = "substrate/utils/build-script-utils", default-features = false }
substrate-cli-test-utils = { path = "substrate/test-utils/cli" }
substrate-frame-rpc-support = { default-features = false, path = "substrate/utils/frame/rpc/support" }
substrate-frame-rpc-system = { path = "substrate/utils/frame/rpc/system", default-features = false }
substrate-rpc-client = { path = "substrate/utils/frame/rpc/client", default-features = false }
substrate-state-trie-migration-rpc = { path = "substrate/utils/frame/rpc/state-trie-migration-rpc", default-features = false }
substrate-test-client = { path = "substrate/test-utils/client" }
substrate-test-runtime = { path = "substrate/test-utils/runtime" }
substrate-test-runtime-client = { path = "substrate/test-utils/runtime/client" }
substrate-test-runtime-transaction-pool = { path = "substrate/test-utils/runtime/transaction-pool" }
substrate-test-utils = { path = "substrate/test-utils" }
substrate-wasm-builder = { path = "substrate/utils/wasm-builder", default-features = false }
subxt = { version = "0.38.1", default-features = false }
subxt-metadata = { version = "0.38.0", default-features = false }
subxt-signer = { version = "0.38" }
syn = { version = "2.0.87" }
sysinfo = { version = "0.30" }
tar = { version = "0.4" }
tempfile = { version = "3.8.1" }
test-log = { version = "0.2.14" }
test-pallet = { path = "substrate/frame/support/test/pallet", default-features = false, package = "frame-support-test-pallet" }
test-parachain-adder = { path = "polkadot/parachain/test-parachains/adder" }
test-parachain-halt = { path = "polkadot/parachain/test-parachains/halt" }
test-parachain-undying = { path = "polkadot/parachain/test-parachains/undying" }
test-runtime-constants = { path = "polkadot/runtime/test-runtime/constants", default-features = false }
testnet-parachains-constants = { path = "cumulus/parachains/runtimes/constants", default-features = false }
thiserror = { version = "1.0.64" }
thousands = { version = "0.2.0" }
threadpool = { version = "1.7" }
tikv-jemalloc-ctl = { version = "0.5.0" }
tikv-jemallocator = { version = "0.5.0" }
time = { version = "0.3" }
tiny-keccak = { version = "2.0.2" }
tokio = { version = "1.40.0", default-features = false }
tokio-retry = { version = "0.3.0" }
tokio-stream = { version = "0.1.14" }
tokio-test = { version = "0.4.4" }
tokio-tungstenite = { version = "0.20.1" }
tokio-util = { version = "0.7.8" }
toml = { version = "0.8.12" }
toml_edit = { version = "0.19" }
tower = { version = "0.4.13" }
tower-http = { version = "0.5.2" }
tracing = { version = "0.1.37", default-features = false }
tracing-core = { version = "0.1.32", default-features = false }
tracing-futures = { version = "0.2.4" }
tracing-log = { version = "0.2.0" }
tracing-subscriber = { version = "0.3.18" }
tracking-allocator = { path = "polkadot/node/tracking-allocator", default-features = false, package = "staging-tracking-allocator" }
trie-bench = { version = "0.39.0" }
trie-db = { version = "0.29.1", default-features = false }
trie-root = { version = "0.18.0", default-features = false }
trie-standardmap = { version = "0.16.0" }
trybuild = { version = "1.0.89" }
tt-call = { version = "1.0.8" }
tuplex = { version = "0.1", default-features = false }
twox-hash = { version = "1.6.3", default-features = false }
unsigned-varint = { version = "0.7.2" }
url = { version = "2.4.0" }
void = { version = "1.0.2" }
w3f-bls = { version = "0.1.3", default-features = false }
wait-timeout = { version = "0.2" }
walkdir = { version = "2.5.0" }
wasm-instrument = { version = "0.4", default-features = false }
wasm-opt = { version = "0.116" }
wasm-timer = { version = "0.2.5" }
wasmi = { version = "0.32.3", default-features = false }
wasmtime = { version = "8.0.1", default-features = false }
wat = { version = "1.0.0" }
westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/relays/westend", default-features = false }
westend-runtime = { path = "polkadot/runtime/westend" }
westend-runtime-constants = { path = "polkadot/runtime/westend/constants", default-features = false }
westend-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/westend-system" }
x25519-dalek = { version = "2.0" }
xcm = { path = "polkadot/xcm", default-features = false, package = "staging-xcm" }
xcm-builder = { path = "polkadot/xcm/xcm-builder", default-features = false, package = "staging-xcm-builder" }
xcm-docs = { path = "polkadot/xcm/docs" }
xcm-emulator = { path = "cumulus/xcm/xcm-emulator", default-features = false }
xcm-executor = { path = "polkadot/xcm/xcm-executor", default-features = false, package = "staging-xcm-executor" }
xcm-procedural = { path = "polkadot/xcm/procedural", default-features = false }
xcm-runtime-apis = { path = "polkadot/xcm/xcm-runtime-apis", default-features = false }
xcm-simulator = { path = "polkadot/xcm/xcm-simulator", default-features = false }
zeroize = { version = "1.7.0", default-features = false }
zombienet-sdk = { version = "0.2.20" }
zstd = { version = "0.12.4", default-features = false }

[profile.release]
# Polkadot runtime requires unwinding.
opt-level = 3
panic = "unwind"

# make sure dev builds with backtrace do not slow us down
[profile.dev.package.backtrace]
inherits = "release"

[profile.production]
codegen-units = 1
inherits = "release"
lto = true

[profile.testnet]
debug = 1               # debug symbols are useful for profilers
debug-assertions = true
inherits = "release"
overflow-checks = true

# The list of dependencies below (which can be both direct and indirect dependencies) are crates
# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
# their debug info might be missing) or to require to be frequently recompiled. We compile these
# dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable.
# The majority of these crates are cryptographic libraries.
#
# If you see an error mentioning "profile package spec ... did not match any packages", it
# probably concerns this list.
#
# This list is ordered alphabetically.
[profile.dev.package]
blake2 = { opt-level = 3 }
blake2b_simd = { opt-level = 3 }
chacha20poly1305 = { opt-level = 3 }
cranelift-codegen = { opt-level = 3 }
cranelift-wasm = { opt-level = 3 }
crc32fast = { opt-level = 3 }
crossbeam-deque = { opt-level = 3 }
crypto-mac = { opt-level = 3 }
curve25519-dalek = { opt-level = 3 }
ed25519-dalek = { opt-level = 3 }
flate2 = { opt-level = 3 }
futures-channel = { opt-level = 3 }
hash-db = { opt-level = 3 }
hashbrown = { opt-level = 3 }
hmac = { opt-level = 3 }
httparse = { opt-level = 3 }
integer-sqrt = { opt-level = 3 }
keccak = { opt-level = 3 }
libm = { opt-level = 3 }
librocksdb-sys = { opt-level = 3 }
libsecp256k1 = { opt-level = 3 }
libz-sys = { opt-level = 3 }
mio = { opt-level = 3 }
nalgebra = { opt-level = 3 }
num-bigint = { opt-level = 3 }
parking_lot = { opt-level = 3 }
parking_lot_core = { opt-level = 3 }
percent-encoding = { opt-level = 3 }
polkavm-linker = { opt-level = 3 }
primitive-types = { opt-level = 3 }
reed-solomon-novelpoly = { opt-level = 3 }
ring = { opt-level = 3 }
rustls = { opt-level = 3 }
sha2 = { opt-level = 3 }
sha3 = { opt-level = 3 }
smallvec = { opt-level = 3 }
snow = { opt-level = 3 }
substrate-bip39 = { opt-level = 3 }
twox-hash = { opt-level = 3 }
uint = { opt-level = 3 }
wasmi = { opt-level = 3 }
x25519-dalek = { opt-level = 3 }
yamux = { opt-level = 3 }
zeroize = { opt-level = 3 }