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
|
|
|
|
}
|