В этом руководстве предполагается, что у вас есть аккаунт Tenderly и базовое знакомство с Web3 Actions и событиями блокчейна.
Модульный мониторинг с Web3 Actions
Предварительные требования
Перед началом убедитесь, что у вас есть:- Node.js (в настоящее время в качестве последней версии поддерживается v20)
- Установленный Tenderly CLI
- Конечная точка webhook для получения данных
- Базовое понимание TypeScript
Настройка системы
1
Создание Alert
2
3

4
5

6
7

8
9
Установка зависимостей
10
11
cd actions && npm install
12
Настройка переменных окружения
13
Установите эти Secrets в вашем Tenderly Web3 Action:
14
WEBHOOK_URL = <Your webhook URL>
BEARER = <Your Tenderly API bearer token>
ACCOUNT_SLUG = <Your Tenderly account slug>
PROJECT_SLUG = <Your project slug>
EVENT_NAME = <Name of the event to track>
15
Настройка tenderly.yaml
16
Ваш
tenderly.yaml должен выглядеть так:17
account_id: "<YOUR_ACCOUNT_ID>"
actions:
<YOUR_ACCOUNT_ID>/<PROJECT_SLUG>:
runtime: v2
sources: actions
specs:
example:
description: "Event tracking system"
function: example:modularFn
trigger:
type: alert
alert: { <YOUR_ALERT_ID> }
execution_type: parallel
project_slug: "<PROJECT_SLUG>"
18
Обязательно замените плейсхолдеры следующими значениями:
19
YOUR_ACCOUNT_ID: ваш ID аккаунта, который можно получить, следуя этому руководству.PROJECT_SLUG: ваш slug проекта, который можно получить, следуя этому руководству.YOUR_ALERT_ID: ID оповещения, которое вы создали на предыдущем шаге. ID можно найти в панели.20

21
Разверните ваш Web3 Action
22
Запустите следующую команду для развёртывания вашего Web3 Action:
23
tenderly actions deploy
Основные компоненты
Обработка транзакции
Система начинает с обработки информации о транзакции:showLineNumbers
- Захватывает хеш транзакции и сеть
- Получает трейсы транзакции через Tenderly API
- Обрабатывает информацию о блоке
Получение информации о контракте
Информация о контракте (имена и ABI) получается с помощью Contracts API.showLineNumbers
Обработка событий
Обработка событий выполняется с помощью специализированных функций:showLineNumbers
- Фильтрует события по имени
- Извлекает параметры события
- Обрабатывает адреса событий
Взаимодействие с webhook
Система отправляет эти структурированные данные на ваш webhook с помощью Axios:showLineNumbers
Устранение неполадок
Распространённые проблемы и решения:-
Пропущенные события
- Убедитесь, что EVENT_NAME точно соответствует событиям контракта
- Проверьте конфигурацию оповещения в панели Tenderly
- Просмотрите логи транзакции на предмет генерации события
-
Ошибки API
- Проверьте права токена BEARER
- Проверьте доступность endpoint API
- Проверьте настройки сети
-
Проблемы с webhook
- Убедитесь в доступности WEBHOOK_URL
- Проверьте, что формат полезной нагрузки соответствует ожиданиям
- Отслеживайте логи endpoint’а webhook