[package]
name = "evm-runtime-template"
authors = { workspace = true }
description = "An EVM teyrchain runtime template"
edition = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
version = "3.0.0"

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

[dependencies]
docify = { workspace = true }
hex-literal = { version = "0.4.1", default-features = false }
log = { workspace = true }
parity-scale-codec = { workspace = true, features = [ "derive" ] }
scale-info = { workspace = true, features = [ "derive" ] }
serde_json = { workspace = true, default-features = false, features = [ "alloc" ] }
smallvec = { workspace = true }

openzeppelin-pallet-abstractions = { workspace = true }
openzeppelin-pallet-abstractions-proc = { workspace = true }

# Bizinikiwi
pezframe-benchmarking = { workspace = true, optional = true }
pezframe-executive = { workspace = true }
pezframe-metadata-hash-extension = { workspace = true }
pezframe-support = { workspace = true }
pezframe-system = { workspace = true }
pezframe-system-benchmarking = { workspace = true, optional = true }
pezframe-system-rpc-runtime-api = { workspace = true }
pezframe-try-runtime = { workspace = true, optional = true }
pezpallet-asset-tx-payment = { workspace = true }
pezpallet-assets = { workspace = true }
pezpallet-aura = { workspace = true }
pezpallet-authorship = { workspace = true }
pezpallet-balances = { workspace = true, features = [ "insecure_zero_ed" ] }
pezpallet-conviction-voting = { workspace = true }
pezpallet-membership = { workspace = true }
pezpallet-message-queue = { workspace = true }
pezpallet-multisig = { workspace = true }
pezpallet-preimage = { workspace = true }
pezpallet-proxy = { workspace = true }
pezpallet-referenda = { workspace = true }
pezpallet-scheduler = { workspace = true }
pezpallet-session = { workspace = true }
pezpallet-sudo = { workspace = true }
pezpallet-timestamp = { workspace = true }
pezpallet-transaction-payment = { workspace = true }
pezpallet-transaction-payment-rpc-runtime-api = { workspace = true }
pezpallet-treasury = { workspace = true }
pezpallet-utility = { workspace = true }
pezpallet-whitelist = { workspace = true }
pezsp-api = { workspace = true }
pezsp-arithmetic = { workspace = true }
pezsp-block-builder = { workspace = true }
pezsp-consensus-aura = { workspace = true }
pezsp-core = { workspace = true }
pezsp-genesis-builder = { workspace = true }
pezsp-inherents = { workspace = true }
pezsp-keyring = { workspace = true }
pezsp-offchain = { workspace = true }
pezsp-runtime = { workspace = true }
pezsp-session = { workspace = true }
pezsp-std = { workspace = true }
pezsp-transaction-pool = { workspace = true }
pezsp-version = { workspace = true }

# Pezkuwi
pezpallet-xcm = { workspace = true }
pezkuwi-teyrchain-primitives = { workspace = true }
pezkuwi-runtime-common = { workspace = true }
staging-xcm = { workspace = true }
staging-xcm-builder = { workspace = true }
staging-xcm-executor = { workspace = true }

# Pezpezcumulus
assets-common = { workspace = true }
pezcumulus-pezpallet-aura-ext = { workspace = true }
pezcumulus-pezpallet-teyrchain-system = { workspace = true }
pezcumulus-pezpallet-session-benchmarking = { workspace = true }
pezcumulus-pezpallet-weight-reclaim = { workspace = true }
pezcumulus-pezpallet-xcm = { workspace = true }
pezcumulus-pezpallet-xcmp-queue = { workspace = true }
pezcumulus-primitives-aura = { workspace = true }
pezcumulus-primitives-core = { workspace = true }
pezcumulus-primitives-timestamp = { workspace = true }
pezcumulus-primitives-utility = { workspace = true }
pezpallet-collator-selection = { workspace = true }
teyrchain-info = { workspace = true }
teyrchains-common = { workspace = true }

# Frontier
fp-account = { workspace = true }
fp-evm = { workspace = true }
fp-rpc = { workspace = true }
fp-self-contained = { workspace = true, features = [ "serde" ] }
pezpallet-base-fee = { workspace = true }
pezpallet-ethereum = { workspace = true }
pezpallet-evm = { workspace = true }
pezpallet-evm-chain-id = { workspace = true }
pezpallet-evm-precompile-modexp = { workspace = true }
pezpallet-evm-precompile-sha3fips = { workspace = true }
pezpallet-evm-precompile-simple = { workspace = true }

# ORML
orml-oracle = { workspace = true }
orml-oracle-runtime-api = { workspace = true }
orml-traits = { workspace = true }
orml-xcm-support = { workspace = true }
orml-xtokens = { workspace = true }

