[package]
name = "sp1-verifier"
description = "Verifier for SP1 Groth16 and Plonk proofs."
readme = "README.md"
version = { workspace = true }
edition = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
keywords = { workspace = true }
categories = { workspace = true }
rust-version = { workspace = true }

# TODO: when reviving this crate, lift its dependencies to the workspace Cargo.toml.

[dependencies]
bn = { version = "=0.6.0", package = "substrate-bn-succinct-rs" }
sha2 = { version = "0.10.8", default-features = false }
thiserror = { version = "2", default-features = false }
hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
lazy_static = { version = "1.5.0", default-features = false }
blake3 = { workspace = true }
cfg-if = "1.0.0"

bincode = { workspace = true }
serde = { workspace = true, features = ["derive"] }
strum = { workspace = true, features = ["derive"] }

# sp1
sp1-hypercube = { workspace = true }
sp1-primitives = { workspace = true }
sp1-recursion-machine = { workspace = true, default-features = false }
sp1-recursion-executor = { workspace = true, default-features = false }
slop-algebra = { workspace = true }
slop-challenger = { workspace = true }
slop-primitives = { workspace = true }
slop-symmetric = { workspace = true }

# arkworks
ark-bn254 = { version = "0.5.0", optional = true }
ark-serialize = { version = "0.5.0", optional = true }
ark-ff = { version = "0.5.0", optional = true }
ark-groth16 = { version = "0.5.0", optional = true }
ark-ec = { version = "0.5.0", optional = true }

[build-dependencies]
dirs = "5.0"

[dev-dependencies]
sp1-sdk = { path = "../sdk", features = ["native-gnark"] }
test-artifacts = { path = "../test-artifacts" }
cfg-if = "1.0.0"
serial_test = "3.2.0"
rstest = "0.25.0"
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }

[features]
default = []
std = ["thiserror/std"]
ark = ["ark-bn254", "ark-serialize", "ark-ff", "ark-groth16", "ark-ec"]

[lints]
workspace = true
