[package] name = "ethers-solc" authors = [ "Matthias Seitz ", "Georgios Konstantopoulos ", ] 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-multi-thread"] } [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", "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 = []