添加完整的私有网络 - OpenZeppelin 文档

本文档介绍了如何在OpenZeppelin Defender中添加完整的私有网络,包括配置私有网络、部署Safe合约以及创建 subgraph。通过Tenderly创建网络,部署Safe合约,并配置Defender subgraph toolkit,最终实现支持智能合约的部署、监控和管理。

添加一个完整的私有网络

私有网络允许你通过添加兼容的主网和测试网来自定义你的帐户。然后,你可以像使用任何其他受支持的网络一样使用它们,以在这些网络上部署、监控和管理智能合约。本指南将引导你完成添加具有 subgraph 和 Safe 合约的私有网络的步骤。

准备条件

  • OpenZeppelin Defender 帐户。你可以在此处注册 Defender。

1. 配置私有网络

例如,本指南使用 Tenderly 创建一个要使用的网络。 请按照以下步骤操作:

  1. 在 Tenderly 上注册一个帐户,并从 Ethereum 主网创建一个 fork 网络。切换自定义链 ID 并将其设置为唯一值,以防止与公共链 ID 冲突。

Tenderly 创建网络

  1. 复制网络 RPC 并转到 Defender 上的私有网络页面。 填写并提交包含网络信息的表单,将可选字段留空(将在后续步骤中进行配置):

在 Defender 上配置网络

2. 部署 Safe 合约

创建私有网络后,你现在可以部署 Safe 合约,该合约可用于 multisigs 或 CREATE2 部署。 请按照以下步骤操作:

  1. 克隆 safe-smart-account 存储库并安装依赖项:
git clone https://github.com/safe-global/safe-smart-account && cd safe-smart-account && npm install
  1. 创建一个新的钱包,复制其助记词,并将其粘贴到 .env 文件中,以及 NODE_URL 参数中私有网络的 RPC url。 例如,使用 Foundry:
cast wallet new-mnemonic
  1. 通过 Tenderly 使用原生 tokens(如 Ether)为钱包提供资金。

在私有网络上为钱包提供资金

  1. 将钱包的私钥和网络 RPC 粘贴到以下命令中,以部署 CREATE2 Deployer 合约。 在下一步中,复制 contractAddress 中的合约地址。
cast send --rpc-url NETWORK_RPC --private-key PRIVATE_KEY --create 0x604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3
  1. hardhat.config.ts 中的 deterministicDeployment 函数替换为以下代码,替换 YOUR_CONTRACT_ADDRESSYOUR_WALLET_ADDRESS
const deterministicDeployment = (): DeterministicDeploymentInfo => {
       return {
           factory: "YOUR_CONTRACT_ADDRESS",
           deployer: "YOUR_WALLET_ADDRESS",
           funding: BigNumber.from(100000).mul(BigNumber.from(100000000000)).toString(),
           signedTx: "0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf326a0b1fd9f4102283a663738983f1aac789e979e220a1b649faa74033f507b911af5a061dd0f2f6f2341ee95913cf94b3b8a49cac9fdd7be6310da7acd7a96e31958d7",
       };
};
  1. 运行以下命令来部署 Safe 合约(不用担心验证错误):
npm run deploy-all custom
  1. 导航到 Defender 上的 Private Networks 页面,然后单击你创建的网络的编辑按钮。

在 Defender 上编辑私有网络

  1. 从 Safe 合约部署输出中复制以下地址,然后将其粘贴到 Defender 上:
  • Safe Master 地址:Safe

  • Safe Proxy Factory 地址:SafeProxyFactory

  • Safe Multi-Send Call-Only 地址:MultiSendCallOnly

  • Safe Create Call 地址:CreateCall

3. 创建 subgraph

Defender 上的 Subgraph 由 TheGraph 提供支持。 为了为私有网络创建一个 subgraph,该网络必须首先由 TheGraph 支持。 这是 作为数据源的受支持网络列表。 请按照以下步骤创建 subgraph:

  1. 克隆 Defender subgraph 工具包存储库并安装依赖项:
git clone https://github.com/OpenZeppelin/defender-subgraphs && cd defender-subgraphs && yarn
  1. 按照 README 中的步骤操作。

  2. 复制 subgraph URL 并将其粘贴到 Defender 私有网络配置上的 Subgraph URL 字段中。

Defender 上的 Subgraph URL

后续步骤

恭喜! 你已成功添加了一个完整的私有网络。 你现在可以使用它通过 Safe 合约和 subgraph 部署和测试你的智能合约。

参考

← 在一个 fork 网络上部署智能合约

中继 gasless meta-transactions →

  • 原文链接: docs.openzeppelin.com/de...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OpenZeppelin
OpenZeppelin
江湖只有他的大名,没有他的介绍。