From 8e86826b68f2274cbabac813ccb86d322c1e0bba Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Wed, 13 Aug 2014 20:51:33 -0400 Subject: [PATCH] paypro: even better notification when user has insufficient funds. --- js/controllers/send.js | 9 +++++++-- js/models/core/Wallet.js | 12 +++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/js/controllers/send.js b/js/controllers/send.js index 577ab2579..1bbbf0270 100644 --- a/js/controllers/send.js +++ b/js/controllers/send.js @@ -425,12 +425,17 @@ angular.module('copayApp.controllers').controller('SendController', if (merchantData && available < +merchantData.total) { err = new Error('No unspent outputs available.'); - scope.notEnoughAmount = true; - scope.sendForm.amount.$isValid = false; + err.amount = merchantData.total; } if (err) { scope.sendForm.address.$isValid = false; + if (err.amount) { + scope.sendForm.amount.$setViewValue(+err.amount / config.unitToSatoshi); + scope.sendForm.amount.$render(); + scope.sendForm.amount.$isValid = false; + scope.notEnoughAmount = true; + } notification.error('Error', err.message || 'Bad payment server.'); if ($rootScope.$$phase !== '$apply' && $rootScope.$$phase !== '$digest') { $rootScope.$apply(); diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 7b3a9d916..e1cf67666 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -932,7 +932,17 @@ Wallet.prototype.receivePaymentRequest = function(options, pr, cb) { if (!unspent || !unspent.length) { return cb(new Error('No unspent outputs available.')); } - self.createPaymentTxSync(options, merchantData, unspent); + try { + self.createPaymentTxSync(options, merchantData, unspent); + } catch (e) { + var msg = e.message || ''; + if (msg.indexOf('not enough unspent tx outputs to fulfill')) { + var sat = /(\d+)/.exec(msg)[1]; + e = new Error('No unspent outputs available.'); + e.amount = sat; + return cb(e); + } + } return cb(null, merchantData, pr); }