[package]
name = "tronic"
version = "0.5.6"
edition = "2024"
description = "A modular, async-first Rust client for the Tron blockchain."
authors = ["39george <39george.enjoy@gmail.com>"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/39george/tronic"
homepage = "https://github.com/39george/tronic"
documentation = "https://docs.rs/tronic"
keywords = ["tron", "blockchain", "smart-contracts", "grpc", "rust"]
categories = ["cryptography", "network-programming", "api-bindings", "asynchronous", "finance"]
exclude = ["/.github", "/.gitignore", "/examples", "/target", "Makefile", "*.sh"]

[features]
tonic-tls = ["tonic/tls-native-roots", "tonic/_tls-any", "dep:rustls"]
mock-provider = []

[dependencies]
# Base dependencies
tokio = { version = "1.48" }
futures = { version = "0.3" }
http = "1.3"
tower = "0.5"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

# gRPC
tonic = "0.14"
tonic-prost = "0.14"
prost = "0.14"
prost-types = "0.14"

# Misc
eyre = "0.6"
thiserror = "2.0"
async-trait = "0.1"
time = { version = "0.3", features = ["local-offset", "macros", "parsing"] }
bon = "3.8"
derivative = "2.2"
bitvec = "1.0"
strum = "0.27"
strum_macros = "0.27"
derive_more = { version = "2.0", features = ["mul", "sum"] }
getset = "0.1"

# Crypto
k256 = "0.13"
hex = "0.4"
secrecy = "0.10"
sha2 = "0.10"
sha3 = "0.10"
bs58 = { version = "0.5", features = ["check"] }
alloy-sol-types = "1.4"
alloy-sol-macro = "1.4"
alloy-primitives = { version = "1.4", features = ["serde"] }
rand = "0.9"

# Telemetry
tracing = "0.1"

# Optional
rustls = { version = "0.23", optional = true, default-features = false, features = ["ring"] }

[[example]]
name = "listener"
path = "examples/listener.rs"

[[example]]
name = "send_trx"
path = "examples/send_trx.rs"

[[example]]
name = "usdt_with_multisig"
path = "examples/usdt_with_multisig.rs"

[dev-dependencies]
tokio = { version = "1.48", features = ["signal", "rt-multi-thread", "process"] }
static_init = "1.0"
portpicker = "0.1"
reqwest = { version = "0.12", features = ["json"] }

[build-dependencies]
tonic-prost-build = "0.14"
