[package]
name = "sp-core"
version = "2.0.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"

[dependencies]
rstd = { package = "sp-std", path = "../sr-std", default-features = false }
codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false, features = ["derive"] }
rustc-hex = { version = "2.0.1", default-features = false }
log = { version = "0.4.8", default-features = false }
serde = { version = "1.0.101", optional = true, features = ["derive"] }
twox-hash = { version = "1.5.0", default-features = false, optional = true }
byteorder = { version = "1.3.2", default-features = false }
primitive-types = { version = "0.6", default-features = false, features = ["codec"] }
impl-serde = { version = "0.2.3", optional = true }
wasmi = { version = "0.6.2", optional = true }
hash-db = { version = "0.15.2", default-features = false }
hash256-std-hasher = { version = "0.15.2", default-features = false }
ed25519-dalek = { version = "1.0.0-pre.2", default-features = false, features = ["u64_backend"], optional = true }
base58 = { version = "0.1.0", optional = true }
blake2-rfc = { version = "0.2.18", default-features = false, optional = true }
schnorrkel = { version = "0.8.5", features = ["preaudit_deprecated"], default-features = false, optional = true }
rand = { version = "0.7.2", optional = true }
sha2 = { version = "0.8.0", default-features = false, optional = true }
substrate-bip39 = { version = "0.3.1", optional = true }
tiny-bip39 = { version = "0.6.2", optional = true }
hex = { version = "0.4", default-features = false, optional = true }
regex = { version = "1.3.1", optional = true }
num-traits = { version = "0.2.8", default-features = false }
zeroize = { version = "1.0.0", default-features = false }
lazy_static = { version = "1.4.0", default-features = false, optional = true }
parking_lot = { version = "0.9.0", optional = true }
libsecp256k1 = { version = "0.3.0", default-features = false, optional = true }
tiny-keccak = { version = "2.0.1", features = ["keccak"], optional = true }
sp-debug-derive = { version = "2.0.0", path = "./debug-derive" }
externalities = { package = "sp-externalities", path = "../externalities", optional = true }
primitives-storage = { package = "sp-core-storage", path = "storage", default-features = false }
runtime-interface = { package = "sp-runtime-interface", path = "../runtime-interface", default-features = false }

[dev-dependencies]
sp-serializer = { path = "../serializer" }
pretty_assertions = "0.6.1"
hex-literal = "0.2.1"
rand = "0.7.2"
criterion = "0.2.11"
serde_json = "1.0"

[[bench]]
name = "bench"
harness = false

[lib]
bench = false

[features]
default = ["std"]
std = [
	"full_crypto",
	"log/std",
	"wasmi",
	"lazy_static",
	"parking_lot",
	"primitive-types/std",
	"primitive-types/serde",
	"primitive-types/byteorder",
	"primitive-types/rustc-hex",
	"primitive-types/libc",
	"impl-serde",
	"codec/std",
	"hash256-std-hasher/std",
	"hash-db/std",
	"rstd/std",
	"serde",
	"rustc-hex/std",
	"twox-hash/std",
	"blake2-rfc/std",
	"ed25519-dalek/std",
	"hex/std",
	"base58",
	"substrate-bip39",
	"tiny-bip39",
	"serde",
	"byteorder/std",
	"rand",
	"sha2/std",
	"schnorrkel/std",
	"regex",
	"num-traits/std",
	"libsecp256k1",
	"tiny-keccak",
	"sp-debug-derive/std",
	"externalities",
	"primitives-storage/std",
	"runtime-interface/std",
	"zeroize/alloc"
]

# This feature enables all crypto primitives for `no_std` builds like microcontrollers
# or Intel SGX.
# For the regular wasm runtime builds this should not be used.
full_crypto = [
	"ed25519-dalek",
	"blake2-rfc",
	"tiny-keccak",
	"schnorrkel",
	"libsecp256k1",
	"hex",
	"sha2",
	"twox-hash",
	"runtime-interface/disable_target_static_assertions",
]
