Перейти к основному содержанию
Узнайте, как добавить опцию предпросмотра транзакции в ваш dapp или кошелёк на основе симуляций транзакций Tenderly. Мы даём два практических примера, показывающих, как интегрировать симуляции в реальные кошельки:

Что такое предпросмотр транзакции?

Предпросмотр транзакции предлагает безопасное решение для тестирования dapp’ов и кошельков, позволяя пользователям предварительно просматривать результаты транзакций до их выполнения в живой сети. Это решение использует Simulation API от Tenderly для сухого прогона транзакций в виртуальном окружении, имитирующем актуальное состояние блокчейна. Это гарантирует, что результаты симуляции реалистичны и максимально надёжны. Вот пример проекта, демонстрирующий, как опция предпросмотра транзакции работает в Rabby Wallet.

Зачем пользователям кошельков нужны симуляции

Предоставление пользователям возможности предварительного просмотра транзакций до расходования реальных активов полезно по нескольким причинам. Во-первых, это помогает пользователям, особенно новичкам в трейдинге, избегать ошибок, позволяя попрактиковаться перед совершением реальных транзакций. Это упрощает начало использования вашего кошелька и укрепляет доверие. Во-вторых, это помогает пользователям понять, сколько с них будет списано в виде комиссий, что может сэкономить им деньги. Но самое главное, это может предупредить пользователей о потенциальных угрозах безопасности до подписания транзакций. Simulation API от Tenderly помогает достичь этих целей, позволяя вам:
  • Отображать изменения активов и балансов, включая взаимозаменяемые, невзаимозаменяемые и нативные токены, преобразованные в доллары на основе цен от CoinGecko.
  • Предоставлять точные оценки расхода газа для выполнения транзакций и помогать пользователям экономить деньги.
  • Сообщать пользователям, если их транзакция завершится сбоем, и помогать им сэкономить на газе.
  • Помогать пользователям понимать, почему их транзакции не выполняются, с помощью ошибок в понятном формате.
  • Предоставлять пользователям список доступа адресов и слотов хранилища, к которым будет обращаться транзакция.
  • Получать генерируемые события, имена логов и связанные параметры в декодированном виде.
  • Проверять рабочие процессы транзакций на DeFi-платформах с помощью пакетных симуляций при выполнении и одобрении свопов, включающих несколько промежуточных шагов.

Интеграция симуляций в кошелёк

Мы создали два проекта с открытым исходным кодом, чтобы показать процесс интеграции Simulation API от Tenderly в ваш dapp или кошелёк. Эти примеры демонстрируют, как добавить функцию предпросмотра транзакции в MetaMask Snap и Rabby Wallet. Вы можете скачать исходный код обоих проектов на GitHub. Также обязательно ознакомьтесь со справочником Simulation API для получения руководства по выполнению запросов к API и получению результатов.

MetaMask Snap с предпросмотром транзакции

Rabby Wallet с предпросмотром транзакции

MetaMask Snap с предпросмотром транзакции

Проект MetaMask Snap показывает, как подключаться к Simulation API, отправлять данные транзакции, получать результаты симуляции и отображать их пользователю в UI MetaMask. Сюда входят изменения активов в долларах, изменения баланса нативных активов, выходное значение, изменения хранилища, логи событий и трейсы вызовов.

Пример трансфера ERC20

Вот пример успешного трансфера токена ERC20, где 1 USDC отправляется на demo.eth. На первом изображении показаны произошедшие изменения активов, за которыми следует разбивка деталей транзакции.

Пример трансфера NFT

Ниже приведён пример трансфера токена ERC721 (NFT). Этот пример включает передачу 1 Crypto Bull на другой адрес. На первом скриншоте показаны изменения активов, а на изображении справа — детали транзакции. Хотите попробовать эту интеграцию самостоятельно? Следуйте этому подробному руководству, где мы шаг за шагом показываем, как интегрировать Simulation API от Tenderly, обрабатывать данные транзакции, получать результаты симуляции через API и отображать их через UI MetaMask Snap.

Руководство: как добавить предпросмотр транзакции в MetaMask Snap

Rabby Wallet с предпросмотром транзакции

Второй проект показывает, как интегрировать наш Simulation API в Rabby Wallet и дать пользователям возможность предварительно просматривать результаты транзакций в UI. Когда пользователь уверен, что транзакция будет вести себя как ожидалось, он может подписать её в UI.

Пример свопа токенов ERC20 на Uniswap

На изображении ниже показан успешный своп ETH на 1INCH на Uniswap, отображающий как изменения активов, так и подробную разбивку транзакции для пользователя в UI Rabby Wallet.

Пример покупки NFT на Joepegs

Вот пример успешной покупки NFT с изменениями активов и сводкой результатов симуляции. Хотите попробовать интегрировать симуляции в Rabby Wallet? Следуйте этому пошаговому руководству.

Руководство: как добавить предпросмотр транзакции в Rabby Wallet