From b568473d0e5672df470c4f63e3e05e7bf08fa456 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Tue, 10 Jun 2014 10:39:57 -0300 Subject: [PATCH 1/4] add fail search script --- test/test.TxProposals.js | 362 ++++++++++++++++++++++----------------- 1 file changed, 201 insertions(+), 161 deletions(-) diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js index 78bd50196..7c3c945fe 100644 --- a/test/test.TxProposals.js +++ b/test/test.TxProposals.js @@ -1,64 +1,63 @@ 'use strict'; -var chai = chai || require('chai'); -var should = chai.should(); -var bitcore = bitcore || require('bitcore'); -var Transaction = bitcore.Transaction; -var buffertools = bitcore.buffertools; -var WalletKey = bitcore.WalletKey; -var Key = bitcore.Key; -var bignum = bitcore.bignum; -var Script = bitcore.Script; -var Builder = bitcore.TransactionBuilder; -var util = bitcore.util; -var networks = bitcore.networks; -var copay = copay || require('../copay'); -var fakeStorage = copay.FakeStorage; -var PrivateKey = copay.PrivateKey || require('../js/models/PrivateKey'); -var TxProposals = copay.TxProposals || require('../js/models/TxProposal'); -var PublicKeyRing = is_browser ? copay.PublicKeyRing : - require('soop').load('../js/models/core/PublicKeyRing', {Storage: fakeStorage}); -var is_browser = (typeof process.versions === 'undefined') +var chai = chai || require('chai'); +var should = chai.should(); +var bitcore = bitcore || require('bitcore'); +var Transaction = bitcore.Transaction; +var buffertools = bitcore.buffertools; +var WalletKey = bitcore.WalletKey; +var Key = bitcore.Key; +var bignum = bitcore.bignum; +var Script = bitcore.Script; +var Builder = bitcore.TransactionBuilder; +var util = bitcore.util; +var networks = bitcore.networks; +var copay = copay || require('../copay'); +var fakeStorage = copay.FakeStorage; +var PrivateKey = copay.PrivateKey || require('../js/models/PrivateKey'); +var TxProposals = copay.TxProposals || require('../js/models/TxProposal'); +var PublicKeyRing = is_browser ? copay.PublicKeyRing : + require('soop').load('../js/models/core/PublicKeyRing', { + Storage: fakeStorage + }); +var is_browser = (typeof process.versions === 'undefined') var config = { - networkName:'livenet', + networkName: 'livenet', }; -var unspentTest = [ - { - "address": "dummy", - "scriptPubKey": "dummy", - "txid": "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1", - "vout": 1, - "amount": 10, - "confirmations":7 - } -]; +var unspentTest = [{ + "address": "dummy", + "scriptPubKey": "dummy", + "txid": "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1", + "vout": 1, + "amount": 10, + "confirmations": 7 +}]; -var createPKR = function (bip32s) { +var createPKR = function(bip32s) { var w = new PublicKeyRing(config); should.exist(w); - for(var i=0; i<5; i++) { + for (var i = 0; i < 5; i++) { if (bip32s) { - var b=bip32s[i]; - w.addCopayer(b?b.deriveBIP45Branch().extendedPublicKeyString():null); - } - else + var b = bip32s[i]; + w.addCopayer(b ? b.deriveBIP45Branch().extendedPublicKeyString() : null); + } else w.addCopayer(); } - w.generateAddress(true); - w.generateAddress(true); - w.generateAddress(true); - w.generateAddress(false); - w.generateAddress(false); - w.generateAddress(false); - //3x3 indexes - + w.generateAddress(true); + w.generateAddress(true); + w.generateAddress(true); + w.generateAddress(false); + w.generateAddress(false); + w.generateAddress(false); + //3x3 indexes + return w; }; -var vopts = { +var vopts = { verifyP2SH: true, dontVerifyStrictEnc: true }; @@ -66,25 +65,29 @@ var vopts = { describe('TxProposals model', function() { - it('verify TXs', function (done) { + it('verify TXs', function(done) { var priv = new PrivateKey(config); var priv2 = new PrivateKey(config); var priv3 = new PrivateKey(config); var ts = Date.now(); - var isChange=0; - var index=0; - var pkr = createPKR([priv, priv2, priv3]); - var opts = {remainderOut: { address: pkr.generateAddress(true).toString() }}; + var isChange = 0; + var index = 0; + var pkr = createPKR([priv, priv2, priv3]); + var opts = { + remainderOut: { + address: pkr.generateAddress(true).toString() + } + }; var w = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv, @@ -94,25 +97,25 @@ describe('TxProposals model', function() { var b = w.txps[k].builder; var tx = b.build(); tx.isComplete().should.equal(false); - b.sign(priv2.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex()) ); - b.sign(priv3.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex()) ); + b.sign(priv2.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex())); + b.sign(priv3.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex())); tx = b.build(); tx.isComplete().should.equal(true); - var s = new Script(new Buffer(unspentTest[0].scriptPubKey,'hex')); + var s = new Script(new Buffer(unspentTest[0].scriptPubKey, 'hex')); - tx.verifyInput(0,s, { + tx.verifyInput(0, s, { verifyP2SH: true, dontVerifyStrictEnc: true - }, function(err, results){ - should.not.exist(err); - results.should.equal(true); + }, function(err, results) { + should.not.exist(err); + results.should.equal(true); done(); }); }); - - it('should create an instance', function () { + + it('should create an instance', function() { var w = new TxProposals({ networkName: config.networkName }); @@ -120,57 +123,60 @@ describe('TxProposals model', function() { w.network.name.should.equal('livenet'); }); - function createTx(toAddress, amountSatStr, utxos, opts, priv, pkr) { + var createTx = function(toAddress, amountSatStr, utxos, opts, priv, pkr) { opts = opts || {}; var amountSat = bitcore.bignum(amountSatStr); - if(! pkr.isComplete() ) { + if (!pkr.isComplete()) { throw new Error('publicKeyRing is not complete'); } if (!opts.remainderOut) { - opts.remainderOut ={ address: pkr.generateAddress(true).toString() }; + opts.remainderOut = { + address: pkr.generateAddress(true).toString() + }; }; var b = new Builder(opts) - .setUnspent(utxos) - .setHashToScriptMap(pkr.getRedeemScriptMap()) - .setOutputs([{address: toAddress, amountSat: amountSat}]) - ; + .setUnspent(utxos) + .setHashToScriptMap(pkr.getRedeemScriptMap()) + .setOutputs([{ + address: toAddress, + amountSat: amountSat + }]); - var signRet; + var signRet; if (priv) { - b.sign( priv.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex()) ); + b.sign(priv.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex())); } var me = {}; if (priv) me[priv.id] = Date.now(); return { signedBy: priv && b.signaturesAdded ? me : {}, - seenBy: priv ? me : {}, + seenBy: priv ? me : {}, builder: b, }; }; - it('#getUsedUnspend', function () { + it('#getUsedUnspend', function() { var priv = new PrivateKey(config); var w = new TxProposals({ networkName: config.networkName, }); var start = new Date().getTime(); - var pkr=createPKR([priv]); + var pkr = createPKR([priv]); var ts = Date.now(); - var isChange=0; - var index=0; - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + var isChange = 0; + var index = 0; + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', - unspentTest, - {}, + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', + unspentTest, {}, priv, pkr )); @@ -180,24 +186,23 @@ describe('TxProposals model', function() { uuk[0].split(',')[0].should.equal(unspentTest[0].txid); }); - it('#merge with self', function () { + it('#merge with self', function() { var priv = new PrivateKey(config); var w = new TxProposals({ networkName: config.networkName, }); var start = new Date().getTime(); - var pkr=createPKR([priv]); + var pkr = createPKR([priv]); var ts = Date.now(); - var isChange=0; - var index=0; + var isChange = 0; + var index = 0; - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', - unspentTest, - {}, + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', + unspentTest, {}, priv, pkr )); @@ -221,24 +226,28 @@ describe('TxProposals model', function() { - it('#merge, merge signatures case 1', function () { + it('#merge, merge signatures case 1', function() { var priv2 = new PrivateKey(config); var priv = new PrivateKey(config); var ts = Date.now(); - var isChange=0; - var index=0; + var isChange = 0; + var index = 0; var pkr = createPKR([priv]); - var opts = {remainderOut: { address: pkr.generateAddress(true).toString() }}; + var opts = { + remainderOut: { + address: pkr.generateAddress(true).toString() + } + }; var w = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv2, @@ -258,11 +267,11 @@ describe('TxProposals model', function() { networkName: config.networkName, publicKeyRing: w.publicKeyRing, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w2.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv, @@ -285,61 +294,69 @@ describe('TxProposals model', function() { tx.countInputMissingSignatures(0).should.equal(2); (w.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); (w.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); - + }); -var _dumpChunks = function (scriptSig, label) { - console.log('## DUMP: ' + label + ' ##'); - for(var i=0; i 0).should.equal(true); + console.log('8 should'); (w2.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); w.merge(w2); + console.log('9 should'); Object.keys(w.txps).length.should.equal(1); tx = w.txps[k].builder.build(); + console.log('10 should'); tx.isComplete().should.equal(false); + console.log('11 should'); tx.countInputMissingSignatures(0).should.equal(2); + console.log('12 should'); (w.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); + console.log('13 should'); (w.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); @@ -367,57 +393,72 @@ var _dumpChunks = function (scriptSig, label) { networkName: config.networkName, publicKeyRing: pkr, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w3.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv2, pkr )); tx = w3.txps[k].builder.build(); + console.log('14 should'); tx.isComplete().should.equal(false); + console.log('15 should'); tx.countInputMissingSignatures(0).should.equal(2); + console.log('16 should'); (w3.txps[k].signedBy[priv2.id] - ts > 0).should.equal(true); + console.log('17 should'); (w3.txps[k].seenBy[priv2.id] - ts > 0).should.equal(true); w.merge(w3); + console.log('18 should'); Object.keys(w.txps).length.should.equal(1); + console.log('19 should'); (w.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); + console.log('20 should'); (w.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); + console.log('21 should'); (w.txps[k].signedBy[priv2.id] - ts > 0).should.equal(true); + console.log('22 should'); (w.txps[k].seenBy[priv2.id] - ts > 0).should.equal(true); tx = w.txps[k].builder.build(); + console.log('23 should'); tx.isComplete().should.equal(false); + console.log('24 should'); tx.countInputMissingSignatures(0).should.equal(1); }); - it('#merge, merge signatures case 3', function () { + it('#merge, merge signatures case 3', function() { var priv = new PrivateKey(config); var priv2 = new PrivateKey(config); var priv3 = new PrivateKey(config); - var ts = Date.now(); - var isChange=0; - var index=0; - var pkr = createPKR([priv, priv2, priv3]); - var opts = {remainderOut: { address: pkr.generateAddress(true).toString() }}; + var ts = Date.now(); + var isChange = 0; + var index = 0; + var pkr = createPKR([priv, priv2, priv3]); + var opts = { + remainderOut: { + address: pkr.generateAddress(true).toString() + } + }; var w = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv, @@ -434,11 +475,11 @@ var _dumpChunks = function (scriptSig, label) { var w2 = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w2.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv2, @@ -454,11 +495,11 @@ var _dumpChunks = function (scriptSig, label) { var w3 = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w3.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', unspentTest, opts, priv3, @@ -496,7 +537,7 @@ var _dumpChunks = function (scriptSig, label) { - it('#toObj #fromObj roundtrip', function () { + it('#toObj #fromObj roundtrip', function() { var priv = new PrivateKey(config); var pkr = createPKR([priv]); @@ -505,16 +546,15 @@ var _dumpChunks = function (scriptSig, label) { networkName: config.networkName, }); var ts = Date.now(); - var isChange=0; - var index=0; + var isChange = 0; + var index = 0; - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + unspentTest[0].address = pkr.getAddress(index, isChange).toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( - '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', - '123456789', - unspentTest, - {}, + '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', + '123456789', + unspentTest, {}, priv, pkr )); @@ -545,7 +585,7 @@ var _dumpChunks = function (scriptSig, label) { (w2.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); should.exist(w2.txps[k].builder); should.exist(w2.txps[k].builder.valueInSat); - + w2.merge(w); Object.keys(w2.txps).length.should.equal(1); }); From a5cef11e475f211d340df54c380c293c2ff2eeb0 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Wed, 11 Jun 2014 11:22:48 -0300 Subject: [PATCH 2/4] trying to fix failing test --- test/test.TxProposals.js | 52 +++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js index 7c3c945fe..52034627e 100644 --- a/test/test.TxProposals.js +++ b/test/test.TxProposals.js @@ -23,7 +23,7 @@ var PublicKeyRing = is_browser ? copay.PublicKeyRing : var is_browser = (typeof process.versions === 'undefined') var config = { - networkName: 'livenet', + networkName: 'testnet', }; var unspentTest = [{ @@ -40,20 +40,13 @@ var createPKR = function(bip32s) { should.exist(w); for (var i = 0; i < 5; i++) { - if (bip32s) { + if (bip32s && i < bip32s.length) { var b = bip32s[i]; - w.addCopayer(b ? b.deriveBIP45Branch().extendedPublicKeyString() : null); - } else + w.addCopayer(b.deriveBIP45Branch().extendedPublicKeyString()); + } else { w.addCopayer(); + } } - w.generateAddress(true); - w.generateAddress(true); - w.generateAddress(true); - w.generateAddress(false); - w.generateAddress(false); - w.generateAddress(false); - //3x3 indexes - return w; }; @@ -149,6 +142,7 @@ describe('TxProposals model', function() { var signRet; if (priv) { b.sign(priv.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex())); + console.log('signed with priv'); } var me = {}; if (priv) me[priv.id] = Date.now(); @@ -316,15 +310,18 @@ describe('TxProposals model', function() { var pkr = createPKR([priv, priv2]); var opts = { remainderOut: { - address: pkr.generateAddress(true).toString() + address: '2MxK2m7cPtEwjZBB8Ksq7ppjkgJyFPJGemr' } }; + var addressToSign = pkr.generateAddress(false); + unspentTest[0].address = addressToSign.toString(); + unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); + var tx, txb; + /* var w = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w.add(createTx( '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', @@ -336,7 +333,11 @@ describe('TxProposals model', function() { )); var ntxid = Object.keys(w.txps)[0]; - var tx = w.txps[ntxid].builder.build(); + txb = w.txps[ntxid].builder; + console.log('new should A'); + txb.signaturesAdded.should.equal(0); + tx = txb.build(); + console.log('first should'); tx.isComplete().should.equal(false); console.log('2 should'); @@ -346,14 +347,12 @@ describe('TxProposals model', function() { Object.keys(w.txps[ntxid].signedBy).length.should.equal(0); console.log('4 should'); Object.keys(w.txps[ntxid].seenBy).length.should.equal(1); - + */ var w2 = new TxProposals({ networkName: config.networkName, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w2.add(createTx( '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', '123456789', @@ -362,17 +361,22 @@ describe('TxProposals model', function() { priv, pkr )); - var k = Object.keys(w2.txps)[0]; - tx = w2.txps[k].builder.build(); + var ntxid = Object.keys(w2.txps)[0]; + txb = w2.txps[ntxid].builder; + tx = txb.build(); + + console.log('new should B'); + txb.signaturesAdded.should.equal(1); console.log('5 should'); tx.isComplete().should.equal(false); console.log('6 should'); tx.countInputMissingSignatures(0).should.equal(2); + return; console.log('7 should'); - (w2.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); + (w2.txps[ntxid].signedBy[priv.id] - ts > 0).should.equal(true); console.log('8 should'); - (w2.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); + (w2.txps[ntxid].seenBy[priv.id] - ts > 0).should.equal(true); w.merge(w2); console.log('9 should'); @@ -393,8 +397,6 @@ describe('TxProposals model', function() { networkName: config.networkName, publicKeyRing: pkr, }); - unspentTest[0].address = pkr.getAddress(index, isChange).toString(); - unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); w3.add(createTx( '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', '123456789', From 322a793b6286c50dcd96bf92731a77b786e9e5c8 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Thu, 12 Jun 2014 14:27:53 -0300 Subject: [PATCH 3/4] trying to fix tests --- js/models/blockchain/Insight.js | 3 -- js/models/core/PrivateKey.js | 3 +- js/models/core/PublicKeyRing.js | 1 + js/models/core/Wallet.js | 2 +- test/test.TxProposals.js | 78 +++++++++++++-------------------- 5 files changed, 35 insertions(+), 52 deletions(-) diff --git a/js/models/blockchain/Insight.js b/js/models/blockchain/Insight.js index d5692ac51..92f31bc47 100644 --- a/js/models/blockchain/Insight.js +++ b/js/models/blockchain/Insight.js @@ -182,7 +182,6 @@ Insight.prototype._request = function(options, callback) { request.open(options.method, url, true); request.timeout = 5000; request.ontimeout = function() { - console.log('Insight timeout...retrying'); setTimeout(function() { return self._request(options,callback); }, self.retryDelay); @@ -206,9 +205,7 @@ Insight.prototype._request = function(options, callback) { else { var err= 'Error code: ' + request.status + ' - Status: ' + request.statusText + ' - Description: ' + request.responseText; - console.log('Insight Temporary error (will retry):', err); setTimeout(function() { - console.log('### Retrying Insight Request....'); //TODO return self._request(options,callback); }, self.retryDelay); return callback(new Error(err)); diff --git a/js/models/core/PrivateKey.js b/js/models/core/PrivateKey.js index 7475f9146..1efe93694 100644 --- a/js/models/core/PrivateKey.js +++ b/js/models/core/PrivateKey.js @@ -58,7 +58,8 @@ PrivateKey.prototype._getHK = function(path) { if (typeof path === 'undefined') { return this.bip; } - return this.bip.derive(path); + var ret = this.bip.derive(path); + return ret; }; PrivateKey.prototype.getForPaths = function(paths) { diff --git a/js/models/core/PublicKeyRing.js b/js/models/core/PublicKeyRing.js index f449158cc..bc3148606 100644 --- a/js/models/core/PublicKeyRing.js +++ b/js/models/core/PublicKeyRing.js @@ -151,6 +151,7 @@ PublicKeyRing.prototype.getPubKeys = function(index, isChange) { pubKeys = pubKeys.map(function(s){return new Buffer(s,'hex');}); } + return pubKeys; }; diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index e6d45201c..9f20ea35e 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -92,7 +92,7 @@ Wallet.prototype._handlePublicKeyRing = function(senderId, data, isInbound) { try{ hasChanged = this.publicKeyRing.merge(inPKR, true); } catch (e){ - console.log('## WALLET ERROR', e); //TODO + this.log('## WALLET ERROR', e); //TODO this.emit('connectionError', e.message); return; } diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js index 52034627e..bf459ca01 100644 --- a/test/test.TxProposals.js +++ b/test/test.TxProposals.js @@ -141,8 +141,8 @@ describe('TxProposals model', function() { var signRet; if (priv) { - b.sign(priv.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex())); - console.log('signed with priv'); + var pkeys = priv.getAll(pkr.indexes.getReceiveIndex(), pkr.indexes.getChangeIndex()); + b.sign(pkeys); } var me = {}; if (priv) me[priv.id] = Date.now(); @@ -299,11 +299,23 @@ describe('TxProposals model', function() { }; - it.only('#merge, merge signatures case 2', function() { + it('#merge, merge signatures case 2', function() { + + var o1 ={ extendedPrivateKeyString: 'tprv8ZgxMBicQKsPdSF1avR6mXyDj5Uv1XY2UyUHSDpAXQ5TvPN7prGeDppjy4562rBB9gMMAhRfFdJrNDpQ4t69kkqHNEEen3PX1zBJqSehJDH', + networkName: 'testnet', + privateKeyCache: {} }; + var o2 ={ extendedPrivateKeyString: 'tprv8ZgxMBicQKsPdVeB5RzuxS9JQcACueZYgUaM5eWzaEBkHjW5Pg6Mqez1APSqoUP1jUdbT8WVG7ZJYTXvUL7XtPzFYBXjmdKuwSor1dcNQ8j', + networkName: 'testnet', + privateKeyCache: {} }; + var o3 ={ extendedPrivateKeyString: 'tprv8ZgxMBicQKsPeHWNrPVZtQVgcCtXBr5TACNbDQ56rwqNJce9MEc64US6DJKxpWsrebEomxxWZFDtkvkZGkzA43uLvdF4XHiWqoNaL6Dq2Gd', + networkName: 'testnet', + privateKeyCache: {} }; + + + var priv = PrivateKey.fromObj(o1); + var priv2 = PrivateKey.fromObj(o2); + var priv3 = PrivateKey.fromObj(o3); - var priv = new PrivateKey(config); - var priv2 = new PrivateKey(config); - var priv3 = new PrivateKey(config); var ts = Date.now(); var isChange = 0; var index = 0; @@ -318,7 +330,6 @@ describe('TxProposals model', function() { unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange); var tx, txb; - /* var w = new TxProposals({ networkName: config.networkName, }); @@ -334,25 +345,21 @@ describe('TxProposals model', function() { var ntxid = Object.keys(w.txps)[0]; txb = w.txps[ntxid].builder; - console.log('new should A'); txb.signaturesAdded.should.equal(0); tx = txb.build(); - console.log('first should'); tx.isComplete().should.equal(false); - console.log('2 should'); tx.countInputMissingSignatures(0).should.equal(1); - console.log('3 should'); Object.keys(w.txps[ntxid].signedBy).length.should.equal(0); - console.log('4 should'); Object.keys(w.txps[ntxid].seenBy).length.should.equal(1); - */ var w2 = new TxProposals({ networkName: config.networkName, }); + + w2.add(createTx( '15q6HKjWHAksHcH91JW23BJEuzZgFwydBt', '123456789', @@ -365,32 +372,21 @@ describe('TxProposals model', function() { txb = w2.txps[ntxid].builder; tx = txb.build(); - console.log('new should B'); txb.signaturesAdded.should.equal(1); - console.log('5 should'); tx.isComplete().should.equal(false); - console.log('6 should'); tx.countInputMissingSignatures(0).should.equal(2); - return; - console.log('7 should'); (w2.txps[ntxid].signedBy[priv.id] - ts > 0).should.equal(true); - console.log('8 should'); (w2.txps[ntxid].seenBy[priv.id] - ts > 0).should.equal(true); w.merge(w2); - console.log('9 should'); Object.keys(w.txps).length.should.equal(1); - tx = w.txps[k].builder.build(); - console.log('10 should'); + tx = w.txps[ntxid].builder.build(); tx.isComplete().should.equal(false); - console.log('11 should'); tx.countInputMissingSignatures(0).should.equal(2); - console.log('12 should'); - (w.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); - console.log('13 should'); - (w.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); + (w.txps[ntxid].signedBy[priv.id] - ts > 0).should.equal(true); + (w.txps[ntxid].seenBy[priv.id] - ts > 0).should.equal(true); var w3 = new TxProposals({ @@ -405,36 +401,24 @@ describe('TxProposals model', function() { priv2, pkr )); - tx = w3.txps[k].builder.build(); - console.log('14 should'); + tx = w3.txps[ntxid].builder.build(); tx.isComplete().should.equal(false); - console.log('15 should'); tx.countInputMissingSignatures(0).should.equal(2); - console.log('16 should'); - (w3.txps[k].signedBy[priv2.id] - ts > 0).should.equal(true); - console.log('17 should'); - (w3.txps[k].seenBy[priv2.id] - ts > 0).should.equal(true); + (w3.txps[ntxid].signedBy[priv2.id] - ts > 0).should.equal(true); + (w3.txps[ntxid].seenBy[priv2.id] - ts > 0).should.equal(true); w.merge(w3); - console.log('18 should'); Object.keys(w.txps).length.should.equal(1); - console.log('19 should'); - (w.txps[k].signedBy[priv.id] - ts > 0).should.equal(true); - console.log('20 should'); - (w.txps[k].seenBy[priv.id] - ts > 0).should.equal(true); - console.log('21 should'); - (w.txps[k].signedBy[priv2.id] - ts > 0).should.equal(true); - console.log('22 should'); - (w.txps[k].seenBy[priv2.id] - ts > 0).should.equal(true); + (w.txps[ntxid].signedBy[priv.id] - ts > 0).should.equal(true); + (w.txps[ntxid].seenBy[priv.id] - ts > 0).should.equal(true); + (w.txps[ntxid].signedBy[priv2.id] - ts > 0).should.equal(true); + (w.txps[ntxid].seenBy[priv2.id] - ts > 0).should.equal(true); - tx = w.txps[k].builder.build(); - console.log('23 should'); + tx = w.txps[ntxid].builder.build(); tx.isComplete().should.equal(false); - console.log('24 should'); tx.countInputMissingSignatures(0).should.equal(1); - }); From 2bec53135c3a571ab32ab052a65a73bc2e0dc588 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Thu, 12 Jun 2014 14:34:32 -0300 Subject: [PATCH 4/4] fix older tests --- test/test.TxProposals.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/test.TxProposals.js b/test/test.TxProposals.js index bf459ca01..b2aae9f3b 100644 --- a/test/test.TxProposals.js +++ b/test/test.TxProposals.js @@ -47,6 +47,13 @@ var createPKR = function(bip32s) { w.addCopayer(); } } + w.generateAddress(false); + w.generateAddress(false); + w.generateAddress(false); + w.generateAddress(true); + w.generateAddress(true); + w.generateAddress(true); + return w; }; @@ -113,7 +120,7 @@ describe('TxProposals model', function() { networkName: config.networkName }); should.exist(w); - w.network.name.should.equal('livenet'); + w.network.name.should.equal(config.networkName); }); var createTx = function(toAddress, amountSatStr, utxos, opts, priv, pkr) {