Перейти к основному содержанию
Tenderly Simulator landing page showing the Simulate transaction button and three feature cards: Unlock the blockchain, Inspect and debug errors, Integrate in your dapp
Tenderly Simulator позволяет вам запускать транзакции на живом состоянии mainnet или testnet без их отправки в сеть. Вы можете симулировать от имени любого отправителя, переопределять хранилище контракта, пополнять адреса и манипулировать контекстом блока — всё это прямо из дашборда. Builder одинаков независимо от того, запускаете ли вы одну транзакцию или пять. Одиночная симуляция — это бандл из одного шага. Симуляционный бандл — до пяти шагов с общим состоянием: каждый шаг видит изменения состояния, внесённые предыдущим шагом.

Компоновка

Builder имеет три области: Session strip проходит вверху. Он содержит значения по умолчанию, применяемые к каждому шагу: Network, Block (по умолчанию Pending) и адрес From по умолчанию. Нажмите Configure, чтобы задать значения gas, gas price и value по умолчанию. Bundle rail — левая колонка. Каждая карточка шага показывает номер шага, метку (New call, пока не выбран контракт, затем ContractName · functionName) и значок статуса после запуска. Нажмите на шаг, чтобы сфокусироваться на нём. Перетаскивайте, чтобы изменить порядок. Используйте C, чтобы добавить шаг, J/K, чтобы перемещаться между шагами, и F, чтобы переключить режим фокуса. Focused step view — правая колонка. До запуска отображается редактор шага. После запуска отображается результат этого шага: декодированный вывод, использованный газ, события, изменения состояния и переводы токенов.

Одиночные симуляции

Чтобы запустить одиночную симуляцию, работайте с единственным шагом, который открывается по умолчанию. Decoded mode позволяет выбирать контракт и функцию по имени:
ПолеПримечания
FromПо умолчанию — session From. Переопределяется для каждого шага.
ContractКонтракты проекта появляются первыми. Также сопоставляются публичные контракты и топ-токены по имени, символу или адресу.
FunctionОтфильтровано до не-event, не-constructor методов.
ParametersПо одному типизированному входу на каждый ABI-аргумент.
Raw mode принимает целевой адрес и hex-полезную нагрузку с префиксом 0x напрямую. Это полезно, когда у вас есть calldata из существующей транзакции или ручного кодирования. Нажмите Simulate (или нажмите ⌘↵), чтобы запустить. Правая панель заполняется результатом: сводка вызова функции, использованный газ, декодированный вывод и вкладки Events, State Changes, Fund Flow и Gas Profiler. Вы также можете начать с существующей транзакции: нажмите Re-Simulate на любой странице деталей транзакции, чтобы загрузить её входы в builder. Симуляция по умолчанию запускается на блоке и метке времени оригинала. Чтобы поделиться предзаполненной формой (например, из CI или тест-отчёта), нажмите Copy draft link в заголовке страницы или создайте ссылку самостоятельно. См. Предзаполнение Simulator с помощью draft-ссылки.

Симуляционные бандлы

Бандл запускает до пяти шагов последовательно с общим состоянием. Используйте бандл, когда результат одной транзакции зависит от предыдущей, например approve, разрешающее последующий перевод. Шаги добавляются и переупорядочиваются в bundle rail, каждый с собственным переопределением From и cheatcodes, а весь бандл выполняется одним кликом Simulate. О построении, переупорядочивании, значках результатов и о том, как бандлы отображаются в истории симуляций, см. Simulation Bundles.
New Simulation builder showing session strip with network and block selectors, transaction parameters (From, Contract, Function), and collapsed cheatcode sections for Override gas, Fund address, Increase block, Override timestamp, State overrides, and Optional Access Lists

Cheatcodes

У каждого шага есть набор cheatcodes (дополнений, выполняемых непосредственно перед выполнением шага). Они применяются как к одиночным симуляциям (в качестве элементов управления уровня шага), так и к каждому шагу в бандле.
CheatcodeЧто делает
Override gas & valueЗадать пользовательский лимит газа и значение ETH для этого шага.
Fund addressПополнить любой адрес балансами токенов до выполнения этого шага. Добавляйте несколько записей на шаг.
Increase blockПродвинуть номер блока на фиксированную величину перед этим шагом.
Override timestampЗадать пользовательскую метку времени блока для этого шага.
State overridesПереопределить слоты хранилища контракта, баланс или байт-код перед этим шагом. Добавляйте переопределения для нескольких контрактов.
Optional Access ListsПрикрепить access list EIP-2930 для эффективности газа при вызовах, охватывающих несколько контрактов.
Step editor showing Fund address, Override timestamp, and State overrides cheatcodes expanded
Подробное описание переопределений состояния, включая расчёт слота хранилища, см. в Симуляция с State Overrides.

Смотрите также

  • Simulation Bundles: многошаговые симуляции с общим состоянием, включая руководство по 3-шаговому DAI mint, approve и transferFrom.
  • Simulation Mode: постоянная импресонация кошелька, которая следует за вами по дашборду и накапливает состояние между запусками.
  • Симуляция с State Overrides: как переопределять хранилище, баланс и байт-код.
  • Simulation Parameters: полное описание значений сессии по умолчанию, выбора блока и индекса транзакции, адресов From и полей cheatcodes.
  • Предзаполнение Simulator с помощью draft-ссылки: создайте base64url-ссылку, открывающую Simulator с предзаполненной формой, для обмена из CI или инструментов.
  • Редактирование исходного кода контракта: протестируйте исправление ошибки, запустив симуляцию на изменённом исходном коде.
  • Bundled Simulations (API): запускайте бандлы программно через эндпоинт simulate-bundle.
  • Virtual Environments: когда вам нужно полное постоянное окружение RPC вместо stateless-бандла.