diff --git a/Makefile b/Makefile
index c6691b070..0026988ca 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,8 @@ ios-debug:
open cordova/project/platforms/ios/Copay.xcodeproj
android-prod:
- cordova/build.sh ANDROID --clear
+ cordova/build.sh ANDROID --clear
+ rm -f cordova/project/platforms/android/build/outputs/apk/android-release-signed-aligned.apk
cd cordova/project && cordova build android --release
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../copay.keystore -signedjar cordova/project/platforms/android/build/outputs/apk/android-release-signed.apk cordova/project/platforms/android/build/outputs/apk/android-release-unsigned.apk copay_play
../android-sdk-macosx/build-tools/21.1.1/zipalign -v 4 cordova/project/platforms/android/build/outputs/apk/android-release-signed.apk cordova/project/platforms/android/build/outputs/apk/android-release-signed-aligned.apk
@@ -67,5 +68,5 @@ android-debug:
cd cordova/project && cordova run android
android-debug-fast:
- cordova/build.sh ANDROID --dbgjs
+ cordova/build.sh ANDROID --dbgjs
cd cordova/project && cordova run android --device
diff --git a/config-templates/config.xml b/config-templates/config.xml
index d778216d8..cb26dfcba 100644
--- a/config-templates/config.xml
+++ b/config-templates/config.xml
@@ -29,6 +29,8 @@
+
+
diff --git a/cordova/android/project.properties b/cordova/android/project.properties
index ba47b4781..d17285111 100644
--- a/cordova/android/project.properties
+++ b/cordova/android/project.properties
@@ -12,6 +12,6 @@
android.library.reference.1=CordovaLib
# Project target.
-target=android-21
+target=android-23
key.store=../../../copay.keystore
key.alias=copay_play
diff --git a/cordova/build.sh b/cordova/build.sh
index f5293880a..0c91c9cd8 100755
--- a/cordova/build.sh
+++ b/cordova/build.sh
@@ -58,12 +58,12 @@ if [ ! -d $PROJECT ]; then
echo "${OpenColor}${Green}* Creating project... ${CloseColor}"
cordova create project com.bitpay.copay Copay
checkOK
-
cd $PROJECT
-
if [ $CURRENT_OS == "ANDROID" ]; then
echo "${OpenColor}${Green}* Adding Android platform... ${CloseColor}"
- cordova platforms add android
+echo "SSSSSSSSSSSSSSSSSSS";
+ cordova platforms add android@5.1.1
+echo "SSSSSSSSSSSSSSSSSSS";
checkOK
fi
diff --git a/cordova/config.xml b/cordova/config.xml
index ffefe7101..9f3df7df4 100644
--- a/cordova/config.xml
+++ b/cordova/config.xml
@@ -1,8 +1,8 @@
+ version="1.12.11"
+ android-versionCode="101"
+ ios-CFBundleVersion="1.12.11">
Copay
A secure bitcoin wallet for friends and companies.
@@ -29,6 +29,8 @@
+
+
diff --git a/cordova/wp/Package.appxmanifest b/cordova/wp/Package.appxmanifest
index 4b25c40f2..fe118f7bd 100644
--- a/cordova/wp/Package.appxmanifest
+++ b/cordova/wp/Package.appxmanifest
@@ -1,6 +1,6 @@
-
+
Copay Bitcoin Wallet
diff --git a/cordova/wp/Properties/WMAppManifest.xml b/cordova/wp/Properties/WMAppManifest.xml
index e7af0f6b5..342b05d8d 100644
--- a/cordova/wp/Properties/WMAppManifest.xml
+++ b/cordova/wp/Properties/WMAppManifest.xml
@@ -11,7 +11,7 @@
-
+
Assets\icon@2.png
diff --git a/package.json b/package.json
index a72d92a68..e86698bde 100644
--- a/package.json
+++ b/package.json
@@ -2,8 +2,8 @@
"name": "copay",
"description": "A multisignature wallet",
"author": "BitPay",
- "version": "1.12.1",
- "androidVersionCode": "90",
+ "version": "1.12.11",
+ "androidVersionCode": "101",
"keywords": [
"wallet",
"copay",
diff --git a/public/views/preferencesInformation.html b/public/views/preferencesInformation.html
index 9c049490f..e8b2683d1 100644
--- a/public/views/preferencesInformation.html
+++ b/public/views/preferencesInformation.html
@@ -8,6 +8,15 @@
Wallet Information
+ -
+ BETA: Android Key Derivation Test:
+
+ {{androidTest}}
+
+
+
+
+
-
Wallet Name (at creation)
diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js
index 1fafc073f..a7e180504 100644
--- a/src/js/controllers/import.js
+++ b/src/js/controllers/import.js
@@ -82,6 +82,7 @@ angular.module('copayApp.controllers').controller('importController',
};
var _importExtendedPrivateKey = function(xPrivKey, opts) {
+console.log('[import.js.84:xPrivKey:]',xPrivKey); //TODO
self.loading = true;
$timeout(function() {
diff --git a/src/js/controllers/preferencesInformation.js b/src/js/controllers/preferencesInformation.js
index e97c36674..f93055460 100644
--- a/src/js/controllers/preferencesInformation.js
+++ b/src/js/controllers/preferencesInformation.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesInformation',
- function($scope, $log, $timeout, isMobile, gettextCatalog, lodash, profileService, storageService, go) {
+ function($scope, $log, $timeout, isMobile, gettextCatalog, lodash, profileService, storageService, go, bitcore) {
var base = 'xpub';
var fc = profileService.focusedClient;
var c = fc.credentials;
@@ -20,6 +20,20 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
$scope.pubKeys = lodash.pluck(c.publicKeyRing, 'xPubKey');
$scope.addrs = null;
+
+ if (isMobile.Android()) {
+ $scope.androidTest = 'testing';
+
+ var xp = bitcore.HDPrivateKey("tprv8ZgxMBicQKsPebv8CVghFoaaZ6ejmcSmSaKo99sUnswCCPeccGbLzfoksA2wd5XdHe8UHLwM2emuBWD4cBvQ7BPTJhFu75u3HcSjRVFmYM9");
+
+ var pub = xp.derive("m/44'/1'/0'").hdPublicKey.toString();
+ if (pub == 'tpubDCe5stHkJZhfNMpQLgqRVYjSfADoosJ7FvxukgyXf1YzrCnru2z61giPXbgJGGxnHt922CY22DDDYD6d28jnd9okctoXNW837TmbNaAEM99') {
+ $scope.androidTest = 'OK, TEST PASSED';
+ } else {
+ $scope.androidTest = 'FAILED!! Please report to matias@bitpay.com. Result:' + pub;
+ }
+ }
+
fc.getMainAddresses({
doNotVerify: true
}, function(err, addrs) {
diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js
index a741b1c85..02aff04e5 100644
--- a/src/js/controllers/walletHome.js
+++ b/src/js/controllers/walletHome.js
@@ -439,6 +439,8 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
self.setOngoingProcess(gettextCatalog.getString('Rejecting payment'));
$scope.loading = true;
$scope.error = null;
+
+ // TODO: This should be in txService
$timeout(function() {
fc.rejectTxProposal(txp, null, function(err, txpr) {
self.setOngoingProcess();
@@ -982,7 +984,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
self.setOngoingProcess();
if (err) {
- self.error = err.message ? err.message : gettext('The payment was created but could not be completed. Please try again from home screen');
+ self.error = bwsError.msg(err, gettextCatalog.getString('The payment was created but could not be completed. Please try again from home screen'));
$scope.$emit('Local/TxProposalAction');
$timeout(function() {
$scope.$digest();
diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js
index 66e1c8ac7..1dc8deb8e 100644
--- a/src/js/services/profileService.js
+++ b/src/js/services/profileService.js
@@ -76,6 +76,9 @@ angular.module('copayApp.services')
var client = bwcService.getClient(JSON.stringify(credentials));
root.walletClients[credentials.walletId] = client;
client.removeAllListeners();
+ client.on('report', function(n) {
+ $log.info('BWC Report:'+ n);
+ });
client.on('notification', function(n) {
$log.debug('BWC Notification:', n);
@@ -118,6 +121,7 @@ angular.module('copayApp.services')
root.setWalletClients = function() {
var credentials = root.profile.credentials;
lodash.each(credentials, function(credential) {
+ //$log.info("Credentials:", credentials);
root.setWalletClient(credential);
});
$rootScope.$emit('Local/WalletListUpdated');
@@ -673,18 +677,18 @@ angular.module('copayApp.services')
$log.debug('Wallet is encrypted');
$rootScope.$emit('Local/NeedsPassword', false, function(err2, password) {
- if (err2 || !password) {
- return cb({
- message: (err2 || gettext('Password needed'))
- });
- }
+
+ if (err2)
+ return cb(err2);
+
+ if (!password)
+ return cb(gettext('Password needed'));
+
try {
fc.unlock(password);
} catch (e) {
- $log.debug(e);
- return cb({
- message: gettext('Wrong password')
- });
+ $log.warn('Error decrypting wallet:', e);
+ return cb(gettext('Wrong password'));
}
return cb();
});
diff --git a/src/js/services/txService.js b/src/js/services/txService.js
index 1eef5c58c..7eb340f27 100644
--- a/src/js/services/txService.js
+++ b/src/js/services/txService.js
@@ -75,6 +75,7 @@ angular.module('copayApp.services').factory('txService', function($rootScope, pr
$log.info("at .prepare");
opts = opts || {};
var fc = opts.selectedClient || profileService.focusedClient;
+ $log.info('FC Client Dump:' + fc);
if (!fc.canSign() && !fc.isPrivKeyExternal())
return cb('Cannot sign'); // should never happen, no need to translate
@@ -198,18 +199,13 @@ angular.module('copayApp.services').factory('txService', function($rootScope, pr
txp.signatures = null;
$log.info('at .sign: (isEncrypted):', fc.isPrivKeyEncrypted());
- $log.info('txp BEFORE:', txp);
+ $log.info('txp BEFORE .signTxProposal:', txp);
- try {
- fc.signTxProposal(txp, function(err, signedTxp) {
- $log.info('txp AFTER:',err, signedTxp);
- profileService.lockFC();
- return cb(err, signedTxp);
- });
- } catch (e) {
- $log.warn('Error at signTxProposal:', e);
- return cb(e);
- }
+ fc.signTxProposal(txp, function(err, signedTxp) {
+ $log.info('txp AFTER .signTxProposal:',err, signedTxp);
+ profileService.lockFC();
+ return cb(err, signedTxp);
+ });
}
};
@@ -222,7 +218,7 @@ angular.module('copayApp.services').factory('txService', function($rootScope, pr
root.sign(txp, opts, function(err, txp) {
if (err) {
stopReport(opts);
- return cb(bwsError.msg(err), gettextCatalog.getString('Could not accept payment'));
+ return bwsError.cb(err, gettextCatalog.getString('Could not accept payment'), cb);
};
if (txp.status != 'accepted') {
@@ -235,7 +231,7 @@ angular.module('copayApp.services').factory('txService', function($rootScope, pr
stopReport(opts);
if (err) {
- return cb(bwsError.msg(err, gettextCatalog.getString('Could not broadcast payment')));
+ return bwsError.cb(err, gettextCatalog.getString('Could not broadcast payment'), cb);
};
$log.debug('Transaction signed and broadcasted')
diff --git a/webkitbuilds/.desktop b/webkitbuilds/.desktop
index b0477714f..b1cd5588b 100644
--- a/webkitbuilds/.desktop
+++ b/webkitbuilds/.desktop
@@ -1,6 +1,6 @@
[Desktop Entry]
Type=Application
-Version=1.12.1
+Version=1.12.11
Name=Copay
Comment=A multisignature wallet
Exec=copay
diff --git a/webkitbuilds/setup-win.iss b/webkitbuilds/setup-win.iss
index 863f6d89b..8823c5b84 100755
--- a/webkitbuilds/setup-win.iss
+++ b/webkitbuilds/setup-win.iss
@@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Copay"
-#define MyAppVersion "1.12.1"
+#define MyAppVersion "1.12.11"
#define MyAppPublisher "BitPay"
#define MyAppURL "https://copay.io"
#define MyAppExeName "Copay.exe"