diff --git a/WalletKey.js b/WalletKey.js index 1fb8c23..0958509 100644 --- a/WalletKey.js +++ b/WalletKey.js @@ -4,6 +4,7 @@ function ClassSpec(b) { var coinUtil = require('./util/util'); var timeUtil = require('./util/time'); var KeyModule = require('./Key'); + var PrivateKey = require('./PrivateKey').class(); var Address = require('./Address').class(); function WalletKey(cfg) { @@ -21,9 +22,10 @@ function ClassSpec(b) { var pubKey = this.privKey.public.toString('hex'); var pubKeyHash = coinUtil.sha256ripe160(this.privKey.public); var addr = new Address(this.network.addressPubkey, pubKeyHash); + var priv = new PrivateKey(this.network.keySecret, this.privKey.private, this.privKey.compressed); var obj = { created: this.created, - priv: this.privKey.private.toString('hex'), + priv: priv.toString(), pub: pubKey, addr: addr.toString(), }; @@ -34,10 +36,18 @@ function ClassSpec(b) { WalletKey.prototype.fromObj = function(obj) { this.created = obj.created; this.privKey = new KeyModule.Key(); - this.privKey.private = new Buffer(obj.priv, 'hex'); + if (obj.priv.length==64) { + this.privKey.private = new Buffer(obj.priv,'hex'); + this.privKey.compressed = true; + } + else { + var priv = new PrivateKey(obj.priv); + this.privKey.private = new Buffer(priv.payload()); + this.privKey.compressed = priv.compressed(); + } + this.privKey.regenerateSync(); }; return WalletKey; }; module.defineClass(ClassSpec); -