Перейти к основному содержанию
Draft-ссылка открывает Tenderly Simulator с предзаполненной формой. Ничего не запускается, пока получатель не нажмёт Simulate, поэтому ссылкой безопасно делиться в тест-отчётах, pull request’ах или оповещениях. Draft предзаполняет одиночную симуляцию, а не бандл. Он заполняет одну форму транзакции (один row); он не восстанавливает многошаговый бандл.

Формат URL

Ссылка — это маршрут новой симуляции Simulator с query-параметром draft: https://dashboard.tenderly.co/<org>/<project>/simulator/new?draft=<value> <value> — это JSON-полезная нагрузка draft’а, закодированная в UTF-8, а затем в base64url: стандартный base64 с +, заменённым на -, /, заменённым на _, и удалёнными символами заполнения =.
Для разового обмена вам не нужен скрипт. Заполните форму в Simulator и нажмите Copy draft link в заголовке страницы (отображается, когда в бандле одна симуляция). Остальная часть этой страницы предназначена для программной генерации ссылок из CI, тест-отчётов или других инструментов.

Быстрый старт

Минимального draft’а с сырым calldata достаточно для большинства CI-скриптов. Адрес to идёт в contractAddress, а calldata — в rawFunctionInput:
Закодируйте эту полезную нагрузку и добавьте её к URL:

Полезная нагрузка верхнего уровня

Поля row

Только contractAddress обязательно. Опускайте всё, что вам не нужно. Опущенные поля сохраняют значения по умолчанию формы, а неизвестные дополнительные поля игнорируются.

Контракт и функция

Параметры транзакции

Выбор блока

О том, как выбор блока и индекс транзакции работают в UI, см. в Simulation Parameters.

Параметры L2

Эти поля применяются только к сетям OP-stack и Boba.

Переопределения

Два типа переопределений доступны только в UI и не могут быть заданы в draft’е. Настройте их в приложении после открытия ссылки: переопределения ERC-20 fund-address и пользовательские исходники Solidity (функция «Edit source» в приложении).

Валидация

Гидратация draft’а — всё или ничего. Отсутствующее обязательное поле, неверный v или любое поле с неправильным типом отклоняет всю полезную нагрузку: получатель видит «This draft link is invalid or corrupted» и пустую форму. Частичной гидратации нет, так что сломанный скрипт даёт видимый сбой вместо того, чтобы работать наполовину.

Ограничения и советы

  • Держите итоговый URL короче 2000 символов. Приложение отказывается копировать более длинные ссылки, а браузеры и прокси могут их обрезать. Decoded-вызовы с большим количеством входов достигают ~1900.
  • Обнаружение формы полезной нагрузки: заполните форму в UI Simulator, нажмите Copy draft link и декодируйте значение draft из base64url. Результат — заведомо корректная полезная нагрузка для вашего конкретного случая, и это лучший способ правильно получить продвинутые формы (stateOverrides, accessList).
  • ABI контракта загружается при открытии ссылки. Если он не может быть разрешён (неверифицированный контракт), decoded-режим draft’а откроется с заполненным адресом, но без выбранной функции. Raw-режим этому не подвержен.
О полях формы, которые заполняет draft, см. в Simulation Parameters. Чтобы сохранить изменённое состояние как постоянное окружение вместо одноразовой симуляции, используйте Virtual Environments.