[package]
name = "polkadot-omni-node-lib"
version = "0.4.0"
authors.workspace = true
edition.workspace = true
description = "Helper library that can be used to build a parachain node"
license = "Apache-2.0"

[lints]
workspace = true

[lib]
path = "src/lib.rs"

[dependencies]
async-trait = { workspace = true }
clap = { features = ["derive"], workspace = true }
codec = { workspace = true, default-features = true }
color-print = { workspace = true }
futures = { workspace = true }
log = { workspace = true, default-features = true }
serde = { features = ["derive"], workspace = true, default-features = true }
serde_json = { workspace = true, default-features = true }
docify = { workspace = true }

# Local
jsonrpsee = { features = ["server"], workspace = true }
parachains-common.workspace = true
parachains-common.default-features = true
frame-benchmarking = { optional = true, workspace = true, default-features = true }
frame-benchmarking-cli.workspace = true
frame-benchmarking-cli.default-features = true
sp-runtime.workspace = true
sp-core.workspace = true
sp-core.default-features = true
sp-session.workspace = true
sp-session.default-features = true
frame-try-runtime = { optional = true, workspace = true, default-features = true }
sc-consensus.workspace = true
sc-consensus.default-features = true
frame-support = { optional = true, workspace = true, default-features = true }
sc-cli.workspace = true
sc-cli.default-features = true
sc-client-api.workspace = true
sc-client-api.default-features = true
sc-client-db.workspace = true
sc-client-db.default-features = true
sc-executor.workspace = true
sc-executor.default-features = true
sc-service.workspace = true
sc-service.default-features = true
sc-telemetry.workspace = true
sc-telemetry.default-features = true
sc-transaction-pool.workspace = true
sc-transaction-pool.default-features = true
sp-transaction-pool.workspace = true
sp-transaction-pool.default-features = true
sc-network.workspace = true
sc-network.default-features = true
sc-basic-authorship.workspace = true
sc-basic-authorship.default-features = true
sp-timestamp.workspace = true
sp-timestamp.default-features = true
sp-genesis-builder.workspace = true
sp-block-builder.workspace = true
sp-block-builder.default-features = true
sp-keystore.workspace = true
sp-keystore.default-features = true
sc-chain-spec.workspace = true
sc-chain-spec.default-features = true
sc-rpc.workspace = true
sc-rpc.default-features = true
sp-version.workspace = true
sp-version.default-features = true
sp-weights.workspace = true
sp-weights.default-features = true
sc-tracing.workspace = true
sc-tracing.default-features = true
frame-system-rpc-runtime-api.workspace = true
frame-system-rpc-runtime-api.default-features = true
pallet-transaction-payment.workspace = true
pallet-transaction-payment.default-features = true
pallet-transaction-payment-rpc-runtime-api.workspace = true
pallet-transaction-payment-rpc-runtime-api.default-features = true
sp-inherents.workspace = true
sp-inherents.default-features = true
sp-api.workspace = true
sp-api.default-features = true
sp-consensus-aura.workspace = true
sp-consensus-aura.default-features = true
sc-consensus-manual-seal.workspace = true
sc-consensus-manual-seal.default-features = true
sc-sysinfo.workspace = true
sc-sysinfo.default-features = true
prometheus-endpoint.workspace = true
prometheus-endpoint.default-features = true
substrate-frame-rpc-system.workspace = true
substrate-frame-rpc-system.default-features = true
pallet-transaction-payment-rpc.workspace = true
pallet-transaction-payment-rpc.default-features = true
substrate-state-trie-migration-rpc.workspace = true
substrate-state-trie-migration-rpc.default-features = true
polkadot-cli.workspace = true
polkadot-cli.default-features = true
polkadot-primitives.workspace = true
polkadot-primitives.default-features = true
cumulus-client-cli.workspace = true
cumulus-client-cli.default-features = true
cumulus-client-collator.workspace = true
cumulus-client-collator.default-features = true
cumulus-client-consensus-aura.workspace = true
cumulus-client-consensus-aura.default-features = true
cumulus-client-consensus-relay-chain.workspace = true
cumulus-client-consensus-relay-chain.default-features = true
cumulus-client-consensus-common.workspace = true
cumulus-client-consensus-common.default-features = true
cumulus-client-consensus-proposer.workspace = true
cumulus-client-consensus-proposer.default-features = true
cumulus-client-parachain-inherent.workspace = true
cumulus-client-parachain-inherent.default-features = true
cumulus-client-service.workspace = true
cumulus-client-service.default-features = true
cumulus-primitives-aura.workspace = true
cumulus-primitives-aura.default-features = true
cumulus-primitives-core.workspace = true
cumulus-primitives-core.default-features = true
cumulus-relay-chain-interface.workspace = true
cumulus-relay-chain-interface.default-features = true
futures-timer = "3.0.3"

[dev-dependencies]
assert_cmd = { workspace = true }
nix = { features = ["signal"], workspace = true }
tokio = { version = "1.32.0", features = ["macros", "parking_lot", "time"] }
wait-timeout = { workspace = true }

[features]
default = []
rococo-native = [
	"polkadot-cli/rococo-native",
]
westend-native = [
	"polkadot-cli/westend-native",
]
runtime-benchmarks = [
	"cumulus-primitives-core/runtime-benchmarks",
	"frame-benchmarking-cli/runtime-benchmarks",
	"frame-benchmarking/runtime-benchmarks",
	"frame-support/runtime-benchmarks",
	"pallet-transaction-payment/runtime-benchmarks",
	"parachains-common/runtime-benchmarks",
	"polkadot-cli/runtime-benchmarks",
	"polkadot-primitives/runtime-benchmarks",
	"sc-client-db/runtime-benchmarks",
	"sc-service/runtime-benchmarks",
	"sp-runtime/runtime-benchmarks",
]
try-runtime = [
	"frame-support/try-runtime",
	"frame-try-runtime/try-runtime",
	"pallet-transaction-payment/try-runtime",
	"polkadot-cli/try-runtime",
	"sp-runtime/try-runtime",
]