[package]
name = "webb-proposals"
version = "0.8.0"
description = "Webb Protocol Proposals Specification & Implementation (part of webb-rs SDK)"
categories = ["encoding", "no-std"]
keywords = ["webb", "proposals", "protocol", "blockchain"]
readme = "../README.md"
edition = { workspace = true }
authors = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
documentation = { workspace = true }
homepage = { workspace = true }

[dependencies]
scale-codec = { package = 'parity-scale-codec', version = '3.0.0', default-features = false, optional = true, features = ["derive", "max-encoded-len"] }
scale-info = { version = "2.1.1", default-features = false, optional = true }
frame-support = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.1.0", optional = true }
num-traits = { version = "0.2.15", default-features = false }
typed-builder = { version = "0.18", default-features = false, optional = true }
tiny-keccak = { version = "2.0.2", features = ["keccak"] }
serde = { workspace = true, optional = true, default-features = false, features = ["alloc", "derive"] }
hex = { workspace = true, default-features = false, features = ["alloc"] }
proposal-derive = { version = "0.1.0", package = "webb-proposal-derive", path = "../proposal-derive", default-features = false }
thiserror = { workspace = true }

[dev-dependencies]
hex-literal = "0.4"
hex = { workspace = true }
toml = { version = "0.8" }
serde = { workspace = true, default-features = false, features = ["alloc"] }

[features]
default = ["std", "evm", "substrate", "scale", "ink"]
std = ["scale-codec/std", "scale-info/std", "num-traits/std", "serde/std", "hex/std", "frame-support/std", "proposal-derive/std"]
scale = ["scale-codec", "scale-info/derive"]
evm = ["serde"]
substrate = ["scale", "typed-builder", "frame-support", "serde"]
ink = ["scale", "typed-builder"]