本文介绍了如何使用 OpenZeppelin Defender 创建一个 Action Workflow,用于监控 Box 合约中对象的数量,并在添加对象时自动移除对象,保证合约中对象数量的平衡。文章详细介绍了Action的设置、Workflow的设置、Monitor的设置,以及如何在 Sepolia 测试网上进行实际操作。
Defender 允许你使用 Action Workflow 快速定位和激活链上活动。本教程展示了如何创建一个工作流程,该流程监控 Box 合约中的对象数量,并在向其中添加对象时执行一个操作。
在本教程中,你将监控 Sepolia 上的这个合约,该合约存储了多个对象,同时允许任何人使用 addObject()
和 removeObject()
函数来添加或删除对象。对于添加的每个对象,你的工作流程将执行一个操作,删除一个对象并将总数减少一。要设置操作,请按照以下步骤操作:
在 Web 浏览器中打开 Defender Relayers。
使用以下参数填写表单,然后单击“Create”:
Name:Relayer Sepolia
Network:Sepolia
将一些 Sepolia ETH 转账到上一步创建的 relayer 地址。
导航到 Defender Address Book 以导入 BoxV2
合约。
使用以下参数填写表单,然后单击“Create”:
Name:BoxV2
Network:Sepolia
Address:0xC64f7ace6127bc7B0bAb23bD1871aC81e6AEC074
使用以下参数填写 General Information(常规信息)部分:
Name:Remove object
Contract:BoxV2
从 Function(函数)部分的下拉菜单中选择 removeObject
函数。
展开 Approval Process(审批流程)部分上的下拉列表,然后单击 Create Approval Process
(创建审批流程)。
使用以下参数填写表单,然后单击 Save Changes(保存更改):
Name:BoxV2 IR Sender
Relayer:Relayer Sepolia
(在第一步中创建)
BoxV2 IR Sender
作为审批流程,然后单击 Save Transaction Template
(保存交易模板)配置好操作后,现在需要创建工作流程。为此,请按照下列步骤操作:
将工作流程重命名为 Remove from BoxV2 if Object is Added
。
将 Remove object
操作拖到第一行。
单击 Save。
创建工作流程后,你需要配置一个监控器,该监控器跟踪 BoxV2 合约中的对象数量以触发工作流程。为此,请按照下列步骤操作:
使用以下参数填写 General Information(常规信息)部分:
Name:BoxV2 Objects Monitor
Risk Category:Suspicious Activity
Contract:BoxV2
Confirmation Blocks:Confirmed (1 blocks)
在 Transaction Filters(交易过滤器)部分中,为 Transaction properties(交易属性)字段添加 status == "success"
。
在 Function(函数)部分中,选择 addObject()
在 Alerts(警报)部分中,为 Execute a Workflow(执行工作流程)选项选择 Remove from BoxV2 if Object is Added
工作流程。
在监控器运行时,它将检测任何与 addObject()
函数匹配的交易以触发工作流程。要手动执行此类交易,请按照以下步骤操作:
使用以下参数填写表单:
Name:BoxV2 Add Object Trigger
Contract:BoxV2
Function:addObject
Approval Process:BoxV2 IR Sender
单击交易提案以打开其页面。
单击右上角的 Approve and Execute(批准并执行)按钮以执行交易,这将通过监控器触发工作流程。
等待交易执行完毕,然后打开 Defender Workflows 页面。
单击 View Active Run(查看活动运行)并检查你的工作流程响应的详细信息。
成功执行运行后,你可以通过在 Etherscan 上检查合约的活动来验证响应。它应该如下所示:
恭喜!你现在有一个完整的工作流程,它将运行并检查每个已确认的区块。工作流程可以扩展为具有并行操作,以实现更多技术组合。如果你对高级用例感兴趣,我们正在编写与 Workflow 相关的指南。
- 原文链接: docs.openzeppelin.com/de...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!