diff --git a/Gruntfile.js b/Gruntfile.js index b81f53f44..d41a2e2b0 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,6 +3,7 @@ module.exports = function(grunt) { require('load-grunt-tasks')(grunt); + grunt.loadNpmTasks('grunt-patcher'); // Project Configuration grunt.initConfig({ @@ -266,7 +267,18 @@ module.exports = function(grunt) { 'bitcoin-cash-js/bitcoin-cash-js.js': ['bitcoin-cash-js/index.js'] }, } - } + }, + patch: { + asn1: { + options: { + patch: './patches/asn1-fix.patch' + }, + files: { + './node_modules/asn1.js-rfc5280/index.js': './node_modules/asn1.js-rfc5280/index.js' + } + } + + }, }); grunt.registerTask('default', ['nggettext_compile', 'exec:appConfig', 'exec:externalServices', 'browserify', 'sass', 'concat', 'copy:ionic_fonts', 'copy:ionic_js']); @@ -287,5 +299,7 @@ module.exports = function(grunt) { grunt.registerTask('android', ['exec:android']); grunt.registerTask('android-release', ['prod', 'exec:android', 'exec:androidsign']); grunt.registerTask('desktopsign', ['exec:desktopsign', 'exec:desktopverify']); + grunt.registerTask('apply-patches', ['patch:asn1']); + }; diff --git a/README.md b/README.md index 56ae84eab..94b8d7605 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,16 @@ You don't need to run npm install, run apply:bitcoincom instead ```sh npm run apply:bitcoincom ``` -There is a bug when building the next step, you will need to go directly into one of the javascript files in node_modules + +#### asn1.js bug +If get the following error: +```sh +» +» ^ +» ParseError: Unexpected token +``` + +You will need to go directly into one of the javascript files in node_modules ```sh nano node_modules/asn1.js-rfc5280/index.js ``` @@ -39,12 +48,6 @@ Delete the whole try catch part at the top, replace it with only ``` var asn1 = require('asn1.js'); ``` -If you don't do this, you will get this error: -```sh -» -» ^ -» ParseError: Unexpected token -``` ## Testing in a Browser diff --git a/app-template/package-template.json b/app-template/package-template.json index 660063183..b91d9506d 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -113,7 +113,7 @@ "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", "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 && grunt apply-patches && cordova prepare", "test": "echo \"no package tests configured\"", "clean": "trash platforms && trash plugins && cordova prepare", "unstage-package": "git reset package.json", @@ -122,6 +122,7 @@ "devDependencies": { "cordova": "^6.3.1", "grunt": "^1.0.1", + "grunt-patcher": "^1.0.0", "ionic": "^3.6.0", "trash-cli": "^1.4.0", "lodash": "^4.17.4", diff --git a/package.json b/package.json index c1f37b2e6..7126112ee 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "postinstall": "npm run apply:copay && echo && echo \"Repo configured for standard Copay distribution. To switch to the BitPay distribution, run 'npm run apply:bitpay'.\" && echo", "start": "echo && echo \"Choose a distribution by running 'npm run apply:copay' or 'npm run apply:bitpay'.\" && echo", "apply:copay": "npm i fs-extra@0.30 && cd app-template && node apply.js copay && cd .. && npm i", - "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 && grunt apply-patches && cordova prepare", "apply:bitpay": "npm i fs-extra@0.30 && cd app-template && node apply.js bitpay && cd .. && npm i", "unstage-package": "git reset package.json", "clean-all": "git clean -dfx" diff --git a/patches/asn1-fix.patch b/patches/asn1-fix.patch new file mode 100644 index 000000000..c78e30712 --- /dev/null +++ b/patches/asn1-fix.patch @@ -0,0 +1,10 @@ +@@ -1,8 +1,4 @@ +-try { +- var asn1 = require('asn1.js'); +-} catch (e) { +- var asn1 = require('../..'); +-} ++var asn1 = require('asn1.js'); + + /** + * RFC5280 X509 and Extension Definitions