hellwolf/solc.nix

GitHub: hellwolf/solc.nix

基于 Nix Flake 的多版本 Solidity 编译器集合,提供跨平台的声明式开发环境支持。

Stars: 23 | Forks: 13

# Nix 中的 Solidity 编译器集合 此 Nix flake 提供了一组 [solidity 编译器 (solc)](https://github.com/argotorg/solidity/) 的 static-linux 和 macos 构建版本,并以 [overlay](https://nixos.wiki/wiki/Overlays) 形式提供。 # 用法 **使用 Nix Flake** 以下 flake 将使 solc 0.4.26、0.7.6 和 0.8.19 可用于开发。 此外,还提供了一个便捷函数 `mkDefault`,用于创建指向选定 solc 版本的符号链接。 ``` { inputs = { solc = { url = "github:hellwolf/solc.nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, solc }: let pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ solc.overlay ]; }; in { devShell.x86_64-linux = with pkgs; mkShell { buildInputs = [ solc_0_4_26 solc_0_7_6 solc_0_8_19 (solc.mkDefault pkgs solc_0_8_19) ]; }; }; } ``` 例如,它们应该可以通过开发 shell 使用。 ``` $ nix develop . $ solc-0.4.26 --version solc, the solidity compiler commandline interface Version: 0.4.26+commit.4563c3fc.Linux.g++ $ solc-0.7.6 --version solc, the solidity compiler commandline interface Version: 0.7.6+commit.7338295f.Linux.g++ $ solc-0.8.19 --version solc, the solidity compiler commandline interface Version: 0.8.19+commit.7dd6d404.Linux.g++ ``` **使用 Nix Shell** 你也可以直接使用 `nix shell`,而无需为项目编写 nix flake。 ``` # Solc 包直接列为 "solc_{version}", nix shell github:hellwolf/solc.nix#solc_0_4_26 github:hellwolf/solc.nix#solc_0_8_19 ``` # 贡献 作者将尽最大努力保持此仓库处于最新状态。 但如果你发现它滞后了,这里有一些实用脚本可以帮助你自行解决: **./utils/download.sh** 1. 在项目的顶层创建一个 bin 文件夹。 2. 下载所有版本的 solc:`./utils/download.sh all` 3. 下载特定版本的 solc:`./utils/download.sh 0.8.19` **./utils/create-listing.sh** 这将覆盖 `solc-listing.nix` 文件。 欢迎提交 Pull requests!
标签:Cutter, Ethereum, Nix, Nix Flakes, NixOS, SOC Prime, Solc, Solidity, Web3, 以太坊, 包管理, 区块链, 去中心化, 开发工具, 智能合约, 环境配置, 编译器, 软件集合, 静态构建