From ba32344eb23d0e6253e2939287a5df001d6ebc7f Mon Sep 17 00:00:00 2001 From: adityapk00 <31996805+adityapk00@users.noreply.github.com> Date: Fri, 1 Nov 2019 12:26:58 -0700 Subject: [PATCH 1/7] Update README.md --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6260847..d232f6d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,21 @@ -Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash +Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. + +**Zecwallet-Lite is currently in beta** + + +## Privacy +* While all the keys and transaction detection happens on the client, the server can learn what blocks contain your shielded transactions. +* The server also learns other metadata about you like your ip address etc... +* Also remember that t-addresses don't provide any privacy protection. + + +### Note Management +Zecwallet-Lite does automatic note and utxo management, which means it doesn't allow you to manually select which address to send outgoing transactions from. It follows these principles: +* Defaults to sending shielded transactions, even if you're sending to a transparent address +* Sapling funds need at least 5 confirmations before they can be spent +* Can select funds from multiple shielded addresses in the same transaction +* Will automatically shield your transparent funds at the first opportunity + * When sending an outgoing transaction to a shielded address, Zecwallet-Lite can decide to use the transaction to additionally shield your transparent funds (i.e., send your transparent funds to your own shielded address in the same transaction) ## Compiling from source * ZecWallet is written in C++ 14, and can be compiled with g++/clang++/visual c++. From 0bbe7ec39cad9fe64023bccfc3ee2c7ce6f37121 Mon Sep 17 00:00:00 2001 From: adityapk00 <31996805+adityapk00@users.noreply.github.com> Date: Fri, 1 Nov 2019 12:29:30 -0700 Subject: [PATCH 2/7] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d232f6d..74e7ad2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ -Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. - **Zecwallet-Lite is currently in beta** +Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. It has full support for all Zcash features: +- Send + Receive fully shileded transactions +- Supports transparent addresses and transactions +- Full support for incoming and outgoing memos +- Fully encrypt your private keys, using viewkeys to sync the blockchain + ## Privacy * While all the keys and transaction detection happens on the client, the server can learn what blocks contain your shielded transactions. From 9590b531e0ff05e67310e125044aa0f0110c4883 Mon Sep 17 00:00:00 2001 From: adityapk00 <31996805+adityapk00@users.noreply.github.com> Date: Thu, 7 Nov 2019 10:29:35 -0800 Subject: [PATCH 3/7] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 74e7ad2..a72f907 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -**Zecwallet-Lite is currently in beta** - Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. It has full support for all Zcash features: - Send + Receive fully shileded transactions - Supports transparent addresses and transactions From 2cc39a9c79ac3a921f2bb3a4b820679d7bf600f8 Mon Sep 17 00:00:00 2001 From: adityapk00 <31996805+adityapk00@users.noreply.github.com> Date: Thu, 7 Nov 2019 10:31:01 -0800 Subject: [PATCH 4/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a72f907..215d45d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. It has full support for all Zcash features: -- Send + Receive fully shileded transactions +- Send + Receive fully shielded transactions - Supports transparent addresses and transactions - Full support for incoming and outgoing memos - Fully encrypt your private keys, using viewkeys to sync the blockchain From ff84078e9571a5b4f3a850e81a1e0accc5eb7b7f Mon Sep 17 00:00:00 2001 From: adityapk00 <31996805+adityapk00@users.noreply.github.com> Date: Thu, 7 Nov 2019 10:31:48 -0800 Subject: [PATCH 5/7] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 215d45d..52b1077 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Zecwallet-Lite is z-Addr first, Sapling compatible wallet lightwallet for Zcash. - Full support for incoming and outgoing memos - Fully encrypt your private keys, using viewkeys to sync the blockchain +## Download +Download compiled binaries from our [release page](https://github.com/adityapk00/zecwallet-lite/releases) ## Privacy * While all the keys and transaction detection happens on the client, the server can learn what blocks contain your shielded transactions. From abf488b2004cc79c08c305c2369a1c1e8dadfe57 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Fri, 8 Nov 2019 14:15:11 -0800 Subject: [PATCH 6/7] Fix unified build --- res/Info.plist | 4 ++-- src/scripts/dounifiedbuild.ps1 | 26 ++++++++++++++------------ src/scripts/mkwininstaller.ps1 | 13 +++++-------- src/scripts/signbinaries.sh | 2 +- src/scripts/zec-qt-wallet.wxs | 27 ++++++++++++--------------- 5 files changed, 34 insertions(+), 38 deletions(-) diff --git a/res/Info.plist b/res/Info.plist index 6fb916a..143d3f3 100644 --- a/res/Info.plist +++ b/res/Info.plist @@ -9,7 +9,7 @@ CFBundleIconFile logo.icns CFBundleIdentifier - com.yourcompany.zecwallet + com.yourcompany.zecwallet-lite CFBundlePackageType APPL CFBundleSignature @@ -39,4 +39,4 @@ NSUIElement - \ No newline at end of file + diff --git a/src/scripts/dounifiedbuild.ps1 b/src/scripts/dounifiedbuild.ps1 index 42858dc..c12032f 100644 --- a/src/scripts/dounifiedbuild.ps1 +++ b/src/scripts/dounifiedbuild.ps1 @@ -7,11 +7,11 @@ param ( ) Write-Host "[Initializing]" -Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-binaries-zecwallet-v$version.tar.gz -Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-deb-zecwallet-v$version.deb -Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-binaries-zecwallet-v$version.zip -Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-installer-zecwallet-v$version.msi -Remove-Item -Force -ErrorAction Ignore ./artifacts/macOS-zecwallet-v$version.dmg +Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-binaries-zecwallet-lite-v$version.tar.gz +Remove-Item -Force -ErrorAction Ignore ./artifacts/linux-deb-zecwallet-lite-v$version.deb +Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-binaries-lite-zecwallet-v$version.zip +Remove-Item -Force -ErrorAction Ignore ./artifacts/Windows-installer-lite-zecwallet-v$version.msi +Remove-Item -Force -ErrorAction Ignore ./artifacts/macOS-zecwallet--litev$version.dmg Remove-Item -Force -ErrorAction Ignore ./artifacts/signatures-v$version.tar.gz @@ -27,7 +27,7 @@ Write-Host "" Write-Host "[Building on Mac]" -bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version --zcash_path ~/prod/zcash +bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version if (! $?) { Write-Output "[Error]" exit 1; @@ -37,9 +37,11 @@ Write-Host "" Write-Host "[Building Linux + Windows]" Write-Host -NoNewline "Copying files.........." +# Cleanup some local files to aid copying +rm -rf lib/target/ ssh $server "rm -rf /tmp/zqwbuild" ssh $server "mkdir /tmp/zqwbuild" -scp -r src/ singleapplication/ res/ ./zec-qt-wallet.pro ./application.qrc ./LICENSE ./README.md ${server}:/tmp/zqwbuild/ | Out-Null +scp -r src/ singleapplication/ res/ lib/ ./zecwallet-lite.pro ./application.qrc ./LICENSE ./README.md ${server}:/tmp/zqwbuild/ | Out-Null ssh $server "dos2unix -q /tmp/zqwbuild/src/scripts/mkrelease.sh" | Out-Null ssh $server "dos2unix -q /tmp/zqwbuild/src/version.h" Write-Host "[OK]" @@ -86,11 +88,11 @@ Write-Host "[OK]" # Finally, test to make sure all files exist Write-Host -NoNewline "Checking Build........." -if (! (Test-Path ./artifacts/linux-binaries-zecwallet-v$version.tar.gz) -or - ! (Test-Path ./artifacts/linux-deb-zecwallet-v$version.deb) -or - ! (Test-Path ./artifacts/Windows-binaries-zecwallet-v$version.zip) -or - ! (Test-Path ./artifacts/macOS-zecwallet-v$version.dmg) -or - ! (Test-Path ./artifacts/Windows-installer-zecwallet-v$version.msi) ) { +if (! (Test-Path ./artifacts/linux-binaries-zecwallet-lite-v$version.tar.gz) -or + ! (Test-Path ./artifacts/linux-deb-zecwallet-lite-v$version.deb) -or + ! (Test-Path ./artifacts/Windows-binaries-zecwallet-lite-v$version.zip) -or + ! (Test-Path ./artifacts/macOS-zecwallet-lite-v$version.dmg) -or + ! (Test-Path ./artifacts/Windows-installer-zecwallet-lite-v$version.msi) ) { Write-Host "[Error]" exit 1; } diff --git a/src/scripts/mkwininstaller.ps1 b/src/scripts/mkwininstaller.ps1 index 603d05c..af72eb1 100644 --- a/src/scripts/mkwininstaller.ps1 +++ b/src/scripts/mkwininstaller.ps1 @@ -2,16 +2,13 @@ param ( [Parameter(Mandatory=$true)][string]$version ) -$target="zecwallet-v$version" +$target="zecwallet-lite-v$version" Remove-Item -Path release/wininstaller -Recurse -ErrorAction Ignore | Out-Null New-Item release/wininstaller -itemtype directory | Out-Null -Copy-Item release/$target/zecwallet.exe release/wininstaller/ -Copy-Item release/$target/LICENSE release/wininstaller/ -Copy-Item release/$target/README.md release/wininstaller/ -Copy-Item release/$target/zcashd.exe release/wininstaller/ -Copy-Item release/$target/zcash-cli.exe release/wininstaller/ +Copy-Item release/$target/zecwallet-lite.exe release/wininstaller/ +Copy-Item release/$target/LICENSE release/wininstaller/ Get-Content src/scripts/zec-qt-wallet.wxs | ForEach-Object { $_ -replace "RELEASE_VERSION", "$version" } | Out-File -Encoding utf8 release/wininstaller/zec-qt-wallet.wxs @@ -20,10 +17,10 @@ if (!$?) { exit 1; } -light.exe -ext WixUIExtension -cultures:en-us release/wininstaller/zec-qt-wallet.wixobj -out release/wininstaller/zecwallet.msi +light.exe -ext WixUIExtension -cultures:en-us release/wininstaller/zec-qt-wallet.wixobj -out release/wininstaller/zecwallet-lite.msi if (!$?) { exit 1; } New-Item artifacts -itemtype directory -Force | Out-Null -Copy-Item release/wininstaller/zecwallet.msi ./artifacts/Windows-installer-$target.msi \ No newline at end of file +Copy-Item release/wininstaller/zecwallet-lite.msi ./artifacts/Windows-installer-$target.msi \ No newline at end of file diff --git a/src/scripts/signbinaries.sh b/src/scripts/signbinaries.sh index 679b279..657c04f 100755 --- a/src/scripts/signbinaries.sh +++ b/src/scripts/signbinaries.sh @@ -35,7 +35,7 @@ rm -f signatures-v$APP_VERSION.tar.gz # sha256sum the binaries gsha256sum *$APP_VERSION* > sha256sum-v$APP_VERSION.txt -for i in $( ls *zecwallet-v$APP_VERSION* sha256sum-v$APP_VERSION* ); do +for i in $( ls *zecwallet-lite-v$APP_VERSION* sha256sum-v$APP_VERSION* ); do echo "Signing" $i gpg --batch --output ../release/signatures/$i.sig --detach-sig $i done diff --git a/src/scripts/zec-qt-wallet.wxs b/src/scripts/zec-qt-wallet.wxs index a781c8f..d97688c 100644 --- a/src/scripts/zec-qt-wallet.wxs +++ b/src/scripts/zec-qt-wallet.wxs @@ -1,15 +1,15 @@ - + - - + + - + @@ -37,13 +37,13 @@ - + - - + + - @@ -55,24 +55,21 @@ - + + Name="ZecWallet" WorkingDirectory="INSTALLFOLDER" Icon="zecwalletliteicon.exe" > - - - - + - + From 4d93418cc39ad56d80bc4456f1666f8ee694d265 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Fri, 8 Nov 2019 14:24:55 -0800 Subject: [PATCH 7/7] Add macos code signing --- src/scripts/dounifiedbuild.ps1 | 3 ++- src/scripts/mkmacdmg.sh | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/scripts/dounifiedbuild.ps1 b/src/scripts/dounifiedbuild.ps1 index c12032f..0173c1e 100644 --- a/src/scripts/dounifiedbuild.ps1 +++ b/src/scripts/dounifiedbuild.ps1 @@ -2,6 +2,7 @@ param ( [Parameter(Mandatory=$true)][string]$version, [Parameter(Mandatory=$true)][string]$prev, + [Parameter(Mandatory=$true)][string]$certificate, [Parameter(Mandatory=$true)][string]$server, [Parameter(Mandatory=$true)][string]$winserver ) @@ -27,7 +28,7 @@ Write-Host "" Write-Host "[Building on Mac]" -bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version +bash src/scripts/mkmacdmg.sh --qt_path ~/Qt/5.11.1/clang_64/ --version $version --certificate "$certificate" if (! $?) { Write-Output "[Error]" exit 1; diff --git a/src/scripts/mkmacdmg.sh b/src/scripts/mkmacdmg.sh index 3592266..6dea8e6 100755 --- a/src/scripts/mkmacdmg.sh +++ b/src/scripts/mkmacdmg.sh @@ -12,8 +12,8 @@ case $key in shift # past argument shift # past value ;; - -z|--zcash_path) - ZCASH_DIR="$2" + -c|--certificate) + CERTIFICATE="$2" shift # past argument shift # past value ;; @@ -35,6 +35,11 @@ if [ -z $QT_PATH ]; then exit 1; fi +if [ -z $CERTIFICATE ]; then + echo "CERTIFICATE is not set. Please set it the name of the MacOS developer certificate to sign the binary with"; + exit 1; +fi + if [ -z $APP_VERSION ]; then echo "APP_VERSION is not set. Please set it to the current release version of the app"; exit 1; @@ -71,6 +76,7 @@ mkdir artifacts >/dev/null 2>&1 rm -f artifcats/zecwallet-lite.dmg >/dev/null 2>&1 rm -f artifacts/rw* >/dev/null 2>&1 $QT_PATH/bin/macdeployqt zecwallet-lite.app +codesign --deep --force --verify --verbose -s "$CERTIFICATE" --options runtime --timestamp Zecwallet-Lite.app/ echo "[OK]"