From 45f201c4da2296d540beb3027e68018b2b06c844 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Thu, 8 Aug 2013 18:44:46 -0400 Subject: [PATCH] Add new modules: WalletKey (a key, as found in a Wallet) and time utils --- WalletKey.js | 37 +++++++++++++++++++++++++++++++++++++ util/time.js | 7 +++++++ 2 files changed, 44 insertions(+) create mode 100644 WalletKey.js create mode 100644 util/time.js 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); +} +