[package] name = "ethers-providers" version = "1.0.2" edition = "2021" rust-version = "1.64" authors = ["Georgios Konstantopoulos "] license = "MIT OR Apache-2.0" description = "Provider 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", default-features = false } async-trait = { version = "0.1.50", default-features = false } hex = { version = "0.4.3", default-features = false, features = ["std"] } reqwest = { version = "0.11.13", default-features = false, features = ["json"] } serde = { version = "1.0.124", default-features = false, features = ["derive"] } serde_json = { version = "1.0.64", default-features = false, features = ["raw_value"] } thiserror = { version = "1.0", default-features = false } url = { version = "2.3.1", default-features = false } auto_impl = { version = "1.0.1", default-features = false } http = { version = "0.2" } base64 = "0.20" # required for implementing stream on the filters futures-core = { version = "0.3.16", default-features = false } futures-util = { version = "^0.3" } futures-timer = { version = "3.0.2", default-features = false } futures-channel = { version = "0.3.16", default-features = false, optional = true } pin-project = { version = "1.0.11", default-features = false } # peer-related admin namespace enr = { version = "0.7.0", default-features = false, features = ["k256", "serde"] } # tracing tracing = { version = "0.1.37", default-features = false } tracing-futures = { version = "0.2.5", default-features = false, features = ["std-future"] } bytes = { version = "1.3.0", default-features = false, optional = true } once_cell = "1.17.0" hashers = "1.0.1" [target.'cfg(target_family = "windows")'.dependencies] winapi = { version = "0.3", optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] # tokio tokio = { version = "1.18", default-features = false, features = ["time"] } tokio-tungstenite = { version = "0.18.0", default-features = false, features = [ "connect", ], optional = true } [target.'cfg(target_arch = "wasm32")'.dependencies] ws_stream_wasm = "0.7" wasm-bindgen = "0.2" wasm-bindgen-futures = "0.4" web-sys = { version = "0.3", features = ["console"] } wasm-timer = "0.2" # this is currently necessary for `wasm-timer::Delay` to work parking_lot = { version = "0.11", features = ["wasm-bindgen"] } # NOTE: this enables wasm compatibility for getrandom indirectly getrandom = { version = "0.2", features = ["js"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { version = "1.18", default-features = false, features = ["rt", "macros", "time"] } tempfile = "3.3.0" [features] default = ["ws", "rustls"] celo = ["ethers-core/celo"] ws = ["tokio-tungstenite", "futures-channel"] ipc = ["tokio/io-util", "bytes", "futures-channel", "winapi"] openssl = ["tokio-tungstenite/native-tls", "reqwest/native-tls"] # we use the webpki roots so we can build static binaries w/o any root cert dependencies # on the host rustls = ["tokio-tungstenite/rustls-tls-webpki-roots", "reqwest/rustls-tls"] dev-rpc = []