[package]
name = "generic-runtime-template"
authors = { workspace = true }
description = "A generic parachain runtime template"
edition = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
version = "2.0.0"

[package.metadata.docs.rs]
targets = [ "x86_64-unknown-linux-gnu" ]

[dependencies]
hex-literal = { workspace = true, optional = true }
log = { workspace = true }
parity-scale-codec = { workspace = true, features = [ "derive" ] }
scale-info = { workspace = true, features = [ "derive" ] }
smallvec = { workspace = true }

# Substrate
frame-benchmarking = { workspace = true, optional = true }
frame-executive = { workspace = true }
frame-support = { workspace = true }
frame-system = { workspace = true }
frame-system-benchmarking = { workspace = true, optional = true }
frame-system-rpc-runtime-api = { workspace = true }
frame-try-runtime = { workspace = true, optional = true }
pallet-assets = { workspace = true }
pallet-aura = { workspace = true }
pallet-authorship = { workspace = true }
pallet-balances = { workspace = true }
pallet-conviction-voting = { workspace = true }
pallet-message-queue = { workspace = true }
pallet-multisig = { workspace = true }
pallet-preimage = { workspace = true }
pallet-proxy = { workspace = true }
pallet-referenda = { workspace = true }
pallet-scheduler = { workspace = true }
pallet-session = { workspace = true }
pallet-sudo = { workspace = true }
pallet-timestamp = { workspace = true }
pallet-transaction-payment = { workspace = true }
pallet-transaction-payment-rpc-runtime-api = { workspace = true }
pallet-treasury = { workspace = true }
pallet-utility = { workspace = true }
pallet-whitelist = { workspace = true }
sp-api = { workspace = true }
sp-arithmetic = { workspace = true }
sp-block-builder = { workspace = true }
sp-consensus-aura = { workspace = true }
sp-core = { workspace = true }
sp-genesis-builder = { workspace = true }
sp-inherents = { workspace = true }
sp-offchain = { workspace = true }
sp-runtime = { workspace = true }
sp-session = { workspace = true }
sp-std = { workspace = true }
sp-transaction-pool = { workspace = true }
sp-version = { workspace = true }

# Polkadot
pallet-xcm = { workspace = true }
polkadot-parachain-primitives = { workspace = true }
polkadot-runtime-common = { workspace = true }
xcm = { workspace = true }
xcm-builder = { workspace = true }
xcm-executor = { workspace = true }

# Cumulus
assets-common = { workspace = true }
cumulus-pallet-aura-ext = { workspace = true }
cumulus-pallet-parachain-system = { workspace = true }
cumulus-pallet-session-benchmarking = { workspace = true }
cumulus-pallet-xcm = { workspace = true }
cumulus-pallet-xcmp-queue = { workspace = true }
cumulus-primitives-aura = { workspace = true }
cumulus-primitives-core = { workspace = true }
cumulus-primitives-storage-weight-reclaim = { workspace = true }
cumulus-primitives-utility = { workspace = true }
pallet-collator-selection = { workspace = true }
parachain-info = { workspace = true }
parachains-common = { workspace = true }

[dev-dependencies]
sp-io = { workspace = true }

[build-dependencies]
substrate-wasm-builder = { workspace = true }

[features]
default = [ "std" ]
std = [
	"assets-common/std",
	"cumulus-pallet-aura-ext/std",
	"cumulus-pallet-parachain-system/std",
	"cumulus-pallet-session-benchmarking/std",
	"cumulus-pallet-xcm/std",
	"cumulus-pallet-xcmp-queue/std",
	"cumulus-primitives-aura/std",
	"cumulus-primitives-core/std",
	"cumulus-primitives-storage-weight-reclaim/std",
	"cumulus-primitives-utility/std",
	"frame-benchmarking?/std",
	"frame-executive/std",
	"frame-support/std",
	"frame-system-benchmarking?/std",
	"frame-system-rpc-runtime-api/std",
	"frame-system/std",
	"frame-try-runtime?/std",
	"log/std",
	"pallet-assets/std",
	"pallet-aura/std",
	"pallet-authorship/std",
	"pallet-balances/std",
	"pallet-collator-selection/std",
	"pallet-conviction-voting/std",
	"pallet-message-queue/std",
	"pallet-multisig/std",
	"pallet-preimage/std",
	"pallet-proxy/std",
	"pallet-referenda/std",
	"pallet-scheduler/std",
	"pallet-session/std",
	"pallet-sudo/std",
	"pallet-timestamp/std",
	"pallet-transaction-payment-rpc-runtime-api/std",
	"pallet-transaction-payment/std",
	"pallet-treasury/std",
	"pallet-utility/std",
	"pallet-whitelist/std",
	"pallet-xcm/std",
	"parachain-info/std",
	"parachains-common/std",
	"parity-scale-codec/std",
	"polkadot-parachain-primitives/std",
	"polkadot-runtime-common/std",
	"scale-info/std",
	"sp-api/std",
	"sp-arithmetic/std",
	"sp-block-builder/std",
	"sp-consensus-aura/std",
	"sp-core/std",
	"sp-genesis-builder/std",
	"sp-inherents/std",
	"sp-offchain/std",
	"sp-runtime/std",
	"sp-session/std",
	"sp-std/std",
	"sp-transaction-pool/std",
	"sp-version/std",
	"xcm-builder/std",
	"xcm-executor/std",
	"xcm/std",
]
async-backing = []

