Updating unit tests to reflect use of waterfallValidateTxid()

This commit is contained in:
Chris Troutner
2021-02-08 19:17:50 -08:00
parent 79ea4b77b9
commit 28f563b58c
+20 -256
View File
@@ -569,14 +569,7 @@ describe('#SLP Utils', () => {
// // change UTXO will contain the same SLP txid, but it is not an SLP UTXO.
it('should return details on minting baton from genesis transaction', async () => {
// Mock the call to REST API
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'bd158c564dd4ef54305b14f44f8e94c44b649f246dab14bcb42fb0d0078b8a90',
valid: true
}
])
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
// Stub the calls to decodeOpReturn.
sandbox.stub(uut.Utils, 'decodeOpReturn').resolves({
@@ -675,13 +668,7 @@ describe('#SLP Utils', () => {
})
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'cf4b922d1e1aa56b52d752d4206e1448ea76c3ebe69b3b97d8f8f65413bd5c76',
valid: true
}
])
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -746,14 +733,7 @@ describe('#SLP Utils', () => {
qty: '2100000000000000'
})
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
valid: true
}
])
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -790,9 +770,10 @@ describe('#SLP Utils', () => {
it('should handle BCH and SLP utxos in the same TX', async () => {
// Mock external dependencies.
sandbox
.stub(uut.Utils, 'validateTxid')
.resolves(mockData.mockDualValidation)
// sandbox
// .stub(uut.Utils, 'validateTxid')
// .resolves(mockData.mockDualValidation)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
sandbox
.stub(uut.Utils, 'decodeOpReturn')
@@ -898,14 +879,7 @@ describe('#SLP Utils', () => {
qty: '2000000000000000000'
})
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'67fd3c7c3a6eb0fea9ab311b91039545086220f7eeeefa367fa28e6e43009f19',
valid: true
}
])
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1017,14 +991,7 @@ describe('#SLP Utils', () => {
// Stub the calls to decodeOpReturn.
sandbox.stub(uut.Utils, 'decodeOpReturn').resolves(slpData)
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'd2ec6abff5d1c8ed9ab5db6d140dcaebb813463e42933a4a4db171e7222a0954',
valid: true
}
])
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1095,14 +1062,6 @@ describe('#SLP Utils', () => {
qty: '10000000000'
}
const stubValid = [
{
txid:
'880587f01e3112e779c0fdf1b9b859c242a28e56ead85483eeedcaa52f051a04',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1118,11 +1077,12 @@ describe('#SLP Utils', () => {
.resolves(slpData)
// Stub the call to validateTxid
sandbox
.stub(uut.Utils, 'validateTxid')
.resolves(stubValid)
.onCall(1)
.resolves(stubValid)
// sandbox
// .stub(uut.Utils, 'validateTxid')
// .resolves(stubValid)
// .onCall(1)
// .resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1184,14 +1144,6 @@ describe('#SLP Utils', () => {
qty: '1'
}
const stubValid = [
{
txid:
'4ef6eb92950a13a69e97c2c02c7967d806aa874c0e2a6b5546a8880f2cd14bc4',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1206,14 +1158,7 @@ describe('#SLP Utils', () => {
.onCall(4)
.resolves(slpData)
// Stub the call to validateTxid
sandbox
.stub(uut.Utils, 'validateTxid')
.resolves(stubValid)
.onCall(1)
.resolves(stubValid)
.onCall(2)
.resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1286,14 +1231,6 @@ describe('#SLP Utils', () => {
qty: '1'
}
const stubValid = [
{
txid:
'35846676e7514658bbd2fd60b1f0d4d86195908f6b2de5328d54c8e4a2d05919',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1308,14 +1245,7 @@ describe('#SLP Utils', () => {
.onCall(4)
.resolves(genesisData)
// Stub the call to validateTxid
sandbox
.stub(uut.Utils, 'validateTxid')
.resolves(stubValid)
.onCall(1)
.resolves(stubValid)
.onCall(2)
.resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1379,14 +1309,6 @@ describe('#SLP Utils', () => {
qty: '1'
}
const stubValid = [
{
txid:
'9b6db26b64aedcedc0bd9a3037b29b3598573ec5cea99eec03faa838616cd683',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1395,8 +1317,7 @@ describe('#SLP Utils', () => {
.onCall(1)
.resolves(slpData)
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1453,14 +1374,6 @@ describe('#SLP Utils', () => {
qty: '1'
}
const stubValid = [
{
txid:
'6d68a7ffbb63ef851c43025f801a1d365cddda50b00741bca022c743d74cd61a',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1471,8 +1384,7 @@ describe('#SLP Utils', () => {
.onCall(2)
.resolves(slpData)
// Stub the call to validateTxid
sandbox.stub(uut.Utils, 'validateTxid').resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1530,14 +1442,6 @@ describe('#SLP Utils', () => {
qty: '1'
}
const stubValid = [
{
txid:
'57cc47c265ce878679e95e2cec510d8a1a9840f5c62feb4743cc5947d57d9766',
valid: true
}
]
// Mock external dependencies.
// Stub the calls to decodeOpReturn.
sandbox
@@ -1552,12 +1456,7 @@ describe('#SLP Utils', () => {
.onCall(4)
.resolves(slpData)
// Stub the call to validateTxid
sandbox
.stub(uut.Utils, 'validateTxid')
.resolves(stubValid)
.onCall(1)
.resolves(stubValid)
sandbox.stub(uut.Utils, 'waterfallValidateTxid').resolves(true)
const utxos = [
{
@@ -1695,141 +1594,6 @@ describe('#SLP Utils', () => {
assert.equal(data[0].isValid, false)
})
it('should use backup validators when regular SLPDB returns null', async () => {
// Mock the call to REST API
// Stub the calls to decodeOpReturn.
sandbox
.stub(uut.Utils, 'decodeOpReturn')
.onCall(0)
.resolves({
tokenType: 1,
txType: 'SEND',
tokenId:
'497291b8a1dfe69c8daea50677a3d31a5ef0e9484d8bebb610dac64bbc202fb7',
amounts: ['200000000', '99887500000000']
})
.onCall(1)
.resolves({
tokenType: 1,
txType: 'GENESIS',
ticker: 'TOK-CH',
name: 'TokyoCash',
tokenId:
'497291b8a1dfe69c8daea50677a3d31a5ef0e9484d8bebb610dac64bbc202fb7',
documentUri: '',
documentHash: '',
decimals: 8,
mintBatonVout: 0,
qty: '2100000000000000'
})
// Force default SLPDB to return 'null', which should trigger usage of the
// backup whitelist-SLPDB.
sandbox.stub(uut.Utils, 'validateTxid').resolves([
{
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
valid: null
}
])
// Force the token UTXO to be in the whitelist.
uut.Utils.whitelist = mockData.whitelist
// Mock the response from the whitelist-SLPDB.
sandbox.stub(uut.Utils, 'validateTxid3').resolves([
{
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
valid: null
}
])
// Mock the response from slp-api
sandbox.stub(uut.Utils, 'validateTxid2').resolves({
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
isValid: true,
msg: ''
})
const utxos = [
{
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
vout: 1,
amount: 0.00000546,
satoshis: 546,
height: 596089,
confirmations: 748
}
]
const data = await uut.Utils.tokenUtxoDetails(utxos)
// console.log(`data: ${JSON.stringify(data, null, 2)}`)
// The UTXO should have been validated by the third validation source.
assert.equal(data[0].isValid, true)
})
it('should handle SLPDB returning null corner case', async () => {
// Mock the call to REST API
// Stub the calls to decodeOpReturn.
sandbox
.stub(uut.Utils, 'decodeOpReturn')
.onCall(0)
.resolves({
tokenType: 1,
txType: 'SEND',
tokenId:
'497291b8a1dfe69c8daea50677a3d31a5ef0e9484d8bebb610dac64bbc202fb7',
amounts: ['200000000', '99887500000000']
})
.onCall(1)
.resolves({
tokenType: 1,
txType: 'GENESIS',
ticker: 'TOK-CH',
name: 'TokyoCash',
tokenId:
'497291b8a1dfe69c8daea50677a3d31a5ef0e9484d8bebb610dac64bbc202fb7',
documentUri: '',
documentHash: '',
decimals: 8,
mintBatonVout: 0,
qty: '2100000000000000'
})
// Force default SLPDB to return 'null' corner case.
sandbox.stub(uut.Utils, 'validateTxid').resolves([null])
// Mock the response from slp-api
sandbox.stub(uut.Utils, 'validateTxid2').resolves({
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
isValid: true,
msg: ''
})
const utxos = [
{
txid:
'fde117b1f176b231e2fa9a6cb022e0f7c31c288221df6bcb05f8b7d040ca87cb',
vout: 1,
amount: 0.00000546,
satoshis: 546,
height: 596089,
confirmations: 748
}
]
const data = await uut.Utils.tokenUtxoDetails(utxos)
// console.log(`data: ${JSON.stringify(data, null, 2)}`)
// The UTXO should have been validated by the third validation source.
assert.equal(data[0].isValid, true)
})
})
describe('#txDetails', () => {