[package]
name = "casper-runtime"
version = "3.5.20"
build = "build.rs"
description = "Runtime of the Casper Network"
edition.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true

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

[dependencies]
codec = { features = ["derive", "max-encoded-len"], workspace = true }
scale-info = { features = ["derive"], workspace = true }
log = { workspace = true }
serde_json = { workspace = true }

frame-support = { workspace = true }
frame-system = { workspace = true }
frame-system-rpc-runtime-api = { workspace = true }
frame-executive = { workspace = true }
frame-election-provider-support = { workspace = true }

authority-discovery-primitives = { workspace = true }
babe-primitives = { workspace = true }
grandpa-primitives = { workspace = true }
block-builder-api = { workspace = true }
inherents = { workspace = true }
offchain-primitives = { workspace = true }
sp-transaction-pool = { workspace = true }
sp-arithmetic = { workspace = true }
sp-api = { workspace = true }
sp-genesis-builder = { workspace = true }
sp-std = { workspace = true }
sp-application-crypto = { workspace = true }
sp-io = { workspace = true }
sp-runtime = { workspace = true }
sp-staking = { workspace = true }
sp-core = { workspace = true }
sp-session = { workspace = true }
sp-storage = { workspace = true }
sp-version = { workspace = true }
sp-npos-elections = { workspace = true }

