[package] name = "ethers" version = "1.0.2" edition = "2021" rust-version = "1.64" # must also be changed in **/Cargo.toml and .clippy.toml authors = ["Georgios Konstantopoulos "] license = "MIT OR Apache-2.0" readme = "README.md" documentation = "https://docs.rs/ethers" repository = "https://github.com/gakonst/ethers-rs" homepage = "https://docs.rs/ethers" description = "Complete Ethereum library and wallet implementation in Rust." [workspace] members = [ "ethers-addressbook", "ethers-contract", "ethers-providers", "ethers-signers", "ethers-core", "ethers-middleware", "ethers-etherscan", "ethers-solc", # Example crates "examples/*", ] default-members = [ "ethers-addressbook", "ethers-contract", "ethers-providers", "ethers-signers", "ethers-core", "ethers-middleware", "ethers-etherscan", "ethers-solc", ] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] features = ["full"] [features] default = ["abigen"] celo = [ "ethers-core/celo", "ethers-providers/celo", "ethers-signers/celo", "ethers-contract/celo", "ethers-middleware/celo", "legacy", ] legacy = ["ethers-core/legacy", "ethers-contract/legacy"] # individual features per sub-crate ## core eip712 = ["ethers-contract/eip712", "ethers-core/eip712"] ## providers ws = ["ethers-providers/ws"] ipc = ["ethers-providers/ipc"] rustls = [ "ethers-middleware/rustls", "ethers-providers/rustls", "ethers-etherscan/rustls", "ethers-contract/rustls", "ethers-solc/rustls", ] openssl = [ "ethers-middleware/openssl", "ethers-providers/openssl", "ethers-etherscan/openssl", "ethers-contract/openssl", "ethers-solc/openssl", ] dev-rpc = ["ethers-providers/dev-rpc"] ## signers ledger = ["ethers-signers/ledger"] trezor = ["ethers-signers/trezor"] yubi = ["ethers-signers/yubi"] ## contracts abigen = ["ethers-contract/abigen"] ### abigen without reqwest abigen-offline = ["ethers-contract/abigen-offline"] ## solc ethers-solc = ["dep:ethers-solc", "ethers-etherscan/ethers-solc"] solc-full = ["ethers-solc", "ethers-solc/full"] solc-tests = ["ethers-solc", "ethers-solc/tests"] solc-sha2-asm = ["ethers-solc", "ethers-solc/asm"] [dependencies] ethers-addressbook = { version = "^1.0.0", default-features = false, path = "./ethers-addressbook" } ethers-contract = { version = "^1.0.0", default-features = false, path = "./ethers-contract" } ethers-core = { version = "^1.0.0", default-features = false, path = "./ethers-core" } ethers-providers = { version = "^1.0.0", default-features = false, path = "./ethers-providers" } ethers-signers = { version = "^1.0.0", default-features = false, path = "./ethers-signers" } ethers-middleware = { version = "^1.0.0", default-features = false, path = "./ethers-middleware" } ethers-solc = { version = "^1.0.0", default-features = false, path = "./ethers-solc", optional = true } ethers-etherscan = { version = "^1.0.0", default-features = false, path = "./ethers-etherscan" } [dev-dependencies] ethers-contract = { version = "^1.0.0", default-features = false, path = "./ethers-contract", features = [ "abigen", "eip712", ] } ethers-providers = { version = "^1.0.0", default-features = false, path = "./ethers-providers", features = [ "ws", ] } [target.'cfg(target_family = "unix")'.dev-dependencies] ethers-providers = { version = "^1.0.0", default-features = false, path = "./ethers-providers", features = [ "ws", "ipc", ] } eyre = "0.6" rand = "0.8.5" serde = { version = "1.0.124", features = ["derive"] } serde_json = "1.0.64" tokio = { version = "1.18", features = ["macros", "rt-multi-thread"] } hex = "0.4.3" bytes = "1.3.0" # profile for the wasm example [profile.release.package.ethers-wasm] # Tell `rustc` to optimize for small code size. opt-level = "s"