sp-core 27.0.0

Shareable Substrate types.
Documentation
[package]
name = "sp-core"
version = "27.0.0"
authors.workspace = true
edition.workspace = true
license = "Apache-2.0"
homepage = "https://substrate.io"
repository.workspace = true
description = "Shareable Substrate types."
documentation = "https://docs.rs/sp-core"

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

[dependencies]
codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] }
scale-info = { version = "2.5.0", default-features = false, features = ["derive"] }
log = { version = "0.4.17", default-features = false }
serde = { version = "1.0.193", optional = true, default-features = false, features = ["alloc", "derive"] }
bounded-collections = { version = "0.1.8", default-features = false }
primitive-types = { version = "0.12.0", default-features = false, features = ["codec", "scale-info"] }
impl-serde = { version = "0.4.0", default-features = false, optional = true }
hash-db = { version = "0.16.0", default-features = false }
hash256-std-hasher = { version = "0.15.2", default-features = false }
bs58 = { version = "0.5.0", default-features = false, optional = true }
rand = { version = "0.8.5", features = ["small_rng"], optional = true }
substrate-bip39 = { version = "0.4.4", optional = true }
bip39 = { version = "2.0.0", default-features = false }
zeroize = { version = "1.4.3", default-features = false }
secrecy = { version = "0.8.0", default-features = false }
parking_lot = { version = "0.12.1", optional = true }
ss58-registry = { version = "1.34.0", default-features = false }
sp-std = { path = "../std", default-features = false, version = "13.0.0" }
sp-debug-derive = { path = "../debug-derive", default-features = false, version = "13.0.0" }
sp-storage = { path = "../storage", default-features = false, version = "18.0.0" }
sp-externalities = { path = "../externalities", optional = true, version = "0.24.0" }
futures = { version = "0.3.21", optional = true }
dyn-clonable = { version = "0.9.0", optional = true }
thiserror = { version = "1.0.48", optional = true }
tracing = { version = "0.1.29", optional = true }
bitflags = "1.3"
paste = "1.0.7"
itertools = { version = "0.10.3", optional = true }

# full crypto
array-bytes = { version = "6.1", optional = true }
ed25519-zebra = { version = "3.1.0", default-features = false, optional = true }
blake2 = { version = "0.10.4", default-features = false, optional = true }
libsecp256k1 = { version = "0.7", default-features = false, features = ["static-context"], optional = true }
schnorrkel = { version = "0.9.1", features = ["preaudit_deprecated", "u64_backend"], default-features = false }
merlin = { version = "2.0", default-features = false }
secp256k1 = { version = "0.28.0", default-features = false, features = ["alloc", "recovery"], optional = true }
sp-core-hashing = { path = "hashing", default-features = false, optional = true, version = "14.0.0" }
sp-runtime-interface = { path = "../runtime-interface", default-features = false, version = "23.0.0" }

# bls crypto
w3f-bls = { version = "0.1.3", default-features = false, optional = true }

[dev-dependencies]
criterion = "0.4.0"
serde_json = "1.0.108"
lazy_static = "1.4.0"
regex = "1.6.0"
sp-core-hashing-proc-macro = { path = "hashing/proc-macro" }

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

[lib]
bench = false

[features]
default = ["std"]
std = [
	"array-bytes",
	"bip39/rand",
	"bip39/std",
	"blake2/std",
	"bounded-collections/std",
	"bs58/std",
	"codec/std",
	"dyn-clonable",
	"ed25519-zebra/std",
	"full_crypto",
	"futures",
	"futures/thread-pool",
	"hash-db/std",
	"hash256-std-hasher/std",
	"impl-serde/std",
	"itertools",
	"libsecp256k1/std",
	"log/std",
	"merlin/std",
	"parking_lot",
	"primitive-types/byteorder",
	"primitive-types/rustc-hex",
	"primitive-types/serde",
	"primitive-types/std",
	"rand",
	"scale-info/std",
	"schnorrkel/std",
	"secp256k1/global-context",
	"secp256k1/std",
	"secrecy/alloc",
	"serde/std",
	"sp-core-hashing/std",
	"sp-debug-derive/std",
	"sp-externalities/std",
	"sp-runtime-interface/std",
	"sp-std/std",
	"sp-storage/std",
	"ss58-registry/std",
	"substrate-bip39",
	"thiserror",
	"tracing",
	"w3f-bls?/std",
	"zeroize/alloc",
	"zeroize/std",
]

# Serde support without relying on std features.
serde = [
	"array-bytes",
	"blake2",
	"bounded-collections/serde",
	"bs58/alloc",
	"dep:serde",
	"impl-serde",
	"primitive-types/serde_no_std",
	"scale-info/serde",
	"secrecy/alloc",
	"sp-core-hashing",
	"sp-storage/serde",
]

# 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 = [
	"array-bytes",
	"blake2",
	"ed25519-zebra",
	"libsecp256k1",
	"secp256k1",
	"sp-core-hashing",
	"sp-runtime-interface/disable_target_static_assertions",
]

# This feature adds BLS crypto primitives.
# It should not be used in production since the implementation and interface may still
# be subject to significant changes.
bls-experimental = ["w3f-bls"]