Три разных состояния forced path
СлойДоказательствоЧто ещё неизвестно
L1 submissionTransaction hash и calldata к OptimismPortalБудет ли L1-транзакция включена
Deposit derivationPortal event и derived source hashКогда конкретная L2 обработает L1 origin
L2 executionL2 transaction/receipt и target stateБизнес-результат за пределами target call
Обычный sequencer pathL2 tx hash от RPCНе относится к уже созданному forced deposit
Три разных состояния forced path
Слой
L1 submission
Доказательство
Transaction hash и calldata к OptimismPortal
Что ещё неизвестно
Будет ли L1-транзакция включена
Слой
Deposit derivation
Доказательство
Portal event и derived source hash
Что ещё неизвестно
Когда конкретная L2 обработает L1 origin
Слой
L2 execution
Доказательство
L2 transaction/receipt и target state
Что ещё неизвестно
Бизнес-результат за пределами target call
Слой
Обычный sequencer path
Доказательство
L2 tx hash от RPC
Что ещё неизвестно
Не относится к уже созданному forced deposit

Сначала подтвердить именно сбой sequencer

Один недоступный RPC не доказывает остановку сети. Сравните несколько независимых RPC, свежесть L2-блоков, официальный status channel и доступность L1. Если блоки идут, но конкретная транзакция отклоняется, причина может быть в nonce, fee, simulation или контракте; forced path не исправит неверный calldata.

Forced transaction здесь — не стандартный вывод L2→L1. Вывод optimistic rollup проходит отдельные initiate, prove и finalize; OptimismPortal depositTransaction создаёт движение L1→L2 и может лишь инициировать нужный L2-вызов, включая withdrawal action, если сам target допускает его.

Подготовить chain-specific L1 deposit без слепой подписи

Минимальный runbook

  1. 1
    Зафиксировать пару сетей

    Сохраните L1/L2 chain ID, официальный OptimismPortal proxy, фактическую implementation, code hash, deployed ABI/protocol version и блок проверки.

  2. 2
    Разобрать exact ABI

    Только если deployed implementation действительно экспонирует текущий пятиаргументный интерфейс, сопоставьте _to, _value, _gasLimit, _isCreation и _data. При другой сигнатуре не копируйте этот список: используйте ABI именно развернутой версии.

  3. 3
    Собрать L2 intent

    Определите target, L2 value, calldata, gas limit, creation flag и адрес отправителя после L1 aliasing, если caller является контрактом. Для _isCreation=true текущий reference interface требует нулевой _to.

  4. 4
    Симулировать

    Проверьте target calldata в актуальном L2 state и separately оцените портал-вызов на L1; симуляция не гарантирует будущий state.

  5. 5
    Проверить L1 подпись

    Кошелёк должен показывать известный portal, selector фактической ABI, msg.value, все аргументы portal call и L1 fee. Не выдавайте unlimited approvals без необходимости.

  6. 6
    Связать два результата

    После L1 receipt извлеките deposit event/source hash, найдите derived L2 tx и проверьте L2 receipt плюс ожидаемое target state.

Документация OP Mainnet приводит собственные значения sequencing window и max sequencer drift, но это не универсальные SLA для любой OP Stack chain. Записывайте параметры сети и блок L1 origin; при длительном outage L2 state может оставаться неопределённым до восстановления sequencer либо пока derivation rules не продвинут цепочку.

В текущем ETH-based reference interface payable msg.value блокируется на L1 и становится полем mint derived deposit, тогда как _value — отдельная сумма, отправляемая _to при L2 execution; смешивать их нельзя. В chain с custom gas token или другой deployed version правила проверяют заново. Параметр _gasLimit покупает L2 gas сжиганием gas на L1, и specification прямо делает этот L2 gas невозвратным. Слишком низкий лимит может оставить L1 submission успешной, а L2 execution — неуспешным; завышенный лимит не возвращает неиспользованный L2 gas. Сравните расчёт только с ABI и кодом реально развернутой implementation, не с примером другой chain.

L1 success не равен L2 success

Decision и recovery
СостояниеИнтерпретацияДействие
L1 tx revertedPortal не принял depositРазобрать L1 revert и параметры; не искать L2 receipt
L1 success, deposit event естьВход записан в L1 derivation sourceРассчитать source hash и ждать/проверять включение в конкретной L2
Derived L2 tx pending/не найденаDerivation или RPC ещё не дошли до L1 originСверить node sync, outage status и config; не отправлять дубль
L2 receipt revertedForced inclusion сработал, target execution — нетРазобрать revert/call trace; повтор требует нового риска и fee
Portal/version неизвестныНевозможно доказать маршрутОстановиться до официального deployment/config источника
Decision и recovery
Состояние
L1 tx reverted
Интерпретация
Portal не принял deposit
Действие
Разобрать L1 revert и параметры; не искать L2 receipt
Состояние
L1 success, deposit event есть
Интерпретация
Вход записан в L1 derivation source
Действие
Рассчитать source hash и ждать/проверять включение в конкретной L2
Состояние
Derived L2 tx pending/не найдена
Интерпретация
Derivation или RPC ещё не дошли до L1 origin
Действие
Сверить node sync, outage status и config; не отправлять дубль
Состояние
L2 receipt reverted
Интерпретация
Forced inclusion сработал, target execution — нет
Действие
Разобрать revert/call trace; повтор требует нового риска и fee
Состояние
Portal/version неизвестны
Интерпретация
Невозможно доказать маршрут
Действие
Остановиться до официального deployment/config источника

Не создавайте второй forced deposit, пока первый не сопоставлен по L1 hash, log index, source hash и L2 receipt: одинаковый intent может исполниться дважды, если target не имеет собственной защиты. После включения подтверждения и возможную реорганизацию L1/L2 оценивают отдельно.

Итоговый incident record включает обе chain ID, portal/version, L1 calldata и receipt, deposit event/source hash, L1 origin, derived L2 hash/receipt, target state, simulation block и все fees. Если официальный интерфейс сети не публикует portal/config или target несёт крупный value, перед подписью нужна независимая проверка оператора сети.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Optimism Docs — Forced Transaction Optimism · Проверено 23 августа 2026 г. в 15:43 GMT+5
  2. Optimism Docs — Protocol outages Optimism · Проверено 23 августа 2026 г. в 15:43 GMT+5
  3. OP Stack Specification — Deposits Optimism Collective · Проверено 23 августа 2026 г. в 15:43 GMT+5
  4. Optimism Tutorial — Triggering OP Stack transactions from Ethereum Optimism · Проверено 23 августа 2026 г. в 15:43 GMT+5
  5. OptimismPortal2 — pinned reference interface Optimism Collective · Проверено 23 августа 2026 г. в 17:07 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.