context и того, как использовать его для доступа к утилитам Gateway, Storage и Secrets внутри Web3 Actions.
Вы также узнаете, как обращаться к Node RPC через context, как управлять и получать доступ к приватным данным, таким как ключи API, с помощью Secrets, как сохранять данные в Storage и как получать эти данные из вашего приложения.
Context
context — это объект, дающий вам доступ к Storage и Secrets из вашего кода. Context — это первый параметр, который нужно указать в ваших функциях, обеспечивая доступ к контексту выполнения, когда Tenderly запускает ваш код.
example.ts
Storage и Secrets являются общими для всех actions в рамках проекта в Tenderly.
Gateways
Утилита Gateways (context.gateways) даёт вам доступ к Node RPC, позволяя отправлять транзакции или читать on-chain данные с помощью Web3 Actions.
Свойство gateways даёт доступ к методу getGateway(), который требует один аргумент — сеть, к которой вы хотите обратиться. Например, чтобы обратиться к Mainnet, аргумент нужно передавать в формате Network.MAINNET.
Пример завершённого выражения, сохранённого в переменной, выглядит так:
example.jsx
getGateway() для каждой поддерживаемой сети в Node RPC:
Network.MAINNETNetwork.GOERLINetwork.SEPOLIANetwork.POLYGONNetwork.MUMBAINetwork.BOBA_ETHEREUM
context.gateways, и примеров кода, помогающих понять его использование, прочитайте страницу документации Доступ к Node RPC в Web3 Actions.
Storage
Вы можете использовать утилиту Storage, чтобы сделать ваши Web3 Actions stateful (с состоянием). Storage Web3 Actions — это хранилище на основе ключей и значений. Вы можете сохранять данные в Storage как из своего пользовательского кода (функций), так и из Tenderly Dashboard. Ниже приведён фрагмент кода, показывающий, как сохранять JSON-объекты в Storage.example.js
Все функции, взаимодействующие с Storage, являются асинхронными, поэтому вам нужно использовать оператор
await,
чтобы избежать нежелательного поведения.Сохранение и получение данных из Storage
Для сохранения данных в Storage используйте следующие функции, которые сохраняют значения соответствующих типов:putBigIntputStrputNumberputJson
getBigIntgetStrgetNumbergetJson
example.js
Лимиты Storage
| Лимит | Значение |
|---|---|
| Максимальное количество ключей на проект | 1 000 |
| Максимальный размер ключа | 1 КБ |
| Максимальный размер значения | 100 КБ |
400 Bad Request с сообщением, указывающим, какой именно лимит был превышен.
Storage работает на уровне проекта — все actions в проекте разделяют общий пул ключей.
Доступ к Storage через Tenderly Dashboard
Чтобы просмотреть данные, сохранённые в Storage, через Tenderly Dashboard, перейдите в Actions в меню слева и выберите Storage в меню страницы.
Secrets
Secrets используются для хранения конфиденциальной информации, такой как приватные ключи API для сервисов, которые ваш Web3 Action может вызывать во время выполнения. Secrets хранятся в виде пар ключ-значение и состоят из имени и секретного значения.Создание и хранение Secrets
Единственный способ создать секреты — через Tenderly Dashboard. Перейдите в Actions в меню слева и выберите Secrets в меню страницы. Добавьте Secrets, нажав кнопку Add Secret, и укажите имя ключа и значение.
Получение данных Secrets из вашего кода
Вы можете получить данные Secrets из вашего кода, используя объектcontext с методом get(). В качестве аргумента используйте точное имя ключа, указанное в Tenderly Dashboard.
example.js