From 17f3402dab2c708994e7d56fdb95c470b387e80f Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Wed, 6 Aug 2014 17:17:01 -0700 Subject: [PATCH] Revert "Revert "paypro: prepare for txp refactor. will stay reverted until #1001 is merged."" This reverts commit 6fcd27b3ea0f7aa1ef7985560ca917393510c65e. --- js/controllers/send.js | 2 +- js/models/core/Wallet.js | 23 ++++++++++------------- test/test.PayPro.js | 10 +++++----- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/js/controllers/send.js b/js/controllers/send.js index 30f4a9b58..7f5f15a89 100644 --- a/js/controllers/send.js +++ b/js/controllers/send.js @@ -63,7 +63,7 @@ angular.module('copayApp.controllers').controller('SendController', function done(ntxid, merchantData) { if (merchantData && +merchantData.total === 0) { - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); txp.builder.tx.outs[0].v = bitcore.Bignum(amount + '', 10).toBuffer({ endian: 'little', size: 1 diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 15e39040a..98664efcd 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -965,7 +965,7 @@ Wallet.prototype.sendPaymentTx = function(ntxid, options, cb) { options = {}; } - var txp = this.txProposals.txps[ntxid]; + var txp = this.txProposals.get(ntxid); if (!txp) return; var tx = txp.builder.build(); @@ -1190,10 +1190,8 @@ Wallet.prototype.createPaymentTxSync = function(options, merchantData, unspent) b = b.setHashToScriptMap(pkr.getRedeemScriptMap(inputChainPaths)); - if (priv) { - var keys = priv.getForPaths(inputChainPaths); - var signed = b.sign(keys); - } + var keys = priv.getForPaths(inputChainPaths); + var signed = b.sign(keys); if (options.fetch) return; @@ -1205,15 +1203,16 @@ Wallet.prototype.createPaymentTxSync = function(options, merchantData, unspent) var myId = this.getMyCopayerId(); var now = Date.now(); - var me = {}; - var tx = b.build(); - if (priv && tx.countInputSignatures(0)) me[myId] = now; + if (!tx.countInputSignatures(0)) + throw new Error('Could not sign generated tx'); + var me = {}; + me[myId] = now; var meSeen = {}; if (priv) meSeen[myId] = now; - var data = { + var ntxid = this.txProposals.add(new TxProposal({ inputChainPaths: inputChainPaths, signedBy: me, seenBy: meSeen, @@ -1222,9 +1221,7 @@ Wallet.prototype.createPaymentTxSync = function(options, merchantData, unspent) builder: b, comment: options.memo, merchant: merchantData - }; - - var ntxid = this.txProposals.add(data); + })); return ntxid; }; @@ -1236,7 +1233,7 @@ Wallet.prototype.verifyPaymentRequest = function(ntxid) { if (!ntxid) return false; var txp = typeof ntxid !== 'object' - ? this.txProposals.txps[ntxid] + ? this.txProposals.get(ntxid) : ntxid; // If we're not a payment protocol proposal, ignore. diff --git a/test/test.PayPro.js b/test/test.PayPro.js index e276eb079..962fab433 100644 --- a/test/test.PayPro.js +++ b/test/test.PayPro.js @@ -869,7 +869,7 @@ describe('PayPro (in Wallet) model', function() { merchantData.raw = pr.serialize().toString('hex'); var myId = w.getMyCopayerId(); - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); should.exist(txp); should.exist(txp.signedBy[myId]); should.not.exist(txp.rejectedBy[myId]); @@ -896,7 +896,7 @@ describe('PayPro (in Wallet) model', function() { amount.low = 2; var myId = w.getMyCopayerId(); - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); should.exist(txp); should.exist(txp.signedBy[myId]); should.not.exist(txp.rejectedBy[myId]); @@ -917,12 +917,12 @@ describe('PayPro (in Wallet) model', function() { should.exist(merchantData); // Tamper with payment request in its abstract form: - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); var tx = txp.builder.tx || txp.builder.build(); tx.outs[0].v = new Buffer([2, 0, 0, 0, 0, 0, 0, 0]); var myId = w.getMyCopayerId(); - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); should.exist(txp); should.exist(txp.signedBy[myId]); should.not.exist(txp.rejectedBy[myId]); @@ -943,7 +943,7 @@ describe('PayPro (in Wallet) model', function() { should.exist(merchantData); var myId = w.getMyCopayerId(); - var txp = w.txProposals.txps[ntxid]; + var txp = w.txProposals.get(ntxid); should.exist(txp); should.exist(txp.signedBy[myId]); should.not.exist(txp.rejectedBy[myId]);