diff --git a/copay.js b/copay.js
index 585fc1677..544b0eb45 100644
--- a/copay.js
+++ b/copay.js
@@ -1,4 +1,3 @@
-
// core
module.exports.PublicKeyRing = require('./js/models/core/PublicKeyRing');
module.exports.TxProposals = require('./js/models/core/TxProposals');
@@ -14,11 +13,6 @@ var Insight = module.exports.Insight = require('./js/models/blockchain/Insight')
var StorageLocalPlain = module.exports.StorageLocalPlain = require('./js/models/storage/LocalPlain');
var StorageLocalEncrypted = module.exports.StorageLocalEncrypted = require('./js/models/storage/LocalEncrypted');
-var WalletFactory = require('soop').load('./js/models/core/WalletFactory',{
- Network: WebRTC,
- Blockchain: Insight,
- Storage: StorageLocalEncrypted,
-});
-module.exports.WalletFactory = WalletFactory;
+module.exports.WalletFactory = require('./js/models/core/WalletFactory');
module.exports.version = require('./version');
module.exports.API = require('./API');
diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js
index 6c00cc96a..9554ab531 100644
--- a/js/models/core/WalletFactory.js
+++ b/js/models/core/WalletFactory.js
@@ -1,15 +1,17 @@
'use strict';
var imports = require('soop').imports();
-var Storage = imports.Storage;
-var Network = imports.Network;
-var Blockchain = imports.Blockchain;
var TxProposals = require('./TxProposals');
var PublicKeyRing = require('./PublicKeyRing');
var PrivateKey = require('./PrivateKey');
var Wallet = require('./Wallet');
+var WebRTC = module.exports.WebRTC = require('../network/WebRTC');
+var Insight = module.exports.Insight = require('../blockchain/Insight');
+//var StorageLocalPlain = module.exports.StorageLocalPlain = require('../storage/LocalPlain');
+var StorageLocalEncrypted = module.exports.StorageLocalEncrypted = require('../storage/LocalEncrypted');
+
/*
* WalletFactory
*
@@ -19,9 +21,13 @@ function WalletFactory(config, version) {
var self = this;
config = config || {};
- this.storage = new Storage(config.storage);
- this.network = new Network(config.network);
- this.blockchain = new Blockchain(config.blockchain);
+ this.Storage = config.Storage || StorageLocalEncrypted;
+ this.Network = config.Network || WebRTC;
+ this.Blockchain = config.Blockchain || Insight;
+
+ this.storage = new this.Storage(config.storage);
+ this.network = new this.Network(config.network);
+ this.blockchain = new this.Blockchain(config.blockchain);
this.networkName = config.networkName;
this.verbose = config.verbose;
diff --git a/test/index.html b/test/index.html
index 52dab4944..a2e2a06b5 100644
--- a/test/index.html
+++ b/test/index.html
@@ -14,15 +14,11 @@
-
-
diff --git a/test/test.API.js b/test/test.API.js
index 14569a337..caeef8637 100644
--- a/test/test.API.js
+++ b/test/test.API.js
@@ -2,7 +2,11 @@
var chai = chai || require('chai');
var should = chai.should();
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var API = API || copay.API;
var Storage = Storage || require('../test/mocks/FakeStorage');
diff --git a/test/test.AddressIndex.js b/test/test.AddressIndex.js
index d78ea3407..130ea99a2 100644
--- a/test/test.AddressIndex.js
+++ b/test/test.AddressIndex.js
@@ -5,7 +5,11 @@ var should = chai.should();
var bitcore = bitcore || require('bitcore');
var Address = bitcore.Address;
var buffertools = bitcore.buffertools;
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var PublicKeyRing = copay.PublicKeyRing;
var AddressIndex = copay.AddressIndex;
diff --git a/test/test.Passphrase.js b/test/test.Passphrase.js
index 6e2b58a02..882135f54 100644
--- a/test/test.Passphrase.js
+++ b/test/test.Passphrase.js
@@ -4,7 +4,11 @@ var chai = chai || require('chai');
var should = chai.should();
var bitcore = bitcore || require('bitcore');
var buffertools = bitcore.buffertools;
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var Passphrase = copay.Passphrase;
diff --git a/test/test.PrivateKey.js b/test/test.PrivateKey.js
index 0bfb820c8..7e002759c 100644
--- a/test/test.PrivateKey.js
+++ b/test/test.PrivateKey.js
@@ -7,11 +7,15 @@ var Transaction = bitcore.Transaction;
var buffertools = bitcore.buffertools;
var WalletKey = bitcore.WalletKey;
var Key = bitcore.Key;
-var bignum = bitcore.bignum;
+var bignum = bitcore.Bignum;
var networks = bitcore.networks;
var Address = bitcore.Address;
var BitcorePrivateKey = bitcore.PrivateKey;
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var PrivateKey = copay.PrivateKey || require('../js/models/core/PrivateKey');
var config = {
diff --git a/test/test.PublicKeyRing.js b/test/test.PublicKeyRing.js
index c21ed6dd8..b4c541178 100644
--- a/test/test.PublicKeyRing.js
+++ b/test/test.PublicKeyRing.js
@@ -5,7 +5,11 @@ var should = chai.should();
var bitcore = bitcore || require('bitcore');
var Address = bitcore.Address;
var buffertools = bitcore.buffertools;
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var PublicKeyRing = copay.PublicKeyRing;
var aMasterPubKey = 'tprv8ZgxMBicQKsPdSVTiWXEqCCzqRaRr9EAQdn5UVMpT9UHX67Dh1FmzEMbavPumpAicsUm2XvC6NTdcWB89yN5DUWx5HQ7z3KByUg7Ht74VRZ';
diff --git a/test/test.Structure.js b/test/test.Structure.js
index 722497ab0..845032b14 100644
--- a/test/test.Structure.js
+++ b/test/test.Structure.js
@@ -3,7 +3,11 @@
var chai = chai || require('chai');
var should = chai.should();
var bitcore = bitcore || require('bitcore');
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var Structure = require('../js/models/core/Structure');
describe('Structure model', function() {
diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js
index 59beb4822..d95c20370 100644
--- a/test/test.TxProposals.js
+++ b/test/test.TxProposals.js
@@ -12,7 +12,11 @@ var Script = bitcore.Script;
var Builder = bitcore.TransactionBuilder;
var util = bitcore.util;
var networks = bitcore.networks;
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var fakeStorage = copay.FakeStorage;
var PrivateKey = copay.PrivateKey || require('../js/models/PrivateKey');
var TxProposals = copay.TxProposals || require('../js/models/TxProposal');
@@ -126,7 +130,7 @@ describe('TxProposals model', function() {
var createTx = function(toAddress, amountSatStr, utxos, opts, priv, pkr) {
opts = opts || {};
- var amountSat = bitcore.bignum(amountSatStr);
+ var amountSat = bitcore.Bignum(amountSatStr);
if (!pkr.isComplete()) {
throw new Error('publicKeyRing is not complete');
diff --git a/test/test.Wallet.js b/test/test.Wallet.js
index 91f223bbd..eea60056b 100644
--- a/test/test.Wallet.js
+++ b/test/test.Wallet.js
@@ -3,7 +3,11 @@
var chai = chai || require('chai');
var should = chai.should();
var sinon = require('sinon');
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var Wallet = require('../js/models/core/Wallet');
var Storage = require('./mocks/FakeStorage');
var Network = require('./mocks/FakeNetwork');
diff --git a/test/test.WalletFactory.js b/test/test.WalletFactory.js
index aeec5faed..3bae8797d 100644
--- a/test/test.WalletFactory.js
+++ b/test/test.WalletFactory.js
@@ -7,17 +7,17 @@ var FakeNetwork = require('./mocks/FakeNetwork');
var Insight = require('../js/models/blockchain/Insight');
var FakeStorage = require('./mocks/FakeStorage');
-var WalletFactory = typeof copay === 'undefined' ? require('soop').load('../js/models/core/WalletFactory', {
- Network: FakeNetwork,
- Blockchain: Insight,
- Storage: FakeStorage,
-}) : copay.WalletFactory;
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
+var WalletFactory = require('../js/models/core/WalletFactory');
var blanket = require("blanket")({
"pattern": "/js/"
});
-
var addCopayers = function(w) {
for (var i = 0; i < 4; i++) {
w.publicKeyRing.addCopayer();
@@ -26,11 +26,15 @@ var addCopayers = function(w) {
describe('WalletFactory model', function() {
var config = {
+ Network: FakeNetwork,
+ Blockchain: Insight,
+ Storage: FakeStorage,
wallet: {
requiredCopayers: 3,
totalCopayers: 5,
spendUnconfirmed: 1,
reconnectDelay: 100,
+
},
blockchain: {
host: 'test.insight.is',
@@ -82,6 +86,9 @@ describe('WalletFactory model', function() {
it('BIP32 length problem', function() {
var sconfig = {
+ Network: FakeNetwork,
+ Blockchain: Insight,
+ Storage: FakeStorage,
"networkName": "testnet",
"network": {
"key": "g23ihfh82h35rf",
diff --git a/test/test.blockchain.Insight.js b/test/test.blockchain.Insight.js
index a17cb07ce..f27e9f511 100644
--- a/test/test.blockchain.Insight.js
+++ b/test/test.blockchain.Insight.js
@@ -3,7 +3,11 @@
var chai = chai || require('chai');
var should = chai.should();
var bitcore = bitcore || require('bitcore');
-var copay = copay || require('../copay');
+try {
+ var copay = require('copay'); //browser
+} catch (e) {
+ var copay = require('../copay'); //node
+}
var Insight = copay.Insight || require('../js/models/blockchain/Insight');
var ID = '933bf321393459b7';
diff --git a/util/build.js b/util/build.js
index 220162f47..2af0ca892 100755
--- a/util/build.js
+++ b/util/build.js
@@ -50,7 +50,9 @@ var createBundle = function(opts) {
});
b.require('./version');
// b.external('bitcore');
- b.require('./js/models/core/WalletFactory');
+ b.require('./js/models/core/WalletFactory', {
+ expose: '../js/models/core/WalletFactory'
+ });
b.require('./js/models/core/Wallet');
b.require('./js/models/core/Wallet', {
expose: '../js/models/core/Wallet'
@@ -58,6 +60,9 @@ var createBundle = function(opts) {
b.require('./test/mocks/FakeStorage', {
expose: './mocks/FakeStorage'
});
+ b.require('./test/mocks/FakeBlockchain', {
+ expose: './mocks/FakeBlockchain'
+ });
b.require('./js/models/core/Wallet', {
expose: '../js/models/core/Wallet'
});
@@ -81,10 +86,12 @@ var createBundle = function(opts) {
});
if (opts.dontminify) {
- b.require('sinon', {
- expose: '../sinon'
- });
+ //include dev dependencies
+ b.require('sinon');
+ b.require('blanket');
+ b.require('soop');
}
+
if (!opts.dontminify) {
b.transform({
global: true
@@ -101,7 +108,7 @@ if (require.main === module) {
var program = require('commander');
program
.version('0.0.1')
- .option('-d, --dontminify', 'Don\'t minify the code.')
+ .option('-d, --dontminify', 'Development. Don\'t minify the code.')
.option('-o, --stdout', 'Specify output as stdout')
.parse(process.argv);