本文介绍了如何自定义 BuildBear 节点的 Hardhat 选项,每个选项的功能和用法都进行了详细阐述,包括事务失败原因、合约编译结果、账户模拟等。文章结构明确,适合希望深入了解测试环境定制的开发者。
设置你定制的节点与 BuildBear 是准备将你的智能合约部署到你自己的私有节点的第一步。它也是 BuildBear 相对于公共测试网络的最大优势之一,允许你控制你的测试网络将如何运行,并给予你对测试环境的控制。
当你准备完全自定义此节点时,你将看到多个选项,以便按你希望的方式设置它。这些选项分为三大类:Forking、Hardhat 和 EVM。我将分别在各自的文章中介绍这些选项,并探讨每个选项可以为你带来什么。
当你尝试设置节点并查看你的 “Hardhat Options” 时,将会显示以下内容:
getStackTraceFailuresCount — 交易可能因为堆栈问题而失败。EVM 是一个堆栈机器,最大限制为 1024。此选项将帮助你更好地理解为什么你的交易失败。
→ 查看 OpenZeppelin 的博客 Ethereum in Depth 获取更多信息。
addCompilationResult — 此功能允许你打开或关闭显示智能合约编译尝试的结果。
→ 编译智能合约 是以太坊网站上的一篇文章,解释了这个过程。
impersonateAccount — 模拟账户让你能够以编程方式假装是一个在你的节点创建之前就已经存在的其他钱包。这样你可以通过在你的 dApp 中花费这些钱包的代币来使用这些钱包。
→ 例如,你可以用它来与 Vitalik 的账户 进行交易,以测试你的合约。
intervalMine — 此选项允许你启用设置为某个值的间隔挖矿。
→ 间隔挖矿意味着在设定的或随机的延迟后生成一个新块。
getAutomine — 设置此选项将启用 Hardhat 的自动挖矿功能。
→ Automine 默认设置为启用,Hardhat 会在没有特定指令的情况下生成新块。
stopImpersonatingAccount — 此功能可用于停止使用账户模拟。
→ 模拟账户意味着使用 Hardhat 从特定账户和合约地址发送交易。
reset — 你可以启用此选项,以便能够重置回一个干净的分叉状态,从另一个区块号开始,或在运行时禁用分叉。
→ 这将重置网络并在新状态实例上启动。
setLoggingEnabled — 一个功能,允许你启用或禁用记录。
→ 记录是 Hardhat 在网络上记录每个请求的过程。
setMinGasPrice — 此功能允许你设置节点上交易的最小Gas价格。
→ 这个参数对约束你测试环境中的变量非常有用。
dropTransaction — 启用从内存池中移除交易。
→ 这是控制你测试内存池中正在发生的事情的理想功能。
setBalance — 此功能允许你设置给定地址的余额。
→ 适合在创建账户并在测试环境中使用不同设置时使用。
setCode — 允许修改存储在账户地址处的字节码。
→ 此功能将接受一个输入,将账户转换为具有设置字节码的智能合约。
setNonce — 允许覆盖账户的 nonce。
→ 新的 nonce 不能小于之前的 nonce,以避免冲突。
setStorageAt — 让你在存储的特定位置设置账户存储的位置。
→ 这个新的存储位置不能超过 2²⁵⁶ 且必须刚好为 32 字节长。
setNextBlockBaseFeePerGas — 一种方法,让你设置下一个区块的费用。
→ 这只会影响下一个区块的费用,因为后续区块总是会更新。
setCoinbase — coinbase 是区块中的第一个交易,是矿工可以创建的唯一交易。
→ 设置 coinbase 是另一个完全控制测试环境的选项。
mine — 此方法允许你调用 Hardhat 一次性挖矿任意数量的区块,但默认为 1。
→ 这也让你设置区块时间戳之间的间隔,默认为 1。
以上就是与 BuildBear 一起提供的所有 Hardhat 选项,每一个选项都旨在为你提供尽可能高的测试环境控制水平,结合了 localhost 和测试网络的最佳特点。在下一篇文章中,我将介绍自定义节点时的 “EVM 选项”。
在此之前,你可以在 Twitter 和 LinkedIn 上找到我们!
- 原文链接: medium.com/buildbear/cus...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!