Что такое предпросмотр транзакции?
Предпросмотр транзакции предлагает безопасное решение для тестирования 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. На первом изображении показаны произошедшие изменения активов, за которыми следует разбивка деталей транзакции..webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=93e6e1d3ee95e1199d47e80f36432c46)
Пример трансфера NFT
Ниже приведён пример трансфера токена ERC721 (NFT). Этот пример включает передачу 1 Crypto Bull на другой адрес. На первом скриншоте показаны изменения активов, а на изображении справа — детали транзакции..webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=667bfb482dc0111023f85e945fe23245)
Руководство: как добавить предпросмотр транзакции в MetaMask Snap
Rabby Wallet с предпросмотром транзакции
Второй проект показывает, как интегрировать наш Simulation API в Rabby Wallet и дать пользователям возможность предварительно просматривать результаты транзакций в UI. Когда пользователь уверен, что транзакция будет вести себя как ожидалось, он может подписать её в UI.Пример свопа токенов ERC20 на Uniswap
На изображении ниже показан успешный своп ETH на 1INCH на Uniswap, отображающий как изменения активов, так и подробную разбивку транзакции для пользователя в UI Rabby Wallet.
Пример покупки NFT на Joepegs
Вот пример успешной покупки NFT с изменениями активов и сводкой результатов симуляции.