TenderlyCheatcodes.

- evm_increaseTime
- evm_setNextBlockTimestamp
- tenderly_setNextBlockTimestamp
- evm_increaseBlocks
- evm_mine
- tenderly_setBalance
- tenderly_addBalance
- tenderly_setErc20Balance
- tenderly_addErc20Balance
- tenderly_setMaxErc20Balance
evm_increaseTime
Продвигает время блокчейна на указанную величину и создаёт пустой блок с новой временной меткой.
Последующие вызовы eth_call и eth_sendRawTransaction будут получать разные значения block.timestamp в зависимости от того, на какой blockNumber они нацелены:
- Для блока
pending: возвращаетсяcurrent_time + time_increase. Это ожидаемая временная метка следующего майнящегося блока. - Для блока
latest: возвращаетсяtime_of_evm_increaseTimestamp_call + time_increase. Это временная метка пустого блока, созданного при вызовеevm_increaseTimestamp.
QUANTITY— hex-кодированныйtime_increaseв секундах, на которое нужно перепрыгнуть вперёд
DATA— 32-байтный хеш вновь сгенерированного блока
example.json
example.json
evm_setNextBlockTimestamp
Смещает текущее время на указанную временную метку и создаёт пустой блок с заданной временной меткой.
Последующие вызовы eth_call и eth_sendRawTransaction будут возвращать разные значения block.timestamp в зависимости от того, на какой blockNumber они нацелены:
- Для блока
pending: возвращаетсяspecified_timestamp + time_since_evmSetNextBlockTimestamp_call. Это установленная временная метка плюс любое время, прошедшее с момента вызова метода. - Для блока
latest: возвращаетсяspecified_timestamp. Это временная метка пустого блока, созданного при вызовеevm_setNextBlockTimestamp.
QUANTITY— hex-кодированныйspecified_timestamp, представляющий epoch-временную метку (в секундах)
QUANTITY— целое число (epoch-временная метка), устанавливаемое для следующего блока
example.json
example.json
tenderly_setNextBlockTimestamp
Смещает текущее время на заданную временную метку, не создавая пустой блок.
Последующие вызовы eth_call и eth_sendRawTransaction будут возвращать разные значения block.timestamp в зависимости от того, на какой blockNumber они нацелены:
- Для блока
pending: возвращаетсяspecified_timestamp + time_since_tenderly_setNextBlockTimestamp. Это установленная временная метка плюс любое время, прошедшее с момента вызова метода. - Для блока
latest: возвращается временная метка последнего созданного блока.
QUANTITY— hex-кодированныйspecified_timestamp, представляющий epoch-временную метку (в секундах)
QUANTITY— целое число (epoch-временная метка), устанавливаемое для следующего блока
example.json
example.json
evm_increaseBlocks
Пропускает заданное количество блоков и генерирует новый блок с новым номером блока.
Параметры
QUANTITY— hex-кодированное количество блоков для пропуска
DATA— 32-байтный хеш вновь сгенерированного блока
example.json
example.json
eth_sendTransaction
Отправляет неподписанную транзакцию.
Параметры
- Transaction — объект транзакции
from:DATA, 20 байт — адрес, с которого отправляется транзакция.to:DATA, 20 байт — (необязательно, опускается при создании нового контракта) адрес, на который направляется транзакция.gas:QUANTITY— (необязательно) целое число газа, предоставленного для исполнения транзакции. Неиспользованный газ будет возвращён.gasPrice:QUANTITY— (необязательно) целое числоgasPrice, используемое за каждую единицу оплаченного газа.value:QUANTITY— (необязательно) целое число значения, отправляемого с этой транзакцией.data:DATA— (необязательно) скомпилированный код контракта ИЛИ хеш вызываемой сигнатуры метода и закодированные параметры.
example.json
STRING, 32-байтное hex-значение
eth_createAccessList
Возвращает access-tuples, которые будут затронуты транзакцией.
Параметры
SendTransactionObject— объект транзакции (такой же, как передаваемый в eth_sendTransaction)BlockNumber— параметр номера блока
AccessList— массив access-tuples, затронутых транзакцией
example.json
example.json
evm_getLatest
Получает идентификатор последней транзакции в сетевой Virtual Environment.
Параметры
Возвращает
DATA— UUID последней транзакции Virtual Environment
example.json
example.json
tenderly_setBalance
Изменяет баланс аккаунта или аккаунтов.
Параметры
ADDRESS/ADDRESSES— строка или массив адресов аккаунтовAMOUNT— hex-кодированное число суммы в wei
DATA— 32-байтный хеш вновь созданной транзакции
example.json
example.json
example.json
tenderly_addBalance
Добавляет баланс к указанному аккаунту или аккаунтам.
Параметры
ADDRESS/ADDRESSES— строка или массив адресов аккаунтовAMOUNT— hex-кодированное число суммы в wei
DATA— 32-байтный хеш вновь созданной транзакции
example.json
example.json
example.json
tenderly_setErc20Balance
Устанавливает баланс токенов для кошелька на указанном ERC-20 контракте.
tenderly_setErc20Balance записывает новый баланс напрямую в хранилище контракта токена и не эмитирует событие ERC-20 Transfer. Если ваш нижестоящий инструментарий (индексеры, subgraphs, учёт) полагается на события Transfer для отслеживания балансов, используйте вместо этого tenderly_addErc20Balance — он эмитирует синтетический лог Transfer для каждого пополненного аккаунта.TOKEN_ADDRESS— адрес контракта ERC-20WALLET— адрес кошелька, который будет пополненVALUE— 32-байтный хеш, представляющий значение токенов в wei
DATA — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)
Пример запроса
example.json
example.json
tenderly_addErc20Balance
Добавляет указанное количество токенов одному или нескольким кошелькам на указанном ERC-20 контракте. В отличие от tenderly_setErc20Balance, этот метод эмитирует синтетическое событие Transfer для каждого пополненного аккаунта, так что индексеры, subgraphs и любые инструменты, сверяющие балансы по логам, остаются в синхронизации с итоговым состоянием.
Эмитируемый лог имеет стандартный ERC-20 топик Transfer(address,address,uint256), использует отправителя транзакции как адрес from и пополняемый кошелёк как адрес to, а также несёт добавленную сумму amount в поле данных.
Параметры
TOKEN_ADDRESS— адрес контракта ERC-20WALLETS— массив адресов кошельков, которые получат токеныVALUE— 32-байтный хеш, представляющий сумму токенов в wei, добавляемую каждому кошельку
DATA — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)
Пример запроса
example.json
example.json
tenderly_setMaxErc20Balance
Пополняет адрес кошелька максимально возможным балансом токенов (в основном предназначено для токенов без простого mapping баланса) на указанном ERC-20 контракте.
Как и
tenderly_setErc20Balance, этот метод пишет напрямую в хранилище и не эмитирует событие ERC-20 Transfer. Используйте tenderly_addErc20Balance, если вам нужно, чтобы индексеры или инструменты на основе логов подхватили изменение баланса.YIELD_TOKEN_ADDRESS— адрес контракта ERC-20WALLET— адрес кошелька, который будет пополнен
DATA — 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)
Пример запроса
example.json
example.json
tenderly_setStorageAt
Устанавливает хранилище указанного адреса по указанному слоту.
Параметры
ADDRESS— адрес, у которого будет переопределено хранилищеSLOT— 32-байтный хеш, представляющий ключ слота хранилищаVALUE— 32-байтный хеш, представляющий значение по ключуslot
DATA— 32-байтный хеш вновь созданной транзакции (переопределение хранилища фиксируется через транзакцию)
example.json
example.json
evm_snapshot
Возвращает ID снимка, позволяющий откатить Virtual Environment к предыдущей точке (совпадает с hash блока из evm_getLatest).
Параметры
Возвращает
DATA— хеш последнего блока, произведённого Virtual Environment (ID снимка)
example.json
example.json
evm_revert
Откатывает состояние Virtual Environment к предыдущему снимку.
Одиночный evm_revert может откатить не более 2000 блоков. Если снимок находится дальше в прошлом, вызов завершается ошибкой revert operation is limited to maximum 2000 blocks. Чтобы вернуться в точку более чем на 2000 блоков назад, вместо этого клонируйте Virtual Environment на целевом историческом блоке.
Параметры
DATA— ID снимка
BOOLEAN— флаг успешности операции
example.json
example.json
Управление синхронизацией Network Mirror Mode
Следующие методы управляют Network Mirror Mode: они запускают, останавливают, пошагово продвигают, перематывают и инспектируют непрерывную синхронизацию между Virtual Environment и её родительской сетью.Пока синхронизация Network Mirror Mode активна, другие чит-коды Admin RPC (например,
tenderly_setBalance, tenderly_setStorageAt, tenderly_sendBlock) отключены. Сначала приостановите синхронизацию с помощью tenderly_stopSync, если вам нужно, чтобы они сработали немедленно.tenderly_startSync
Запускает непрерывную синхронизацию между Virtual Environment и её родительской сетью. Новые блоки родительской сети поглощаются по мере их появления, а любые транзакции из mempool Virtual Environment добавляются (в порядке FIFO) в начало следующего синхронизированного блока.
Параметры
Нет.
Возвращает
BOOLEAN—true, если синхронизация была запущена
example.json
example.json
tenderly_stopSync
Останавливает любую текущую синхронизацию. Virtual Environment остаётся на своём текущем блоке; вы можете возобновить синхронизацию с помощью tenderly_startSync или вручную продвигать её через tenderly_syncNext. Используйте это перед вызовом других чит-кодов Admin RPC, когда Mirror Mode активен.
Параметры
Нет.
Возвращает
BOOLEAN—true, если синхронизация была остановлена (или уже была остановлена)
example.json
example.json
tenderly_syncNext
Синхронизирует следующий одиночный блок родительской сети на Virtual Environment. Любые ожидающие транзакции Virtual Environment добавляются в начало этого блока в порядке FIFO. Удобно для пошагового прохода по синхронизации по одному блоку за раз.
Параметры
Нет.
Возвращает
DATA— 32-байтный хеш вновь синхронизированного блока
example.json
example.json
tenderly_revertSync
Перематывает Virtual Environment на N синхронизированных блоков назад, отменяя их эффект на состояние Virtual Environment. По умолчанию — 10 блоков. Используйте это, чтобы пошагово вернуть Mirror-Mode Virtual Environment в более раннюю точку истории родительской сети.
Параметры
QUANTITY(необязательно) — hex-кодированное количество блоков для перемотки. По умолчанию0xa(10).
DATA— 32-байтный хеш блока, на котором сейчас находится Virtual Environment
example.json
example.json
tenderly_getSyncStatus
Возвращает текущее состояние синхронизации Virtual Environment, включая то, активна ли синхронизация, насколько она отстаёт от родительской сети и последний синхронизированный блок.
Параметры
Нет.
Возвращает
OBJECT— статус синхронизации со следующими полями:active—BOOLEAN,true, если синхронизация сейчас выполняетсяlag—QUANTITY, количество блоков, на которое Virtual Environment отстаёт от родительской сетиlatestSyncedBlock—QUANTITY, номер последнего блока, синхронизированного на Virtual EnvironmentparentLatestBlock—QUANTITY, номер последнего блока в родительской сети
example.json
example.json