runtime-benchmarks = [
	"assets-common/runtime-benchmarks",
	"cumulus-pallet-parachain-system/runtime-benchmarks",
	"cumulus-pallet-session-benchmarking/runtime-benchmarks",
	"cumulus-pallet-xcmp-queue/runtime-benchmarks",
	"cumulus-primitives-utility/runtime-benchmarks",
	"frame-benchmarking/runtime-benchmarks",
	"frame-support/runtime-benchmarks",
	"frame-system-benchmarking/runtime-benchmarks",
	"frame-system/runtime-benchmarks",
	"hex-literal",
	"pallet-assets/runtime-benchmarks",
	"pallet-balances/runtime-benchmarks",
	"pallet-collator-selection/runtime-benchmarks",
	"pallet-conviction-voting/runtime-benchmarks",
	"pallet-message-queue/runtime-benchmarks",
	"pallet-multisig/runtime-benchmarks",
	"pallet-preimage/runtime-benchmarks",
	"pallet-proxy/runtime-benchmarks",
	"pallet-referenda/runtime-benchmarks",
	"pallet-scheduler/runtime-benchmarks",
	"pallet-sudo/runtime-benchmarks",
	"pallet-timestamp/runtime-benchmarks",
	"pallet-treasury/runtime-benchmarks",
	"pallet-utility/runtime-benchmarks",
	"pallet-whitelist/runtime-benchmarks",
	"pallet-xcm/runtime-benchmarks",
	"parachains-common/runtime-benchmarks",
	"polkadot-parachain-primitives/runtime-benchmarks",
	"polkadot-runtime-common/runtime-benchmarks",
	"sp-runtime/runtime-benchmarks",
	"xcm-builder/runtime-benchmarks",
	"xcm-executor/runtime-benchmarks",
]

try-runtime = [
	"cumulus-pallet-aura-ext/try-runtime",
	"cumulus-pallet-parachain-system/try-runtime",
	"cumulus-pallet-xcm/try-runtime",
	"cumulus-pallet-xcmp-queue/try-runtime",
	"frame-executive/try-runtime",
	"frame-support/try-runtime",
	"frame-system/try-runtime",
	"frame-try-runtime/try-runtime",
	"pallet-assets/try-runtime",
	"pallet-aura/try-runtime",
	"pallet-authorship/try-runtime",
	"pallet-balances/try-runtime",
	"pallet-collator-selection/try-runtime",
	"pallet-conviction-voting/try-runtime",
	"pallet-message-queue/try-runtime",
	"pallet-multisig/try-runtime",
	"pallet-preimage/try-runtime",
	"pallet-proxy/try-runtime",
	"pallet-referenda/try-runtime",
	"pallet-scheduler/try-runtime",
	"pallet-session/try-runtime",
	"pallet-session/try-runtime",
	"pallet-sudo/try-runtime",
	"pallet-timestamp/try-runtime",
	"pallet-transaction-payment/try-runtime",
	"pallet-treasury/try-runtime",
	"pallet-utility/try-runtime",
	"pallet-whitelist/try-runtime",
	"pallet-xcm/try-runtime",
	"parachain-info/try-runtime",
	"polkadot-runtime-common/try-runtime",
	"sp-runtime/try-runtime",
]

# A feature that should be enabled when the runtime should be built for on-chain
# deployment. This will disable stuff that shouldn't be part of the on-chain wasm
# to make it smaller, like logging for example.
on-chain-release-build = [ "sp-api/disable-logging" ]
