[package] name = "ethers-solc" version = "0.3.0" authors = ["Matthias Seitz ", "Georgios Konstantopoulos "] license = "MIT OR Apache-2.0" edition = "2018" 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 = "^0.6.0", path = "../ethers-core", default-features = false } serde_json = "1.0.68" serde = { version = "1.0.130", features = ["derive"] } semver = { version = "1.0.7", features = ["serde"] } walkdir = "2.3.2" tokio = { version = "1.15.0", default-features = false, features = ["process", "io-util", "fs", "time"], optional = true } futures-util = { version = "^0.3", optional = true } once_cell = "1.10.0" regex = "1.5.5" md-5 = "0.10.1" thiserror = "1.0.30" hex = "0.4.3" colored = "2.0.0" glob = "0.3.0" tracing = "0.1.32" num_cpus = "1.13.1" 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.9.8", default-features = false, optional = true } dunce = "1.0.2" solang-parser = { default-features = false, version = "0.1.11" } rayon = "1.5.1" rand = { version = "0.8.5", optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] home = "0.5.3" # SVM is not WASM compatible yet. # svm = { package = "svm-rs", default-features = false, version = "0.2.7", optional = true } svm = { package = "svm-rs", default-features = false, git = "https://github.com/roynalnaruto/svm-rs", optional = true, features = ["blocking"] } svm-builds = { package = "svm-rs-builds", git = "https://github.com/roynalnaruto/svm-rs", 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.2.0" tempfile = "3.3.0" tokio = { version = "1.15.0", features = ["full"] } [[bench]] name = "compile_many" harness = false [[bench]] name = "read_all" harness = false [[test]] name = "project" path = "tests/project.rs" required-features = ["async", "solc-svm", "project-util"] [[test]] name = "mocked" path = "tests/mocked.rs" required-features = ["async", "solc-svm", "project-util"] [features] default = ["rustls"] async = ["tokio", "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"]