diff --git a/WalletKey.js b/WalletKey.js new file mode 100644 index 000000000..ec7815359 --- /dev/null +++ b/WalletKey.js @@ -0,0 +1,37 @@ +require('classtool'); + +function ClassSpec(b) { + var coinUtil = require('./util/util'); + var timeUtil = require('./util/time'); + var KeyModule = require('./Key'); + var Address = require('./Address').class(); + + function WalletKey(cfg) { + this.network = cfg.network; // required + this.created = cfg.created; + this.privKey = cfg.privKey; + }; + + WalletKey.prototype.generate = function() { + this.privKey = KeyModule.Key.generateSync(); + this.created = timeUtil.curtime(); + }; + + WalletKey.prototype.storeObj = function() { + var pubKey = this.privKey.public.toString('hex'); + var pubKeyHash = coinUtil.sha256ripe160(this.privKey.public); + var addr = new Address(this.network.addressPubkey, pubKeyHash); + var obj = { + created: this.created, + priv: this.privKey.private.toString('hex'), + pub: pubKey, + addr: addr.toString(), + }; + + return obj; + }; + + return WalletKey; +}; +module.defineClass(ClassSpec); + diff --git a/util/time.js b/util/time.js new file mode 100644 index 000000000..e5387f583 --- /dev/null +++ b/util/time.js @@ -0,0 +1,7 @@ + +// current time, in seconds +exports.curtime = function curtime() +{ + return Math.round(Date.now() / 1000); +} +