[package] name = "ethers-middleware" authors = ["Georgios Konstantopoulos "] readme = "README.md" description = "Middleware implementations for the ethers-rs crate" 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 rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] all-features = true [dependencies] ethers-contract = { workspace = true, features = ["abigen", "providers"] } ethers-core.workspace = true ethers-providers.workspace = true ethers-signers.workspace = true async-trait.workspace = true auto_impl.workspace = true serde.workspace = true thiserror.workspace = true futures-util.workspace = true futures-locks.workspace = true futures-channel.workspace = true tracing.workspace = true tracing-futures.workspace = true instant.workspace = true # for gas oracles reqwest.workspace = true url.workspace = true serde_json.workspace = true ethers-etherscan = { workspace = true, optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio.workspace = true [dev-dependencies] ethers-providers = { workspace = true, features = ["ws", "rustls"] } ethers-solc.workspace = true hex.workspace = true rand.workspace = true once_cell.workspace = true reqwest = { workspace = true, features = ["json", "rustls"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { workspace = true, features = ["rt-multi-thread", "macros", "time"] } [features] default = ["rustls", "etherscan"] celo = ["ethers-core/celo", "ethers-providers/celo", "ethers-signers/celo", "ethers-contract/celo"] etherscan = ["dep:ethers-etherscan"] optimism = ["ethers-core/optimism", "ethers-providers/optimism", "ethers-contract/optimism"] rustls = ["reqwest/rustls-tls"] openssl = ["reqwest/native-tls"]