Tidied up third party data from BIP70 Payment Protocol.

This commit is contained in:
Brendon Duncan 2018-08-06 20:31:06 +12:00
commit f1f8f6e0f5
5 changed files with 22 additions and 17 deletions

View file

@ -470,7 +470,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory,
amount: useSendMax ? undefined : satoshis, amount: useSendMax ? undefined : satoshis,
fromWalletId: passthroughParams.fromWalletId, fromWalletId: passthroughParams.fromWalletId,
sendMax: useSendMax, sendMax: useSendMax,
toAddr: passthroughParams.toAddress, toAddress: passthroughParams.toAddress,
toWalletId: passthroughParams.toWalletId toWalletId: passthroughParams.toWalletId
}; };

View file

@ -67,7 +67,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit
defaults = configService.getDefaults(); defaults = configService.getDefaults();
originWalletId = data.stateParams.fromWalletId; originWalletId = data.stateParams.fromWalletId;
satoshis = parseInt(data.stateParams.amount, 10); satoshis = parseInt(data.stateParams.amount, 10);
toAddress = data.stateParams.toAddr; toAddress = data.stateParams.toAddress;
vm.originWallet = profileService.getWallet(originWalletId); vm.originWallet = profileService.getWallet(originWalletId);
vm.origin.currency = vm.originWallet.coin.toUpperCase(); vm.origin.currency = vm.originWallet.coin.toUpperCase();
@ -218,7 +218,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit
amount: parseInt(data.stateParams.amount), amount: parseInt(data.stateParams.amount),
sendMax: data.stateParams.sendMax === 'true' ? true : false, sendMax: data.stateParams.sendMax === 'true' ? true : false,
fromWalletId: data.stateParams.fromWalletId, fromWalletId: data.stateParams.fromWalletId,
toAddress: data.stateParams.toAddr, toAddress: data.stateParams.toAddress,
feeLevel: configFeeLevel, feeLevel: configFeeLevel,
spendUnconfirmed: config.wallet.spendUnconfirmed, spendUnconfirmed: config.wallet.spendUnconfirmed,

View file

@ -4,7 +4,6 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
var fromWalletId = ''; var fromWalletId = '';
var priceDisplayAsFiat = false; var priceDisplayAsFiat = false;
var requestedSatoshis = 0;
var unitDecimals = 0; var unitDecimals = 0;
var unitsFromSatoshis = 0; var unitsFromSatoshis = 0;
@ -39,8 +38,6 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
if ($scope.params.amount) { // There is an amount, so presume that it is a payment request if ($scope.params.amount) { // There is an amount, so presume that it is a payment request
$scope.sendFlowTitle = gettextCatalog.getString('Payment Request'); $scope.sendFlowTitle = gettextCatalog.getString('Payment Request');
$scope.specificAmount = $scope.specificAlternativeAmount = ''; $scope.specificAmount = $scope.specificAlternativeAmount = '';
//requestedAmountCrypto = (($state.params.amount) * (1 / config.unitToSatoshi)).toFixed(config.unitDecimals);
requestedSatoshis = $state.params.amount;
$scope.isPaymentRequest = true; $scope.isPaymentRequest = true;
} }
if ($scope.params.thirdParty) { if ($scope.params.thirdParty) {
@ -64,11 +61,11 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
}); });
function formatRequestedAmount() { function formatRequestedAmount() {
if (requestedSatoshis) { if ($scope.params.amount) {
var cryptoAmount = (unitsFromSatoshis * requestedSatoshis).toFixed(unitDecimals); var cryptoAmount = (unitsFromSatoshis * $scope.params.amount).toFixed(unitDecimals);
var cryptoCoin = $scope.coin.toUpperCase(); var cryptoCoin = $scope.coin.toUpperCase();
txFormatService.formatAlternativeStr($scope.coin, requestedSatoshis, function onFormatAlternativeStr(formatted){ txFormatService.formatAlternativeStr($scope.coin, $scope.params.amount, function onFormatAlternativeStr(formatted){
if (formatted) { if (formatted) {
var fiatParts = formatted.split(' '); var fiatParts = formatted.split(' ');
var fiatAmount = fiatParts[0]; var fiatAmount = fiatParts[0];
@ -107,12 +104,9 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu
function handleThirdPartyIfBip70PaymentProtocol() { function handleThirdPartyIfBip70PaymentProtocol() {
if ($scope.thirdParty.id === 'bip70PaymentProtocol') { if ($scope.thirdParty.id === 'bip70PaymentProtocol') {
requestedSatoshis = $scope.thirdParty.details.amount;
$scope.coin = $scope.thirdParty.coin; $scope.coin = $scope.thirdParty.coin;
$scope.requestAmount = unitsFromSatoshis * requestedSatoshis; $scope.requestAmount = unitsFromSatoshis * $scope.params.amount;
$scope.params.amount = requestedSatoshis; console.log('paypro details:', $scope.thirdParty);
$scope.params.toAddr = $scope.thirdParty.details.toAddress;
console.log('paypro details:', $scope.thirdParty.details);
} }
} }

View file

@ -345,7 +345,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
} }
}) })
.state('tabs.send.review', { .state('tabs.send.review', {
url: '/review/:thirdParty/:amount/:fromWalletId/:sendMax/:toAddr/:toWalletId', url: '/review/:thirdParty/:amount/:fromWalletId/:sendMax/:toAddress/:toWalletId',
views: { views: {
'tab-send@tabs': { 'tab-send@tabs': {
controller: 'reviewController', controller: 'reviewController',

View file

@ -421,9 +421,20 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
function handlePayPro(payProDetails, coin) { function handlePayPro(payProDetails, coin) {
var thirdPartyData = { var thirdPartyData = {
id: 'bip70PaymentProtocol', caName: payProDetails.caName,
caTrusted: payProDetails.caTrusted,
coin: coin, coin: coin,
details: payProDetails domain: payProDetails.domain,
expires: payProDetails.expires,
id: 'bip70PaymentProtocol',
memo: payProDetails.memo,
merchant_data: payProDetails.merchant_data,
network: payProDetails.network,
requiredFeeRate: payProDetails.requiredFeeRate,
selfSigned: payProDetails.selfSigned,
time: payProDetails.time,
url: payProDetails.url,
verified: payProDetails.verified
}; };
var stateParams = { var stateParams = {
amount: payProDetails.amount, amount: payProDetails.amount,