pallet-alliance = { workspace = true }
pallet-authority-discovery = { workspace = true }
pallet-authorship = { workspace = true }
pallet-babe = { workspace = true }
pallet-bags-list = { workspace = true }
pallet-balances = { workspace = true }
pallet-bounties = { workspace = true }
pallet-child-bounties = { workspace = true }
pallet-collective = { workspace = true }
pallet-core-fellowship = { workspace = true }
pallet-election-provider-multi-phase = { workspace = true }
pallet-fast-unstake = { workspace = true }
pallet-grandpa = { workspace = true }
pallet-identity = { workspace = true }
pallet-indices = { workspace = true }
pallet-multisig = { workspace = true }
pallet-nomination-pools = { workspace = true }
pallet-nomination-pools-runtime-api = { workspace = true }
pallet-offences = { workspace = true }
pallet-preimage = { workspace = true }
pallet-proxy = { workspace = true }
pallet-ranked-collective = { workspace = true }
pallet-referenda = { workspace = true }
pallet-salary = { workspace = true }
pallet-scheduler = { workspace = true }
pallet-session = { workspace = true }
pallet-staking = { workspace = true }
pallet-staking-reward-fn = { workspace = true }
pallet-staking-reward-curve = { workspace = true }
pallet-staking-runtime-api = { 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-vesting = { workspace = true }
pallet-whitelist = { workspace = true }

# Ghost pallets
ghost-networks = { workspace = true }
ghost-claims = { workspace = true }
ghost-slow-clap = { workspace = true }
casper-runtime-constants = { workspace = true }
runtime-common = { workspace = true }
primitives = { workspace = true }

# Benchmarking
frame-benchmarking = { optional = true, workspace = true }
frame-try-runtime = { optional = true, workspace = true }
frame-system-benchmarking = { optional = true, workspace = true }
pallet-election-provider-support-benchmarking = { optional = true, workspace = true }
pallet-offences-benchmarking = { optional = true, workspace = true }
pallet-session-benchmarking = { optional = true, workspace = true }
pallet-nomination-pools-benchmarking = { optional = true, workspace = true }
sp-debug-derive = { workspace = true }

[dev-dependencies]
keyring = { workspace = true }
sp-trie = { workspace = true }
separator = { workspace = true }
remote-externalities = { workspace = true }
tokio = { features = ["macros"], workspace = true }
sp-tracing = { workspace = true }


[features]
default = [ "std" ]
no_std = []

only-staking = []

# A feature that should be neabled when the runtime should be build 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" ]

# Set timing constants (e.g. session period) to faster versions to speed up testing.
fast-runtime = []

force-debug = ["sp-debug-derive/force-debug"]

std = [
    "authority-discovery-primitives/std",
    "babe-primitives/std",
    "grandpa-primitives/std",
    "block-builder-api/std",
    "codec/std",
    "frame-benchmarking?/std",
    "frame-election-provider-support/std",
    "frame-executive/std",
    "frame-support/std",
    "frame-system-benchmarking?/std",
    "frame-system-rpc-runtime-api/std",
    "frame-system/std",
    "frame-try-runtime?/std",
    "inherents/std",
    "log/std",
    "keyring/std",
    "offchain-primitives/std",
    "pallet-alliance/std",
    "pallet-authority-discovery/std",
    "pallet-authorship/std",
    "pallet-babe/std",
    "pallet-bags-list/std",
    "pallet-balances/std",
    "pallet-bounties/std",
    "pallet-child-bounties/std",
    "pallet-core-fellowship/std",
    "pallet-collective/std",
    "pallet-election-provider-multi-phase/std",
    "pallet-election-provider-support-benchmarking?/std",
    "pallet-fast-unstake/std",
    "pallet-grandpa/std",
    "pallet-identity/std",
    "pallet-indices/std",
    "pallet-multisig/std",
    "pallet-nomination-pools/std",
    "pallet-nomination-pools-benchmarking?/std",
    "pallet-nomination-pools-runtime-api/std",
    "pallet-offences/std",
    "pallet-offences-benchmarking?/std",
    "pallet-preimage/std",
    "pallet-proxy/std",
    "pallet-ranked-collective/std",
    "pallet-referenda/std",
    "pallet-salary/std",
    "pallet-scheduler/std",
    "pallet-session/std",
    "pallet-session-benchmarking?/std",
    "pallet-staking/std",
    "pallet-staking-reward-fn/std",
    "pallet-staking-runtime-api/std",
    "pallet-timestamp/std",
    "pallet-transaction-payment/std",
    "pallet-transaction-payment-rpc-runtime-api/std",
    "pallet-treasury/std",
    "pallet-utility/std",
    "pallet-vesting/std",
    "pallet-whitelist/std",
    "scale-info/std",
    "sp-api/std",
    "sp-application-crypto/std",
    "sp-arithmetic/std",
    "sp-core/std",
    "sp-debug-derive/std",
    "sp-genesis-builder/std",
    "sp-io/std",
    "sp-npos-elections/std",
    "sp-runtime/std",
    "sp-session/std",
    "sp-staking/std",
    "sp-std/std",
    "sp-storage/std",
    "sp-tracing/std",
    "sp-trie/std",
    "sp-version/std",
    "sp-transaction-pool/std",
    "ghost-networks/std",
    "ghost-claims/std",
    "ghost-slow-clap/std",
    "casper-runtime-constants/std",
    "runtime-common/std",
    "primitives/std",
]
runtime-benchmarks = [
    "frame-benchmarking/runtime-benchmarks",
    "frame-election-provider-support/runtime-benchmarks",
    "frame-support/runtime-benchmarks",
    "frame-system/runtime-benchmarks",
    "frame-system-benchmarking/runtime-benchmarks",
    "pallet-alliance/runtime-benchmarks",
    "pallet-babe/runtime-benchmarks",
    "pallet-bags-list/runtime-benchmarks",
    "pallet-balances/runtime-benchmarks",
    "pallet-bounties/runtime-benchmarks",
    "pallet-child-bounties/runtime-benchmarks",
    "pallet-core-fellowship/runtime-benchmarks",
    "pallet-collective/runtime-benchmarks",
    "pallet-election-provider-multi-phase/runtime-benchmarks",
    "pallet-election-provider-support-benchmarking/runtime-benchmarks",
    "pallet-fast-unstake/runtime-benchmarks",
    "pallet-grandpa/runtime-benchmarks",
    "pallet-identity/runtime-benchmarks",
    "pallet-indices/runtime-benchmarks",
    "pallet-multisig/runtime-benchmarks",
    "pallet-nomination-pools/runtime-benchmarks",
    "pallet-nomination-pools-benchmarking/runtime-benchmarks",
    "pallet-offences/runtime-benchmarks",
    "pallet-offences-benchmarking/runtime-benchmarks",
    "pallet-preimage/runtime-benchmarks",
    "pallet-proxy/runtime-benchmarks",
    "pallet-ranked-collective/runtime-benchmarks",
    "pallet-referenda/runtime-benchmarks",
    "pallet-salary/runtime-benchmarks",
    "pallet-scheduler/runtime-benchmarks",
    "pallet-session-benchmarking/runtime-benchmarks",
    "pallet-staking/runtime-benchmarks",
    "pallet-timestamp/runtime-benchmarks",
    "pallet-treasury/runtime-benchmarks",
    "pallet-utility/runtime-benchmarks",
    "pallet-vesting/runtime-benchmarks",
    "pallet-whitelist/runtime-benchmarks",
    "sp-runtime/runtime-benchmarks",
    "sp-staking/runtime-benchmarks",
    "ghost-networks/runtime-benchmarks",
    "ghost-claims/runtime-benchmarks",
    "ghost-slow-clap/runtime-benchmarks",
    "runtime-common/runtime-benchmarks",
]
try-runtime = [
    "frame-election-provider-support/try-runtime",
    "frame-executive/try-runtime",
    "frame-support/try-runtime",
    "frame-system/try-runtime",
    "frame-try-runtime",
    "frame-try-runtime/try-runtime",
    "pallet-alliance/try-runtime",
    "pallet-authority-discovery/try-runtime",
    "pallet-authorship/try-runtime",
    "pallet-babe/try-runtime",
    "pallet-bags-list/try-runtime",
    "pallet-balances/try-runtime",
    "pallet-bounties/try-runtime",
    "pallet-child-bounties/try-runtime",
    "pallet-core-fellowship/try-runtime",
    "pallet-collective/try-runtime",
    "pallet-election-provider-multi-phase/try-runtime",
    "pallet-fast-unstake/try-runtime",
    "pallet-grandpa/try-runtime",
    "pallet-identity/try-runtime",
    "pallet-indices/try-runtime",
    "pallet-multisig/try-runtime",
    "pallet-nomination-pools/try-runtime",
    "pallet-offences/try-runtime",
    "pallet-preimage/try-runtime",
    "pallet-proxy/try-runtime",
    "pallet-ranked-collective/try-runtime",
    "pallet-referenda/try-runtime",
    "pallet-salary/try-runtime",
    "pallet-scheduler/try-runtime",
    "pallet-session/try-runtime",
    "pallet-staking/try-runtime",
    "pallet-timestamp/try-runtime",
    "pallet-transaction-payment/try-runtime",
    "pallet-treasury/try-runtime",
    "pallet-utility/try-runtime",
    "pallet-vesting/try-runtime",
    "pallet-whitelist/try-runtime",
    "sp-runtime/try-runtime",
    "ghost-networks/try-runtime",
    "ghost-claims/try-runtime",
    "ghost-slow-clap/try-runtime",
    "runtime-common/try-runtime",
]