UNPKG

multicoin-address-validator-ts

Version:

Multicoin address validator for Bitcoin and other Altcoins. TS version

29 lines (28 loc) 1.03 kB
"use strict"; var bech32 = require('./crypto/bech32'); // bip 173 bech 32 addresses (https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki) module.exports = { isValidAddress: function (address, currency, opts) { if (opts === void 0) { opts = {}; } var _a = opts.networkType, networkType = _a === void 0 ? 'prod' : _a; var decoded = bech32.decode(address, bech32.encodings.BECH32); if (!decoded) { return false; } var bech32Hrp = decoded.hrp; var correctBech32Hrps; if (networkType === 'prod' || networkType === 'testnet') { correctBech32Hrps = currency.bech32Hrp[networkType]; } else if (currency.bech32Hrp) { correctBech32Hrps = currency.bech32Hrp.prod.concat(currency.bech32Hrp.testnet); } else { return false; } if (correctBech32Hrps.indexOf(bech32Hrp) === -1) { return false; } return true; } };