Как выбрать схему хеширования междоменного сообщения 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