trezor-address-validator
Version:
Multicoin address validator for Bitcoin and other altcoins.
29 lines (25 loc) • 824 B
JavaScript
const { addressType } = require('../src/crypto/utils');
var cryptoUtils = require('./crypto/utils')
var isEqual = require('lodash/isEqual')
module.exports = {
isValidAddress: function(address) {
if (address.length !== 76) {
// Check if it has the basic requirements of an address
return false;
}
// Otherwise check each case
return this.verifyChecksum(address);
},
verifyChecksum: function(address) {
var checksumBytes = address.slice(0, 32*2)
var check = address.slice(32*2, 38*2)
var blakeHash = cryptoUtils.blake2b(checksumBytes, 32).slice(0, 6*2)
return isEqual(blakeHash, check);
},
getAddressType: function (address, currency, networkType) {
if (this.isValidAddress(address)) {
return addressType.ADDRESS;
}
return undefined;
},
}