[package]
name = "pallet-xcm"
version = "7.0.0"
description = "A pallet for handling XCM programs."
authors.workspace = true
edition.workspace = true
license.workspace = true

[lints]
workspace = true

[dependencies]
bounded-collections = { workspace = true }
codec = { features = ["derive"], workspace = true }
scale-info = { features = ["derive"], workspace = true }
serde = { optional = true, features = ["derive"], workspace = true, default-features = true }
tracing = { workspace = true }

frame-support = { workspace = true }
frame-system = { workspace = true }
sp-core = { workspace = true }
sp-io = { workspace = true }
sp-runtime = { workspace = true }

xcm = { workspace = true }
xcm-executor = { workspace = true }
xcm-builder = { workspace = true }
xcm-runtime-apis = { workspace = true }

# marked optional, used in benchmarking
frame-benchmarking = { optional = true, workspace = true }
pallet-balances = { optional = true, workspace = true }

[dev-dependencies]
pallet-assets = { workspace = true, default-features = true }
polkadot-runtime-parachains = { workspace = true, default-features = true }
polkadot-parachain-primitives = { workspace = true, default-features = true }

[features]
default = ["std"]
std = [
	"bounded-collections/std",
	"codec/std",
	"frame-benchmarking?/std",
	"frame-support/std",
	"frame-system/std",
	"pallet-balances/std",
	"scale-info/std",
	"serde",
	"sp-core/std",
	"sp-io/std",
	"sp-runtime/std",
	"tracing/std",
	"xcm-builder/std",
	"xcm-executor/std",
	"xcm-runtime-apis/std",
	"xcm/std",
]
runtime-benchmarks = [
	"frame-benchmarking/runtime-benchmarks",
	"frame-support/runtime-benchmarks",
	"frame-system/runtime-benchmarks",
	"pallet-assets/runtime-benchmarks",
	"pallet-balances/runtime-benchmarks",
	"polkadot-parachain-primitives/runtime-benchmarks",
	"polkadot-runtime-parachains/runtime-benchmarks",
	"sp-runtime/runtime-benchmarks",
	"xcm-builder/runtime-benchmarks",
	"xcm-executor/runtime-benchmarks",
	"xcm-runtime-apis/runtime-benchmarks",
]
try-runtime = [
	"frame-support/try-runtime",
	"frame-system/try-runtime",
	"pallet-assets/try-runtime",
	"pallet-balances/try-runtime",
	"polkadot-runtime-parachains/try-runtime",
	"sp-runtime/try-runtime",
]