本文详细介绍了如何在 BuildBear Sandbox 中创建和部署 Web3 函数,包括选择触发类型、任务类型以及连接智能合约的过程,还对如何创建私有沙箱和安装 Gelato 插件进行了详细指南。最后,文章展示了如何测试 Web3 函数,并创建定时执行任务,涵盖了实现细节及代码示例,适合希望深入了解 Web3 自动化的开发者。
在本教程中,我们将逐步介绍在 BuildBear Sandbox 上部署 Web3 函数、创建自动化任务并执行自动化操作的过程。在教程结束时,你将清楚了解如何创建 web3 函数以及执行自动化任务。
要开始,我们已经设置了所需函数的 repo。使用下面显示的命令克隆此存储库:
git clone https://github.com/BuildBearLabs/Gelato-Web3-Functions.git
cd Gelato-Web3-Functions
yarn install
打开代码编辑器如 VS Code,并浏览文件夹结构。该结构包括三个主要文件夹:
访问 BuildBear Home 创建一个新的 Sandbox。如果你是 BuildBear 新用户,请参阅我们的全面文档以注册并创建你的沙盒 这里。
点击沙盒仪表板中的插件选项。在所有插件选项卡中,选择并安装 Gelato 插件,安装后它将显示在已安装的插件下。
通过创建一个 .env
文件配置你的本地环境,该文件包含私钥和 RPC URL,格式如下:
### 示例私钥和 RPC
PRIVATE_KEY=670e8f5f57a3bc4bd1869d473591ff10f6cf0d69a254257b61eca3f244ef188
PROVIDER_URLS= https://rpc.buildbear.io/sanam
现在,我们将看看如何通过创建 Web3 函数自动化其功能的执行。在 web3-functions
文件夹中,有多个文件夹包含各种 Web3 函数。在本教程中,我们将看到如何实现 “advertising-board” 函数。在 web3 函数内,核心功能在 index.ts
中定义。
该脚本定义了一个 Web3Function,它根据链下数据执行链上交易。让我们分解一下脚本:
Web3Function.onRun
context
参数的回调函数,参数类型为 Web3FunctionContext
。userArgs
)、存储( storage
)和多链提供者( multiChainProvider
)的访问。提供者和广告板合同初始化
userArgs.adBoard
)中获取,或者设置为默认值。发布消息逻辑
执行结果
canExec: true
),它将构建调用数据对象的数组。to
)和编码的函数调用数据( data
),用于 postMessage
函数,并将生成的消息作为参数。返回值
canExec
指示是否允许执行,callData
包含合同函数调用的交易数据。如果不允许执行,它还包括带有解释的 message
字段。该脚本基本上定义了一个 Web3Function 的逻辑,它定期向广告板智能合约发布随机引用消息,利用链下数据和链上交易。
快速查看 Web3 函数结果,你可以使用 W3f 命令,而不需要设置测试环境;你需要传递 Web3 函数的路径、我们正在测试的链 ID 以及任何用户参数和存储。
npx w3f test web3-functions/advertising-board/index.ts --logs --chain-id=1
我们已经设置了 Web3 函数,现在要执行任务,需要创建在脚本文件夹中定义的 create-task-ad-board.ts
的脚本。
注意:如果 Web3 函数需要任何参数,则应在 web3FunctionArgs
下传递它们。在这种情况下,从广告板 web3 函数的 userArgs.json
文件中复制并粘贴值。
该脚本使用 Automate SDK 和其他库执行以下操作:
实例化提供者和签名者:
在 IPFS 上部署 Web3Function:
index.ts
)。Web3FunctionBuilder.deploy
方法将 Web3Function 部署到 IPFS。创建 Automate 任务:
automate.createBatchExecTask
方法创建 Automate 任务(批量执行任务)。该脚本基本上将 Web3Function 部署到 IPFS,并创建一个 Automate 任务,该任务以指定的间隔执行此函数。
要执行脚本,请确保账户中有足够的余额以在网络上执行交易。要为你的账户提供资金,导航到你的沙盒仪表板并使用水龙头转移代币。
使用以下命令运行脚本:
ts-node scripts/create-task-ad-board.ts
该命令将 Web3Function 存储在 IPFS 上,并生成如上所示的任务 ID。
现在,导航至我们的沙盒资源管理器以检查交易。
要取消一个任务,请在脚本文件夹中创建一个名为 'cancel-task.ts' 的新文件,并使用以下脚本取消刚刚执行的任务,通过在 cancelTask
方法中传递你的 TaskID 作为字符串。
要执行上述取消任务,请运行以下命令:
ts-node scripts/cancel-task.ts
祝贺你完成本教程,并在 BuildBear Sandbox 上使用 Gelato Web3 函数探索智能合约自动化的力量! 在模板中探索所有其他 Web3 函数,体验智能合约中自动化的力量,以增强 DApp 能力。利用 BuildBear 沙箱使用 Gelato Web3 函数,使开发人员能够有效地自动化 DApp 上的任务,并在将应用程序部署到生产环境之前识别任何潜在问题或优化需求。
BuildBear 赋予你:
与我们联系: Twitter | LinkedIn | Telegram | GitHub
- 原文链接: medium.com/buildbear/how...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!