forge bind

名称

forge-bind - 为智能合约生成 Rust 绑定。

简介

forge bind [options]

描述

使用 ethers-rs 为智能合约生成 Rust 绑定。

绑定是由项目的 artifacts 生成的,默认情况下是 ./out/。 如果你想为不同目录下的 artifacts 生成绑定,请传入 --bindings-path <PATH>

有三个输出选项:

  • 在一个 crate 中生成绑定(默认)
  • 在一个模块中生成绑定,通过传递 --module
  • 在一个单一的文件中生成绑定,通过传递 --single-file

默认情况下,该命令将检查现有绑定是否正确,并相应退出。 你可以通过传递以下标志来覆盖现有的绑定 --overwrite.

选项

Project 选项

-b path
--bindings-path path
    项目的根路径。默认情况下,这是当前 git 仓库的根目录,或当前工作目录。

--crate-name name
    要生成的 Rust crate 的名称,如果你正在生成一个 crate(默认)。     这应该是一个在 crates.io 里有效的 crate 名称。

    默认值:foundry-contracts

--crate-version semver
    要生成的 Rust crate 的版本,如果你要生成一个 Rust crate(默认)。     这应该是一个标准的 semver 版本字符串。

    默认:0.0.1

--module
    以模块的形式而不是以 crate 的形式生成绑定。

--single-file
    将绑定生成为一个文件。

--overwrite
    覆盖现有的生成的绑定。默认情况下,该命令将检查绑定是否正确,然后退出。     如果传递了 --overwrite,它将删除并覆盖绑定。

--root path
    项目的根路径。默认情况下,这是当前 git 仓库的根目录,或当前工作目录。

--skip-cargo-toml
    跳过 Cargo.toml 的一致性检查。     这允许你管理 ethers 版本而不放弃一致性检查。     一个例子是,如果你使用 ethers 的额外功能,如 wsipc,或 rustls,并提示 ethers-providers 版本不匹配。

--skip-build
    在生成绑定之前跳过运行 Forge 构建。     这允许你跳过首先执行的默认 forge build 步骤,而是使用已经存在的 artifacts 生成绑定。

--select-all
    默认情况下,所有以 TestScript 结尾的合约都被排除在外。这将明确地生成所有合约的绑定关系。与 --select--skip 相冲突。

--select regex+
    只为名称符合指定过滤器的合约创建绑定。与 --skip 相冲突。

--skip regex+
    只为名称不符合指定过滤器的合约创建绑定。与 --select 相冲突。

普通选项

-h
--help
    打印帮助信息。

缓存选项

--force
    清除缓存和 artifacts 文件夹并重新编译。

链接器选项

--libraries libraries
    设置预链接库。

    参数的格式必须是 <remapped path to lib>:<library name>:<address>,例如 src/Contract.sol:Library:0x...

    也可以在你的配置文件中设置为 libraries = ["<path>:<lib name>:<address>"].

编译器选项

--optimize
    激活 Solidity 优化器。

--optimizer-runs runs
    优化器 runs 的选项。

--via-ir
    使用 Yul 作为编译管道的中间语言。

--revert-strings
    如何处理 revert 和 require 的结果字符串。

--use solc_version
    指定 solc 的版本,或一个本地 solc 的路径,以进行编译。

    有效值的格式为 x.y.zsolc:x.y.zpath/to/solc

--offline
    不使用网络,缺失的 solc 版本将不会被安装。

--no-auto-detect
    不使用 solc 的自动检测。

--ignored-error-codes error_codes
    从错误代码中忽略 solc 警告。该参数是一个以逗号分隔的错误代码列表。

--extra-output selector
    额外的产出要包括在合约的 artifact 中。

    示例键: abi, storageLayout, evm.assembly, ewasm, ir, ir-optimized, metadata

    关于完整的描述, 请参阅 [Solidity docs][output-desc]。

--extra-output-files selector
    额外的输出写到单独的文件。

    示例键: abi, storageLayout, evm.assembly, ewasm, ir, ir-optimized, metadata.

    关于完整的描述, 请参阅 [Solidity docs][output-desc].

--evm-version version
    目标 EVM 版本

Project Options

--build-info
    生成构建信息文件。

--build-info-path path
    输出目录的路径,构建信息文件将被写入。

--root path
    项目的根路径。默认情况下,这是当前 git 仓库的根目录,或当前工作目录。

-C path
--contracts path
    合约源代码目录。     环境变量:DAPP_SRC

--lib-paths path
    库的文件夹路径。

-R remappings
--remappings remappings
    项目的重映射。

    该参数是一个逗号分隔的重映射列表,格式为 <source>=<dest>

--cache-path path
    编译器缓存的路径。

--config-path file
    配置文件的路径。

--hh
--hardhat
    这是一个方便的标志,与传递 --contracts contracts --lib-paths node-modules 相同。

-o path
--out path
    项目的 artifacts 目录。

--silent
    抑制所有输出。

另请参阅

forge