tokenbridge/monitor/utils/message.js

48 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

2019-07-25 11:30:59 -03:00
const web3Utils = require('web3').utils
2019-07-25 12:36:10 -03:00
const { addTxHashToData, parseAMBMessage } = require('../../commons')
2019-07-25 11:30:59 -03:00
function deliveredMsgNotProcessed(processedList) {
return deliveredMsg => {
const msg = parseAMBMessage(
addTxHashToData({
encodedData: deliveredMsg.returnValues.encodedData,
transactionHash: deliveredMsg.transactionHash
})
)
return (
processedList.filter(processedMsg => {
2019-07-25 14:44:05 -03:00
return messageEqualsEvent(msg, processedMsg.returnValues)
2019-07-25 11:30:59 -03:00
}).length === 0
)
}
}
function processedMsgNotDelivered(deliveredList) {
return processedMsg => {
return (
deliveredList.filter(deliveredMsg => {
const msg = parseAMBMessage(
addTxHashToData({
encodedData: deliveredMsg.returnValues.encodedData,
transactionHash: deliveredMsg.transactionHash
})
)
2019-07-25 14:44:05 -03:00
return messageEqualsEvent(msg, processedMsg.returnValues)
2019-07-25 11:30:59 -03:00
}).length === 0
)
}
}
2019-07-25 14:44:05 -03:00
function messageEqualsEvent(parsedMsg, event) {
2019-07-25 11:30:59 -03:00
return (
2019-07-25 14:44:05 -03:00
web3Utils.toChecksumAddress(parsedMsg.sender) === event.sender &&
web3Utils.toChecksumAddress(parsedMsg.executor) === event.executor &&
parsedMsg.txHash === event.transactionHash
2019-07-25 11:30:59 -03:00
)
}
module.exports = {
deliveredMsgNotProcessed,
processedMsgNotDelivered
}