Skip to main content
В этом руководстве вы узнаете, как развернуть Web3 Actions через Tenderly CLI, который отслеживает майнинг блоков и просто выводит номер блока.

Предварительные требования

У вас должны быть установлены и правильно настроены npm и Tenderly CLI на локальной машине. Инструкции по установке см. в Шпаргалке по CLI Web3 Actions.

Инициализация проекта Web3 Actions

Перейдите в папку в вашей системе, где вы хотите разместить код Web3 Action, и выполните следующую команду, чтобы инициализировать новый проект Web3 Actions:
example
По умолчанию проект будет настроен на использование TypeScript. Если вы предпочитаете обычный JavaScript, добавьте флаг языка и укажите javascript:
example
Когда будет предложено, выберите существующий проект Tenderly из вашего аккаунта или создайте новый.
Creating a new Tenderly project

Создание нового проекта Tenderly

Далее введите имя корневого каталога, где будет храниться ваш код. Если вы хотите оставить по умолчанию actions, нажмите Enter или введите пользовательское имя каталога.
Adding a directory name

Добавление имени каталога

Структура папок вашего проекта должна выглядеть так:
example
Файл tenderly-schema.json содержит JSON Schema для раздела actions файла tenderly.yaml и указан в его ключе $schema; редакторы с поддержкой YAML-схем используют его для автодополнения и валидации.

Сборка и развёртывание Web3 Action

Вот шаги, которые нам нужно предпринять для сборки и развёртывания Web3 Action:
  • Создать функцию action
  • Настроить блочный триггер для запуска функции
  • Развернуть код в Tenderly с помощью CLI

Создание функции action

Скопируйте следующий код в файл example.ts:
example.ts
Это определяет и экспортирует функцию action. На следующем шаге мы настроим её так, чтобы она запускалась после каждых 10 заминированных блоков. Примечания: Обратите внимание, что функция асинхронна и принимает два аргумента: объект Context и объект Event.
  • Объект Context обеспечивает доступ к Storage и Secrets. Подробнее об этом можно прочитать в справочнике Context.
  • Аргумент event является объектом, содержащим информацию о внешнем (on-chain) событии, вызвавшем action. Поскольку мы хотим запускать этот action по блочному событию, аргумент event будет иметь тип BlockEvent. Объект BlockEvent содержит информацию о заминированном блоке, такую как номер блока, хеш блока и временная метка блока.

Настройка триггера в tenderly.yaml для нового action

Шаг 1: замените содержимое файла tenderly.yaml на следующее (сохраните строку $schema, сгенерированную CLI):
example.yaml
Шаг 2: замените username и project-slug на ваше имя пользователя и slug вашего проекта. Ознакомьтесь с этим руководством, чтобы узнать, как найти имя организации, имя пользователя и slug проекта. Примечания: Файл tenderly.yaml содержит спецификации триггеров для каждого action в проекте и связывает триггер с функцией action. Здесь мы создаём action под именем block-number-printer.
  • Свойство function ссылается на функцию blockHelloWorldFn из файла example.ts.
  • Этот action будет срабатывать на каждом 10-м заминированном блоке в сети 1, согласно свойству trigger.
Подробнее об Внешних событиях и типах триггеров.

Сборка и развёртывание actions

Вернитесь в терминал и выполните следующую команду, чтобы развернуть все определённые вами Web3 Actions. После успешного развёртывания actions появятся в UI Tenderly.
example
Обновление Web3 Actions без простоя\ Чтобы обновить Web3 Action, просто отредактируйте исходный код и/или tenderly.yaml и выполните tenderly actions deploy.

Перед тем как продолжить

Помните:
  • Команду deploy нужно запускать из папки, содержащей файл tenderly.yaml.
  • Если вы инициализируете actions для нескольких проектов Tenderly в одном и том же каталоге, при запуске deploy вас попросят выбрать проект. Будут развёрнуты только actions, принадлежащие выбранному проекту.
  • Все actions, принадлежащие одному проекту, развёртываются одновременно.
  • Любой файл, на который ссылается ваш JavaScript/TypeScript, должен находиться в actions root. Не ссылайтесь на файлы вне этой папки.

Ресурсы