fcoin/lib/bcoin/wallet.js
2014-04-28 17:43:13 +04:00

38 lines
893 B
JavaScript

var bcoin = require('../bcoin');
var utils = bcoin.utils;
function Wallet() {
if (!(this instanceof Wallet))
return new Wallet();
this.key = bcoin.ecdsa.genKeyPair();
}
module.exports = Wallet;
Wallet.prototype.getAddress = function getAddress() {
var pub = this.key.getPublic('array');
var keyHash = utils.ripesha(pub);
// Add version
keyHash = [ 0 ].concat(keyHash);
var addr = keyHash.concat(utils.checksum(keyHash));
return utils.toBase58(addr);
}
Wallet.prototype.validateAddress = function validateAddress(addr) {
if (!Array.isArray(addr))
addr = utils.fromBase58(addr);
if (addr.length !== 25)
return false;
if (addr[0] !== 0)
return false;
var chk = utils.checksum(addr.slice(0, -4));
if (utils.readU32(chk, 0) !== utils.readU32(addr, 21))
return false;
return true;
};
Wallet.validateAddress = Wallet.prototype.validateAddress;