Обзор
Узнайте, как использовать Simulation API в вашем dapp’е, чтобы позволить пользователям предварительно просматривать результаты транзакций перед их отправкой в сеть. Так вы сможете помочь им избежать финансовых потерь из-за неудачных или некорректных транзакций и повысить их уверенность при использовании вашего dapp’а. Чтобы интегрировать Simulation API от Tenderly в ваш dapp для обнаружения потенциальных сбоев транзакции ещё до её отправки в сеть, вам нужно:- Сформировать сырые транзакции из библиотеки ethers.js.
- Симулировать транзакции перед их отправкой.
- (опционально) Обернуть каждое взаимодействие с блокчейном в симуляцию Tenderly.
Формирование сырых транзакций из ethers.js
Первый шаг — создать объект транзакции, который будет отправлен в наш эндпоинт симуляции. Мы сгенерируем его непосредственно из библиотекиethers.js. В приведённом ниже примере показано, как это можно сделать для функции transfer() поверх контракта DAI:
example.tsx
Симуляция транзакций перед отправкой
Теперь, когда мы извлекли неподписанную сырую транзакцию, давайте симулируем её перед отправкой в сеть (в Ethereum Mainnet):example.tsx
Оборачивание каждого взаимодействия с блокчейном в симуляцию Tenderly (опционально)
Чтобы гарантировать, что каждое взаимодействие с блокчейном сначала симулируется, напишите простую обёртку вокруг объекта signer изethers.js, которая всегда будет симулировать транзакции.
Кроме того, в дальнейшем вы можете ввести типизированные ошибки, с которыми может взаимодействовать ваша логика:
example.tsx
Вот репозиторий на
GitHub, где
вы можете найти пример этой реализации.