# Moonbeam
pezpallet-asset-manager = { workspace = true }
pezpallet-erc20-xcm-bridge = { workspace = true }
pezpallet-xcm-transactor = { workspace = true }
pezpallet-xcm-weight-trader = { workspace = true }
xcm-primitives = { workspace = true }

# Tanssi
dp-consensus = { workspace = true }
nimbus-primitives = { workspace = true }
pezpallet-author-inherent = { workspace = true }
pezpallet-cc-authorities-noting = { workspace = true }

[dev-dependencies]
ethereum = { workspace = true }
pezkuwi-runtime-teyrchains = { workspace = true }
pezsp-io = { workspace = true }
pezsp-tracing = { workspace = true }
xcm-pez-simulator = { workspace = true }

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

[features]
default = [ "std" ]
std = [
	"assets-common/std",
	"pezcumulus-pezpallet-aura-ext/std",
	"pezcumulus-pezpallet-teyrchain-system/std",
	"pezcumulus-pezpallet-session-benchmarking/std",
	"pezcumulus-pezpallet-weight-reclaim/std",
	"pezcumulus-pezpallet-xcm/std",
	"pezcumulus-pezpallet-xcmp-queue/std",
	"pezcumulus-primitives-aura/std",
	"pezcumulus-primitives-core/std",
	"pezcumulus-primitives-utility/std",
	"dp-consensus/std",
	"fp-account/std",
	"fp-account/std",
	"fp-evm/std",
	"fp-rpc/std",
	"fp-self-contained/std",
	"pezframe-benchmarking?/std",
	"pezframe-executive/std",
	"pezframe-metadata-hash-extension/std",
	"pezframe-support/std",
	"pezframe-system-benchmarking?/std",
	"pezframe-system-rpc-runtime-api/std",
	"pezframe-system/std",
	"pezframe-try-runtime?/std",
	"log/std",
	"nimbus-primitives/std",
	"openzeppelin-pallet-abstractions/std",
	"orml-oracle-runtime-api/std",
	"orml-oracle/std",
	"orml-xtokens/std",
	"pezpallet-asset-manager/std",
	"pezpallet-asset-tx-payment/std",
	"pezpallet-assets/std",
	"pezpallet-aura/std",
	"pezpallet-author-inherent/std",
	"pezpallet-authorship/std",
	"pezpallet-balances/std",
	"pezpallet-base-fee/std",
	"pezpallet-cc-authorities-noting/std",
	"pezpallet-collator-selection/std",
	"pezpallet-conviction-voting/std",
	"pezpallet-erc20-xcm-bridge/std",
	"pezpallet-ethereum/std",
	"pezpallet-evm-chain-id/std",
	"pezpallet-evm/std",
	"pezpallet-membership/std",
	"pezpallet-message-queue/std",
	"pezpallet-multisig/std",
	"pezpallet-preimage/std",
	"pezpallet-proxy/std",
	"pezpallet-referenda/std",
	"pezpallet-scheduler/std",
	"pezpallet-session/std",
	"pezpallet-sudo/std",
	"pezpallet-timestamp/std",
	"pezpallet-transaction-payment-rpc-runtime-api/std",
	"pezpallet-transaction-payment/std",
	"pezpallet-treasury/std",
	"pezpallet-utility/std",
	"pezpallet-whitelist/std",
	"pezpallet-xcm-transactor/std",
	"pezpallet-xcm-weight-trader/std",
	"pezpallet-xcm/std",
	"teyrchain-info/std",
	"teyrchains-common/std",
	"parity-scale-codec/std",
	"pezkuwi-teyrchain-primitives/std",
	"pezkuwi-runtime-common/std",
	"scale-info/std",
	"serde_json/std",
	"pezsp-api/std",
	"pezsp-arithmetic/std",
	"pezsp-block-builder/std",
	"pezsp-consensus-aura/std",
	"pezsp-core/std",
	"pezsp-genesis-builder/std",
	"pezsp-inherents/std",
	"pezsp-keyring/std",
	"pezsp-offchain/std",
	"pezsp-runtime/std",
	"pezsp-session/std",
	"pezsp-std/std",
	"pezsp-transaction-pool/std",
	"pezsp-version/std",
	"staging-xcm-builder/std",
	"staging-xcm-executor/std",
	"xcm-primitives/std",
	"staging-xcm/std",
]
async-backing = [ "openzeppelin-pallet-abstractions-proc/async-backing" ]
metadata-hash = [ "bizinikiwi-wasm-builder/metadata-hash" ]
runtime-benchmarks = [
	"assets-common/runtime-benchmarks",
	"pezcumulus-pezpallet-teyrchain-system/runtime-benchmarks",
	"pezcumulus-pezpallet-session-benchmarking/runtime-benchmarks",
	"pezcumulus-pezpallet-xcmp-queue/runtime-benchmarks",
	"pezcumulus-primitives-utility/runtime-benchmarks",
	"dp-consensus/runtime-benchmarks",
	"pezframe-benchmarking/runtime-benchmarks",
	"pezframe-support/runtime-benchmarks",
	"pezframe-system-benchmarking/runtime-benchmarks",
	"pezframe-system/runtime-benchmarks",
	"nimbus-primitives/runtime-benchmarks",
	"orml-oracle/runtime-benchmarks",
	"pezpallet-asset-manager/runtime-benchmarks",
	"pezpallet-asset-tx-payment/runtime-benchmarks",
	"pezpallet-assets/runtime-benchmarks",
	"pezpallet-author-inherent/runtime-benchmarks",
	"pezpallet-balances/runtime-benchmarks",
	"pezpallet-cc-authorities-noting/runtime-benchmarks",
	"pezpallet-collator-selection/runtime-benchmarks",
	"pezpallet-conviction-voting/runtime-benchmarks",
	"pezpallet-ethereum/runtime-benchmarks",
	"pezpallet-evm/runtime-benchmarks",
	"pezpallet-membership/runtime-benchmarks",
	"pezpallet-message-queue/runtime-benchmarks",
	"pezpallet-multisig/runtime-benchmarks",
	"pezpallet-preimage/runtime-benchmarks",
	"pezpallet-proxy/runtime-benchmarks",
	"pezpallet-referenda/runtime-benchmarks",
	"pezpallet-scheduler/runtime-benchmarks",
	"pezpallet-sudo/runtime-benchmarks",
	"pezpallet-timestamp/runtime-benchmarks",
	"pezpallet-treasury/runtime-benchmarks",
	"pezpallet-utility/runtime-benchmarks",
	"pezpallet-whitelist/runtime-benchmarks",
	"pezpallet-xcm-transactor/runtime-benchmarks",
	"pezpallet-xcm-weight-trader/runtime-benchmarks",
	"pezpallet-xcm/runtime-benchmarks",
	"teyrchains-common/runtime-benchmarks",
	"pezkuwi-teyrchain-primitives/runtime-benchmarks",
	"pezkuwi-runtime-common/runtime-benchmarks",
	"pezsp-runtime/runtime-benchmarks",
	"staging-xcm-builder/runtime-benchmarks",
	"staging-xcm-executor/runtime-benchmarks",
]

