[package] name = "ethers-contract" authors = ["Georgios Konstantopoulos "] readme = "README.md" description = "Type-safe abstractions for interacting with Ethereum smart contracts" 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-providers = { workspace = true, optional = true } ethers-core.workspace = true serde.workspace = true serde_json.workspace = true futures-util.workspace = true pin-project.workspace = true thiserror.workspace = true once_cell.workspace = true hex.workspace = true # abigen ethers-contract-abigen = { workspace = true, optional = true } ethers-contract-derive = { workspace = true, optional = true } [dev-dependencies] ethers-providers = { workspace = true, features = ["ws"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } [features] default = ["abigen", "providers"] providers = ["ethers-providers", "ethers-contract-abigen/providers", "ethers-contract-derive/providers"] abigen = ["ethers-contract-abigen", "ethers-contract-derive"] abigen-online = ["abigen", "ethers-contract-abigen/online"] celo = ["legacy", "ethers-core/celo", "ethers-providers/celo"] optimism = ["ethers-core/optimism", "ethers-providers/optimism"] legacy = [] rustls = ["ethers-contract-abigen/rustls"] openssl = ["ethers-contract-abigen/openssl"] # Deprecated abigen-offline = ["abigen"] eip712 = []