[package]
name = "ethers-middleware"
version = "1.0.2"
edition = "2021"
rust-version = "1.64"
authors = ["Georgios Konstantopoulos <me@gakonst.com>"]
license = "MIT OR Apache-2.0"
description = "Middleware 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-contract = { version = "^1.0.0", path = "../ethers-contract", default-features = false }
ethers-core = { version = "^1.0.0", path = "../ethers-core", default-features = false }
ethers-etherscan = { version = "^1.0.0", path = "../ethers-etherscan", default-features = false }
ethers-providers = { version = "^1.0.0", path = "../ethers-providers", default-features = false }
ethers-signers = { version = "^1.0.0", path = "../ethers-signers", default-features = false }

async-trait = { version = "0.1.50", default-features = false }
auto_impl = { version = "0.5.0", default-features = false }
serde = { version = "1.0.124", default-features = false, features = ["derive"] }
thiserror = { version = "1.0", default-features = false }
futures-util = { version = "^0.3" }
futures-locks = { version = "0.7", default-features = false }
tracing = { version = "0.1.37", default-features = false }
tracing-futures = { version = "0.2.5", default-features = false }

# for gas oracles
reqwest = { version = "0.11.14", default-features = false, features = ["json", "rustls-tls"] }
url = { version = "2.3.1", default-features = false }

serde_json = { version = "1.0.64", default-features = false }
instant = { version = "0.1.12", features = ["now"] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1.18" }

[dev-dependencies]
hex = { version = "0.4.3", default-features = false, features = ["std"] }
rand = { version = "0.8.5", default-features = false }
ethers-providers = { version = "^1.0.0", path = "../ethers-providers", default-features = false, features = [
    "ws",
    "rustls",
] }
once_cell = "1.17.1"
ethers-solc = { version = "^1.0.0", path = "../ethers-solc" }
serial_test = "0.10.0"
reqwest = { version = "0.11.14", default-features = false, features = ["json", "rustls"] }

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tokio = { version = "1.18", default-features = false, features = ["rt", "macros", "time"] }

[features]
default = ["rustls"]
celo = ["ethers-core/celo", "ethers-providers/celo", "ethers-signers/celo", "ethers-contract/celo"]
openssl = ["reqwest/native-tls"]
rustls = ["reqwest/rustls-tls"]
