From b9893f7b4a9b79b0906b3a9af8a57a0be5f7d20e Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 11:25:00 -0300 Subject: [PATCH 01/12] added manifest.json for chrome extension --- manifest.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 manifest.json diff --git a/manifest.json b/manifest.json new file mode 100644 index 000000000..53a67fa2b --- /dev/null +++ b/manifest.json @@ -0,0 +1,19 @@ +{ + "manifest_version": 2, + "name": "Copay", + "description": "A multisignature bitcoin wallet", + "version": "0.0.1", + "homepage_url": "http://bitpay.github.io/copay", + "browser_action": { + "default_title": "Copay", + "default_icon": "img/icons/icon.png", + "default_popup": "popup.html" + }, + "permissions": [ + "tabs", "storage" + ], + "options_page": "index.html#/settings", + "icons": { + "128": "img/icons/icon.png" + } +} From 7c46ec1d1eb17aee524a067da61616e68bb9f8ac Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 11:27:18 -0300 Subject: [PATCH 02/12] added chrome extension files --- img/icons/icon.png | Bin 0 -> 4933 bytes index.html | 3 ++- popup.html | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 img/icons/icon.png create mode 100644 popup.html diff --git a/img/icons/icon.png b/img/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..47cdc4b1ff67c312bee0263f6d913767ff4c5feb GIT binary patch literal 4933 zcmV-L6T0k)P)|l9}XoVib_xp4-Vz< z#1I8VKqGR9h}=jZKn%CxNC-*D1~R{D!p7a%*-US;JJY*NLEg^v)O1%@RrhpPS62(* zCWvm?B{V1~sD~h!?iE33A^mvpqFB7O zprByQ(H-k^+`$Z#Q~9A$>+bae1I%%PNr*>5cSK?X%AcF@CNl>_C_-MRip64bVUZ;z zecN{@nBSElmP-Lh@Rb4sr=o@q#MW(+2gu2?JyyM_-d7_ zisJ=Qcpfz{NW*#>MX7N>gaT0zlkzSJGctB1XRD!GpED~!Y}>dvFqsx%i?3mQ+4$v; z1K1;6fa2mo`!}bguu$j6g4DcS+yorly^q2VX2Cab^y2`^C;a;pI##OOAoL>vgnnun8PECSfC%F9yv&@z85yZpoKfdg0VLtq58WULLK|l<8|nOW zKorF-dB<})J5vIuBY3Ih8^Y&b!YUL}114EILsJ|B&^O;Cm|k%9l9BFR9KcU_i&_n0 zEJ|YnhfhGsXkSQ1&2f0V&xxj>#g!NFCs@cVB#bJ)nZPIxV7b;m6bSuXfEH*iE zc8N|U`T3W_{K<{W5I#U~P$lTlrWLflvjyCZfA#CuVUkz?HXFi~;};bb!L~p4!m_Vc z!=`P2Fy*Bw5;k~}y+8TzX<9I6h27db26{d80CcUxp9EUgN zF6K`W1iv=IE$!ofz)C;hu8Mm@KK_1w@aThG;E6}NL*wX3mq^CdH8`7f9x_jyhU2Hs zK<3HQP*ijks#Fe!%E3Vp9a#_Bw7MPqunak@_<9Y@n!ALjPs2KYbmnY`pMVQ0P@321*$OL%@re`wM$im9Xv**Wmlx9ed2&%eTfLr0k2 zkt2=7^8WkpUh-sExq3ZJp81|by4DHkYJOgbZ5LmN4Z~;s_G?xTg_lPSg)SY~hC10f zmtfJS$*^MO8nl@fR#+yCU}>!h~1ffs<$cR>iFd zLRih}PG1kfsiWTD6AD1nyHP`*gh72DVdCeK&sM=(^FKxpDdpD5lnEme8H1d`<-7uC zk2Fj7dIcciPkU(u#CN}6m1$(enKf?-kOF7{QT6LeW@V+at`ru+$m)g`{!X?NV=vOEzSy3rp_5QN9iQ| zSI0jGaoswpQk7qD1x6>#gw4P0RK;}{!b{H$mQ2FV^80?nCTEW{P4`*_NEq`BlkhE; zA{aLA71*)ofF_Lf#}+^S`N7cV;ciaL%gMbADQi79^Ke?Q!UL~VfPRnmfZjd3Dpbcl ziN5)hUQ5zU__0kI!lY3{phdG7dqQM)N$)R(D}{Xc3V59Y+DW?aoH0#Yu5kSf7&?_IaUgAcTaPHpeTjk#s7tZn;a4}6}oR+(TOQoTw6 zZmJUwv!=cX{{D_jt#aOdmi!$oT9GVIuJHZRxiiqV-$3#LGMfW{td6X31pNX=|8FKM zx+ZvDqX2$>CYUvCoaBHfWezOiaRt9g?W=Xk`((-h6j<$<3z{RaJqjhB1|%k#b`-|>nb zph=@B7&3ru_3V|m7D(N*CzzIxYX`0XEiRGa>FYHcTzO4XT<&`SnpP!Fe8H(f#g<#E z*KLF!Qn%P9x%GP8#;tII!FqQoHxE8qwi0^wAHlWoi81C zsNz)wAv-4*1`MA7!v;MeIgyedAi*`X=u!D(YakEcpEhrY0yI8(1CUc_$$W-GYH20y z+huc^ymg07iQh^RG#Y|VARk7Ov2y3YoDgVCq|PU zfJXGZjp|)h0&d3uEt)lkhq`uPs?R$MK4HQ$kQ_O{tpbdBcA%}|IOJF} zBZY|rTq;1zTbo16+nTFZfCgVl=*Ve6`8mL)0t^|@o2f?R%XcjEBonTIq|5>C6o9OK zZCc%-Osy<+>6hQgQjA+yIl!F)DD9+Cs?@H12jTG1Or=LgnhPA@N&#xss16-*NtFe7 zT2f`9mscFF6o4E%S(bXqqh{?-n|bA_SJB0l0zCR)XC~&Q;NXv3y$q;02e?rH3dd6a zrU<4Qt@{2)COiX4odet`0PWjnfpchgPfO2WK{ap~IKYhpbZB!I1GxZOf8WJ~XCSe0 zfC~kPZQ2OJYO)n|=y?T^Zp{5J_3QJ#d^M$SoK(5ua1k3`oBiGwuz~epb3|^=IKBs$? zbX9;_HL5Ys0JI3`-<<}j1JRYOau0SU@x+(x# zL!6N1n0!rxn0}6>Ry^g-Tbse)e!c86qSpW3!WDLDdfn)&04~&;CHkie*=d5>IJyDM zNu1;`&Y|t%yZ5JQLW5c%x+;Jx`|W9?sL7-&xoW($drskO7Q8tbs)kgyOQ!%96s43G z(3PWf$`&22!~%2#OIdMuS@O^dht4SY;H@ckQ$8x2y8cOtNgjzxUf#OtssO~0GcL@9 zU5(3AUZzy!JzD6Q|HfoR|HiqCK820H?x;xiZhu!-1)$oTJd?#-DOV48V$Rr2i1i|B z!zUO;j8-`1kcvSg<}dkNo~--5?h0_qg>db>9I~J!wcBEw!1DPsrBlP?&-dZcFymi+ zTb|6tz3vLI4}&JN!aXf-WkuB#uRD4)FMQ_}s9vqAL%9bJAA_M|rT`sI!6WFd0I6HH zmqy)GV-OwNN)Dtv!BC7|HZx%~P|!#@kg50SF_XEDBBHwjWSzeV`_qoddFS;0$=*Gk zKGX6+c&!>Z%}an0gZn8KOGnK;J$f=wU@4wKcLgBkq;CF=nMd93ZwvJp&-G=_)I~%( znr7wV*-p2yQ+(n9!zaS|i#aaltUWpx3b1CwFL3oLo2{Sh0mIOxN)M3rd(Uwq@XBW9J#(ISm21)vI(Mk`iO62l;00&+sW86mbZ*kg)(MTqK^}Nk`0f?buc|96cQ-y&RQo;qsMU+1)Gg zggXTwB7-Ug!n~OYOtAu$Ds?$8A7~pH&BZTfUjjNZ?kfJ_7Y6Fq2}7aRg-ATpuYTRy zc5Yfqc~Kf2B~M4bFZ*(}$3oFNE8ElQTq*!nnp!7)e@6`N%XAd1Cm2PM$Ugo0J6MY$ z=t+Tm5x7+VE3@n0R0k%%_$;)(Q=4^wG@M#exc47YH{TFp=(tw^t0KfSjDnsRJi14h z_CRJ>cL8lUp;J76!F75PJlPj+B=8yqunL8YGPEpA%dgRq_3*DgL^Y^e=4XPYmlx3$ zD+@i4&SqVJ^kbR0{*W%&5IlW)xRq{Rf4xotlo&}$LA?U`-J47T_~H10(rEW>?&W+S zD;*E#^eWM=cN*6RMzAu6S~wlqVu0%$;9@bzb+U~&+{FPy0o=t&FU`kL0527syU6y5 zF@U?6;qH9Mq8U*;46TphP#1qA&C9Rl*ibAH=d|l`i=f@pD z=OY;k;0{i@kO$caC_D`bRo*pIi>6&jN}j$h6v2#2i&lDp&-MTmfHIhLU@_KBxOCBex1r10!ht(>2p~7=)4zviBE6 z$U!C0RRQRGPA%V^K*!3`wlnIUB>|Uq%_S|Fy6!@Y#hpcZU0x)6fBZtFW2mNRJ*lS% zpwt>&8Mx8D0CLNgx@a0?Ndqku?)7gm4ZgfNw44_5Alds1AY!y4p{o`JIxB-rq6stJ zg~XR%DBW^J@q}l7f>`se6ljKUG|teD z+KT%4vzB=y>!%u)DgfQ&T@q&C_u&Fv8{m5!AlZ_PZEI$y02#ZIv(Zy=5H4Zzy@qL9 z1LK;B12pg>*-A3DdBedaChK@wT3BQgTp|`a+u#|OUd{oO|D*$(Qa+Mb!$AQEAuBU& z6DmQB0747-3&y?oaX6^&LybD)xyu}&sUD5?_is*-OucFuIQ<03 zU!>VV3okCJ~Z;Ym6t0#et7$;-K^9w_W-sTHfr6yUL~`6 znh3&wut#t@khFcrxb_SOsJkcIKACrIEqtt{l}iDvnUf*}2AJanlMs*V2px@H!O9sA z|DrPo`EbyZF0Ja7NAOk(E2IF{Oz4+9i-LlJdI*B)UJTIF6cwVOC_pIwhF~vYw#7BB z**Ji$+k%45z3#bv1n<*8ytbvFpkR&U$itRRnOOe^9Z+uAx_~yl00000NkvXXu0mjf DhT}C# literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 57a600cda..7b1c44a6a 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + @@ -7,6 +7,7 @@ Copay - Multisignature Wallet + diff --git a/popup.html b/popup.html new file mode 100644 index 000000000..95f9db294 --- /dev/null +++ b/popup.html @@ -0,0 +1,12 @@ + + + + + + Copay + + + Open wallet + Settings + + From 452ec3e2d1ac6cc769454dcc27978b729c601944 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:15:01 -0300 Subject: [PATCH 03/12] added bitcore bower --- bower.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 80e3c20d3..7197b53f0 100644 --- a/bower.json +++ b/bower.json @@ -17,6 +17,7 @@ "crypto-js": "http://crypto-js.googlecode.com/files/CryptoJS%20v3.1.2.zip", "sjcl": "1.0.0", "file-saver": "*", - "qrcode-decoder-js": "*" + "qrcode-decoder-js": "*", + "bitcore": "~0.1.19" } } From 01bbe55589698f66c8656bed7c450b1f1885ab68 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:19:04 -0300 Subject: [PATCH 04/12] changed label --- ghpages.sh | 51 --------------------------------------------------- index.html | 2 +- popup.html | 19 +++++++++++++++++++ 3 files changed, 20 insertions(+), 52 deletions(-) delete mode 100755 ghpages.sh diff --git a/ghpages.sh b/ghpages.sh deleted file mode 100755 index 8aa6e11cd..000000000 --- a/ghpages.sh +++ /dev/null @@ -1,51 +0,0 @@ -#! /bin/bash - -#Description: A simple script to compile and copy only the needed files for the web app. - -# Configs -APPDIR="webapp" -LIBDIR="$APPDIR/lib" -DOWNLOADDIR="$APPDIR/download" -ZIPFILE="copay_webapp_.zip" - -OpenColor="\033[" -Red="1;31m" -Yellow="1;33m" -Green="1;32m" -CloseColor="\033[0m" - -# Create/Clean temp dir -echo -e "${OpenColor}${Green}* Checking temp dir...${CloseColor}" -if [ -d $APPDIR ]; then - rm -rf $APPDIR -fi - -mkdir -p $APPDIR - -# Generate and copy bitcore bundle -if [ ! -d node_modules/bitcore ]; then - echo -e "${OpenColor}${Red}X The node_modules/bitcore dir does not exist. \nRun npm install and try again.${CloseColor}" - exit 1 -else - echo -e "${OpenColor}${Green}* Generating bitcore bundle...${CloseColor}" - cd node_modules/bitcore - grunt --target=dev shell - cd ../.. -fi - -# Re-compile copayBundle.js -echo -e "${OpenColor}${Green}* Generating copay bundle...${CloseColor}" -grunt --target=dev shell - -# Copy all app files -echo -e "${OpenColor}${Green}* Copying all app files...${CloseColor}" -cp -af {css,font,img,js,lib,config.js,index.html} $APPDIR -cp -af node_modules/bitcore/browser/bundle.js $LIBDIR/ -mv $LIBDIR/bundle.js $LIBDIR/bitcore.js - -echo -e "${OpenColor}${Green}* Zipping all app files...${CloseColor}" -zip -r $ZIPFILE $APPDIR -mkdir -p $DOWNLOADDIR -mv $ZIPFILE $DOWNLOADDIR - -echo -e "${OpenColor}${Yellow}\nAwesome! You just need to copy and paste the ./webapp content to your local repository and push it.${CloseColor}" diff --git a/index.html b/index.html index 7b1c44a6a..a3b4aac8c 100644 --- a/index.html +++ b/index.html @@ -591,7 +591,7 @@

