packageprocessorsimport("fmt"ethTypes"github.com/ethereum/go-ethereum/core/types""github.com/ethereum/go-ethereum/core/types/interoptypes""github.com/ethereum/go-ethereum/params""github.com/ethereum-optimism/optimism/op-supervisor/supervisor/types")typeEventDecoderFnfunc(*ethTypes.Log)(*types.ExecutingMessage,error)funcDecodeExecutingMessageLog(l*ethTypes.Log)(*types.ExecutingMessage,error){ifl.Address!=params.InteropCrossL2InboxAddress{returnnil,nil}iflen(l.Topics)!=2{// topics: event-id and payload-hashreturnnil,nil}ifl.Topics[0]!=interoptypes.ExecutingMessageEventTopic{returnnil,nil}varmsginteroptypes.Messageiferr:=msg.DecodeEvent(l.Topics,l.Data);err!=nil{returnnil,fmt.Errorf("invalid executing message: %w",err)}logHash:=types.PayloadHashToLogHash(msg.PayloadHash,msg.Identifier.Origin)return&types.ExecutingMessage{// TODO(#11105): translate chain index to chain IDChain:types.ChainIndex(msg.Identifier.ChainID.Uint64()),BlockNum:msg.Identifier.BlockNumber,LogIdx:msg.Identifier.LogIndex,Timestamp:msg.Identifier.Timestamp,Hash:logHash,},nil}