mirror of
https://github.com/Permissionless-Software-Foundation/bch-js.git
synced 2026-09-21 16:51:59 -07:00
Merge pull request #167 from Permissionless-Software-Foundation/ct-unstable
fix(waterfallValidateTxid): Skipping validateTxid3() if it throws an error
This commit is contained in:
+24
-16
@@ -1588,25 +1588,31 @@ class Utils {
|
||||
// Note: validateTxid3() has the same output as validateTxid().
|
||||
// validateTxid2() uses slp-validate, which has a different output format.
|
||||
|
||||
// Validate against the whitelist SLPDB first.
|
||||
const whitelistResult = await this.validateTxid3(txid, usrObj)
|
||||
// console.log(
|
||||
// `whitelist-SLPDB for ${txid}: ${JSON.stringify(
|
||||
// whitelistResult,
|
||||
// null,
|
||||
// 2
|
||||
// )}`
|
||||
// )
|
||||
// If the whitelist SLPDB is having issues, the try/catch will skip it
|
||||
// and continue execution.
|
||||
try {
|
||||
// Validate against the whitelist SLPDB first.
|
||||
const whitelistResult = await this.validateTxid3(txid, usrObj)
|
||||
// console.log(
|
||||
// `whitelist-SLPDB for ${txid}: ${JSON.stringify(
|
||||
// whitelistResult,
|
||||
// null,
|
||||
// 2
|
||||
// )}`
|
||||
// )
|
||||
|
||||
// Safely retrieve the returned value.
|
||||
if (whitelistResult[0] !== null) isValid = whitelistResult[0].valid
|
||||
// Safely retrieve the returned value.
|
||||
if (whitelistResult[0] !== null) isValid = whitelistResult[0].valid
|
||||
|
||||
// Exit if isValid is not null.
|
||||
if (isValid !== null) {
|
||||
// Save to the cache.
|
||||
cachedTxValidation[txid] = isValid
|
||||
// Exit if isValid is not null.
|
||||
if (isValid !== null) {
|
||||
// Save to the cache.
|
||||
cachedTxValidation[txid] = isValid
|
||||
|
||||
return isValid
|
||||
return isValid
|
||||
}
|
||||
} catch {
|
||||
/* exit quietly */
|
||||
}
|
||||
|
||||
// Try the general SLPDB, if the whitelist returned null.
|
||||
@@ -1858,6 +1864,8 @@ class Utils {
|
||||
|
||||
return response.data
|
||||
} catch (error) {
|
||||
console.log('Error in hydrateUtxos(): ', error)
|
||||
|
||||
if (error.response && error.response.data) {
|
||||
throw new Error(JSON.stringify(error.response.data, null, 2))
|
||||
}
|
||||
|
||||
+19
-17
@@ -2281,23 +2281,25 @@ describe('#SLP Utils', () => {
|
||||
assert.equal(result, true)
|
||||
})
|
||||
|
||||
it('catches and throws an error', async () => {
|
||||
try {
|
||||
const txid = 'fakeTxid'
|
||||
|
||||
// Force an error
|
||||
sandbox
|
||||
.stub(uut.Utils, 'validateTxid3')
|
||||
.rejects(new Error('fake error'))
|
||||
|
||||
await await uut.Utils.waterfallValidateTxid(txid)
|
||||
|
||||
assert.fail('Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'fake error')
|
||||
}
|
||||
})
|
||||
// CT 08-09-21 Changed behavior. validateTxid3() is now wrapped in a
|
||||
// try/catch statement that exits quietly if there is an error.
|
||||
// it('catches and throws an error', async () => {
|
||||
// try {
|
||||
// const txid = 'fakeTxid'
|
||||
//
|
||||
// // Force an error
|
||||
// sandbox
|
||||
// .stub(uut.Utils, 'validateTxid3')
|
||||
// .rejects(new Error('fake error'))
|
||||
//
|
||||
// await await uut.Utils.waterfallValidateTxid(txid)
|
||||
//
|
||||
// assert.fail('Unexpected result')
|
||||
// } catch (err) {
|
||||
// // console.log(`err.message: ${err.message}`)
|
||||
// assert.include(err.message, 'fake error')
|
||||
// }
|
||||
// })
|
||||
})
|
||||
|
||||
describe('#getWhitelist', () => {
|
||||
|
||||
Reference in New Issue
Block a user