创建一个 Action Workflow 以减少 Box 合约中的对象数量 - OpenZeppelin 文档

本文介绍了如何使用 OpenZeppelin Defender 创建一个 Action Workflow,用于监控 Box 合约中对象的数量,并在添加对象时自动移除对象,保证合约中对象数量的平衡。文章详细介绍了Action的设置、Workflow的设置、Monitor的设置,以及如何在 Sepolia 测试网上进行实际操作。

创建一个 Action Workflow(操作流程)以减少 Box 合约中的对象数量

Defender 允许你使用 Action Workflow 快速定位和激活链上活动。本教程展示了如何创建一个工作流程,该流程监控 Box 合约中的对象数量,并在向其中添加对象时执行一个操作。

前提条件

  • OpenZeppelin Defender 账户。你可以在这里注册 Defender。

1. Action(操作)设置

在本教程中,你将监控 Sepolia 上的这个合约,该合约存储了多个对象,同时允许任何人使用 addObject()removeObject() 函数来添加或删除对象。对于添加的每个对象,你的工作流程将执行一个操作,删除一个对象并将总数减少一。要设置操作,请按照以下步骤操作:

  1. 在 Web 浏览器中打开 Defender Relayers

  2. 使用以下参数填写表单,然后单击“Create”:

  • NameRelayer Sepolia

  • NetworkSepolia

  1. 将一些 Sepolia ETH 转账到上一步创建的 relayer 地址。

  2. 导航到 Defender Address Book 以导入 BoxV2 合约。

  3. 使用以下参数填写表单,然后单击“Create”:

  • NameBoxV2

  • NetworkSepolia

  • Address0xC64f7ace6127bc7B0bAb23bD1871aC81e6AEC074

  1. 导航到 Defender Workflows Transaction Template 创建页面

  2. 使用以下参数填写 General Information(常规信息)部分:

  • NameRemove object

  • ContractBoxV2

  1. Function(函数)部分的下拉菜单中选择 removeObject 函数。

  2. 展开 Approval Process(审批流程)部分上的下拉列表,然后单击 Create Approval Process(创建审批流程)。

  3. 使用以下参数填写表单,然后单击 Save Changes(保存更改):

  • NameBoxV2 IR Sender

  • RelayerRelayer Sepolia(在第一步中创建)

  1. 选择 BoxV2 IR Sender 作为审批流程,然后单击 Save Transaction Template(保存交易模板)

Workflow page with Transaction Template

2. Workflow(工作流程)设置

配置好操作后,现在需要创建工作流程。为此,请按照下列步骤操作:

  1. 打开 Defender Workflows 创建页面

  2. 将工作流程重命名为 Remove from BoxV2 if Object is Added

  3. Remove object 操作拖到第一行。

  4. 单击 Save

BoxV2 workflow

3. Monitor(监控)设置

创建工作流程后,你需要配置一个监控器,该监控器跟踪 BoxV2 合约中的对象数量以触发工作流程。为此,请按照下列步骤操作:

  1. 打开 Defender Monitor 创建页面

  2. 使用以下参数填写 General Information(常规信息)部分:

  • NameBoxV2 Objects Monitor

  • Risk CategorySuspicious Activity

  • ContractBoxV2

  • Confirmation BlocksConfirmed (1 blocks)

Workflow Monitor General Information

  1. Transaction Filters(交易过滤器)部分中,为 Transaction properties(交易属性)字段添加 status == "success"

  2. Function(函数)部分中,选择 addObject()

  3. Alerts(警报)部分中,为 Execute a Workflow(执行工作流程)选项选择 Remove from BoxV2 if Object is Added 工作流程。

Workflow BoxV2 Objects monitor

  1. 单击 Save Monitor(保存监控器),这将开始运行。

4. 实际应用

在监控器运行时,它将检测任何与 addObject() 函数匹配的交易以触发工作流程。要手动执行此类交易,请按照以下步骤操作:

  1. 打开 Defender Transaction Proposal 创建页面

  2. 使用以下参数填写表单:

  • NameBoxV2 Add Object Trigger

  • ContractBoxV2

  • FunctionaddObject

  • Approval ProcessBoxV2 IR Sender

  1. 单击 Submit Transaction Proposal(提交交易提案)。

Transaction Proposal Trigger

  1. 单击交易提案以打开其页面。

  2. 单击右上角的 Approve and Execute(批准并执行)按钮以执行交易,这将通过监控器触发工作流程。

  3. 等待交易执行完毕,然后打开 Defender Workflows 页面

Active Workflow

  1. 单击 View Active Run(查看活动运行)并检查你的工作流程响应的详细信息。

  2. 成功执行运行后,你可以通过在 Etherscan 上检查合约的活动来验证响应。它应该如下所示:

Workflow Etherscan Response

下一步

恭喜!你现在有一个完整的工作流程,它将运行并检查每个已确认的区块。工作流程可以扩展为具有并行操作,以实现更多技术组合。如果你对高级用例感兴趣,我们正在编写与 Workflow 相关的指南。

参考文献

← 访问控制

在 Forked 网络上部署智能合约 →

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

0 条评论

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