try-runtime = [
	"pezcumulus-pezpallet-aura-ext/try-runtime",
	"pezcumulus-pezpallet-teyrchain-system/try-runtime",
	"pezcumulus-pezpallet-xcm/try-runtime",
	"pezcumulus-pezpallet-xcmp-queue/try-runtime",
	"fp-self-contained/try-runtime",
	"pezframe-executive/try-runtime",
	"pezframe-support/try-runtime",
	"pezframe-system/try-runtime",
	"pezframe-try-runtime/try-runtime",
	"nimbus-primitives/try-runtime",
	"orml-oracle/try-runtime",
	"orml-xtokens/try-runtime",
	"pezpallet-asset-manager/try-runtime",
	"pezpallet-asset-tx-payment/try-runtime",
	"pezpallet-assets/try-runtime",
	"pezpallet-aura/try-runtime",
	"pezpallet-author-inherent/try-runtime",
	"pezpallet-authorship/try-runtime",
	"pezpallet-balances/try-runtime",
	"pezpallet-base-fee/try-runtime",
	"pezpallet-cc-authorities-noting/try-runtime",
	"pezpallet-collator-selection/try-runtime",
	"pezpallet-conviction-voting/try-runtime",
	"pezpallet-erc20-xcm-bridge/try-runtime",
	"pezpallet-ethereum/try-runtime",
	"pezpallet-evm-chain-id/try-runtime",
	"pezpallet-membership/try-runtime",
	"pezpallet-message-queue/try-runtime",
	"pezpallet-multisig/try-runtime",
	"pezpallet-preimage/try-runtime",
	"pezpallet-proxy/try-runtime",
	"pezpallet-referenda/try-runtime",
	"pezpallet-scheduler/try-runtime",
	"pezpallet-session/try-runtime",
	"pezpallet-session/try-runtime",
	"pezpallet-sudo/try-runtime",
	"pezpallet-timestamp/try-runtime",
	"pezpallet-transaction-payment/try-runtime",
	"pezpallet-treasury/try-runtime",
	"pezpallet-utility/try-runtime",
	"pezpallet-whitelist/try-runtime",
	"pezpallet-xcm-transactor/try-runtime",
	"pezpallet-xcm-weight-trader/try-runtime",
	"pezpallet-xcm/try-runtime",
	"teyrchain-info/try-runtime",
	"pezkuwi-runtime-common/try-runtime",
	"pezsp-runtime/try-runtime",
]

tanssi = []

# 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 = [ "pezsp-api/disable-logging" ]
