添加一个完整的私有网络
私有网络允许你通过添加兼容的主网和测试网来定制你的账户。然后,你可以像使用任何其他受支持的网络一样使用它们,在这些网络上部署、监控和管理智能合约。本指南将引导你完成添加带有 subgraph 和 Safe 合约的私有网络的步骤。
1. 配置私有网络
例如,本指南使用 Tenderly 创建一个要使用的网络。请按照以下步骤操作:
-
在 Tenderly 上注册一个账户,并从 Ethereum 主网创建一个 fork 网络。切换自定义链 ID,并将其设置为唯一值,以防止与公共链 ID 冲突。
-
复制网络 RPC,然后转到 Defender 上的私有网络页面。使用网络信息填写并提交表单,将可选字段留空(将在后续步骤中配置):
2. 部署 Safe 合约
创建私有网络后,你现在可以部署 Safe 合约,这些合约可用于 multisig 或 CREATE2 部署。请按照以下步骤操作:
-
克隆
safe-smart-account
存储库并安装依赖项:git clone https://github.com/safe-global/safe-smart-account && cd safe-smart-account && npm install
-
创建一个新的钱包,复制其助记词,并将其粘贴到
.env
文件中,以及私有网络的 RPC url 粘贴到NODE_URL
参数中。例如,使用 Foundry:cast wallet new-mnemonic
-
通过 Tenderly 使用原生代币(如 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 上的“私有网络”页面,然后单击你创建的网络的编辑按钮。
-
从 Safe 合约部署输出中复制以下地址,然后将其粘贴到 Defender 上:
-
Safe 主地址:
Safe
-
Safe 代理工厂地址:
SafeProxyFactory
-
Safe Multi-Send Call-Only 地址:
MultiSendCallOnly
-
Safe Create Call 地址:
CreateCall
-
3. 创建 subgraph
Defender 上的 Subgraph 由 TheGraph 提供支持。为了为私有网络创建一个 subgraph,该网络必须首先得到 TheGraph 的支持。https://github.com/graphprotocol/graph-tooling/blob/121843e982c69ffb31aae911431a68a2349ea062/packages/cli/src/protocols/index.ts#L91[这是, window=_blank] 作为数据源的受支持网络列表。请按照以下步骤创建 subgraph:
-
克隆 Defender subgraph 工具包存储库并安装依赖项:
git clone https://github.com/OpenZeppelin/defender-subgraphs && cd defender-subgraphs && yarn
-
按照 自述文件 中的步骤操作。
-
复制 subgraph URL,然后将其粘贴到 Defender 私有网络配置上的“Subgraph URL”字段中。