{{title}}

- Network Name + Bitcoin Network
diff --git a/popup.html b/popup.html index 95f9db294..99e584da6 100644 --- a/popup.html +++ b/popup.html @@ -4,6 +4,25 @@ Copay + Open wallet From afadb4128a4f2ce67f0187c47e7ea7e0ac929517 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:20:03 -0300 Subject: [PATCH 05/12] added chrome:// to whitelist --- js/routes.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/js/routes.js b/js/routes.js index bfc5061d7..301b9d68a 100644 --- a/js/routes.js +++ b/js/routes.js @@ -74,4 +74,7 @@ angular } } }); + }) + .config(function($compileProvider) { + $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel|chrome-extension):/); }); From bab659cd6b99d59bf80876cb4244fc0aede88a8d Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:36:34 -0300 Subject: [PATCH 06/12] new bitcore bower package --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index a3b4aac8c..93aa589d1 100644 --- a/index.html +++ b/index.html @@ -661,7 +661,7 @@ on supported browsers please check http://www.w - + From 83718717d381db5dcee69ad375ab3a56d62d5ea4 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:40:19 -0300 Subject: [PATCH 07/12] added chrome-extension tmp path --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 801902a73..23900fae9 100644 --- a/.gitignore +++ b/.gitignore @@ -42,4 +42,4 @@ lib/* js/copayBundle.js config.js webapp - +chrome-extension From a532fbb0143f76647f5291b354f427433d561f76 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 17:58:57 -0300 Subject: [PATCH 08/12] new version of app generator script --- generate-app-extension.sh | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 generate-app-extension.sh diff --git a/generate-app-extension.sh b/generate-app-extension.sh new file mode 100755 index 000000000..fc334a62e --- /dev/null +++ b/generate-app-extension.sh @@ -0,0 +1,60 @@ +#! /bin/bash + +#Description: A simple script to compile and copy only the needed files for the web app. + +# Configs +APPDIR="webapp" +CHROMEDIR="chrome-extension" + +LIBDIR="$APPDIR/lib" +DOWNLOADDIR="$APPDIR/download" + +ZIPFILE="copay.zip" +CHROMEZIPFILE="copay-chrome-extension.zip" + +OpenColor="\033[" +Red="1;31m" +Yellow="1;33m" +Green="1;32m" +CloseColor="\033[0m" + +# Create/Clean temp dir +echo -e "${OpenColor}${Green}* Checking temp dir...${CloseColor}" +if [ -d $APPDIR ]; then + rm -rf $APPDIR +fi + +mkdir -p $APPDIR + +# Create/Clean chrome-extension dir +if [ -d $CHROMEDIR ]; then + rm -rf $CHROMEDIR +fi + +mkdir -p $CHROMEDIR + +# Re-compile copayBundle.js +echo -e "${OpenColor}${Green}* Generating copay bundle...${CloseColor}" +grunt --target=dev shell + +# Copy all app files +echo -e "${OpenColor}${Green}* Copying all app files...${CloseColor}" +cp -af {css,font,img,js,lib,sound,config.js,index.html} $APPDIR + +# Copy all chrome-extension files +echo -e "${OpenColor}${Green}* Copying all chrome-extension files...${CloseColor}" +cp -af {css,font,img,js,lib,sound,config.js,index.html,popup.html,manifest.json} $CHROMEDIR + +# Zipping apps +echo -e "${OpenColor}${Green}* Zipping all app files...${CloseColor}" +zip -r $ZIPFILE $APPDIR + +# Zipping chrome-extension +echo -e "${OpenColor}${Green}* Zipping all chrome-extension files...${CloseColor}" +zip -r $CHROMEZIPFILE $CHROMEDIR + +mkdir -p $DOWNLOADDIR +mv $ZIPFILE $DOWNLOADDIR +mv $CHROMEZIPFILE $DOWNLOADDIR + +echo -e "${OpenColor}${Yellow}\nAwesome! Now you have the webapp in ./webapp and the chrome extension files in ./webapp/download/.${CloseColor}" From bca35f81398cff417c7a9e2c1dfee87481afd6e0 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Wed, 14 May 2014 18:08:49 -0300 Subject: [PATCH 09/12] moved generator script to util path --- generate-app-extension.sh => util/generate-app-extension.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename generate-app-extension.sh => util/generate-app-extension.sh (93%) diff --git a/generate-app-extension.sh b/util/generate-app-extension.sh similarity index 93% rename from generate-app-extension.sh rename to util/generate-app-extension.sh index fc334a62e..64ac74423 100755 --- a/generate-app-extension.sh +++ b/util/generate-app-extension.sh @@ -8,6 +8,7 @@ CHROMEDIR="chrome-extension" LIBDIR="$APPDIR/lib" DOWNLOADDIR="$APPDIR/download" +CHROMEDOWNLOADDIR="$DOWNLOADDIR/chrome" ZIPFILE="copay.zip" CHROMEZIPFILE="copay-chrome-extension.zip" @@ -53,8 +54,8 @@ zip -r $ZIPFILE $APPDIR echo -e "${OpenColor}${Green}* Zipping all chrome-extension files...${CloseColor}" zip -r $CHROMEZIPFILE $CHROMEDIR -mkdir -p $DOWNLOADDIR +mkdir -p $CHROMEDOWNLOADDIR mv $ZIPFILE $DOWNLOADDIR -mv $CHROMEZIPFILE $DOWNLOADDIR +mv $CHROMEZIPFILE $CHROMEDOWNLOADDIR echo -e "${OpenColor}${Yellow}\nAwesome! Now you have the webapp in ./webapp and the chrome extension files in ./webapp/download/.${CloseColor}" From 9d5f2ddf16c592f8a4fdc127e42448f54eb7ec15 Mon Sep 17 00:00:00 2001 From: Yemel Jardi Date: Wed, 14 May 2014 14:24:24 -0700 Subject: [PATCH 10/12] add validation to wallet secret --- css/main.css | 3 +++ index.html | 2 +- js/directives.js | 15 +++++++++++++++ js/models/core/WalletFactory.js | 16 ++++++++++------ 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/css/main.css b/css/main.css index e6e793f09..9321a5d7f 100644 --- a/css/main.css +++ b/css/main.css @@ -496,3 +496,6 @@ a.loading { vertical-align:middle } +input.ng-invalid-wallet-secret { + background: #FFB6C1; +} diff --git a/index.html b/index.html index 57a600cda..494a4d4a7 100644 --- a/index.html +++ b/index.html @@ -190,7 +190,7 @@