11// SPDX-License-Identifier: MIT
22pragma solidity 0.8.28 ;
33
4- import {MessagePasser} from "./MessagePasser.sol " ;
5-
6- import {Encoder} from "./libraries/Encoder.sol " ;
74import {Encoding} from "optimism/packages/contracts-bedrock/src/libraries/Encoding.sol " ;
85import {SafeCall} from "optimism/packages/contracts-bedrock/src/libraries/SafeCall.sol " ;
96import {Initializable} from "solady/utils/Initializable.sol " ;
107
8+ import {MessagePasser} from "./MessagePasser.sol " ;
9+ import {Encoder} from "./libraries/Encoder.sol " ;
10+
1111contract CrossChainMessenger is Initializable {
1212 //////////////////////////////////////////////////////////////
1313 /// Structs ///
@@ -154,12 +154,14 @@ contract CrossChainMessenger is Initializable {
154154 ///
155155 /// @param messageIxs Solana instructions to execute.
156156 function sendMessage (MessagePasser.Instruction[] calldata messageIxs ) external {
157+ uint256 messageNonce = messageNonce ();
158+
157159 MessagePasser.Instruction[] memory ixs = new MessagePasser.Instruction [](1 );
158160 ixs[0 ] = MessagePasser.Instruction ({
159161 programId: solanaMessengerProgram,
160162 accounts: new MessagePasser.AccountMeta [](0 ),
161163 data: Encoder.encodeMessengerPayload (
162- MessengerPayload ({nonce: messageNonce () , sender: msg .sender , ixs: messageIxs})
164+ MessengerPayload ({nonce: messageNonce, sender: msg .sender , ixs: messageIxs})
163165 )
164166 });
165167
@@ -169,7 +171,7 @@ contract CrossChainMessenger is Initializable {
169171 // the minimum gas limit specified by the user.
170172 _sendMessage (ixs);
171173
172- emit SentMessage (msg .sender , messageIxs, messageNonce () );
174+ emit SentMessage (msg .sender , messageIxs, messageNonce);
173175
174176 unchecked {
175177 ++ _msgNonce;
0 commit comments