本文介绍了如何利用 OpenZeppelin Defender 在自定义的网络分叉上部署和测试智能合约。主要步骤包括:配置 Phalcon 上的分叉网络并将其添加到 Defender,为分叉网络设置部署环境,最后通过 JavaScript 代码部署智能合约,并提供了后续监控和动作设置的建议。
Defender 使你能够利用自定义的网络分叉来部署和测试智能合约,以及相关的配置,例如 actions、monitors 和 workflows。本指南将引导你完成在分叉网络上部署智能合约并与之交互的步骤。
你将在 Phalcon 上设置一个分叉网络,并将此网络添加到 Defender。要配置一个分叉网络,请按照以下步骤操作:
在 Phalcon 上注册一个账户,并使用 Ethereum 主网作为源网络创建一个新的 fork。
确保激活了 anti-replay protection,以便为你的 fork 使用一个不同的链 ID,防止与公共链 ID 冲突。
在 Web 浏览器中打开 Defender Forked Networks。
点击 Add Forked Network。
输入你的分叉网络的详细信息,这些信息可以在你的 Phalcon 仪表盘中找到。
点击 Save。
你可以使用任何 provider 来 fork 一个网络,例如 Conduit。但是,我们建议使用 Phalcon,因为它免费且易于使用。 |
你将为你刚添加到 Defender 的分叉网络设置一个部署环境。要配置一个部署环境,请按照以下步骤操作:
在 Web 浏览器中打开 Defender Deploy。
点击你的生产环境的 Setup(如果你的网络是从测试网分叉的,则设置一个测试环境)。
点击 Next 继续。
当要求提供区块浏览器 API 密钥时,点击 Skip this step,因为不可能为分叉网络使用区块浏览器 API 密钥。
最后,当要求选择升级批准流程时,点击 Skip this step。目前,分叉网络不支持升级。
确保复制生成的团队 API 密钥并将其存储在安全的地方。你将需要它们来与你的部署环境进行交互。
你的部署环境现在已设置完毕!
你应该为 relayer 帐户提供足够的 ETH,以支付部署交易的 gas 成本。大多数 provider 都有一个 faucet,你可以用它来为你的 relayer 帐户提供资金。对于 Phalcon,你可以在仪表板上找到它。 |
你将在你刚添加到 Defender 的分叉网络上部署一个智能合约。要部署一个智能合约,请按照以下步骤操作:
设置一个 JavaScript 项目并安装 defender-sdk-deploy-client NPM 包。或者,你可以使用 OpenZeppelin Defender SDK 存储库中提供的 defender-sdk delpoy 示例脚本。
部署代码如下所示:
// Retrieve and confirm the approval process for deployment on your forked network
// 检索并确认在你的分叉网络上部署的批准流程
const config = await client.deploy.getDeployApprovalProcess('mainnet-fork');
console.log(config);
// Deploy a simple Box constract using the approval process retrieved above
// 使用上面检索到的批准流程部署一个简单的 Box 合约
const deployment = await client.deploy.deployContract({
contractName: 'Box',
contractPath: 'contracts/Box.sol',
network: 'mainnet-fork',
artifactPayload: JSON.stringify(artifactFile),
licenseType: 'MIT',
verifySourceCode: true,
// Only provide the `salt` if you wish to use `CREATE2`. Otherwise, omit this field to use `CREATE`.
// 只有当你希望使用 `CREATE2` 时才提供 `salt`。否则,省略此字段以使用 `CREATE`。
salt: "a-unique-salt"
});
// Retrieve the deployment status
// 检索部署状态
const deploymentStatus = await client.deploy.getDeployedContract(deployment.deploymentId);
console.log(deploymentStatus);
运行脚本以部署合约。注意,提供一个 salt
将使用 CREATE2
部署合约。否则,合约将使用 CREATE
操作码部署。有关部署注意事项的更多信息,请访问文档。
部署完成后,你可以在 Defender Deploy 仪表板上跟踪部署状态。
恭喜!你已成功在一个分叉网络上部署了一个智能合约。如果你提供了 blockExplorerUrl
,你可以在你的分叉网络的区块浏览器上验证该交易。
部署合约后,我们建议在 Defender 上创建一个 Monitor 并设置 Actions。在此处了解如何设置 Monitor here,并在此处的教程中使用 Actions here。 |
- 原文链接: docs.openzeppelin.com/de...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!