在本教程中,我们将探讨如何使用 Relayers 发送交易。我们将介绍:
-
检查 relayer 信息。
-
发送交易。
-
检查 relayer 状态。
在本教程结束时,您将对如何使用 Relayer 与智能合约交互有一个基本的了解。
1. 设置 Relayer
让我们从创建一个 Relayer 开始:
-
在 Web 浏览器中打开 Defender Operate & Automate。
-
使用名称 ETH Sepolia Relayer 和 Sepolia 网络点击 创建 Relayer。
-
用一些 Sepolia ETH 为其提供资金。此 relayer 将发送并支付自动交易的费用。
-
要为 Relayer 创建 API 密钥,请点击 Relayer,然后点击 更多 按钮以展开下拉菜单并选择 创建 API 密钥
-
现在您可以以分钟、小时或天为单位设置 API 密钥过期时间。
-
创建 API 密钥后,请务必写下密钥。API 密钥仅在创建期间可见一次——如果您不写下来,它将永远丢失。
2. 检查 Relayer 信息
-
让我们从检查我们的 relayer 的信息开始。
-
在
.env
文件中添加 Relayer -
在您的项目根目录中编辑
.env
文件并添加您的 Relayer API 密钥和密钥:RELAYER_API_KEY=your_api_key RELAYER_SECRET_KEY=your_api_secret
-
在项目中创建一个名为
storeObject.ts
的文件。 -
现在让我们添加以下代码:
const { Defender } = require('@openzeppelin/defender-sdk'); const dotenv = require('dotenv'); dotenv.config(); async function main() { const client = new Defender({ relayerApiKey: process.env.RELAYER_API_KEY, relayerApiSecret: process.env.RELAYER_SECRET_KEY, }); const info = await client.relaySigner.getRelayer(); console.log('Relayer Info:', JSON.stringify(info, null, 2)); } main().catch((error) => { console.error(error); process.exitCode = 1; });
-
执行脚本以检查 relayer 信息:
ts-node storeObject.ts
或者,如果您想直接使用 Node:
node storeObject.js
3. 发送交易
接下来,我们将使用 relayer 发送交易。
-
让我们编辑同一个文件并添加以下代码:
const tx = await client.relaySigner.sendTransaction({ to: '0x1B9ec5Cc45977927fe6707f2A02F51e1415f2052', speed: 'fast', data: '0x6057361d000000000000000000000000000000000000000000000000000000000000000a', gasLimit: '80000', }); console.log('Transaction sent! Hash:', tx.hash);
在这里,我们使用 Sepolia Box 合约作为目标,它是:
0x1B9ec5Cc45977927fe6707f2A02F51e1415f2052
并且数据是带有 ‘10’ 作为输入参数的 store() 函数的编码版本。
0x6057361d000000000000000000000000000000000000000000000000000000000000000a
-
执行脚本以发送交易:
ts-node storeObject.ts
或者,如果您想直接使用 Node:
node storeObject.js