[package] name = "zebra-chain" version = "1.0.0-beta.42" authors = ["Zcash Foundation "] description = "Core Zcash data structures" license = "MIT OR Apache-2.0" repository = "https://github.com/ZcashFoundation/zebra" edition = "2021" readme = "../README.md" homepage = "https://zfnd.org/zebra/" # crates.io is limited to 5 keywords and categories keywords = ["zebra", "zcash"] # Must be one of categories = ["asynchronous", "cryptography::cryptocurrencies", "encoding"] [features] default = [] # Production features that activate extra functionality # Consensus-critical conversion from JSON to Zcash types json-conversion = [ "serde_json", ] # Async error handling convenience traits async-error = [ "tokio", ] # Mining RPC support getblocktemplate-rpcs = [ ] # Experimental shielded scanning support shielded-scan = [ "zcash_client_backend" ] # Experimental internal miner support # TODO: Internal miner feature functionality was removed at https://github.com/ZcashFoundation/zebra/issues/8180 # See what was removed at https://github.com/ZcashFoundation/zebra/blob/v1.5.1/zebra-chain/Cargo.toml#L38-L43 # Restore support when conditions are met. https://github.com/ZcashFoundation/zebra/issues/8183 internal-miner = [] # Experimental elasticsearch support elasticsearch = [] # Test-only features proptest-impl = [ "proptest", "proptest-derive", "rand", "rand_chacha", "tokio/tracing", "zebra-test", ] bench = ["zebra-test"] [dependencies] # Cryptography bitvec = "1.0.1" bitflags = "2.5.0" bitflags-serde-legacy = "0.1.1" blake2b_simd = "1.0.2" blake2s_simd = "1.0.2" bridgetree = "0.6.0" bs58 = { version = "0.5.1", features = ["check"] } byteorder = "1.5.0" # TODO: Internal miner feature functionality was removed at https://github.com/ZcashFoundation/zebra/issues/8180 # See what was removed at https://github.com/ZcashFoundation/zebra/blob/v1.5.1/zebra-chain/Cargo.toml#L73-L85 # Restore support when conditions are met. https://github.com/ZcashFoundation/zebra/issues/8183 equihash = "0.2.0" group = "0.13.0" incrementalmerkletree.workspace = true jubjub = "0.10.0" lazy_static = "1.4.0" tempfile = "3.13.0" dirs = "5.0.1" num-integer = "0.1.46" primitive-types = "0.12.2" rand_core = "0.6.4" ripemd = "0.1.3" # Matches version used by hdwallet secp256k1 = { version = "0.27.0", features = ["serde"] } sha2 = { version = "0.10.7", features = ["compress"] } uint = "0.10.0" x25519-dalek = { version = "2.0.1", features = ["serde"] } # ECC deps halo2 = { package = "halo2_proofs", version = "0.3.0" } orchard.workspace = true zcash_encoding.workspace = true zcash_history.workspace = true zcash_note_encryption = "0.4.0" zcash_primitives = { workspace = true, features = ["transparent-inputs"] } sapling-crypto.workspace = true zcash_protocol.workspace = true zcash_address.workspace = true # Time chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "serde"] } humantime = "2.1.0" # Error Handling & Formatting static_assertions = "1.1.0" thiserror = "1.0.64" tracing = "0.1.39" # Serialization hex = { version = "0.4.3", features = ["serde"] } serde = { version = "1.0.211", features = ["serde_derive", "rc"] } serde_with = "3.11.0" serde-big-array = "0.5.1" # Processing futures = "0.3.31" itertools = "0.13.0" rayon = "1.10.0" # ZF deps ed25519-zebra = "4.0.3" redjubjub = "0.7.0" reddsa = "0.5.1" # Production feature json-conversion serde_json = { version = "1.0.132", optional = true } # Production feature async-error and testing feature proptest-impl tokio = { version = "1.41.0", optional = true } # Experimental feature shielded-scan zcash_client_backend = { workspace = true, optional = true } # Optional testing dependencies proptest = { version = "1.4.0", optional = true } proptest-derive = { version = "0.5.0", optional = true } rand = { version = "0.8.5", optional = true } rand_chacha = { version = "0.3.1", optional = true } zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.42", optional = true } [dev-dependencies] # Benchmarks criterion = { version = "0.5.1", features = ["html_reports"] } # Error Handling & Formatting color-eyre = "0.6.3" # This is a transitive dependency via color-eyre. # Enable a feature that makes tinyvec compile much faster. tinyvec = { version = "1.8.0", features = ["rustc_1_55"] } spandoc = "0.2.2" tracing = "0.1.39" # Make the optional testing dependencies required proptest = "1.4.0" proptest-derive = "0.5.0" rand = "0.8.5" rand_chacha = "0.3.1" tokio = { version = "1.41.0", features = ["full", "tracing", "test-util"] } zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.42" } [[bench]] name = "block" harness = false required-features = ["bench"] [[bench]] name = "redpallas" harness = false