[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", "examples/ethers-wasm", ] 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-providers/rustls", "ethers-etherscan/rustls", "ethers-contract/rustls", "ethers-solc/rustls", ] 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 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" [[example]] name = "abigen" path = "examples/abigen.rs" required-features = ["ethers-solc"] [[example]] name = "contract_human_readable" path = "examples/contract_human_readable.rs" required-features = ["ethers-solc"] [[example]] name = "contract_with_abi" path = "examples/contract_with_abi.rs" required-features = ["ethers-solc"] [[example]] name = "contract_with_abi_and_bytecode" path = "examples/contract_with_abi_and_bytecode.rs" required-features = ["ethers-solc"] [[example]] name = "ipc" path = "examples/ipc.rs" required-features = ["ipc"] [[example]] name = "ledger" path = "examples/ledger.rs" required-features = ["ledger"] [[example]] name = "moonbeam_with_abi" path = "examples/moonbeam_with_abi.rs" required-features = ["legacy", "ethers-solc"] [[example]] name = "trezor" path = "examples/trezor.rs" required-features = ["trezor"] [[example]] name = "yubi" path = "examples/yubi.rs" required-features = ["yubi"] [[example]] name = "paginated_logs" path = "examples/paginated_logs.rs" required-features = ["rustls"] [[example]] name = "subscribe_contract_events" path = "examples/subscribe_contract_events.rs" required-features = ["rustls", "ws"] [[example]] name = "subscribe_contract_events_with_meta" path = "examples/subscribe_contract_events_with_meta.rs" required-features = ["rustls", "ws"]