Commit 92d675b5 authored by elenadimitrova's avatar elenadimitrova Committed by Kelvin Fichter

Switch using encoded message and use decoded message from event

parent 3b937854
...@@ -212,7 +212,7 @@ contract OVM_L1CrossDomainMessenger is ...@@ -212,7 +212,7 @@ contract OVM_L1CrossDomainMessenger is
_gasLimit _gasLimit
); );
emit SentMessage(_target, _message, nonce, _gasLimit); emit SentMessage(_target, msg.sender, _message, nonce, _gasLimit);
} }
/** /**
......
...@@ -102,7 +102,7 @@ contract OVM_L2CrossDomainMessenger is ...@@ -102,7 +102,7 @@ contract OVM_L2CrossDomainMessenger is
sentMessages[keccak256(xDomainCalldata)] = true; sentMessages[keccak256(xDomainCalldata)] = true;
_sendXDomainMessage(xDomainCalldata, _gasLimit); _sendXDomainMessage(xDomainCalldata, _gasLimit);
emit SentMessage(_target, _message, messageNonce, _gasLimit); emit SentMessage(_target, msg.sender, _message, messageNonce, _gasLimit);
} }
/** /**
......
...@@ -11,7 +11,12 @@ interface iOVM_CrossDomainMessenger { ...@@ -11,7 +11,12 @@ interface iOVM_CrossDomainMessenger {
* Events * * Events *
**********/ **********/
event SentMessage(address indexed target, bytes message, uint256 messageNonce, uint256 gasLimit); event SentMessage(
address indexed target,
address sender,
bytes message,
uint256 messageNonce,
uint256 gasLimit);
event RelayedMessage(bytes32 indexed msgHash); event RelayedMessage(bytes32 indexed msgHash);
event FailedRelayedMessage(bytes32 indexed msgHash); event FailedRelayedMessage(bytes32 indexed msgHash);
......
...@@ -75,10 +75,11 @@ export class Watcher { ...@@ -75,10 +75,11 @@ export class Watcher {
for (const log of receipt.logs) { for (const log of receipt.logs) {
if ( if (
log.address === layer.messengerAddress && log.address === layer.messengerAddress &&
log.topics[0] === SENT_MESSAGE log.topics[0] ===
ethers.utils.id('SentMessage(address,address,bytes,uint256,uint256)')
) { ) {
const [message] = ethers.utils.defaultAbiCoder.decode( const [, , message, ,] = ethers.utils.defaultAbiCoder.decode(
['bytes'], ['address', 'address', 'bytes', 'uint256', 'uint256'],
log.data log.data
) )
msgHashes.push(ethers.utils.solidityKeccak256(['bytes'], [message])) msgHashes.push(ethers.utils.solidityKeccak256(['bytes'], [message]))
......
...@@ -92,17 +92,11 @@ export const getMessagesByTransactionHash = async ( ...@@ -92,17 +92,11 @@ export const getMessagesByTransactionHash = async (
// Decode the messages and turn them into a nicer struct. // Decode the messages and turn them into a nicer struct.
const sentMessages = sentMessageEvents.map((sentMessageEvent) => { const sentMessages = sentMessageEvents.map((sentMessageEvent) => {
const encodedMessage = sentMessageEvent.args.message
const decodedMessage = l2CrossDomainMessenger.interface.decodeFunctionData(
'relayMessage',
encodedMessage
)
return { return {
target: decodedMessage._target, target: sentMessageEvent.args.target,
sender: decodedMessage._sender, sender: sentMessageEvent.args.sender,
message: decodedMessage._message, message: sentMessageEvent.args.message, // decoded message
messageNonce: decodedMessage._messageNonce.toNumber(), messageNonce: sentMessageEvent.args.messageNonce.toNumber(),
} }
}) })
......
...@@ -387,20 +387,24 @@ export class MessageRelayerService extends BaseService<MessageRelayerOptions> { ...@@ -387,20 +387,24 @@ export class MessageRelayerService extends BaseService<MessageRelayerOptions> {
) )
const messages = events.map((event) => { const messages = events.map((event) => {
const message = event.args.message const encodedMessage =
const decoded = this.state.OVM_L2CrossDomainMessenger.interface.encodeFunctionData(
this.state.OVM_L2CrossDomainMessenger.interface.decodeFunctionData(
'relayMessage', 'relayMessage',
message [
event.args.target,
event.args.sender,
event.args.message,
event.args.messageNonce,
]
) )
return { return {
target: decoded._target, target: event.args.target,
sender: decoded._sender, sender: event.args.sender,
message: decoded._message, message: event.args.message,
messageNonce: decoded._messageNonce, messageNonce: event.args.messageNonce,
encodedMessage: message, encodedMessage,
encodedMessageHash: ethers.utils.keccak256(message), encodedMessageHash: ethers.utils.keccak256(encodedMessage),
parentTransactionIndex: event.blockNumber - this.options.l2BlockOffset, parentTransactionIndex: event.blockNumber - this.options.l2BlockOffset,
parentTransactionHash: event.transactionHash, parentTransactionHash: event.transactionHash,
} }
......
...@@ -10,7 +10,12 @@ contract MockL2CrossDomainMessenger { ...@@ -10,7 +10,12 @@ contract MockL2CrossDomainMessenger {
uint256 messageNonce; uint256 messageNonce;
} }
event SentMessage(address indexed target, bytes message, uint256 messageNonce, uint256 gasLimit); event SentMessage(
address indexed target,
address sender,
bytes message,
uint256 messageNonce,
uint256 gasLimit);
function emitSentMessageEvent( function emitSentMessageEvent(
MessageData memory _message MessageData memory _message
...@@ -19,6 +24,7 @@ contract MockL2CrossDomainMessenger { ...@@ -19,6 +24,7 @@ contract MockL2CrossDomainMessenger {
{ {
emit SentMessage( emit SentMessage(
_message.target, _message.target,
_message.sender,
_message.message, _message.message,
_message.messageNonce, _message.messageNonce,
0 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment