26 个版本 (17 个稳定版)

2.0.14 2024 年 3 月 6 日
2.0.11 2023 年 11 月 16 日
2.0.8 2023 年 7 月 15 日
2.0.2 2023 年 3 月 28 日
0.1.1 2021 年 11 月 29 日

#709 in 神奇豆

Download history • Rust 包仓库 37453/week @ 2024-04-10 • Rust 包仓库 35459/week @ 2024-04-17 • Rust 包仓库 32242/week @ 2024-04-24 • Rust 包仓库 28331/week @ 2024-05-01 • Rust 包仓库 30188/week @ 2024-05-08 • Rust 包仓库 31173/week @ 2024-05-15 • Rust 包仓库 29292/week @ 2024-05-22 • Rust 包仓库 31355/week @ 2024-05-29 • Rust 包仓库 34247/week @ 2024-06-05 • Rust 包仓库 35757/week @ 2024-06-12 • Rust 包仓库 34974/week @ 2024-06-19 • Rust 包仓库 32578/week @ 2024-06-26 • Rust 包仓库 30668/week @ 2024-07-03 • Rust 包仓库 31543/week @ 2024-07-10 • Rust 包仓库 33468/week @ 2024-07-17 • Rust 包仓库 29266/week @ 2024-07-24 • Rust 包仓库

每月 131,016 次下载
用于 41 个 crate(8 个直接使用)

MIT/Apache

1.5MB
34K SLoC

ethers-solc

用于处理原生 solc 和编译项目的工具。

警告

此 crate 已弃用,建议使用 foundry-compilers (foundry-rs/compilers)。有关更多信息,请参阅 #2667

要编译合约(以便 ethers abigen! 可以自动拉取更新后的 abi)并在 cargo build 时执行,您可以在您的 build.rs 文件中配置一个 ethers_solc::Project

首先将 ethers-solc 添加到您的 cargo 构建依赖中。

一旦编译了项目,您可以使用 rerun_if_sources_changed 配置 cargo 变更检测,这样当源目录中的合约发生变化时,cargo 将执行 build.rs 文件。

[build-dependencies]
ethers-solc = { git = "https://github.com/gakonst/ethers-rs" }
use ethers_solc::{Project, ProjectPathsConfig};

fn main() {
    // configure the project with all its paths, solc, cache etc.
    let project = Project::builder()
        .paths(ProjectPathsConfig::hardhat(env!("CARGO_MANIFEST_DIR")).unwrap())
        .build()
        .unwrap();
    let output = project.compile().unwrap();

    // Tell Cargo that if a source file changes, to rerun this build script.
    project.rerun_if_sources_changed();
}

依赖项

~13–32MB
~464K SLoC