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 的额外功能,如 ws
,ipc
,或 rustls
,并提示 ethers-providers
版本不匹配。
--skip-build
在生成绑定之前跳过运行 Forge 构建。
这允许你跳过首先执行的默认 forge build
步骤,而是使用已经存在的 artifacts 生成绑定。
--select-all
默认情况下,所有以 Test
或 Script
结尾的合约都被排除在外。这将明确地生成所有合约的绑定关系。与 --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.z
,solc:x.y.z
或 path/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
抑制所有输出。