diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js
index 74b86e623..b57d2ca08 100644
--- a/src/js/controllers/confirm.js
+++ b/src/js/controllers/confirm.js
@@ -10,16 +10,10 @@ angular.module('copayApp.controllers').controller('confirmController', function(
// Config Related values
var config = configService.getSync();
var walletConfig = config.wallet;
- var unitToSatoshi = walletConfig.settings.unitToSatoshi;
- var unitDecimals = walletConfig.settings.unitDecimals;
- var satToUnit = 1 / unitToSatoshi;
var configFeeLevel = walletConfig.settings.feeLevel ? walletConfig.settings.feeLevel : 'normal';
-
// Platform info
- var isChromeApp = platformInfo.isChromeApp;
var isCordova = platformInfo.isCordova;
- var isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP;
//custom fee flag
var usingCustomFee = false;
@@ -31,7 +25,6 @@ angular.module('copayApp.controllers').controller('confirmController', function(
}, 10);
}
-
$scope.showWalletSelector = function() {
$scope.walletSelector = true;
refresh();
@@ -45,7 +38,6 @@ angular.module('copayApp.controllers').controller('confirmController', function(
$ionicConfig.views.swipeBackEnabled(false);
});
-
function exitWithError(err) {
$log.info('Error setting wallet selector:' + err);
popupService.showAlert(gettextCatalog.getString(), bwcError.msg(err), function() {
@@ -125,49 +117,8 @@ angular.module('copayApp.controllers').controller('confirmController', function(
});
};
$scope.$on("$ionicView.beforeEnter", function(event, data) {
- // Setup $scope
+ $scope.fromWallet = profileService.getWallet(data.stateParams.fromWalletId); // Wallet to send from
- var B = data.stateParams.coin == 'bch' ? bitcoreCash : bitcore;
- var networkName;
- $scope.fromWallet = profileService.getWallet(data.stateParams.fromWalletId);
- $scope.recipientType = null;
-
- try {
- if (data.stateParams.toWalletId) {
- $scope.recipientType = 'wallet'; // set type to wallet-to-wallet
- $ionicLoading.show();
- var wallet = profileService.getWallet(data.stateParams.toWalletId);
- walletService.getAddress(wallet, true, function (err, addr) {
- $ionicLoading.hide();
- data.stateParams.toAddress = addr;
- networkName = (new B.Address(data.stateParams.toAddress)).network.name;
- vanityTx(networkName, data);
- });
- } else if (data.stateParams.toAddress) {
- networkName = (new B.Address(data.stateParams.toAddress)).network.name;
- vanityTx(networkName, data);
- }
- } catch (e) {
- var message = gettextCatalog.getString('Invalid address');
- var backText = gettextCatalog.getString('Go back');
- var learnText = gettextCatalog.getString('Learn more');
- popupService.showConfirm(null, message, backText, learnText, function (back) {
- $ionicHistory.nextViewOptions({
- disableAnimate: true,
- historyRoot: true
- });
- $state.go('tabs.send').then(function () {
- $ionicHistory.clearHistory();
- if (!back) {
- var url = 'https://support.bitpay.com/hc/en-us/articles/115004671663';
- externalLinkService.open(url);
- }
- });
- });
- return;
- }
- });
- var vanityTx = function(networkName, data) {
// Grab stateParams
tx = {
amount: parseInt(data.stateParams.amount),
@@ -179,10 +130,10 @@ angular.module('copayApp.controllers').controller('confirmController', function(
// Vanity tx info (not in the real tx)
recipientType: $scope.recipientType || null,
- toName: data.stateParams.toName,
- toEmail: data.stateParams.toEmail,
- toColor: data.stateParams.toColor,
- network: networkName,
+ toName: null,
+ toEmail: null,
+ toColor: null,
+ network: false,
coin: $scope.fromWallet.coin,
txp: {},
};
@@ -192,10 +143,52 @@ angular.module('copayApp.controllers').controller('confirmController', function(
tx.feeRate = parseInt(data.stateParams.requiredFeeRate);
}
- if (tx.coin && tx.coin == 'bch') {
+ if (tx.coin && tx.coin === 'bch') {
tx.feeLevel = 'normal';
}
+ var B = data.stateParams.coin === 'bch' ? bitcoreCash : bitcore;
+ var networkName;
+ $scope.recipientType = null;
+ try {
+ if (data.stateParams.toWalletId) { // There is a toWalletId, so we presume this is a wallet-to-wallet transfer
+ $scope.recipientType = 'wallet'; // set transaction type to wallet-to-wallet
+ $ionicLoading.show();
+
+ var toWallet = profileService.getWallet(data.stateParams.toWalletId);
+ tx.toColor = toWallet.color;
+ tx.toName = toWallet.name;
+
+ // We need an address to send to, so we ask the walletService to create a new address for the toWallet.
+ walletService.getAddress(toWallet, true, function (err, addr) {
+ $ionicLoading.hide();
+ tx.toAddress = addr;
+ networkName = (new B.Address(tx.toAddress)).network.name;
+ tx.network = networkName;
+ setupTx(tx);
+ });
+ } else { // This is a Wallet-to-address transfer
+ networkName = (new B.Address(tx.toAddress)).network.name;
+ tx.network = networkName;
+ setupTx(tx);
+ }
+ } catch (e) {
+ var message = gettextCatalog.getString('Invalid address');
+ popupService.showAlert(null, message, function () {
+ $ionicHistory.nextViewOptions({
+ disableAnimate: true,
+ historyRoot: true
+ });
+ $state.go('tabs.send').then(function () {
+ $ionicHistory.clearHistory();
+ });
+ });
+ return;
+ }
+ });
+
+ var setupTx = function(networkName, data) {
+
// Other Scope vars
$scope.isCordova = isCordova;
$scope.showAddress = false;
@@ -410,19 +403,19 @@ angular.module('copayApp.controllers').controller('confirmController', function(
function setButtonText(isMultisig, isPayPro) {
if (isPayPro) {
- if (isCordova && !isWindowsPhoneApp) {
+ if (isCordova) {
$scope.buttonText = gettextCatalog.getString('Slide to pay');
} else {
$scope.buttonText = gettextCatalog.getString('Click to pay');
}
} else if (isMultisig) {
- if (isCordova && !isWindowsPhoneApp) {
+ if (isCordova) {
$scope.buttonText = gettextCatalog.getString('Slide to accept');
} else {
$scope.buttonText = gettextCatalog.getString('Click to accept');
}
} else {
- if (isCordova && !isWindowsPhoneApp) {
+ if (isCordova) {
$scope.buttonText = gettextCatalog.getString('Slide to send');
} else {
$scope.buttonText = gettextCatalog.getString('Click to send');
diff --git a/www/views/confirm.html b/www/views/confirm.html
index e54837f34..1def16389 100644
--- a/www/views/confirm.html
+++ b/www/views/confirm.html
@@ -105,13 +105,13 @@
{{buttonText}}
diff --git a/www/views/wallet-origin-destination.html b/www/views/wallet-origin-destination.html
index 66f5852ad..32ac73e59 100644
--- a/www/views/wallet-origin-destination.html
+++ b/www/views/wallet-origin-destination.html
@@ -1,6 +1,7 @@
{{'Wallet to wallet transfer' | translate}}
+