context 对象,以及如何使用它在 Web3 Actions 中访问 Gateway、Storage 和 Secrets 等实用工具。
您还将了解如何通过 context 访问 Node RPC、如何使用 Secrets 管理和访问 API 密钥等私密数据、如何将数据持久化到 Storage,以及如何从您的应用程序中访问这些数据。
Context
context 是一个对象,它可以让您在代码中访问 Storage 和 Secrets。Context 是您函数中需要指定的第一个参数,它使 Tenderly 运行您的代码时可以访问执行上下文。
example.ts
Storage 和 Secrets 在 Tenderly 项目中的所有 Actions 之间共享。
Gateways
Gateways 实用工具(context.gateways)为您提供对 Node RPC 的访问,让您可以通过 Web3 Actions 发送事务或读取链上数据。
gateways 属性提供了一个名为 getGateway() 的方法,它需要一个参数 —— 您要访问的网络。例如,要访问 Mainnet,参数需要格式化为 Network.MAINNET。
存储在变量中的完整语句示例如下:
example.jsx
getGateway() 方法参数列表:
Network.MAINNETNetwork.GOERLINetwork.SEPOLIANetwork.POLYGONNetwork.MUMBAINetwork.BOBA_ETHEREUM
context.gateways 工作原理的更多详情以及帮助您理解使用方法的示例代码片段,请阅读 Web3 Actions 上的 Node RPC 访问 文档页面。
Storage
您可以使用 Storage 实用工具让您的 Web3 Actions 成为有状态的。Web3 Actions Storage 是一个基于键值对的存储。您可以通过自定义代码(函数)和 Tenderly Dashboard 将数据保存到 Storage。 以下代码片段展示了如何将 JSON 对象存入 Storage。example.js
所有与 Storage 交互的函数都是异步的,因此您需要使用
await 运算符
以避免意外行为。保存和检索 Storage 中的数据
要将数据保存到 Storage,请使用以下函数,它们分别存储对应类型的值:putBigIntputStrputNumberputJson
getBigIntgetStrgetNumbergetJson
example.js
Storage 限制
| 限制 | 值 |
|---|---|
| 每个项目的最大键数 | 1,000 |
| 最大键大小 | 1 KB |
| 最大值大小 | 100 KB |
400 Bad Request 错误,并在消息中指出违反的具体限制。
Storage 是项目范围的,项目中的所有 actions 共享同一个键池。
通过 Tenderly Dashboard 访问 Storage
要通过 Tenderly Dashboard 查看保存到 Storage 的数据,从左侧菜单前往 Actions,并从页面菜单中点击 Storage。
Secrets
Secrets 用于存储敏感信息,例如 Web3 Action 在执行期间可能调用的服务的私有 API 密钥。Secrets 以键值对的形式存储,由名称和密钥值组成。创建和存储 Secrets
创建 secrets 的唯一方式是通过 Tenderly Dashboard。从左侧菜单前往 Actions,并从页面菜单中点击 Secrets。 点击 Add Secret 按钮添加 Secret,并提供键名和值。
从代码内部获取 Secrets 数据
您可以使用context 对象的 get() 方法从代码中获取 Secrets 数据。将您在 Tenderly Dashboard 中指定的确切键名作为参数传入。
example.js