[package]
name = "zebra-scan"
version = "0.1.0-alpha.5"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "Shielded transaction scanner for the Zcash blockchain"
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 <https://crates.io/category_slugs>
categories = ["cryptography::cryptocurrencies"]

[[bin]] # Bin to run the Scanner gRPC server
name = "scanner-grpc-server"
path = "src/bin/rpc_server.rs"
required-features = ["proptest-impl"]

[features]

# Production features that activate extra dependencies, or extra features in dependencies

# Test features

proptest-impl = [
  "proptest",
  "proptest-derive",
  "zebra-state/proptest-impl",
  "zebra-chain/proptest-impl",
  "zebra-test",
  "bls12_381",
  "ff",
  "group",
  "jubjub",
  "rand",
  "zcash_note_encryption",
]

[dependencies]

color-eyre = "0.6.3"
indexmap = { version = "2.2.6", features = ["serde"] }
itertools = "0.12.1"
semver = "1.0.22"
serde = { version = "1.0.198", features = ["serde_derive"] }
tokio = { version = "1.37.0", features = ["time"] }
tower = "0.4.13"
tracing = "0.1.39"
futures = "0.3.30"

zcash_client_backend = "0.10.0-rc.1"
zcash_primitives = "0.13.0"

zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.36", features = ["shielded-scan"] }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.36", features = ["shielded-scan"] }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.36", features = ["shielded-scan"] }
zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.3" }

chrono = { version = "0.4.38", default-features = false, features = ["clock", "std", "serde"] }

# test feature proptest-impl
proptest = { version = "1.4.0", optional = true }
proptest-derive = { version = "0.4.0", optional = true }

bls12_381 = { version = "0.8.0", optional = true }
ff = { version = "0.13.0", optional = true }
group = { version = "0.13.0", optional = true }
jubjub = { version = "0.10.0", optional = true }
rand = { version = "0.8.5", optional = true }
zcash_note_encryption = { version = "0.4.0", optional = true }

zebra-test = { path = "../zebra-test", version = "1.0.0-beta.36", optional = true }

[dev-dependencies]
insta = { version = "1.38.0", features = ["ron", "redactions"] }
tokio = { version = "1.37.0", features = ["test-util"] }

proptest = "1.4.0"
proptest-derive = "0.4.0"
bls12_381 = "0.8.0"
ff = "0.13.0"
group = "0.13.0"
jubjub = "0.10.0"
rand = "0.8.5"
zcash_note_encryption = "0.4.0"

zebra-state = { path = "../zebra-state", version = "1.0.0-beta.36", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test", version = "1.0.0-beta.36" }
