UNPKG

wallet-address-validator

Version:

Wallet address validator for Bitcoin and other Altcoins.

55 lines (50 loc) 1.56 kB
var jsSHA = require('jssha/src/sha256'); var Blake256 = require('./blake256'); var keccak256 = require('./sha3')['keccak256']; var Blake2B = require('./blake2b'); function numberToHex (number) { var hex = Math.round(number).toString(16); if(hex.length === 1) { hex = '0' + hex; } return hex; } function hexToUint8(hexString) { var arr = []; for (var i = 0; i < hexString.length; i += 2) { arr.push(parseInt(hexString.substr(i, 2), 16)); } return new Uint8Array(arr); } module.exports = { toHex: function (arrayOfBytes) { var hex = ''; for(var i = 0; i < arrayOfBytes.length; i++) { hex += numberToHex(arrayOfBytes[i]); } return hex; }, sha256: function (hexString) { var sha = new jsSHA('SHA-256', 'HEX'); sha.update(hexString); return sha.getHash('HEX'); }, sha256Checksum: function (payload) { return this.sha256(this.sha256(payload)).substr(0, 8); }, blake256: function (hexString) { return new Blake256().update(hexString, 'hex').digest('hex'); }, blake256Checksum: function (payload) { return this.blake256(this.blake256(payload)).substr(0, 8); }, blake2b: function (hexString, outlen) { return new Blake2B(outlen).update(hexToUint8(hexString)).digest('hex'); }, keccak256: function (hexString) { return keccak256(hexString); }, keccak256Checksum: function (payload) { return keccak256(payload).toString().substr(0, 8); } };