scpx-wallet
Version:
Scoop Core Wallet: dual-signature timelock crypto wallet - multi-asset, cross-platform and open-source
33 lines (27 loc) • 1.33 kB
JavaScript
// Distributed under AGPLv3 license: see /LICENSE for terms. Copyright 2019-2021 Dominic Morris.
const Buffer = require('buffer').Buffer
const _ = require('lodash')
const WAValidator = require('scp-address-validator').validate
const bchAddr = require('bchaddrjs')
module.exports = {
validateAssetAddress: (p) => {
var { testSymbol, testAddressType, validateAddr } = p
if (!testSymbol || testSymbol.length == 0) throw 'testSymbol is required'
if (!testAddressType || testAddressType.length == 0) throw 'testAddressType is required'
if (testAddressType === 'BECH32') testAddressType = 'BTC'
if (testSymbol === 'BCHABC') { // BCH: to legacy addr for validation
if (validateAddr && validateAddr.length > 0) {
try {
if (bchAddr.isCashAddress(validateAddr) || bchAddr.isBitpayAddress(validateAddr)) {
validateAddr = bchAddr.toLegacyAddress(validateAddr)
}
}
catch(err) {
console.warn(`## bchAddr.toLegacyAddress, err=`, err)
}
}
}
const isValid = WAValidator(validateAddr, testAddressType, testSymbol.includes('TEST') ? 'testnet' : 'prod')
return isValid
}
}