ethers-rs/ethers-solc/Cargo.toml

125 lines
2.9 KiB
TOML

[package]
name = "ethers-solc"
authors = [
"Matthias Seitz <matthias.seitz@outlook.de>",
"Georgios Konstantopoulos <me@gakonst.com>",
]
readme = "README.md"
description = "Utilites for working with solc"
keywords = ["ethers", "ethereum", "web3", "solc", "solidity"]
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
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-core.workspace = true
solang-parser = { version = "=0.2.3", default-features = false }
serde = { workspace = true, features = ["derive", "rc"] }
serde_json.workspace = true
tiny-keccak = { version = "2.0.2", default-features = false }
sha2 = { workspace = true, optional = true }
md-5 = "0.10.5"
semver = { workspace = true, features = ["serde"] }
walkdir.workspace = true
once_cell.workspace = true
regex.workspace = true
thiserror.workspace = true
hex.workspace = true
yansi = "0.5.1"
glob = "0.3.1"
tracing.workspace = true
num_cpus = "1.15.0"
dunce.workspace = true
rayon.workspace = true
path-slash = "0.2.1"
cfg-if = "1.0.0"
tempfile = { version = "3.4.0", optional = true }
fs_extra = { version = "1.3.0", optional = true }
rand = { workspace = true, optional = true }
futures-util = { workspace = true, optional = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
home = "0.5.4"
svm = { package = "svm-rs", version = "0.2", default-features = false, features = [
"blocking",
], optional = true }
svm-builds = { package = "svm-rs-builds", version = "0.1", optional = true }
tokio = { workspace = true, features = ["rt"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
# NOTE: this enables wasm compatibility for getrandom indirectly
getrandom.workspace = true
[dev-dependencies]
criterion.workspace = true
env_logger = "0.10.0"
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] }
rand.workspace = true
pretty_assertions = "1.3.0"
tempfile.workspace = true
serde_path_to_error = "0.1.10"
[[bench]]
name = "compile_many"
harness = false
[[bench]]
name = "read_all"
required-features = ["project-util"]
harness = false
[[test]]
name = "project"
path = "tests/project.rs"
required-features = ["full", "project-util"]
[[test]]
name = "mocked"
path = "tests/mocked.rs"
required-features = ["full", "project-util"]
[features]
default = ["rustls"]
full = ["async", "svm-solc"]
async = [
"tokio/process",
"tokio/io-util",
"tokio/fs",
"tokio/time",
"futures-util",
"criterion/async_tokio",
]
svm-solc = ["svm-builds", "sha2"]
# Utilities for creating and testing project workspaces
project-util = ["tempfile", "fs_extra", "rand"]
tests = []
openssl = ["svm/openssl"]
rustls = ["svm/rustls"]
# Deprecated
asm = []