[package] name = "ethers-signers" authors = ["Georgios Konstantopoulos "] readme = "README.md" description = "A unified interface for locally signing Ethereum transactions" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true documentation.workspace = true repository.workspace = true homepage.workspace = true categories.workspace = true keywords.workspace = true exclude.workspace = true [package.metadata.docs.rs] all-features = true rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] all-features = true [dependencies] ethers-core = { workspace = true, features = ["eip712"] } # crypto coins-bip32 = "0.8.3" coins-bip39 = "0.8.3" elliptic-curve.workspace = true sha2.workspace = true rand.workspace = true # misc thiserror.workspace = true tracing.workspace = true async-trait.workspace = true hex.workspace = true # futures futures-util = { workspace = true, optional = true } futures-executor = { workspace = true, optional = true } # aws rusoto_core = { version = "0.48.0", default-features = false, optional = true } rusoto_kms = { version = "0.48.0", default-features = false, optional = true } spki = { workspace = true, optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] eth-keystore = "0.5.0" home = { version = "0.5.4", optional = true } # ledger coins-ledger = { version = "0.8.3", default-features = false, optional = true } semver = { workspace = true, optional = true } # trezor trezor-client = { version = "0.0.7", default-features = false, features = [ "f_ethereum", ], optional = true } # yubi yubihsm = { version = "0.42.0-pre.0", features = ["secp256k1", "http", "usb"], optional = true } [dev-dependencies] ethers-contract-derive.workspace = true ethers-derive-eip712.workspace = true serde_json.workspace = true tempfile.workspace = true tracing-subscriber.workspace = true [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] yubihsm = { version = "0.42.0-pre.0", features = ["secp256k1", "usb", "mockhsm"] } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } [features] futures = ["futures-util", "futures-executor"] celo = ["ethers-core/celo"] ledger = ["coins-ledger", "futures", "semver"] trezor = ["trezor-client", "futures", "semver", "home"] aws = ["rusoto_core/rustls", "rusoto_kms/rustls", "spki"] yubi = ["yubihsm"]