[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 rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] all-features = true [dependencies] ethers-providers.workspace = 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 } # eip712 ethers-derive-eip712 = { workspace = true, optional = true } [dev-dependencies] ethers-solc.workspace = true ethers-providers = { workspace = true, features = ["ws"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tokio = { workspace = true, features = ["macros"] } [features] default = ["abigen"] eip712 = ["ethers-derive-eip712", "ethers-core/eip712"] abigen-offline = ["ethers-contract-abigen", "ethers-contract-derive"] abigen = ["abigen-offline", "ethers-contract-abigen/online"] celo = ["legacy", "ethers-core/celo", "ethers-providers/celo"] legacy = [] rustls = ["ethers-contract-abigen/rustls"] openssl = ["ethers-contract-abigen/openssl"]