添加一个完整的私有网络
私有网络允许你通过添加兼容的主网和测试网来自定义你的帐户。然后,你可以像使用任何其他受支持的网络一样使用它们,以在这些网络上部署、监控和管理智能合约。本指南将引导你完成添加具有 subgraph 和 Safe 合约的私有网络的步骤。
准备条件
- OpenZeppelin Defender 帐户。你可以在此处注册 Defender。
1. 配置私有网络
例如,本指南使用 Tenderly 创建一个要使用的网络。 请按照以下步骤操作:
- 在 Tenderly 上注册一个帐户,并从 Ethereum 主网创建一个 fork 网络。切换自定义链 ID 并将其设置为唯一值,以防止与公共链 ID 冲突。

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

2. 部署 Safe 合约
创建私有网络后,你现在可以部署 Safe 合约,该合约可用于 multisigs 或 CREATE2 部署。 请按照以下步骤操作:
- 克隆
safe-smart-account存储库并安装依赖项:
git clone https://github.com/safe-global/safe-smart-account && cd safe-smart-account && npm install- 创建一个新的钱包,复制其助记词,并将其粘贴到
.env文件中,以及NODE_URL参数中私有网络的 RPC url。 例如,使用 Foundry:
cast wallet new-mnemonic- 通过 Tenderly 使用原生 tokens(如 Ether)为钱包提供资金。

- 将钱包的私钥和网络 RPC 粘贴到以下命令中,以部署 CREATE2 Deployer 合约。 在下一步中,复制
contractAddress中的合约地址。
cast send --rpc-url NETWORK_RPC --private-key PRIVATE_KEY --create 0x604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3- 将
hardhat.config.ts中的deterministicDeployment函数替换为以下代码,替换YOUR_CONTRACT_ADDRESS和YOUR_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", }; };- 运行以下命令来部署 Safe 合约(不用担心验证错误):
npm run deploy-all custom- 导航到 Defender 上的
Private Networks页面,然后单击你创建的网络的编辑按钮。

- 从 Safe 合约部署输出中复制以下地址,然后将其粘贴到 Defender 上:
Safe Master 地址:
SafeSafe Proxy Factory 地址:
SafeProxyFactorySafe Multi-Send Call-Only 地址:
MultiSendCallOnlySafe Create Call 地址:
CreateCall
3. 创建 subgraph
Defender 上的 Subgraph 由 TheGraph 提供支持。 为了为私有网络创建一个 subgraph,该网络必须首先由 TheGraph 支持。 这是 作为数据源的受支持网络列表。 请按照以下步骤创建 subgraph:
- 克隆 Defender subgraph 工具包存储库并安装依赖项:
git clone https://github.com/OpenZeppelin/defender-subgraphs && cd defender-subgraphs && yarn按照 README 中的步骤操作。
复制 subgraph URL 并将其粘贴到 Defender 私有网络配置上的
Subgraph URL字段中。

后续步骤
恭喜! 你已成功添加了一个完整的私有网络。 你现在可以使用它通过 Safe 合约和 subgraph 部署和测试你的智能合约。
参考
Safe 合约部署
Defender subgraph 工具包
← 在一个 fork 网络上部署智能合约
中继 gasless meta-transactions →
- 原文链接: docs.openzeppelin.com/de...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~