[package]
edition = "2021"
rust-version = "1.88"
name = "newton-core"
version = "0.4.16"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "newton protocol core sdk"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/newt-foundation/newton-prover-avs"
[features]
attestation = [
"dep:serde_cbor",
"dep:serde_bytes",
]
config = [
"dep:dotenvy",
"dep:confy",
"dep:clap",
"dep:config",
"dep:glob",
"dep:toml",
"dep:directories",
"dep:num_cpus",
"dep:tracing-subscriber",
"dep:serde_with",
]
contract-bindings = []
database = [
"dep:deadpool-postgres",
"dep:sqlx",
"dep:tokio",
"dep:once_cell",
]
default = [
"rpc",
"proving",
"config",
"signing",
"eigen",
"ipfs-cache",
"privacy",
"state-tree",
]
dev-stub = []
eigen = [
"dep:newton-crypto-bn254",
"dep:newton-crypto-bls",
"dep:newton-utils",
"dep:rust-bls-bn254",
]
frost-dkg = [
"threshold",
"dep:frost-ristretto255",
"dep:scrypt",
"dep:aes-gcm-siv",
"dep:zeroize",
]
ipfs-cache = [
"dep:moka",
"dep:redis",
"dep:tokio",
"dep:metrics",
"rpc",
]
policy-cache = ["dep:moka"]
privacy = [
"dep:hpke",
"dep:ed25519-dalek",
"dep:x25519-dalek",
"dep:hkdf",
"dep:zeroize",
]
proving = [
"dep:risc0-ethereum-contracts",
"dep:risc0-zkvm",
"dep:sp1-sdk",
"dep:sp1-prover",
]
rpc = [
"dep:reqwest",
"dep:tokio",
"dep:newton-common",
]
signing = ["dep:alloy-signer-local"]
state-tree = ["dep:newton-state-tree"]
telemetry = ["config"]
threshold = [
"privacy",
"dep:hmac",
"dep:chacha20poly1305",
"dep:curve25519-dalek",
]
websocket = ["dep:tokio"]
zkvm = []
[lib]
name = "newton_core"
path = "src/lib.rs"
[[test]]
name = "ipfs_retry_smoke"
path = "tests/ipfs_retry_smoke.rs"
[dependencies.aes-gcm-siv]
version = "0.11"
optional = true
[dependencies.alloy-json-abi]
version = "1.4.1"
[dependencies.alloy-primitives]
version = "1.4.1"
[dependencies.alloy-signer-local]
version = "1.1.1"
features = ["keystore"]
optional = true
[dependencies.alloy-sol-types]
version = "1.4.1"
[dependencies.ark-bn254]
version = "0.5.0"
features = ["curve"]
default-features = false
[dependencies.ark-ec]
version = "0.5.0"
[dependencies.ark-ff]
version = "0.5.0"
[dependencies.async-trait]
version = "0.1.88"
[dependencies.bincode]
version = "2.0.1"
[dependencies.byteorder]
version = "1.5.0"
[dependencies.chacha20poly1305]
version = "0.10"
optional = true
[dependencies.chrono]
version = "0.4.40"
features = ["serde"]
[dependencies.cid]
version = "0.11"
[dependencies.clap]
version = "4.5.11"
features = ["derive"]
optional = true
[dependencies.config]
version = "0.14"
optional = true
[dependencies.confy]
version = "0.6.1"
optional = true
[dependencies.const-hex]
version = "1"
features = ["alloc"]
[dependencies.curve25519-dalek]
version = "4"
features = [
"serde",
"group",
]
optional = true
[dependencies.deadpool-postgres]
version = "0.11"
optional = true
[dependencies.directories]
version = "5.0"
optional = true
[dependencies.dotenvy]
version = "0.15.7"
optional = true
[dependencies.ed25519-dalek]
version = "2"
features = [
"rand_core",
"serde",
]
optional = true
[dependencies.eigensdk]
version = "2.0.0"
features = [
"types",
"common",
"client-avsregistry",
"crypto-bls",
"crypto-bn254",
"services-blsaggregation",
"services-operatorsinfo",
"services-avsregistry",
"client-eth",
"utils",
"nodeapi",
"metrics",
"client-elcontracts",
]
optional = true
default-features = false
package = "newton-eigensdk"
[dependencies.eyre]
version = "0.6.12"
[dependencies.frost-ristretto255]
version = "=2.2.0"
optional = true
[dependencies.glob]
version = "0.3.3"
optional = true
[dependencies.hex]
version = "0.4.3"
features = ["alloc"]
[dependencies.hkdf]
version = "0.12"
optional = true
[dependencies.hmac]
version = "0.12"
optional = true
[dependencies.hpke]
version = "0.12"
features = ["std"]
optional = true
[dependencies.indexmap]
version = "2.10.0"
features = ["serde"]
[dependencies.metrics]
version = "0.24.0"
optional = true
[dependencies.moka]
version = "0.12"
features = ["future"]
optional = true
[dependencies.newton-common]
version = "2.0.0"
optional = true
package = "newton-common"
[dependencies.newton-crypto-bls]
version = "2.0.0"
optional = true
package = "newton-crypto-bls"
[dependencies.newton-crypto-bn254]
version = "2.0.0"
optional = true
package = "newton-crypto-bn254"
[dependencies.newton-rego-kernel]
version = "0.1.0"
[dependencies.newton-state-tree]
version = "0.4.16"
optional = true
[dependencies.newton-utils]
version = "2.0.0"
optional = true
package = "newton-utils"
[dependencies.num-bigint]
version = "0.4.6"
[dependencies.num-traits]
version = "0.2.19"
[dependencies.num_cpus]
version = "1.16"
optional = true
[dependencies.once_cell]
version = "1.19"
optional = true
[dependencies.rand]
version = "0.9.0"
[dependencies.rand_core]
version = "0.6"
[dependencies.redis]
version = "0.32"
features = [
"tokio-comp",
"connection-manager",
]
optional = true
[dependencies.regex]
version = "1.8.0"
[dependencies.regorus]
version = "0.9.0"
features = [
"newton-crypto",
"newton-identity",
"newton-confidential",
"newton-time",
"azure_policy",
"arc",
"base64",
"base64url",
"glob",
"graph",
"hex",
"jsonschema",
"regex",
"semver",
"std",
"time",
"urlquery",
"uuid",
"yaml",
]
default-features = false
package = "newton-rego"
[dependencies.reqwest]
version = "0.12.9"
features = [
"json",
"json",
]
optional = true
[dependencies.risc0-ethereum-contracts]
version = "3.0"
optional = true
default-features = false
[dependencies.risc0-zkvm]
version = "^2.1.0"
optional = true
[dependencies.ruint]
version = "1.12.3"
[dependencies.rust-bls-bn254]
version = "0.2.1"
features = ["std"]
optional = true
[dependencies.scale]
version = "3.6.12"
features = ["derive"]
default-features = false
package = "parity-scale-codec"
[dependencies.scale-info]
version = "2.11.6"
features = ["derive"]
default-features = false
[dependencies.schemars]
version = "0.8"
[dependencies.scrypt]
version = "0.11"
optional = true
[dependencies.serde]
version = "1.0.217"
features = ["derive"]
[dependencies.serde_bytes]
version = "0.11"
optional = true
[dependencies.serde_cbor]
version = "0.11"
optional = true
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_with]
version = "3.0"
optional = true
[dependencies.sha2]
version = "0.10"
[dependencies.sp1-prover]
version = "^6.2.2"
optional = true
[dependencies.sp1-sdk]
version = "^6.2.2"
features = ["network"]
optional = true
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"postgres",
"chrono",
"uuid",
]
optional = true
[dependencies.strum]
version = "0.24.0"
[dependencies.strum_macros]
version = "0.27.1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.21"
optional = true
default-features = false
[dependencies.tokio-postgres]
version = "0.7"
optional = true
[dependencies.toml]
version = "0.8"
optional = true
[dependencies.tracing]
version = "0.1.40"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
optional = true
[dependencies.uuid]
version = "1.7"
features = [
"v4",
"serde",
]
[dependencies.x25519-dalek]
version = "2"
features = [
"serde",
"static_secrets",
]
optional = true
[dependencies.x509-parser]
version = "0.17.0"
[dependencies.zeroize]
version = "1.8"
optional = true
[target.'cfg(not(target_os = "zkvm"))'.dependencies.alloy]
version = "1.1.0"
features = [
"sol-types",
"contract",
"serde",
]
default-features = false
[target.'cfg(target_os = "zkvm")'.dependencies.alloy]
version = "1.1.0"
features = [
"sol-types",
"serde",
"dyn-abi",
"json-abi",
]
default-features = false
[lints.rust]
dead_code = "allow"
missing_debug_implementations = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unused_attributes = "allow"
[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1
[lints.rust.unused]
level = "allow"
priority = -1
[lints.rustdoc]
all = "warn"