[package]
name = "ethers-solc"
version = "1.0.2"
edition = "2018"
rust-version = "1.62"
authors = [
    "Matthias Seitz <matthias.seitz@outlook.de>",
    "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 = "Utilites for working with solc"
keywords = ["ethereum", "web3", "solc", "solidity", "ethers"]

[dependencies]
ethers-core = { version = "^1.0.0", path = "../ethers-core", default-features = false }
serde_json = "1.0.68"
serde = { version = "1.0.130", features = ["derive"] }
semver = { version = "1.0.14", features = ["serde"] }
walkdir = "2.3.2"
tokio = { version = "1.18", default-features = false, features = ["rt"] }
futures-util = { version = "^0.3", optional = true }
once_cell = "1.16.0"
regex = "1.7.0"
md-5 = "0.10.5"
thiserror = "1.0"
hex = "0.4.3"
yansi = "0.5.1"
glob = "0.3.0"
tracing = "0.1.37"
num_cpus = "1.14.0"
tiny-keccak = { version = "2.0.2", default-features = false }
tempfile = { version = "3.3.0", optional = true }
fs_extra = { version = "1.2.0", optional = true }
sha2 = { version = "0.10.6", default-features = false, optional = true }
dunce = "1.0.3"
solang-parser = { default-features = false, version = "=0.1.18" }
rayon = "1.6.0"
rand = { version = "0.8.5", optional = true }
path-slash = "0.2.1"
cfg-if = "1.0.0"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
home = "0.5.4"
svm = { package = "svm-rs", version = "0.2.18", default-features = false, optional = true, features = [
    "blocking",
] }
svm-builds = { package = "svm-rs-builds", version = "0.1.8", optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
# NOTE: this enables wasm compatibility for getrandom indirectly
getrandom = { version = "0.2", features = ["js"] }

[dev-dependencies]
criterion = { version = "0.3", features = ["async_tokio"] }
env_logger = "0.10.0"
tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter", "fmt"] }
rand = "0.8.5"
pretty_assertions = "1.3.0"
tempfile = "3.3.0"
tokio = { version = "1.18", features = ["full"] }

[[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"]
async = ["tokio/process", "tokio/io-util", "tokio/fs", "tokio/time", "futures-util"]
full = ["async", "svm-solc"]
svm-solc = ["svm/blocking", "svm-builds", "sha2"]
# Utilities for creating and testing project workspaces
project-util = ["tempfile", "fs_extra", "rand"]
tests = []
openssl = ["svm/openssl"]
rustls = ["svm/rustls"]
asm = ["sha2/asm", "svm/sha2-asm"]
