[package]
name = "bitbox-api"
authors = ["Marko Bencun <benma@bitbox.swiss>"]
version = "0.11.0"
homepage = "https://bitbox.swiss/"
repository = "https://github.com/BitBoxSwiss/bitbox-api-rs/"
readme = "README-rust.md"
edition = "2021"
license = "Apache-2.0"
description = "A library to interact with BitBox hardware wallets"
keywords = ["bitbox", "api", "bitcoin", "wasm"]
categories = ["api-bindings", "cryptography"]
[lib]
crate-type = ["cdylib", "rlib"]
[dependencies]
async-trait = "0.1.68"
base32 = "0.4"
bitcoin = { version = "0.32", features = ["base64"] }
byteorder = "1.3.2"
getrandom = { version = "0.2" }
hex = { version = "0.4" }
noise-protocol = "0.2"
noise-rust-crypto = "0.6"
num-bigint = "0.4"
prost = "0.13"
semver = "1.0.17"
serde_json = { version = "1.0" }
thiserror = "1.0"
zeroize = "1"
chrono = { version = "0.4.38", default-features = false, features = ["clock"] }
enum-assoc = { version = "1.1.0", optional = true }
hidapi = { version = "2.3", optional = true }
js-sys = { version = "0.3.64", optional = true }
rlp = { version = "0.5", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = { version = "0.6.5", optional = true }
tokio = { version = "1", optional = true, features = ["time"] }
wasm-bindgen = { version = "0.2.92", optional = true }
wasm-bindgen-futures = { version ="0.4.42", optional = true }
web-sys = { version = "0.3.64", features = ["Storage", "Window"], optional = true }
[dev-dependencies]
async-trait = "0.1.68"
wasm-bindgen-test = "0.3.42"
tokio = { version = "1", features = ["time", "macros", "rt", "fs"] }
reqwest = "0.12"
url = "2.5"
bitcoinconsensus = { version = "0.106.0", default-features = false }
miniscript = "12.0.0"
[build-dependencies]
prost-build = { version = "0.11" }
[[example]]
name = "singlethreaded"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "multithreaded"
required-features = ["usb", "tokio/rt", "tokio/macros", "tokio/rt-multi-thread", "multithreaded"]
[[example]]
name = "btc_signtx"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "btc_sign_psbt"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "btc_sign_op_return"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "btc_sign_msg"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "btc_miniscript"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "eth"
required-features = ["usb", "tokio/rt", "tokio/macros", "rlp"]
[[example]]
name = "cardano"
required-features = ["usb", "tokio/rt", "tokio/macros"]
[[example]]
name = "simulator"
required-features = ["simulator", "tokio/rt", "tokio/macros", "tokio/rt-multi-thread", "multithreaded"]
[profile.release]
opt-level = 'z'
codegen-units = 1
lto = true
[features]
multithreaded = []
usb = ["dep:hidapi"]
simulator = []
wasm = [
"dep:enum-assoc",
"dep:js-sys",
"dep:serde-wasm-bindgen",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:web-sys",
"getrandom/js",
"hex/serde",
"bitcoin/serde",
"bitcoin/secp-lowmemory",
]