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
Network содержит элемент для каждой поддерживаемой сети в Node RPC, например:
Network.MAINNETNetwork.SEPOLIANetwork.POLYGONNetwork.OPTIMISTICNetwork.BASENetwork.ARBITRUM
networks.ts пакета @tenderly/actions.
Для получения дополнительной информации о том, как работает 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
Если лимиты превышены, клиент выдаст ошибку
400 Bad Request с сообщением, указывающим, какой именно лимит был превышен.
Storage работает на уровне проекта: все actions в проекте разделяют общий пул ключей.
Доступ к Storage через Tenderly Dashboard
Чтобы просмотреть данные, сохранённые в Storage, через Tenderly Dashboard, перейдите в Web3 Actions в меню слева и выберите Storage в меню страницы.
Доступ к данным Web3 Action, сохранённым в Storage
Secrets
Secrets используются для хранения конфиденциальной информации, такой как приватные ключи API для сервисов, которые ваш Web3 Action может вызывать во время выполнения. Secrets хранятся в виде пар ключ-значение и состоят из имени и секретного значения.Создание и хранение Secrets
Создать секреты можно только через Tenderly Dashboard. Перейдите в Web3 Actions в меню слева и выберите Secrets в меню страницы. Добавьте Secrets, нажав кнопку Add Secret, и укажите имя ключа и значение.
Создание Secrets для Web3 Actions
Получение данных Secrets из вашего кода
Вы можете получить данные Secrets из вашего кода, используя объектcontext с методом get(). В качестве аргумента используйте точное имя ключа, указанное в Tenderly Dashboard.
example.js