ethers-rs/Cargo.toml

177 lines
4.7 KiB
TOML

[package]
name = "ethers"
version = "0.17.0"
edition = "2021"
rust-version = "1.62"
authors = ["Georgios Konstantopoulos <me@gakonst.com>"]
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 = "^0.17.0", default-features = false, path = "./ethers-addressbook" }
ethers-contract = { version = "^0.17.0", default-features = false, path = "./ethers-contract" }
ethers-core = { version = "^0.17.0", default-features = false, path = "./ethers-core" }
ethers-providers = { version = "^0.17.0", default-features = false, path = "./ethers-providers" }
ethers-signers = { version = "^0.17.0", default-features = false, path = "./ethers-signers" }
ethers-middleware = { version = "^0.17.0", default-features = false, path = "./ethers-middleware" }
ethers-solc = { version = "^0.17.0", default-features = false, path = "./ethers-solc", optional = true }
ethers-etherscan = { version = "^0.17.0", default-features = false, path = "./ethers-etherscan" }
[dev-dependencies]
ethers-contract = { version = "^0.17.0", default-features = false, path = "./ethers-contract", features = [
"abigen",
"eip712",
] }
ethers-providers = { version = "^0.17.0", default-features = false, path = "./ethers-providers", features = [
"ws",
] }
[target.'cfg(target_family = "unix")'.dev-dependencies]
ethers-providers = { version = "^0.17.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.2.1"
# 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"]