Skip to content

Commit

Permalink
Switch using encoded message and use decoded message from event
Browse files Browse the repository at this point in the history
  • Loading branch information
elenadimitrova authored and smartcontracts committed Oct 1, 2021
1 parent 29dca2d commit 3ea3b14
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ contract OVM_L1CrossDomainMessenger is
_gasLimit
);

emit SentMessage(_target, _message, nonce, _gasLimit);
emit SentMessage(_target, msg.sender, _message, nonce, _gasLimit);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
7 changes: 4 additions & 3 deletions packages/core-utils/src/watcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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]))
Expand Down
14 changes: 4 additions & 10 deletions packages/message-relayer/src/relay-tx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
}
})

Expand Down
24 changes: 14 additions & 10 deletions packages/message-relayer/src/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -19,6 +24,7 @@ contract MockL2CrossDomainMessenger {
{
emit SentMessage(
_message.target,
_message.sender,
_message.message,
_message.messageNonce,
0
Expand Down

0 comments on commit 3ea3b14

Please sign in to comment.