[package]
name = "blueprint-tangle-extra"
version = "0.2.0-alpha.1"
description = "Producer/Consumer extras for Tangle blueprints"
authors.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true

[lints]
workspace = true

[dependencies]
blueprint-core.workspace = true
blueprint-std.workspace = true
blueprint-client-tangle.workspace = true
blueprint-tangle-aggregation-svc = { workspace = true, features = ["client"], optional = true }
blueprint-crypto-bn254 = { workspace = true, optional = true }
blueprint-crypto-core = { workspace = true, optional = true }

# P2P aggregation dependencies
blueprint-networking = { workspace = true, optional = true }
blueprint-networking-agg-sig-gossip-extension = { workspace = true, optional = true }
blueprint-crypto = { workspace = true, optional = true }
libp2p = { workspace = true, features = ["identify"], optional = true }

# Keeper dependencies (optional)
blueprint-keystore = { workspace = true, features = ["evm"], optional = true }
alloy = { workspace = true, features = ["sol-types", "contract", "provider-http", "signer-local", "network"], optional = true }

alloy-primitives.workspace = true
alloy-sol-types.workspace = true
alloy-rpc-types = { workspace = true }

bytes.workspace = true
futures-core.workspace = true
futures-util.workspace = true
pin-project-lite.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["sync", "time"] }
tower.workspace = true
tracing.workspace = true

[features]
default = ["std"]
std = [
    "blueprint-core/std",
    "blueprint-std/std",
    "blueprint-client-tangle/std",
]
aggregation = ["blueprint-tangle-aggregation-svc", "blueprint-crypto-bn254", "blueprint-crypto-core"]
p2p-aggregation = [
    "blueprint-networking",
    "blueprint-networking-agg-sig-gossip-extension",
    "blueprint-crypto/aggregation",
    "blueprint-crypto-bn254",
    "blueprint-crypto-core",
    "libp2p",
]
# Lifecycle automation keepers for epoch/round/stream management
keepers = ["blueprint-keystore", "blueprint-crypto/k256", "alloy"]
