Как выбрать схему хеширования междоменного сообщения OP Stack

Старшие биты nonce в cross-domain messenger отведены под версию. Индекс только по младшему счётчику может ошибочно объединить старое и новое сообщения.

Декодируйте старшие шестнадцать бит

Получите полный uint256 nonce из события сообщения. Примените целочисленную арифметику по формуле ниже. Если nonce равен 2^240 плюс 7, версия равна единице, а младший счётчик — семи.

version = nonce >> 240
counter = nonce & ((1 << 240) - 1)

Для первой версии восстановите кодировку relayMessage с полями value и минимального газа. В закодированном вызове оставьте полный nonce с версией. Замена на младший счётчик меняет хеш сообщения.

Различайте идентификаторы messenger и портала

Хеш сообщения messenger относится к данным междоменной доставки. Хеш вывода портала относится к нижележащей транзакции вывода, которая переносит сообщение. Для сквозной трассировки храните оба значения. specs.optimism.io OP Stack specification