Перейти к основному содержанию
Симуляционный бандл запускает до пяти транзакций последовательно с общим состоянием: каждый шаг видит изменения состояния, внесённые предыдущим шагом. Используйте бандл всякий раз, когда одна транзакция зависит от другой, например approve, разрешающее последующий transferFrom, или депозит, который тратит последующее снятие. Бандлы используют тот же builder, что и одиночные симуляции. Одиночная симуляция — это просто бандл из одного шага, поэтому при добавлении дополнительных шагов в редакторе ничего не меняется.
Simulator UI showing three steps in the bundle rail and step results on the right

Построение бандла

Начните с Simulator → New Simulation и настройте первый шаг как обычно. Затем расширьте бандл из rail’а слева:
  • Добавьте шаг кнопкой + под карточками шагов.
  • Импортируйте транзакцию кнопкой импорта: вставьте существующий хеш транзакции или сырую полезную нагрузку, и её входы загрузятся как новый шаг.
  • Измените порядок шагов, перетаскивая их карточки. Шаги выполняются в порядке rail’а.
Каждый шаг независим во всём, кроме состояния: у него собственный переключатель Decoded/Raw, собственное переопределение From и собственный набор cheatcodes (переопределения газа и value, пополнение адресов, манипулирование блоком и меткой времени, переопределения состояния, access lists). Cheatcodes выполняются непосредственно перед своим шагом. Бандл — это единица выполнения: нажатие Simulate запускает все шаги сразу, по порядку, в сети и блоке, настроенных в session strip.

Чтение результатов

После запуска каждая карточка шага в rail’е показывает значок результата:
ЗначокЗначение
Зелёная галочкаШаг выполнен успешно.
Красный ✗Шаг откатился или завершился до EVM (неправильный calldata, неизвестный контракт).
Нажмите на любую карточку шага, чтобы сфокусироваться на его индивидуальном результате в правой панели: декодированный вывод, использованный газ и вкладки Events, State, Fund Flow и Gas Profiler для этого шага. Состояние течёт только вперёд. Баланс, минтованный в шаге 1, виден шагам с 2 по 5, но откат в более позднем шаге не отменяет результаты предыдущих шагов в отображаемом выводе; вид каждого шага отражает состояние в его позиции в последовательности.

Бандлы в истории симуляций

Выполненные бандлы появляются в списке Simulator как единая строка Bundle (N txs), показывающая общую сеть, блок и количество вызовов. Разверните строку, чтобы увидеть каждый шаг как отдельную запись с индивидуальным статусом и функцией.
Simulator list with an expanded bundle row showing individual mint, approve, and transferFrom steps, and collapsed Bundle rows with call counts

Ограничения

  • Пять шагов на бандл.
  • Cheatcodes применяются к шагу. Поверхности cheatcodes уровня бандла нет.
  • Бандлы stateless между запусками: повторный запуск снова начинается с настроенного блока. Для постоянного окружения, которое накапливает состояние между множеством транзакций, используйте Virtual Environments.

Проработанный пример

Simulate a Token Mint, Approve, and TransferFrom Bundle создаёт полный 3-шаговый бандл DAI, включая переопределение состояния, позволяющее mint успешно выполниться, и пошаговые результаты. Чтобы запускать бандлы программно, см. Bundled Simulations в Simulation API.