[package]
name = "trezor-client"
version = "0.1.4"
authors = [
    "Piyush Kumar <piyushkumar2k02@kgpian.iitkgp.ac.in>",
    "joshieDo <ranriver@protonmail.com>",
    "DaniPopes <57450786+DaniPopes@users.noreply.github.com>",
    "Roman Zeyde <me@romanzey.de>",
    "Steven Roose <steven@stevenroose.org>",
]
license = "CC0-1.0"
homepage = "https://github.com/trezor/trezor-firmware/tree/master/rust/trezor-client"
repository = "https://github.com/trezor/trezor-firmware"
description = "Client library for interfacing with Trezor hardware wallet devices"
keywords = ["ethereum", "bitcoin", "trezor", "wallet"]
categories = ["api-bindings", "cryptography::cryptocurrencies"]
readme = "README.md"
exclude = [".github/", "examples/", "scripts/", ".clippy.toml", ".gitignore", "rustfmt.toml"]
edition = "2021"
rust-version = "1.60"

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

[workspace]
members = ["build", "."]

[workspace.dependencies]
# important: keep in sync
protobuf = "=3.3.0"
protobuf-codegen = "=3.3.0"

[dependencies]
protobuf.workspace = true
byteorder = "1.4"
rusb = "0.9"

hex = { version = "0.4", default-features = false, features = ["std"] }
thiserror = "1.0"
tracing = "0.1"

# bitcoin
bitcoin = { version = "0.31", optional = true }
unicode-normalization = { version = "0.1.22", optional = true }

[dev-dependencies]
tracing-subscriber = "0.3"
serial_test = "2.0.0"

[features]
default = ["bitcoin", "ethereum", "solana"]

# Client implementations
bitcoin = ["dep:bitcoin", "unicode-normalization"]
ethereum = []

# Just bindings to the Trezor protobufs
binance = []
cardano = []
eos = []
monero = []
nem = []
ripple = []
solana = []
stellar = []
tezos = []
webauthn = []
