[package]
name = "ethers-signers"
version = "1.0.2"
edition = "2018"
rust-version = "1.62"
authors = ["Georgios Konstantopoulos <me@gakonst.com>"]
license = "MIT OR Apache-2.0"
description = "Signer implementations for the ethers-rs crate"
homepage = "https://docs.rs/ethers"
repository = "https://github.com/gakonst/ethers-rs"
keywords = ["ethereum", "web3", "celo", "ethers"]

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

[dependencies]
ethers-core = { version = "^1.0.0", path = "../ethers-core", features = ["eip712"] }
thiserror = { version = "1.0.37", default-features = false }
coins-bip32 = "0.7.0"
coins-bip39 = "0.7.0"
coins-ledger = { version = "0.7.0", default-features = false, optional = true }
hex = { version = "0.4.3", default-features = false, features = ["std"] }
async-trait = { version = "0.1.50", default-features = false }
elliptic-curve = { version = "0.12.3", default-features = false }
sha2 = { version = "0.10.6", default-features = false }
rand = { version = "0.8.5", default-features = false }
yubihsm = { version = "0.41.0", features = ["secp256k1", "http", "usb"], optional = true }
futures-util = { version = "^0.3", optional = true }
futures-executor = { version = "^0.3", optional = true }
semver = { version = "1.0.14", optional = true }
trezor-client = { version = "0.0.7", optional = true, default-features = false, features = [
    "f_ethereum",
] }

# aws
rusoto_core = { version = "0.48.0", optional = true }
rusoto_kms = { version = "0.48.0", optional = true }
tracing = { version = "0.1.37", optional = true }
spki = { version = "0.6.0", optional = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
eth-keystore = { version = "0.5.0" }
home = { version = "0.5.4", optional = true }

[dev-dependencies]
ethers-contract-derive = { version = "^1.0.0", path = "../ethers-contract/ethers-contract-derive" }
ethers-derive-eip712 = { version = "^1.0.0", path = "../ethers-core/ethers-derive-eip712" }
serde_json = { version = "1.0.64" }
tracing-subscriber = "0.3.16"
yubihsm = { version = "0.41.0", features = ["secp256k1", "usb", "mockhsm"] }

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
yubihsm = { version = "0.41.0", features = ["secp256k1", "usb", "mockhsm"] }
tokio = { version = "1.18", default-features = false, features = ["macros", "rt"] }
tempfile = "3.3.0"

[features]
futures = ["futures-util", "futures-executor"]
celo = ["ethers-core/celo"]
ledger = ["coins-ledger", "futures", "semver"]
yubi = ["yubihsm"]
aws = ["rusoto_core", "rusoto_kms", "tracing", "spki"]
trezor = ["trezor-client", "futures", "semver", "home"]
