Commit 9442d059 authored by elenadimitrova's avatar elenadimitrova Committed by Kelvin Fichter

Fix the watcher encoding/decoding of the message hash

parent beb6c977
......@@ -72,17 +72,39 @@ export class Watcher {
}
const msgHashes = []
const sentMessageEventId = ethers.utils.id('SentMessage(address,address,bytes,uint256,uint256)')
const l2CrossDomainMessengerRelayAbi = [
'function relayMessage(address _target,address _sender,bytes memory _message,uint256 _messageNonce)',
]
const l2CrossDomainMessengerRelayinterface = new ethers.utils.Interface(
l2CrossDomainMessengerRelayAbi
)
for (const log of receipt.logs) {
if (
log.address === layer.messengerAddress &&
log.topics[0] ===
ethers.utils.id('SentMessage(address,address,bytes,uint256,uint256)')
sentMessageEventId
) {
const [, , message, ,] = ethers.utils.defaultAbiCoder.decode(
['address', 'address', 'bytes', 'uint256', 'uint256'],
log.data
const [sender, message, messageNonce] =
ethers.utils.defaultAbiCoder.decode(
['address', 'bytes', 'uint256'],
log.data
)
const [target] = ethers.utils.defaultAbiCoder.decode(
['address'],
log.topics[1]
)
const encodedMessage =
l2CrossDomainMessengerRelayinterface.encodeFunctionData(
'relayMessage',
[target, sender, message, messageNonce]
)
msgHashes.push(
ethers.utils.solidityKeccak256(['bytes'], [encodedMessage])
)
msgHashes.push(ethers.utils.solidityKeccak256(['bytes'], [message]))
}
}
return msgHashes
......@@ -121,7 +143,9 @@ export class Watcher {
const successLogs = await layer.provider.getLogs(successFilter)
const failureLogs = await layer.provider.getLogs(failureFilter)
const logs = successLogs.concat(failureLogs)
matches = logs.filter((log: ethers.providers.Log) => log.data === msgHash)
matches = logs.filter(
(log: ethers.providers.Log) => log.topics[1] === msgHash
)
// exit loop after first iteration if not polling
if (!pollForPending) {
......
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