bingle_cli 0.3.13

Command line interface for Bingle: register handles, run nodes/relays, and trade BINGLE on Algorand.
Documentation
[package]
name = "bingle_cli"
version = "0.3.13"
edition = "2024"
description = "Command line interface for Bingle: register handles, run nodes/relays, and trade BINGLE on Algorand."
license = "MIT OR Apache-2.0"
repository = "https://github.com/binglefoundation/bingle_rust"
readme = "README.md"
autotests = false

# docs.rs build metadata; see docs/api-surface.md.
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]

[[bin]]
name = "bingle_cli"
path = "src/main.rs"

[build-dependencies]
vergen = { version = "8", features = ["build", "git", "gitcl", "cargo"] }

[dependencies]
bingle_core = { path = "../bingle_core", version = "0.3.13" }
algo_ops = "0.8.4"
bingle_local = { path = "../bingle_local", version = "0.3.13" }
chrono = { version = "0.4", features = ["serde"] }
ed25519-dalek = { version = "2", features = ["rand_core"] }
serde_json = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
ctrlc = { version = "3", features = ["termination"] }

[dev-dependencies]
# `localnet` feature brings in the reusable algokit-localnet harness (and enables bingle_core's
# test-hooks) used by the self-provisioning localnet cases in the integration target.
bingle_test = { path = "../bingle_test", features = ["localnet"] }
tempfile = "3"
serial_test = "3"
ntest = "0.9"

# Unit tests: local CLI tests with no external resource requirements.
[[test]]
name = "unit"
path = "tests/unit.rs"

# Integration tests: drive the compiled binary. The offline cases run everywhere; the localnet cases
# (module `localnet`) provision relays/STUN/app/accounts via bingle_test::localnet and drive the
# compiled `chat` binary against a running algokit localnet, skipping cleanly when localnet is down.
[[test]]
name = "integration"
path = "tests/integration.rs"

# `sidewinder_localnet` gates the store-and-forward end-to-end case in the `integration` suite (epic
# #200, story #216): it needs a live `sw-node` (via scripts/e2e_sidewinder_localnet.sh) + algokit localnet
# and does NOT skip when they are absent — it fails. Off by default, so the normal suites/CI don't run
# it. Enable it explicitly:
#   cargo test -p bingle_cli --features sidewinder_localnet --test integration -- --test-threads 1
# `sidewinder_testnet` gates the store-and-forward end-to-end case against a deployed Sidewinder
# cluster on TestNet (epic #200, story #226): config (cluster URL/token, TestNet node file, the two
# enrolled+registered accounts) comes from the environment; off by default. Enable it explicitly:
#   cargo test -p bingle_cli --features sidewinder_testnet --test integration -- --test-threads 1
[features]
sidewinder_localnet = []
sidewinder_testnet = []

[lints]
workspace = true