207 lines
7.7 KiB
JavaScript
207 lines
7.7 KiB
JavaScript
|
const { expect } = require('chai')
|
||
|
const { normalizeEventInformation, eventWithoutReference } = require('../utils/message')
|
||
|
|
||
|
describe('normalizeEventInformation', () => {
|
||
|
it('should return normalized object for UserRequestForSignature event', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
address: '0x7301CFA0e1756B71869E93d4e4Dca5c7d0eb0AA6',
|
||
|
blockNumber: 324231,
|
||
|
transactionHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
returnValues: {
|
||
|
recipient: '0xA84944735B66e957Fe385567dcc85975022Fe68A',
|
||
|
value: '100000000000000000000'
|
||
|
},
|
||
|
event: 'UserRequestForSignature'
|
||
|
}
|
||
|
|
||
|
// When
|
||
|
const result = normalizeEventInformation(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result.transactionHash).to.equal(event.transactionHash)
|
||
|
expect(result.blockNumber).to.equal(event.blockNumber)
|
||
|
expect(result.referenceTx).to.equal(event.transactionHash)
|
||
|
expect(result.recipient).to.equal(event.returnValues.recipient)
|
||
|
expect(result.value).to.equal(event.returnValues.value)
|
||
|
})
|
||
|
it('should return normalized object for UserRequestForAffirmation event', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
address: '0x7301CFA0e1756B71869E93d4e4Dca5c7d0eb0AA6',
|
||
|
blockNumber: 324231,
|
||
|
transactionHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
returnValues: {
|
||
|
recipient: '0xA84944735B66e957Fe385567dcc85975022Fe68A',
|
||
|
value: '100000000000000000000'
|
||
|
},
|
||
|
event: 'UserRequestForAffirmation'
|
||
|
}
|
||
|
|
||
|
// When
|
||
|
const result = normalizeEventInformation(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result.transactionHash).to.equal(event.transactionHash)
|
||
|
expect(result.blockNumber).to.equal(event.blockNumber)
|
||
|
expect(result.referenceTx).to.equal(event.transactionHash)
|
||
|
expect(result.recipient).to.equal(event.returnValues.recipient)
|
||
|
expect(result.value).to.equal(event.returnValues.value)
|
||
|
})
|
||
|
it('should return normalized object for transfer event', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
address: '0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359',
|
||
|
blockNumber: 6593953,
|
||
|
transactionHash: '0x05afb402e27946d3600b100020dc23419ffd10cb61d3b241cee7b4a84909b48a',
|
||
|
returnValues: {
|
||
|
from: '0x13C0a8009A578837fB7A80Aa252F6A3ba4aD6B79',
|
||
|
to: '0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016',
|
||
|
value: '4000000000000000000'
|
||
|
},
|
||
|
event: 'Transfer'
|
||
|
}
|
||
|
|
||
|
// When
|
||
|
const result = normalizeEventInformation(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result.transactionHash).to.equal(event.transactionHash)
|
||
|
expect(result.blockNumber).to.equal(event.blockNumber)
|
||
|
expect(result.referenceTx).to.equal(event.transactionHash)
|
||
|
expect(result.recipient).to.equal(event.returnValues.from)
|
||
|
expect(result.value).to.equal(event.returnValues.value)
|
||
|
})
|
||
|
it('should return normalized object for RelayedMessage event', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
address: '0x4aa42145Aa6Ebf72e164C9bBC74fbD3788045016',
|
||
|
blockNumber: 7025826,
|
||
|
transactionHash: '0x6ee5969973da763d6d9f162d2dd1b1ec34c2dd977dc39e6b25030b4f04471567',
|
||
|
returnValues: {
|
||
|
recipient: '0x38BC00Ea43EbB5ef5150593A0BA6C381803717e2',
|
||
|
value: '4900000000000000000',
|
||
|
transactionHash: '0x5c5c2ab5e333bda4acd035a6a30ea29c7370351891d85373b2d06c7cc6cbb210'
|
||
|
},
|
||
|
event: 'RelayedMessage'
|
||
|
}
|
||
|
|
||
|
// When
|
||
|
const result = normalizeEventInformation(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result.transactionHash).to.equal(event.transactionHash)
|
||
|
expect(result.blockNumber).to.equal(event.blockNumber)
|
||
|
expect(result.referenceTx).to.equal(event.returnValues.transactionHash)
|
||
|
expect(result.recipient).to.equal(event.returnValues.recipient)
|
||
|
expect(result.value).to.equal(event.returnValues.value)
|
||
|
})
|
||
|
it('should return normalized object for AffirmationCompleted event', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
address: '0x7301CFA0e1756B71869E93d4e4Dca5c7d0eb0AA6',
|
||
|
blockNumber: 474439,
|
||
|
transactionHash: '0x654004b372ba32754cef34f403153bbdf43f0fbb3191d5e4683bba7f32e0dc4a',
|
||
|
|
||
|
returnValues: {
|
||
|
recipient: '0x9b7b2B4f7a391b6F14A81221AE0920A9735B67Fb',
|
||
|
value: '5000000000000000000',
|
||
|
transactionHash: '0xe96da94bbda2cfc865acd3f98040f5c79a627ee9de839d86885d34acd8ecd10d'
|
||
|
},
|
||
|
event: 'AffirmationCompleted'
|
||
|
}
|
||
|
|
||
|
// When
|
||
|
const result = normalizeEventInformation(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result.transactionHash).to.equal(event.transactionHash)
|
||
|
expect(result.blockNumber).to.equal(event.blockNumber)
|
||
|
expect(result.referenceTx).to.equal(event.returnValues.transactionHash)
|
||
|
expect(result.recipient).to.equal(event.returnValues.recipient)
|
||
|
expect(result.value).to.equal(event.returnValues.value)
|
||
|
})
|
||
|
})
|
||
|
describe('eventWithoutReference', () => {
|
||
|
it('should return false if event is present', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x9b7b2B4f7a391b6F14A81221AE0920A9735B67Fb',
|
||
|
value: '5000000000000000000'
|
||
|
}
|
||
|
|
||
|
const otherSideEvents = [
|
||
|
{
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x9b7b2B4f7a391b6F14A81221AE0920A9735B67Fb',
|
||
|
value: '5000000000000000000'
|
||
|
},
|
||
|
{
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x38BC00Ea43EbB5ef5150593A0BA6C381803717e2',
|
||
|
value: '6000000000000000000'
|
||
|
},
|
||
|
{
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x38BC00Ea43EbB5ef5150593A0BA6C381803717e2',
|
||
|
value: '8000000000000000000'
|
||
|
}
|
||
|
]
|
||
|
|
||
|
// When
|
||
|
const result = eventWithoutReference(otherSideEvents)(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result).to.equal(false)
|
||
|
})
|
||
|
it('should return true if event is not present', () => {
|
||
|
// Given
|
||
|
const event = {
|
||
|
txHash: '0xe96da94bbda2cfc865acd3f98040f5c79a627ee9de839d86885d34acd8ecd10d',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0xe96da94bbda2cfc865acd3f98040f5c79a627ee9de839d86885d34acd8ecd10d',
|
||
|
recipient: '0x9b7b2B4f7a391b6F14A81221AE0920A9735B67Fb',
|
||
|
value: '2000000000000000000'
|
||
|
}
|
||
|
|
||
|
const otherSideEvents = [
|
||
|
{
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x9b7b2B4f7a391b6F14A81221AE0920A9735B67Fb',
|
||
|
value: '5000000000000000000'
|
||
|
},
|
||
|
{
|
||
|
txHash: '0x05afb402e27946d3600b100020dc23419ffd10cb61d3b241cee7b4a84909b48a',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x05afb402e27946d3600b100020dc23419ffd10cb61d3b241cee7b4a84909b48a',
|
||
|
recipient: '0x38BC00Ea43EbB5ef5150593A0BA6C381803717e2',
|
||
|
value: '6000000000000000000'
|
||
|
},
|
||
|
{
|
||
|
txHash: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
blockNumber: 474439,
|
||
|
referenceTx: '0x17be1e0745136b9e2857124542f8218812db8fe4458236d5ae045c1ceeb79978',
|
||
|
recipient: '0x38BC00Ea43EbB5ef5150593A0BA6C381803717e2',
|
||
|
value: '8000000000000000000'
|
||
|
}
|
||
|
]
|
||
|
|
||
|
// When
|
||
|
const result = eventWithoutReference(otherSideEvents)(event)
|
||
|
|
||
|
// Then
|
||
|
expect(result).to.equal(true)
|
||
|
})
|
||
|
})
|