# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.88"
name = "lumina-node"
version = "0.17.0"
authors = ["Eiger <hello@eiger.co>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Celestia data availability node implementation in Rust"
homepage = "https://www.eiger.co"
readme = "README.md"
keywords = [
    "blockchain",
    "celestia",
    "lumina",
    "node",
]
categories = [
    "asynchronous",
    "cryptography::cryptocurrencies",
    "network-programming",
    "wasm",
]
license = "Apache-2.0"
repository = "https://github.com/eigerco/lumina"
resolver = "2"

[package.metadata.docs.rs]
features = ["test-utils"]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
test-utils = ["celestia-types/test-utils"]
uniffi = [
    "dep:uniffi",
    "celestia-types/uniffi",
]
wasm-bindgen = []

[lib]
name = "lumina_node"
crate-type = [
    "lib",
    "staticlib",
    "cdylib",
]
path = "src/lib.rs"

[[test]]
name = "graceful_stop"
path = "tests/graceful_stop.rs"

[[test]]
name = "header_ex"
path = "tests/header_ex.rs"

[[test]]
name = "identity_persistance"
path = "tests/identity_persistance.rs"

[[test]]
name = "node"
path = "tests/node.rs"

[[test]]
name = "shwap"
path = "tests/shwap.rs"

[dependencies.async-trait]
version = "0.1.80"

[dependencies.beetswap]
version = "0.5"

[dependencies.celestia-proto]
version = "0.11.0"

[dependencies.celestia-types]
version = "0.17.0"
default-features = false

[dependencies.cid]
version = "0.11"
features = ["serde-codec"]
default-features = false

[dependencies.dashmap]
version = "6"

[dependencies.futures]
version = "0.3.30"

[dependencies.libp2p]
version = "0.56"
features = [
    "autonat",
    "ping",
    "gossipsub",
    "identify",
    "macros",
    "request-response",
    "kad",
]

[dependencies.lumina-utils]
version = "0.5.0"
features = [
    "executor",
    "token",
    "time",
]

[dependencies.multihash-codetable]
version = "0.1.2"
features = ["sha2"]

[dependencies.prost]
version = "0.13.3"

[dependencies.rand]
version = "0.8.5"

[dependencies.serde]
version = "1.0.194"
features = ["derive"]

[dependencies.smallvec]
version = "1.13.2"
features = [
    "union",
    "const_generics",
    "serde",
]

[dependencies.tendermint]
version = "0.40.3"
default-features = false

[dependencies.tendermint-proto]
version = "0.40.3"

[dependencies.thiserror]
version = "2.0.3"

[dependencies.tokio]
version = "1.42"
features = [
    "macros",
    "sync",
]

[dependencies.tokio-util]
version = "0.7.1"

[dependencies.tracing]
version = "0.1.41"

[dependencies.uniffi]
version = "0.29.2"
optional = true

[dependencies.void]
version = "1"

[dev-dependencies.bytes]
version = "1.6"
default-features = false

[dev-dependencies.celestia-rpc]
version = "0.15.0"
features = ["p2p"]
default-features = false

[dev-dependencies.celestia-types]
version = "0.17.0"
features = ["test-utils"]
default-features = false

[dev-dependencies.lumina-utils]
version = "0.5.0"
features = ["test-utils"]

[dev-dependencies.rstest]
version = "0.26"

[dev-dependencies.serde_json]
version = "1.0.142"

[dev-dependencies.tempfile]
version = "3"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.backoff]
version = "0.4.0"
features = ["tokio"]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.blockstore]
version = "0.8"
features = ["redb"]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libp2p]
version = "0.56"
features = [
    "noise",
    "dns",
    "tcp",
    "tokio",
    "yamux",
    "websocket",
    "quic",
]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.redb]
version = "2.6"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls-pemfile]
version = "2"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls-pki-types]
version = "1.11"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.42"
features = [
    "fs",
    "rt-multi-thread",
    "time",
]

[target.'cfg(target_arch = "wasm32")'.dependencies.backoff]
version = "0.4"
features = ["wasm-bindgen"]

[target.'cfg(target_arch = "wasm32")'.dependencies.beetswap]
version = "0.5"
features = ["wasm-bindgen"]

[target.'cfg(target_arch = "wasm32")'.dependencies.blockstore]
version = "0.8"
features = ["indexeddb"]

[target.'cfg(target_arch = "wasm32")'.dependencies.celestia-types]
version = "0.17.0"
features = ["wasm-bindgen"]
default-features = false

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_03]
version = "0.3"
features = ["wasm_js"]
package = "getrandom"

[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-timers]
version = "0.3"
features = ["futures"]

[target.'cfg(target_arch = "wasm32")'.dependencies.idb]
version = "0.6.2"

[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.77"

[target.'cfg(target_arch = "wasm32")'.dependencies.libp2p]
version = "0.56"
features = [
    "noise",
    "wasm-bindgen",
    "websocket-websys",
    "webtransport-websys",
    "yamux",
]

[target.'cfg(target_arch = "wasm32")'.dependencies.libp2p-websocket-websys]
version = "0.5.0"

[target.'cfg(target_arch = "wasm32")'.dependencies.pin-project]
version = "1.1.5"

[target.'cfg(target_arch = "wasm32")'.dependencies.rexie]
version = "0.6"

[target.'cfg(target_arch = "wasm32")'.dependencies.send_wrapper]
version = "0.6"
features = ["futures"]

[target.'cfg(target_arch = "wasm32")'.dependencies.serde-wasm-bindgen]
version = "0.6"

[target.'cfg(target_arch = "wasm32")'.dependencies.serde_json]
version = "1.0.142"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.100"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.43"

[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.70"
features = [
    "Request",
    "RequestInit",
    "RequestMode",
    "Response",
    "Headers",
]

[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3"
