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
_gasLimit
);
emit SentMessage(_target, _message, nonce, _gasLimit);
emit SentMessage(_target, msg.sender, _message, nonce, _gasLimit);
}
/**
......
......@@ -102,7 +102,7 @@ contract OVM_L2CrossDomainMessenger is
sentMessages[keccak256(xDomainCalldata)] = true;
_sendXDomainMessage(xDomainCalldata, _gasLimit);
emit SentMessage(_target, _message, messageNonce, _gasLimit);
emit SentMessage(_target, msg.sender, _message, messageNonce, _gasLimit);
}
/**
......
......@@ -11,7 +11,12 @@ interface iOVM_CrossDomainMessenger {
* 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 FailedRelayedMessage(bytes32 indexed msgHash);
......
......@@ -75,10 +75,11 @@ export class Watcher {
for (const log of receipt.logs) {
if (
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(
['bytes'],
const [, , message, ,] = ethers.utils.defaultAbiCoder.decode(
['address', 'address', 'bytes', 'uint256', 'uint256'],
log.data
)
msgHashes.push(ethers.utils.solidityKeccak256(['bytes'], [message]))
......
......@@ -92,17 +92,11 @@ export const getMessagesByTransactionHash = async (
// Decode the messages and turn them into a nicer struct.
const sentMessages = sentMessageEvents.map((sentMessageEvent) => {
const encodedMessage = sentMessageEvent.args.message
const decodedMessage = l2CrossDomainMessenger.interface.decodeFunctionData(
'relayMessage',
encodedMessage
)
return {
target: decodedMessage._target,
sender: decodedMessage._sender,
message: decodedMessage._message,
messageNonce: decodedMessage._messageNonce.toNumber(),
target: sentMessageEvent.args.target,
sender: sentMessageEvent.args.sender,
message: sentMessageEvent.args.message, // decoded message
messageNonce: sentMessageEvent.args.messageNonce.toNumber(),
}
})
......
......@@ -387,20 +387,24 @@ export class MessageRelayerService extends BaseService<MessageRelayerOptions> {
)
const messages = events.map((event) => {
const message = event.args.message
const decoded =
this.state.OVM_L2CrossDomainMessenger.interface.decodeFunctionData(
const encodedMessage =
this.state.OVM_L2CrossDomainMessenger.interface.encodeFunctionData(
'relayMessage',
message
[
event.args.target,
event.args.sender,
event.args.message,
event.args.messageNonce,
]
)
return {
target: decoded._target,
sender: decoded._sender,
message: decoded._message,
messageNonce: decoded._messageNonce,
encodedMessage: message,
encodedMessageHash: ethers.utils.keccak256(message),
target: event.args.target,
sender: event.args.sender,
message: event.args.message,
messageNonce: event.args.messageNonce,
encodedMessage,
encodedMessageHash: ethers.utils.keccak256(encodedMessage),
parentTransactionIndex: event.blockNumber - this.options.l2BlockOffset,
parentTransactionHash: event.transactionHash,
}
......
......@@ -10,7 +10,12 @@ contract MockL2CrossDomainMessenger {
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(
MessageData memory _message
......@@ -19,6 +24,7 @@ contract MockL2CrossDomainMessenger {
{
emit SentMessage(
_message.target,
_message.sender,
_message.message,
_message.messageNonce,
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