[package] name = "ethers-solc" version = "1.0.0" edition = "2018" rust-version = "1.62" authors = [ "Matthias Seitz ", "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 = "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.6.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.5.3" 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 = "*" 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"]