From 05f6e2864252ab7f4aaf22e06e64a0fbc22a4a70 Mon Sep 17 00:00:00 2001 From: "Ryan X. Charles" Date: Thu, 13 Mar 2014 13:31:02 -0400 Subject: [PATCH 1/2] update interface, bitcore.KeyModule.Key -> bitcore.Key It's annoying and easy to forget to type in bitcore.KeyModule.Key. I have updated this so that now you can just do bitcore.Key. Tests pass in node and the browser. This is a backwards-incompatible change so all software that depends on the old style key generation will need to be updated. --- Key.js | 8 ++++---- SINKey.js | 4 ++-- WalletKey.js | 6 +++--- bitcore.js | 2 +- test/test.Key.js | 8 +------- test/test.basic.js | 4 ++-- 6 files changed, 13 insertions(+), 19 deletions(-) diff --git a/Key.js b/Key.js index aded6a713..e81c7b355 100644 --- a/Key.js +++ b/Key.js @@ -2,7 +2,9 @@ if (process.versions) { // c++ native version - module.exports = require('bindings')('KeyModule'); + var KeyModule = require('bindings')('KeyModule'); + var Key = KeyModule.Key; + module.exports = Key; } else { // pure js version var ECKey = require('./browser/vendor-bundle.js').ECKey; @@ -97,10 +99,8 @@ if (process.versions) { return ret; }; + module.exports = kSpec; - module.exports = { - Key: kSpec - }; } diff --git a/SINKey.js b/SINKey.js index 554f9d353..83f75162f 100644 --- a/SINKey.js +++ b/SINKey.js @@ -1,6 +1,6 @@ var coinUtil = require('./util/util'); var timeUtil = require('./util/time'); -var KeyModule = require('./Key'); +var Key = require('./Key'); var SIN = require('./SIN'); function SINKey(cfg) { @@ -12,7 +12,7 @@ function SINKey(cfg) { }; SINKey.prototype.generate = function() { - this.privKey = KeyModule.Key.generateSync(); + this.privKey = Key.generateSync(); this.created = timeUtil.curtime(); }; diff --git a/WalletKey.js b/WalletKey.js index c2311a5a6..0c2abb517 100644 --- a/WalletKey.js +++ b/WalletKey.js @@ -2,7 +2,7 @@ var imports = require('soop').imports(); var coinUtil = require('./util/util'); var timeUtil = require('./util/time'); -var KeyModule = require('./Key'); +var Key= require('./Key'); var PrivateKey = require('./PrivateKey'); var Address = require('./Address'); @@ -15,7 +15,7 @@ function WalletKey(cfg) { }; WalletKey.prototype.generate = function() { - this.privKey = KeyModule.Key.generateSync(); + this.privKey = Key.generateSync(); this.created = timeUtil.curtime(); }; @@ -36,7 +36,7 @@ WalletKey.prototype.storeObj = function() { WalletKey.prototype.fromObj = function(obj) { this.created = obj.created; - this.privKey = new KeyModule.Key(); + this.privKey = new Key(); if (obj.priv.length==64) { this.privKey.private = new Buffer(obj.priv,'hex'); this.privKey.compressed = true; diff --git a/bitcore.js b/bitcore.js index 0b12d8385..993e162a6 100644 --- a/bitcore.js +++ b/bitcore.js @@ -30,7 +30,7 @@ requireWhenAccessed('Peer', './Peer'); requireWhenAccessed('Block', './Block'); requireWhenAccessed('ScriptInterpreter', './ScriptInterpreter'); requireWhenAccessed('Bloom', './Bloom'); -requireWhenAccessed('KeyModule', './Key'); +requireWhenAccessed('Key', './Key'); requireWhenAccessed('SINKey', './SINKey'); requireWhenAccessed('SIN', './SIN'); requireWhenAccessed('PrivateKey', './PrivateKey'); diff --git a/test/test.Key.js b/test/test.Key.js index fdac70184..4918e9013 100644 --- a/test/test.Key.js +++ b/test/test.Key.js @@ -7,17 +7,11 @@ var buffertools = require('buffertools'); var should = chai.should(); -var KeyModule = bitcore.KeyModule; -var Key; +var Key = bitcore.Key; describe('Key', function() { it('should initialze the main object', function() { - should.exist(KeyModule); - }); - it('should be able to create class', function() { - Key = KeyModule.Key; should.exist(Key); }); - Key = KeyModule.Key; it('should be able to create instance', function() { var k = new Key(); should.exist(k); diff --git a/test/test.basic.js b/test/test.basic.js index ac3df362f..c1eb9ac64 100644 --- a/test/test.basic.js +++ b/test/test.basic.js @@ -9,7 +9,7 @@ var should = chai.should(); var Address = bitcore.Address; var PrivateKey = bitcore.PrivateKey; var networks = bitcore.networks; -var KeyModule = bitcore.KeyModule; +var Key = bitcore.Key; @@ -26,7 +26,7 @@ function test_encode_priv(b58, payload, isTestnet, isCompressed) { } else buf = buf_pl; - var key = new KeyModule.Key(); + var key = new Key(); key.private = buf; key.compressed = isCompressed; From 602442c2ab56f4a8eee7f375724847a511da68c6 Mon Sep 17 00:00:00 2001 From: "Ryan X. Charles" Date: Thu, 13 Mar 2014 13:59:04 -0400 Subject: [PATCH 2/2] add bitcore.KeyModule back as deprecated This will allow bitcore.KeyModule to work with existing code, but it prints out a message that it is deprecated. --- bitcore.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bitcore.js b/bitcore.js index 993e162a6..33364066b 100644 --- a/bitcore.js +++ b/bitcore.js @@ -31,6 +31,10 @@ requireWhenAccessed('Block', './Block'); requireWhenAccessed('ScriptInterpreter', './ScriptInterpreter'); requireWhenAccessed('Bloom', './Bloom'); requireWhenAccessed('Key', './Key'); +Object.defineProperty(module.exports, 'KeyModule', {get: function() { + console.log('KeyModule is deprecated.'); + return require('bindings')('KeyModule'); +}}); requireWhenAccessed('SINKey', './SINKey'); requireWhenAccessed('SIN', './SIN'); requireWhenAccessed('PrivateKey', './PrivateKey');