[package]
name = "serai-runtime"
version = "0.1.0"
description = "Serai network node runtime, built over Substrate"
license = "AGPL-3.0-only"
repository = "https://github.com/serai-dex/serai/tree/develop/substrate/runtime"
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
edition = "2021"
rust-version = "1.74"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[package.metadata.cargo-machete]
ignored = ["scale", "scale-info"]

[lints]
workspace = true

[dependencies]
hashbrown = { version = "0.14", default-features = false, features = ["ahash", "inline-more"] }

scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["derive"] }
scale-info = { version = "2", default-features = false, features = ["derive"] }

sp-core = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-std = { git = "https://github.com/serai-dex/substrate", default-features = false }

sp-offchain = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-version = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-inherents = { git = "https://github.com/serai-dex/substrate", default-features = false }

sp-session = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-consensus-babe = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-consensus-grandpa = { git = "https://github.com/serai-dex/substrate", default-features = false }

sp-authority-discovery = { git = "https://github.com/serai-dex/substrate", default-features = false }

sp-transaction-pool = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-block-builder = { git = "https://github.com/serai-dex/substrate", default-features = false }

sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features = false }
sp-api = { git = "https://github.com/serai-dex/substrate", default-features = false }

frame-system = { git = "https://github.com/serai-dex/substrate", default-features = false }
frame-support = { git = "https://github.com/serai-dex/substrate", default-features = false }
frame-executive = { git = "https://github.com/serai-dex/substrate", default-features = false }
frame-benchmarking = { git = "https://github.com/serai-dex/substrate", default-features = false, optional = true }

serai-primitives = { path = "../primitives", default-features = false }
serai-abi = { path = "../abi", default-features = false, features = ["serde"] }

pallet-timestamp = { git = "https://github.com/serai-dex/substrate", default-features = false }
pallet-authorship = { git = "https://github.com/serai-dex/substrate", default-features = false }

pallet-transaction-payment = { git = "https://github.com/serai-dex/substrate", default-features = false }

coins-pallet = { package = "serai-coins-pallet", path = "../coins/pallet", default-features = false }
dex-pallet = { package = "serai-dex-pallet", path = "../dex/pallet", default-features = false }

validator-sets-pallet = { package = "serai-validator-sets-pallet", path = "../validator-sets/pallet", default-features = false }
genesis-liquidity-pallet = { package = "serai-genesis-liquidity-pallet", path = "../genesis-liquidity/pallet", default-features = false }
emissions-pallet = { package = "serai-emissions-pallet", path = "../emissions/pallet", default-features = false }

economic-security-pallet = { package = "serai-economic-security-pallet", path = "../economic-security/pallet", default-features = false }

in-instructions-pallet = { package = "serai-in-instructions-pallet", path = "../in-instructions/pallet", default-features = false }

signals-pallet = { package = "serai-signals-pallet", path = "../signals/pallet", default-features = false }

pallet-babe = { git = "https://github.com/serai-dex/substrate", default-features = false }
pallet-grandpa = { git = "https://github.com/serai-dex/substrate", default-features = false }

frame-system-rpc-runtime-api = { git = "https://github.com/serai-dex/substrate", default-features = false }
pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/serai-dex/substrate", default-features = false }

[build-dependencies]
substrate-wasm-builder = { git = "https://github.com/serai-dex/substrate" }

[features]
std = [
  "scale/std",
  "scale-info/std",

  "sp-core/std",
  "sp-std/std",

  "sp-offchain/std",
  "sp-version/std",
  "sp-inherents/std",

  "sp-session/std",
  "sp-consensus-babe/std",
  "sp-consensus-grandpa/std",

  "sp-authority-discovery/std",

  "sp-transaction-pool/std",
  "sp-block-builder/std",

  "sp-runtime/std",
  "sp-api/std",

  "frame-system/std",
  "frame-support/std",
  "frame-executive/std",

  "serai-primitives/std",
  "serai-abi/std",
  "serai-abi/serde",

  "pallet-timestamp/std",
  "pallet-authorship/std",

  "pallet-transaction-payment/std",

  "coins-pallet/std",
  "dex-pallet/std",

  "validator-sets-pallet/std",
  "genesis-liquidity-pallet/std",
  "emissions-pallet/std",

  "economic-security-pallet/std",

  "in-instructions-pallet/std",

  "signals-pallet/std",

  "pallet-babe/std",
  "pallet-grandpa/std",

  "frame-system-rpc-runtime-api/std",
  "pallet-transaction-payment-rpc-runtime-api/std",
]

fast-epoch = [
  "genesis-liquidity-pallet/fast-epoch",
  "emissions-pallet/fast-epoch",
]

runtime-benchmarks = [
  "sp-runtime/runtime-benchmarks",

  "frame-system/runtime-benchmarks",
  "frame-support/runtime-benchmarks",
  "frame-benchmarking/runtime-benchmarks",

  "pallet-timestamp/runtime-benchmarks",

  "pallet-babe/runtime-benchmarks",
  "pallet-grandpa/runtime-benchmarks",
]

default = ["std"]