Web3 Actions доступны на платном плане. Чтобы включить их для вашего аккаунта, свяжитесь с нашим отделом продаж.
Что такое Web3 Actions?
Web3 Actions — это программируемые обработчики (hooks) для событий смарт-контрактов и цепочки. Также они могут выступать в роли serverless-бэкендов для ваших dapp’ов. Web3 Action — это обычная функция на TypeScript/JavaScript, которая выполняется на инфраструктуре Tenderly. Web3 Action поставляется с key-value хранилищем для данных, которые нужно сохранять, и управлением секретами для конфиденциальной информации, такой как ключи API. Вы можете рассматривать Web3 Actions как инфраструктуру, строящую Web3-версию автоматизации IFTTT/Zapier, позволяющую вам склеивать смарт-контракты, on-chain события, фронтенды dapp’ов, API и другие сервисы. На основе задаваемых вами правил-триггеров внешние on-chain или off-chain события будут запускать ваш Web3 Action, и ваш код на JavaScript/TypeScript будет обрабатывать событие мгновенно. Web3 Actions выполняются либо в параллельном режиме (по умолчанию), либо в последовательном. В параллельном режиме actions выполняются без какого-либо определённого порядка относительно времени срабатывания. В последовательном режиме actions выполняются в порядке срабатывания. С Web3 Actions вы можете строить системы, которые своевременно информируют вас о нетривиальных событиях. Так вы можете улучшить UX и интерактивность своего dapp’а и расширить возможности проекта за счёт глубины информации, которую можно собирать или делиться через уведомления. Чтобы понять, что возможно с Web3 Actions, вот несколько примеров использования:- Отслеживание важных транзакций: постройте систему уведомлений с богатыми данными и близкую к реальному времени о событиях, генерируемых контрактом, отправляя сообщения в Discord, Slack или Telegram, либо записывая их в базу данных.
- При майнинге блока: отслеживайте изменения в on-chain активах или ценах на газ, чтобы строить кастомизированную аналитику и автоматизацию. Затем отправляйте данные во внешнее API.
- Экспозиция webhook: расширьте свой dapp, предоставив webhook, обрабатывающий ввод пользователей.
- Периодическая автоматизация: периодически симулируйте выполнение транзакции с помощью симуляций Tenderly и отправляйте результаты в Slack и/или даже отправляйте транзакцию в цепочку для реализации автоматизации.
Web3 Actions имеют ограничения на частоту. Текущий лимит выполнения Web3 Actions —
100 выполнений/5 минут на пользователя. Все дополнительные выполнения будут пропущены.
Руководства по быстрому старту
Следуйте этим руководствам, чтобы быстро начать создавать Web3 Actions через браузер или инструменты командной строки. Настройка Web3 Actions требует написания JavaScript-кода для ваших функций. Создание Web3 Actions с помощью Tenderly CLI включает определение триггеров в yaml-файле конфигурации. Определённый триггер и yaml-конфигурация становятся неотъемлемой частью кодовой базы вашего проекта.- Развернуть Web3 Actions через Tenderly Dashboard: узнайте, как настраивать и развёртывать Web3 Actions прямо в браузере.
- Развернуть Web3 Actions через Tenderly CLI: узнайте, как установить Tenderly CLI, определить триггеры с использованием YAML-конфигурации и настроить и развернуть Web3 Actions через командную строку.
Чтобы настроить Web3 Actions, срабатывающие по событиям, связанным с транзакциями, необходимо использовать
подход через CLI.
Шпаргалка по CLI
Понимание Web3 Actions
Вкратце, Web3 Actions указывают Tenderly отслеживать конкретное внешнее событие и запускать ваш код при возникновении событий. Вам нужно предоставить спецификацию триггера, которая связана с предопределённым внешним событием. Web3 Action может срабатывать каждые несколько блоков по мере их майнинга (block trigger), при выполнении подходящей транзакции (transaction trigger), через webhook, который он предоставляет (webhook trigger), или через определённые интервалы времени (periodic trigger). Когда событие происходит, Tenderly выполняет ваш пользовательский код (функцию). Здесь мониторинг становится активным. Вы можете отправлять данные во внешние API, писать в базу данных, доставлять push-уведомления или сообщения с богатыми данными через мессенджеры и даже отправлять новую транзакцию в блокчейн — это лишь некоторые примеры. Давайте познакомимся с тремя ключевыми элементами Web3 Actions: функции, события и спецификация триггера.
- Block: запуск функции каждый раз при майнинге блока.
- Periodic: запуск функции через определённые интервалы времени.
- Webhook: вызов Web3 Action через HTTP.
- Transaction: реакция на транзакции контракта, соответствующие определённому фильтру.
Утилиты Web3 Actions
Error reporting: обзор в Tenderly Dashboard, где вы можете найти ошибки и инциденты, возникшие во время выполнения ваших Web3 Actions, и повторно выполнить неудачные. Подробнее о обработке ошибок в Web3 Actions. Secrets: место для хранения конфиденциальных данных, таких как ключи API, которые вызываются из вашего кода. Эта информация хранится в Tenderly Dashboard и может быть прочитана только из вашего кода. Storage: проектное key-value хранилище, которое вы можете использовать для сохранения данных между последовательными запусками. Вы можете читать и писать в Storage через Tenderly Dashboard. Узнайте, как управлять Secrets и использовать Storage Web3 Actions.
Поддержка локальной разработки и тестирования
Для быстрой итерации при написании функций Web3 Action узнайте, как npm-пакет@tenderly/actions-test обеспечивает поддержку тестирования и локальной разработки кода функций action.
Сценарии использования Web3 Actions и разных событий
Ниже приведён краткий обзор каждого типа события и примеры использования. 🧾 Transaction event: отслеживает событие транзакции, соответствующее заданному набору критериев, — успешная или неудачная транзакция, переводы значения, определённое количество газа, использованное транзакцией, сгенерированное событие и многое другое. Узнайте о событиях Transaction. Примеры использования:- Сбор конкретных данных о транзакциях по мере их совершения и сохранение их в Tenderly Storage.
- Отправка данных о транзакции в другие сервисы (Web2 или Web3) через HTTP.
- Отправка уведомлений с богатыми данными о желательных или нежелательных транзакциях через ваши коммуникационные каналы, например Discord.
- Отправка транзакции в цепочку из самого Web3 Action.
- Мониторинг изменений в on-chain активах для построения кастомизированной аналитики и автоматизации.
- Мониторинг изменений смарт-контракта раз в несколько заминированных блоков и запуск автоматизации при выполнении условия.
- Мониторинг цен на газ и автоматизация ваших операций.
- Постройте serverless-бэкенд, обрабатывающий ввод пользователей вашего dapp’а.
- Получите данные, которые ваши другие Web3 Actions собрали о транзакциях или конкретных изменениях смарт-контракта.
- Ваша CI-система может вызывать webhook для очистки или подготовки других ресурсов Tenderly, таких как виртуальные окружения, которые вы используете для тестирования.
- Периодическая отправка уведомлений с пользовательскими данными, собранными из сети и/или агрегированными в Storage Web3 Actions.
- Симуляция предложения DAO и отправка напоминания о голосовании в Discord.
- Симуляция выполнения транзакции с помощью симуляций Tenderly и отправка результата в Slack и/или отправка транзакции в цепочку для реализации автоматизации.
- Периодическая очистка инфраструктуры Tenderly (например, установка Fork на последний блок Mainnet перед продолжением симуляций).