[package]
name = "chainlib"
version = "0.1.0"
authors = ["linfeng yuan <linfeng@crypto.com>"]
edition = "2018"
autoexamples = false
license     = "Apache-2.0"
repository  = "https://github.com/crypto-com/chainlib-rs"
description = "A library to help with creating HD wallets and signing Crypto.com Chain transfer transactions offline."
readme      = "README.md"
categories = ["cryptography", "cryptography::cryptocurrencies", "encoding"]
keywords   = ["blockchain", "chain", "cosmos", "tendermint", "transaction"]
exclude = ["cosmos-sdk-go/**", "tendermint/**"]

[dependencies]
serde = { version = "1.0", features = ["derive"], optional = true }
sorted-json = { version = "0.1", optional = true }
serde_json = { version = "1.0", optional = true }
tiny-bip39 = "0.8"
anyhow = { version = "1.0", features = ["std"] }
hdwallet = "0.2"
bitcoin_hashes = "0.9"
rand = "0.8"
base64 = "0.13"
stdtx = "0.4.0"
thiserror = "1.0"
tokio = { version = "1.0", features = ["full"] }
ledger-transport = { version = "0.8", optional = true }
ledger-transport-hid = { version = "0.8", optional = true }
ledger-zondax-generic = { version = "0.8", optional = true }
zx-bip44 = "0.1"
reqwest = { version = "0.11.0", features = ["json"] }
async-trait = "0.1"
log = "0.4"
tonic = { version = "0.4.0", optional = true }
eyre = "0.6.4"
signature = "1.2.2"
prost = { version = "0.7", optional = true }
prost-types = { version = "0.7", optional = true }
hex = { version = "0.4", optional = true }

[build-dependencies]
prost = "0.7"
prost-build = "0.7"
tonic = "0.4.0"
tonic-build = "0.4.0"
regex = "1"
tempdir = "0.3"
walkdir = "2"

[[example]]
name = "amino"
path = "examples/example_amino.rs"
required-features = ["amino"]

[[example]]
name = "protobuf"
path = "examples/example_protobuf.rs"
required-features = ["grpc"]

[dev-dependencies]
env_logger = "0.8.2"

[features]
default = ["amino"]
ledger = ["ledger-zondax-generic", "ledger-transport-hid", "ledger-transport", "hex"]
amino = ["serde", "serde_json", "sorted-json"]
grpc = ["tonic", "prost", "prost-types"]

[profile.release]
overflow-checks = true

[package.metadata.docs.rs]
all-features = true