diff --git a/src/slp/utils.js b/src/slp/utils.js index f62575e..3ca596b 100644 --- a/src/slp/utils.js +++ b/src/slp/utils.js @@ -1308,108 +1308,8 @@ class Utils { if (!isValid) isValid = null // let isValid = null - // There are two possible responses from SLPDB. If SLPDB is functioning - // correctly, then validateTxid() will return this: - // isValid: [ - // { - // "txid": "ff0c0354f8d3ddb34fa36f73494eb58ea24f8b8da6904aa8ed43b7a74886c583", - // "valid": true - // } - // ] - // - // If SLPDB has fallen behind real-time processing, it will return this: - // isValid: [ - // null - // ] - // - // Note: validateTxid3() has the same output as validateTxid(). - // validateTxid2() uses slp-validate, which has a different output format. - - // If not in the cache, try the general SLPDB. - if (isValid === null) { - // console.log(`utxo: ${JSON.stringify(utxo, null, 2)}`) - isValid = await this.validateTxid(utxo.txid) - // console.log( - // `validateTxid() isValid: ${JSON.stringify(isValid, null, 2)}` - // ) - - // Handle corner case where SLPDB returns an array with a null element. - if (isValid[0] === null) { - isValid = [{ txid: utxo.txid, valid: null }] - } - - isValid = isValid[0].valid - - // Save the result to the local cache. - // cachedTxValidation[utxo.txid] = isValid - } - // console.log(`isValid: ${JSON.stringify(isValid, null, 2)}`) - - // console.log( - // `pre-validateTxid3() isValid: ${JSON.stringify(isValid, null, 2)}` - // ) - - // If still null, check the whitelist SLPDB - if (isValid === null) { - // console.log( - // `checking against whitelist SLPDB. outAry[${i}]: ${JSON.stringify( - // outAry[i], - // null, - // 2 - // )}` - // ) - - // Figure out if the token UTXO is in the whitelist. - let utxoInWhitelist = false - for (let j = 0; j < this.whitelist.length; j++) { - if (outAry[i].tokenId === this.whitelist[j].tokenId) { - utxoInWhitelist = true - break - } - } - - // If the utxo.tokenId is in the whitelist, check the validity with - // the whitelist SLPDB. This should still be functioning properly - // if the general SLPDB is not. - if (utxoInWhitelist) { - isValid = await this.validateTxid3(utxo.txid) - - // console.log( - // `whitelist-SLPDB for ${utxo.txid}: ${JSON.stringify( - // isValid, - // null, - // 2 - // )}` - // ) - - if (isValid[0] !== null) isValid = isValid[0].valid - - // Save the result to the local cache. - // cachedTxValidation[utxo.txid] = isValid - } - } - - // console.log( - // `pre-validateTxid2() isValid: ${JSON.stringify(isValid, null, 2)}` - // ) - - // If still null, as a last resort, check it against slp-validate - if (isValid === null) { - try { - isValid = await this.validateTxid2(utxo.txid) - } catch (err) { - // Mark as invalid if validateTxid2() throws an error. - isValid = null - } - // console.log( - // `slp-validate isValid: ${JSON.stringify(isValid, null, 2)}` - // ) - - if (isValid !== null) isValid = isValid.isValid - - // Save the result to the local cache. - // cachedTxValidation[utxo.txid] = isValid - } + // Validate using a 'waterfall' of validators. + isValid = await this.waterfallValidateTxid(utxo.txid) // console.log(`isValid: ${JSON.stringify(isValid, null, 2)}`) outAry[i].isValid = isValid