Skip to main content
Tenderly поддерживает симуляции одиночных транзакций через RPC и API. Симуляции выполняются на актуальном состоянии выбранной сети. Dapp’ы и кошельки могут использовать одиночные симуляции, чтобы дать пользователям возможность выполнить сухой прогон транзакций перед тем, как рисковать реальными активами. Это даёт им предпросмотр выполнения транзакции вместе с подробными изменениями балансов и активов. Предпросмотр транзакций может помочь пользователям укрепить доверие к dapp’ам, одобрять только успешные транзакции и предотвращать дорогостоящие сбои.

Симуляция через RPC

Node RPC позволяет читать данные из блокчейна и отправлять транзакции. Но вы также можете симулировать транзакции в Node. Преимущество симуляции через RPC заключается в том, что вы можете выполнять все эти операции через один RPC URL.
Симуляции через RPC или API доступны только в поддерживаемых сетях. Ознакомьтесь со списком поддерживаемых сетей.
Получите RPC URL и ключ доступа из Dashboard. Перейдите в Node > Copy HTTPS URL нужной вам сети.
example
Чтобы симулировать одиночную транзакцию через RPC, вызовите метод tenderly_simulateTransaction. См. справочник RPC. Пример
request

Симуляция через API

Используйте эндпоинт simulate API, чтобы симулировать одну транзакцию с разными параметрами.
Для использования симуляций в виртуальных окружениях мы рекомендуем Simulate RPC и Bundle Simulate RPC. Иначе можно использовать Simulation API виртуальных окружений.
URL должен содержать ваш account slug и project slug. Следуйте этому краткому руководству, чтобы найти slug’и.
Simulation API endpoint on public network
Simulation API endpoint on a Virtual Environment
Вам также необходимо получить токен доступа API, который отправляется в заголовках. Узнайте, как сгенерировать ключ доступа API здесь.

Тело запроса

Отправьте POST-запрос на эндпоинт API. Полные сведения о теле запроса см. в Справочнике API. Симулируемое тело запроса похоже на JSON-RPC вызов eth_call. Следующие поля обязательны:
  • network_id (string): ID сети, в которой вы хотите запустить симуляцию.
  • block_number (number): «latest» или номер блока для симуляции.
  • to (string): адрес получателя транзакции.
  • from (string): адрес, инициирующий транзакцию.
  • input (string): закодированные данные вызова метода контракта.
  • gas (number): количество газа, предоставленного для симуляции.
Вы можете указать любой адрес отправителя в поле from. Поскольку Tenderly симулирует неподписанные транзакции, вам не нужно владеть приватным ключом аккаунта, чтобы симулировать транзакции от имени конкретного отправителя.
Вы также можете указать simulation_type, который может принимать значения full, quick или ABI. Это поле необязательно, поскольку по умолчанию установлено full. Узнайте больше о режимах симуляции. При выполнении запросов к API добавьте заголовок X-Access-Key, значение которого — токен доступа. Пример Обязательно храните ключ доступа безопасно в файле .env.
request.ts

Изучите сценарии использования

Что дальше

Пакетные симуляции

Симуляция через SDK