diff --git a/app-template/bitcoincom/appConfig.json b/app-template/bitcoincom/appConfig.json index 084a586ce..4b3281f6e 100644 --- a/app-template/bitcoincom/appConfig.json +++ b/app-template/bitcoincom/appConfig.json @@ -24,9 +24,9 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "4.13.2", - "fullVersion": "4.13-rc3", - "androidVersion": "413200", + "version": "5.0.0", + "fullVersion": "5.0-rc1", + "androidVersion": "500000", "_extraCSS": "", "_enabledExtensions": { "coinbase": false, diff --git a/app-template/package-template.json b/app-template/package-template.json index 616658b92..8c2bd05d0 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -119,10 +119,10 @@ "run:android": "cordova run android --device", "run:android-release": "cordova run android --device --release", "log:android": "adb logcat | grep chromium", - "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../bitcoin-com-release-key.jks -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk bitcoin-com && $ANDROID_HOME/build-tools/27.0.1/zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", + "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../bitcoin-com-release-key.jks -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk bitcoin-com && zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", "apply:copay": "npm i fs-extra && cd app-template && node apply.js copay && npm i && cordova prepare", "apply:bitpay": "npm i fs-extra && cd app-template && node apply.js bitpay && npm i && cordova prepare", - "apply:bitcoincom": "npm i fs-extra && cd app-template && node apply.js bitcoincom && npm i && cordova prepare", + "apply:bitcoincom": "npm i fs-extra && cd app-template && node apply.js bitcoincom && npm i && cordova prepare && cd ../ && ./fix-asn1.sh", "test": "karma start test/karma.conf.js --single-run", "clean": "trash platforms && trash plugins && cordova prepare", "unstage-package": "git reset package.json", diff --git a/fix-asn1.sh b/fix-asn1.sh new file mode 100755 index 000000000..1dbca6a67 --- /dev/null +++ b/fix-asn1.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +firstLine=`awk 'NR < 2 {print}' node_modules/asn1.js-rfc5280/index.js` + +if [ "$firstLine" = "try {" ]; then + echo "var asn1 = require('asn1.js');" > node_modules/asn1.js-rfc5280/index.new.js + awk 'NR > 6 {print}' node_modules/asn1.js-rfc5280/index.js >> node_modules/asn1.js-rfc5280/index.new.js + rm node_modules/asn1.js-rfc5280/index.js + mv node_modules/asn1.js-rfc5280/index.new.js node_modules/asn1.js-rfc5280/index.js + echo "node_modules/asn1.js-rfc5280/index.js fixed" +fi \ No newline at end of file diff --git a/i18n/po/template.pot b/i18n/po/template.pot index 7caae0168..9c0e3bdc6 100644 --- a/i18n/po/template.pot +++ b/i18n/po/template.pot @@ -3160,7 +3160,7 @@ msgid "To start the process you need to add funds to your wallet." msgstr "" #: www/views/shapeshift.html:30 -msgid "he process is fast and you will receive the exchanged amount in your wallet." +msgid "The process is fast and you will receive the exchanged amount in your wallet." msgstr "" #: www/views/shapeshift.html:34 diff --git a/src/android/build-extras.gradle b/src/android/build-extras.gradle index dcc6df0ad..e7dd50572 100644 --- a/src/android/build-extras.gradle +++ b/src/android/build-extras.gradle @@ -1,21 +1,25 @@ +ext { + ANDROID_SUPPORT_V4_VERSION = '26.1.0' +} + configurations.all { - resolutionStrategy { - force "com.android.support:support-v4:26.1.0" - force "com.google.android.gms:play-services-auth:11.8.0" - force "com.google.android.gms:play-services-identity:11.8.0" - force "com.google.android.gms:play-services-ads:11.8.0" - force "com.google.android.gms:play-services-base:11.8.0" - force "com.google.android.gms:play-services-gcm:11.8.0" - force "com.google.android.gms:play-services-analytics:11.8.0" - force "com.google.android.gms:play-services-location:11.8.0" - force "com.google.android.gms:play-services-basement:11.8.0" - force "com.google.android.gms:play-services-tagmanager:11.8.0" - force 'com.google.firebase:firebase-core:11.8.0' - force 'com.google.firebase:firebase-crash:11.8.0' - force 'com.google.firebase:firebase-auth:11.8.0' - force 'com.google.firebase:firebase-common:11.8.0' - force 'com.google.firebase:firebase-config:11.8.0' - force 'com.google.firebase:firebase-perf:11.8.0' - force 'com.google.firebase:firebase-messaging:11.8.0' - } + resolutionStrategy { + force "com.android.support:support-v4:26.1.0" + force "com.google.android.gms:play-services-auth:11.8.0" + force "com.google.android.gms:play-services-identity:11.8.0" + force "com.google.android.gms:play-services-ads:11.8.0" + force "com.google.android.gms:play-services-base:11.8.0" + force "com.google.android.gms:play-services-gcm:11.8.0" + force "com.google.android.gms:play-services-analytics:11.8.0" + force "com.google.android.gms:play-services-location:11.8.0" + force "com.google.android.gms:play-services-basement:11.8.0" + force "com.google.android.gms:play-services-tagmanager:11.8.0" + force 'com.google.firebase:firebase-core:11.8.0' + force 'com.google.firebase:firebase-crash:11.8.0' + force 'com.google.firebase:firebase-auth:11.8.0' + force 'com.google.firebase:firebase-common:11.8.0' + force 'com.google.firebase:firebase-config:11.8.0' + force 'com.google.firebase:firebase-perf:11.8.0' + force 'com.google.firebase:firebase-messaging:11.8.0' + } } \ No newline at end of file diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index c2dcc6cd4..f796f9559 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -456,6 +456,7 @@ function amountController(configService, $filter, gettextCatalog, $ionicHistory, var confirmData = { amount: useSendMax ? undefined : satoshis, + displayAddress: passthroughParams.displayAddress, fromWalletId: passthroughParams.fromWalletId, sendMax: useSendMax, toAddress: passthroughParams.toAddress, diff --git a/src/js/controllers/review.controller.js b/src/js/controllers/review.controller.js index 788368e9e..b377bef58 100644 --- a/src/js/controllers/review.controller.js +++ b/src/js/controllers/review.controller.js @@ -19,6 +19,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit kind: '', // 'address', 'contact', 'wallet' name: '' }; + vm.displayAddress = ''; vm.feeCrypto = ''; vm.feeFiat = ''; vm.fiatCurrency = ''; @@ -56,10 +57,9 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit var sendFlowData; var config = null; - var countDown = null; - var defaults = {}; var coin = ''; var countDown = null; + var defaults = {}; var usingCustomFee = false; var usingMerchantFee = false; var destinationWalletId = ''; @@ -85,7 +85,8 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit satoshis = parseInt(sendFlowData.amount, 10); toAddress = sendFlowData.toAddress; destinationWalletId = sendFlowData.toWalletId; - + + vm.displayAddress = sendFlowData.displayAddress; vm.originWallet = profileService.getWallet(originWalletId); vm.origin.currency = vm.originWallet.coin.toUpperCase(); coin = vm.originWallet.coin; @@ -104,7 +105,7 @@ function reviewController(addressbookService, bitcoinCashJsService, bitcore, bit priceDisplayIsFiat = config.wallet.settings.priceDisplay === 'fiat'; vm.origin.currencyColor = (vm.originWallet.coin === 'btc' ? defaults.bitcoinWalletColor : defaults.bitcoinCashWalletColor); console.log("coin", vm.originWallet.coin, vm.origin.currencyColor, config.bitcoinWalletColor, vm.originWallet.coin === 'btc'); - unitFromSat = 1 / config.wallet.settings.unitToSatoshi; + unitFromSat = 1 / config.wallet.settings.unitToSatoshi; } updateSendAmounts(); getOriginWalletBalance(vm.originWallet); diff --git a/src/js/controllers/shapeshift.js b/src/js/controllers/shapeshift.js index 3538ebe1a..43e0790d1 100644 --- a/src/js/controllers/shapeshift.js +++ b/src/js/controllers/shapeshift.js @@ -4,6 +4,8 @@ angular.module('copayApp.controllers').controller('shapeshiftController', functi var walletsBtc = []; var walletsBch = []; + $scope.showMyAddress = showMyAddress; + function generateAddress(wallet, cb) { if (!wallet) return; walletService.getAddress(wallet, false, function(err, addr) { @@ -41,14 +43,6 @@ angular.module('copayApp.controllers').controller('shapeshiftController', functi $ionicNavBarDelegate.showBar(true); }); - $scope.showFromWalletSelector = function() { - $scope.showFromWallets = true; - }; - - $scope.showToWalletSelector = function() { - $scope.showToWallets = true; - }; - // This could probably be enhanced refactoring the routes abstract states $scope.createWallet = function() { $state.go('tabs.home').then(function() { @@ -81,4 +75,11 @@ angular.module('copayApp.controllers').controller('shapeshiftController', functi }); }); } + + function showMyAddress() { + $state.go('tabs.home').then(function() { + $state.go('tabs.receive'); + }); + } + }); diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js index 0e80f4382..66d1799f8 100644 --- a/src/js/controllers/tab-receive.js +++ b/src/js/controllers/tab-receive.js @@ -138,7 +138,9 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi $scope.paymentReceivedAlternativeAmount = ''; // For when a subsequent payment is received. txFormatService.formatAlternativeStr($scope.wallet.coin, data.x.out[i].value, function(alternativeStr){ if (alternativeStr) { - $scope.paymentReceivedAlternativeAmount = alternativeStr; + $scope.$apply(function () { + $scope.paymentReceivedAlternativeAmount = alternativeStr; + }); } }); } diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 9fad8b0f5..0bf708d8a 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -11,7 +11,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat root.redir = function(data, serviceId, serviceData) { var originalAddress = null; var noPrefixInAddress = 0; - + if (data.toLowerCase().indexOf('bitcoin') < 0) { noPrefixInAddress = 1; } @@ -83,7 +83,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat // Timeout is required to enable the "Back" button $timeout(function() { var params = sendFlowService.getStateClone(); - + if (amount) { params.amount = amount; } @@ -390,6 +390,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat $timeout(function() { var stateParams = { toAddress: toAddress, + displayAddress: toAddress, coin: coin, noPrefix: 1 }; diff --git a/src/js/services/sendFlowService.js b/src/js/services/sendFlowService.js index fcb061c26..62989b3c5 100644 --- a/src/js/services/sendFlowService.js +++ b/src/js/services/sendFlowService.js @@ -13,6 +13,7 @@ angular // even other properties added that this service does not know about. (such as "coin") state: { amount: '', + displayAddress: null, fromWalletId: '', sendMax: false, thirdParty: null, @@ -42,6 +43,7 @@ angular console.log("sendFlow clearCurrent()"); service.state = { amount: '', + displayAddress: null, fromWalletId: '', sendMax: false, thirdParty: null, diff --git a/src/sass/components/address-frame.scss b/src/sass/components/address-frame.scss index b06ce8bea..8aecce6d6 100644 --- a/src/sass/components/address-frame.scss +++ b/src/sass/components/address-frame.scss @@ -9,8 +9,8 @@ text-overflow: ellipsis; &.expanded { - white-space: pre-wrap; - word-break: break-all; + white-space: normal; + text-overflow: clip; } .prefix { diff --git a/www/views/review.html b/www/views/review.html index 50fcfbcac..056580738 100644 --- a/www/views/review.html +++ b/www/views/review.html @@ -57,7 +57,12 @@
- {{vm.destination.address.substring(0,5)}}{{vm.destination.address.substring(5,vm.destination.address.length-4)}}{{vm.destination.address.substring(vm.destination.address.length-4)}} + + {{vm.destination.address.substring(0,5)}}{{vm.destination.address.substring(5,vm.destination.address.length-4)}}{{vm.destination.address.substring(vm.destination.address.length-4)}} + + + {{vm.displayAddress.substring(0,5)}}{{vm.displayAddress.substring(5,vm.displayAddress.length-4)}}{{vm.displayAddress.substring(vm.displayAddress.length-4)}} +
@@ -111,6 +116,7 @@ Payment Sent Proposal Created diff --git a/www/views/shapeshift.html b/www/views/shapeshift.html index 61ad0952e..5d6dd3780 100644 --- a/www/views/shapeshift.html +++ b/www/views/shapeshift.html @@ -23,107 +23,11 @@
To get started, you'll need to create a bitcoin wallet and get some bitcoin.
+
This service is provided by the third-party ShapeShift, who will charge a small fee for the service. The fee will be shown before you start the transaction.
- - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - -