Можно ли увидеть симуляции в Dashboard?
Dashboard показывает симуляции, которые вы выполнили через UI Simulator, Simulation API (с
save или save_if_fails, установленными в true). Симуляции через RPC не сохраняются и не отображаются в Dashboard.Можно ли удалить симуляцию?
Нет, симуляции нельзя удалить. Не стесняйтесь обращаться в поддержку по адресу support@tenderly.co, если у вас будут
дополнительные вопросы.
Стоит ли запуск одной и той же симуляции несколько раз столько же, сколько её однократный запуск?
Нет — каждый вызов API к эндпоинту simulate считается отдельным запросом, даже если вы отправляете идентичные payload’ы для симуляции одной и той же транзакции несколько раз.
Можно ли продвинуть номер блока/временную метку в симуляции?
Да, вы можете продвинуть номер блока или временную метку в симуляции с помощью читкодов Increase block и Override timestamp.
Могу ли я симулировать транзакции от имени пользователя без его приватного ключа? Другими словами, могу ли я симулировать транзакции, исходящие с произвольных адресов?
В симуляциях все адреса разблокированы по умолчанию. Это означает, что вы можете симулировать транзакции с любого адреса
на любой адрес.Узнайте больше о том, как использовать Transaction Simulator во время разработки и тестирования
здесь.
В чём разница между симуляциями через API и RPC?
Симуляции через API выполняются через эндпоинт Simulation API, а симуляции через RPC — через RPC-метод
tenderly_simulateTransaction.Симуляции через API можно сохранять в Dashboard, установив save или save_if_fails в true. Симуляции через RPC в Dashboard не сохраняются.И симуляции через API, и симуляции через RPC предоставляют одинаковые результаты симуляции, включая детали транзакции, трейсы вызовов, логи и изменения балансов.
Да, вы можете использовать переопределения состояния, чтобы изменять переменные хранилища контрактов, балансы аккаунтов и другие данные из сети для симуляции.Какие лимиты применяются к симуляциям через API?
Симуляции через API подчиняются лимитам запросов. Чтобы обсудить лимиты или запросить более высокие квоты для вашей учётной записи, свяжитесь с нашим отделом продаж.
Каков правильный формат кортежа при симуляции транзакции через Dashboard?
Формат кортежей — JSON. Вот пример кортежа:
showLineNumbers
Как проверить эффекты трансфера токенов перед деплоем моего смарт-контракта?
Вы можете симулировать трансферы токенов, запустив одиночную симуляцию через Simulation API. Это позволит вам проверить, как токены перемещаются между адресами, и убедиться, что логика контракта верна, перед его деплоем.Узнать больше →
Как интегрировать симуляции Tenderly в UI для предпросмотра результатов транзакций для пользователей?
Вы можете интегрировать Simulation API или Simulation RPC от Tenderly в UI вашего dApp, вызывая API для симуляции транзакций и отображая пользователям итоговые изменения состояния, движения активов и оценки газа перед подтверждением транзакций.Узнать больше →
Могу ли я симулировать взаимодействия контракта, включающие несколько внешних смарт-контрактов?
Да, пакетные симуляции позволяют тестировать несколько взаимодействий с контрактами в одной симуляции. Состояние обновляется после каждой транзакции, что позволяет проверять сложные взаимодействия контрактов.Вы также можете симулировать пакеты транзакций с помощью
tenderly_simulateBundle RPC.Узнать больше →Как Simulation API обрабатывает откаты в вызовах смарт-контрактов?
Когда транзакция откатывается во время симуляции, API предоставляет подробные сообщения об ошибках, чтобы помочь отладить причину отката. Это можно использовать для исправления логики перед отправкой транзакции.Узнать больше →
Как отобразить пользователям подробные изменения балансов после симулированной транзакции?
Simulation API от Tenderly возвращает изменения балансов активов как часть результата симуляции. Вы можете использовать эти данные, чтобы показать пользователям, как их балансы токенов изменятся после транзакции.Узнать больше →
Могу ли я оценить газ, необходимый для функций контракта, с помощью Simulation API?
Да, функция оценки газа в Tenderly позволяет симулировать функции контракта и получать точную оценку газа перед выполнением транзакции. Это помогает убедиться, что транзакция выполнится успешно, и минимизировать затраты на газ.Помимо Simulation API, можно использовать
tenderly_estimateGas и tenderly_estimateGasBundle.Узнать больше →В чём разница между gas и gasUsed?
Gas — это максимальный лимит газа, выделенный на транзакцию («бюджет»), а gasUsed показывает фактический объём газа, израсходованный во время выполнения.
Как пакетные симуляции помогают тестировать сложные рабочие процессы с несколькими вызовами контрактов?
Пакетные симуляции позволяют симулировать несколько транзакций последовательно, сохраняя состояние от одной транзакции к другой. Это полезно для тестирования сложных рабочих процессов, таких как взаимодействия с несколькими контрактами или пользовательские потоки dApp.Узнать больше →
Как обрабатывать сбои и ошибки симуляции в UI dApp?
Когда симуляция завершается сбоем, Tenderly API предоставляет подробные сообщения об ошибках. Вы можете использовать эти сообщения, чтобы отображать пользователям осмысленную обратную связь об ошибках в UI dApp, помогая им скорректировать транзакцию перед повторной попыткой.Узнать больше →
Как программно запускать симуляции из бэкенда для проверки успеха транзакции перед выполнением?
Вы можете программно запускать симуляции, выполняя POST-запрос к эндпоинту
/simulate REST API или tenderly_simulateTransaction RPC, передавая детали транзакции. Это помогает проверить успех транзакции в контролируемом окружении перед её отправкой в сеть.Узнать больше →Можно ли изменять переменные хранилища во время симуляции для тестирования различных сценариев?
Да, вы можете использовать переопределения состояния, чтобы изменять переменные хранилища контрактов, балансы аккаунтов и другие данные из сети для симуляции.Узнать больше →
Могу ли я создать UI, показывающий оценки газа для пользовательских транзакций с помощью Tenderly API?
Да, вы можете интегрировать функцию оценки газа Tenderly API в свой UI, чтобы показывать пользователям оценочную стоимость газа для их транзакций перед подтверждением.Альтернативно можно использовать
tenderly_estimateGas и tenderly_estimateGasBundle.Узнать больше →Как симулировать вызовы моего контракта с разных кошельков для тестирования многопользовательских сценариев?
Вы можете симулировать транзакции с нескольких кошельков, запуская индивидуальные симуляции с разными адресами
from. Это позволяет тестировать, как ваш контракт ведёт себя в многопользовательских сценариях.Узнать больше →Как симулировать некорректные или выходящие за пределы допустимого входные данные для проверки устойчивости контракта в различных граничных случаях?
Вы можете симулировать вызовы функций с некорректными или выходящими за пределы допустимого входными данными, задавая пользовательские входные значения в ваших запросах на симуляцию. Это позволяет тестировать, как ваш контракт обрабатывает граничные случаи, и предотвращать потенциальные уязвимости.Узнать больше →
Могу ли я симулировать атаки flash loan или уязвимости взаимодействия с несколькими контрактами?
Да, вы можете симулировать сложные транзакции, такие как атаки flash loan или взаимодействия между несколькими контрактами, объединяя транзакции в одну симуляцию. Это полезно для тестирования уязвимостей в DeFi-протоколах.Узнать больше →
Как симулировать межконтрактные взаимодействия и обеспечить корректность потока транзакций?
Объединив транзакции в одну симуляцию, вы можете тестировать межконтрактные взаимодействия и проверять, что поток транзакций корректно ведёт себя в нескольких контрактах. Это критически важно для dApp, которые полагаются на сложные взаимодействия контрактов.Узнать больше →
Как объединить несколько пользовательских действий в одну симуляцию для предоставления обратной связи по сложным потокам?
Вы можете объединить несколько пользовательских действий, симулируя их как часть одной пакетной симуляции. Это позволяет предоставлять обратную связь по сложным потокам транзакций, которые включают несколько взаимодействий в вашем dApp.Узнать больше →