Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Payjoin #1806

Closed
wants to merge 205 commits into from
Closed

Payjoin #1806

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
ab1f267
Update flags
tuxpizza Aug 16, 2024
989f7fe
Update more flags
tuxpizza Aug 17, 2024
e8a03fc
Update even more flags
tuxpizza Aug 17, 2024
c795763
Merge branch 'main' into flags
tuxpizza Aug 17, 2024
9ad4c9b
Merge branch 'main' into flags
tuxpizza Aug 21, 2024
9390ceb
Merge branch 'main' into flags
OmarHatem28 Aug 22, 2024
0dc6e26
Merge branch 'main' into flags
tuxpizza Aug 22, 2024
d01199b
Merge pull request #1618 from cake-tech/flags
tuxpizza Aug 22, 2024
4c2d061
rbf fixes issues sum utxo and fee calculation (#1625)
Serhii-Borodenko Aug 23, 2024
8524e23
make analyzer less red (#1628)
MrCyjaneK Aug 24, 2024
40f85d2
Rbf fixes issues op return data plus ThorChain (#1648)
Serhii-Borodenko Aug 24, 2024
ce21098
Cw 488 seed offset (#1631)
konstantinullrich Aug 26, 2024
518bfbe
fetch accurate fee rates from Cake's mempool api (#1649)
OmarHatem28 Aug 26, 2024
4c795ea
subaddress fix (#1620)
MrCyjaneK Aug 26, 2024
f072e79
V4.19.5 v1.16.5 (#1654)
OmarHatem28 Aug 27, 2024
82f64a4
revert subaddress fix (#1656)
OmarHatem28 Aug 28, 2024
c17f167
Fix windows build (#1658)
konstantinullrich Aug 29, 2024
0c1ca78
allow restoring electrum seeds (#1665)
fossephate Sep 4, 2024
e29e5d9
show pending status for outgoing transactions (#1669)
MrCyjaneK Sep 5, 2024
576dd49
Update check_box_picker.dart (#1660)
Serhii-Borodenko Sep 5, 2024
783f1a2
Nano rep page + derivation fixes (#1655)
fossephate Sep 5, 2024
0b06ad3
CW-702: fix mismatched amounts in multDest transactions (#1653)
MrCyjaneK Sep 5, 2024
3869a71
CW-695: Fix Zone Mismatch Error Triggered By Restoring Backup (#1651)
Blazebrain Sep 5, 2024
580bd01
Remove node.moneroworld.com (#1667)
tuxpizza Sep 5, 2024
f279a22
Cw 682 integrate stealth ex exchange provider (#1575)
Serhii-Borodenko Sep 6, 2024
125fdf8
quick fix for the reconnection issue (#1671)
Serhii-Borodenko Sep 9, 2024
215e785
Update electrum_wallet.dart (#1664)
Serhii-Borodenko Sep 10, 2024
7d11d04
Integrate LetsExchange exchange provider (#1562)
Serhii-Borodenko Sep 11, 2024
e2bfb32
Add Vietnamese Language (#1674)
leoodz Sep 11, 2024
0e10683
bump dep (#1679)
rafael-xmr Sep 11, 2024
7bf2fb9
feat: Add warning before adding erc20 token via contract address (#1663)
Blazebrain Sep 11, 2024
417de36
do not restore deterministic wallet if it's not one (#1676)
MrCyjaneK Sep 15, 2024
c6a4c69
CW-719 Transaction dates shows incorrectly (#1685)
Serhii-Borodenko Sep 17, 2024
b6bc3df
Fix list UI having double width on some parts (#1687)
fossephate Sep 18, 2024
3a391f1
Sp enhancements (#1672)
rafael-xmr Sep 20, 2024
4e2e5e7
CW-580: BIP39 Wallets Shared Seed Implementation: "One Seed - Multipl…
Blazebrain Sep 20, 2024
32e119e
rbf-fixes-recomended-fee-rate (#1684)
Serhii-Borodenko Sep 20, 2024
4adb81c
CW-727/728-Automated-Integrated-Tests (#1514)
Blazebrain Sep 22, 2024
e2b3507
CW-745 don't show txkey when it's unavailable (#1692)
MrCyjaneK Sep 22, 2024
6592b7a
Generic enhancements (#1668)
tuxpizza Sep 23, 2024
17de9f1
fix polygon name (#1697)
Serhii-Borodenko Sep 23, 2024
bab45a9
add missing error messages (#1696)
MrCyjaneK Sep 23, 2024
094b5ec
Revert "fix polygon name (#1697)" (#1699)
OmarHatem28 Sep 23, 2024
cf1e8a3
Qr code passphrase restoration flow fix (#1694)
Serhii-Borodenko Sep 24, 2024
fc7bea6
Fix-agressive-contract-check (#1698)
Blazebrain Sep 24, 2024
e9b5b18
Fix regex pattern (#1695)
rafael-xmr Sep 26, 2024
1158484
Verify seed phrase (#1700)
OmarHatem28 Sep 26, 2024
6475516
fix derivation Info (#1689)
Serhii-Borodenko Sep 26, 2024
9edd87b
keep sign/verify pages loaded (#1703)
fossephate Sep 26, 2024
331d6ee
Update transaction_details_view_model.dart (#1690)
MyEcoria Sep 26, 2024
c6b0b7f
fix valid seed check for non bip39 wallets
OmarHatem28 Sep 27, 2024
791b410
add solana node [skip ci]
OmarHatem28 Sep 27, 2024
b2850c2
feat: Add UI signifying the currently selected wallet indicator (#1704)
Blazebrain Sep 27, 2024
b6e8970
change tags to POL and fix lets exchange (#1708)
OmarHatem28 Sep 27, 2024
4c55d96
reset address balances before updating unspents (#1707)
Serhii-Borodenko Sep 27, 2024
a149c71
Update monero_c (#1709)
MrCyjaneK Sep 27, 2024
fc5878d
Currently selected wallet pointer UI (#1710)
Blazebrain Sep 28, 2024
62e0c2a
litecoin mweb support (#1455)
fossephate Sep 28, 2024
f8b0c0a
CW-611-Refactor-Address-Handling (#1630)
MrCyjaneK Sep 28, 2024
651792a
Clean up Silent Payments copy (#1724)
sethforprivacy Oct 4, 2024
3348213
fix min fee not met exception (#1726)
Serhii-Borodenko Oct 4, 2024
fc14bf4
fix: Issues with imaging (#1723)
Blazebrain Oct 4, 2024
4b4d8a4
Add passphrase support for Eth, Polygon, and Tron (#1719)
OmarHatem28 Oct 4, 2024
d933743
Cw 772 restore from qr generates different wallet (#1721)
Serhii-Borodenko Oct 4, 2024
6dba73a
Generic fixes (#1716)
OmarHatem28 Oct 4, 2024
dfccedd
Cw 769 fix transaction notes not showing (#1718)
Serhii-Borodenko Oct 4, 2024
cc61a25
Set flush: true in backup service (#1717)
MrCyjaneK Oct 4, 2024
382a0ff
Various monero fixes (#1722)
MrCyjaneK Oct 5, 2024
37b822b
Mweb enhancements (#1715)
fossephate Oct 5, 2024
62f55ae
Allow Wallet Group Names to be the same as Wallet Names (#1730)
Blazebrain Oct 8, 2024
8acf8bd
feat: add onError exception (#1743)
rafael-xmr Oct 10, 2024
380f765
V4.20.0 rc2 (#1727)
OmarHatem28 Oct 12, 2024
ebe8c65
Peg in and peg out flow (#1745)
OmarHatem28 Oct 14, 2024
a211eab
Change exchange to swap (#1731)
tuxpizza Oct 14, 2024
c3019b9
Harden the Android manifest (#1741)
tuxpizza Oct 14, 2024
b56dcac
fix: Issue with nownodes on older wallets (#1750)
Blazebrain Oct 16, 2024
cb75f08
fix P2wpkhAddress btc ltc validation (#1749)
Serhii-Borodenko Oct 16, 2024
605d164
Cw 772 restore from qr generates different wallet (#1742)
Serhii-Borodenko Oct 16, 2024
564f8e2
fix backup on debug builds (#1728)
MrCyjaneK Oct 16, 2024
cd5a127
Disable sendAll on native EVM Currencies (#1753)
Blazebrain Oct 17, 2024
6c9de67
Fix fiat rate on receive screen. (#1754)
konstantinullrich Oct 17, 2024
5c2735b
transaction description key id address (#1755)
Serhii-Borodenko Oct 18, 2024
7faca38
fix: sp input calc (#1756)
rafael-xmr Oct 18, 2024
50825a6
Mweb enhancements 3 (#1744)
fossephate Oct 19, 2024
34166c3
v4.20.0 (#1759)
OmarHatem28 Oct 21, 2024
0a1e32c
Fix typos (#1760)
omahs Oct 22, 2024
20efba4
enable ssl for btc-electrum (#1765)
OmarHatem28 Oct 22, 2024
3898208
fix send all (#1766)
OmarHatem28 Oct 22, 2024
68b18f6
new versions (#1767)
OmarHatem28 Oct 22, 2024
e04185a
upload x86 arch to artifacts [skip ci]
OmarHatem28 Oct 22, 2024
68926c0
Cw 679 add ledger litecoin support (#1565)
konstantinullrich Oct 23, 2024
4372165
fix: Issue with prevent screenshots implementation on iOS (#1729)
Blazebrain Oct 24, 2024
858e5ca
spanish: miscellaneous rewording (#1777)
rottenwheel Oct 25, 2024
54c41d4
spanish (#1776)
rottenwheel Oct 25, 2024
5c206a8
fix MobX Exception: computed values issue (#1763)
Serhii-Borodenko Oct 28, 2024
1985105
Fix disappearing recipientAddress for XMR Transactions (#1784)
konstantinullrich Oct 30, 2024
e501a41
Fix the manifest once and for all (#1773)
tuxpizza Oct 30, 2024
5fc6490
Update README.md (#1770)
oksanaphmn Oct 30, 2024
752b6bb
fix: Generic fixes of bugs from Support (#1774)
Blazebrain Oct 31, 2024
740f466
fix: sp filter option (#1780)
rafael-xmr Nov 1, 2024
4916d1f
fix the issue with updating sending outputs (#1785)
Serhii-Borodenko Nov 1, 2024
72241d4
spanish: tidy up and reword a lot of ES translations; catch missed un…
rottenwheel Nov 1, 2024
b8ffd47
Docs spelling issues (#1789)
nnsW3 Nov 4, 2024
459f0d3
Cw 805 fix bch refund address (#1782)
Serhii-Borodenko Nov 5, 2024
109d9b4
Cw 514 add sort functionality for addressbook mywallets and contacts…
Serhii-Borodenko Nov 7, 2024
c8cfc2c
Mweb enhancements 4 (#1768)
fossephate Nov 7, 2024
48457fd
cake pay country picker (#1779)
Serhii-Borodenko Nov 7, 2024
0fcfd76
Automated Integration Tests Flows (#1686)
Blazebrain Nov 7, 2024
389c334
Electrum enhancements (#1794)
OmarHatem28 Nov 8, 2024
8e12fb1
fix: paymentUrls is null (#1786)
rafael-xmr Nov 9, 2024
cea3084
WIP: CW-665 Implement AirGapped Monero Transactions (#1535)
MrCyjaneK Nov 9, 2024
02f5305
Cw 657 new buy sell flow (#1553)
Serhii-Borodenko Nov 9, 2024
2881646
Updatable builds (#1791)
OmarHatem28 Nov 9, 2024
5301ee4
Update onramper_buy_provider.dart (#1796)
Serhii-Borodenko Nov 9, 2024
ed69dc8
fix cache key
OmarHatem28 Nov 9, 2024
89525b1
temporarily disable key caching
OmarHatem28 Nov 9, 2024
e148f64
fix the UI issue with sending outputs (#1798)
Serhii-Borodenko Nov 11, 2024
2c37e42
Cw 660 add ledger monero (#1747)
konstantinullrich Nov 12, 2024
96db38c
Cw 744 improve address book (#1771)
Serhii-Borodenko Nov 12, 2024
c469857
add xmr to unstoppable domain (#1800)
OmarHatem28 Nov 12, 2024
0adb69d
Better Ledger Connection handling (#1802)
konstantinullrich Nov 13, 2024
ed5e701
Potential fix for the race condition of loading a wallet while the na…
OmarHatem28 Nov 13, 2024
a955a59
Receive Payjoin v2
J0J0XMR Aug 24, 2024
9f14b82
Send Payjoin v2
J0J0XMR Aug 28, 2024
816ef42
Add missing methods for Payjoin
J0J0XMR Sep 4, 2024
3d5c3eb
Add amount to Payjoin URI
J0J0XMR Sep 4, 2024
222aeb8
Payjoin error message
J0J0XMR Sep 5, 2024
71ba1a1
Add PjURI support on Send screen
J0J0XMR Sep 6, 2024
8b3f132
Create PSBT & code clean up
J0J0XMR Sep 21, 2024
cbb4e7b
Konstantin: Add PSBT scripts
J0J0XMR Oct 26, 2024
8282bac
PSBTv0 sign & convert
J0J0XMR Oct 26, 2024
195239f
Skip address validate on PjURI
J0J0XMR Oct 28, 2024
25ae7c4
Add bitcoin.dart
J0J0XMR Nov 11, 2024
59ca8b1
DEBUG PSBT & TEMP REPOS
J0J0XMR Nov 11, 2024
cf7f019
fix the UI issue with address book (#1803)
Serhii-Borodenko Nov 14, 2024
9be990a
Move the api key of trocador to the headers (#1808)
OmarHatem28 Nov 16, 2024
ff5fbd7
v4.21.0 Release Candidate (#1795)
OmarHatem28 Nov 16, 2024
29b659e
Fix Whitespace in secret_key.dart (#1812)
Justxd22 Nov 21, 2024
cfe78d4
Fix error reporting in transaction creation (#1821)
MrCyjaneK Nov 24, 2024
505ea26
CW-798 Fix macos 15 issues (#1775)
MrCyjaneK Nov 25, 2024
367c36b
fix sed (#1829)
MrCyjaneK Nov 25, 2024
59e8550
Generic fixes (#1823)
OmarHatem28 Nov 25, 2024
8ceaa01
Fix sed (again) (#1830)
MrCyjaneK Nov 25, 2024
83cfc7d
fix building with haven
OmarHatem28 Nov 25, 2024
09bc186
Cw 835 investigate failed to get earliest block height when sending m…
MrCyjaneK Nov 26, 2024
738731d
CW-826 Fix missing tx keys in monero (#1828)
MrCyjaneK Nov 26, 2024
eff6616
Migrate to new self-hosted mempool.space instance (#1820)
sethforprivacy Nov 26, 2024
765ae87
Automatically upgrade non-SSL nodes to SSL if they fail (#1757)
MrCyjaneK Nov 26, 2024
9706243
change default tron node to nowNodes if not already
OmarHatem28 Nov 27, 2024
87178b2
CW-766 fix coin freezing (#1751)
MrCyjaneK Nov 27, 2024
c3978bf
enhance exception handling in cakePay getVendors (#1833)
Serhii-Borodenko Nov 27, 2024
125c40b
fix onramper network tag plus UI (#1832)
Serhii-Borodenko Nov 27, 2024
13c4fbd
minor UI change
OmarHatem28 Nov 27, 2024
5ca1c0c
Cw 765 onboarding flow improvements (#1817)
Serhii-Borodenko Nov 27, 2024
4ca50b5
Cw 649 rbf improvements opt in (#1772)
Serhii-Borodenko Nov 28, 2024
9cd69c4
Cw 830 coin control getting cleared (#1825)
Serhii-Borodenko Nov 28, 2024
63f26c0
[Cakepay] alert iOS availability (#1837)
rafael-xmr Nov 28, 2024
d8d4190
prevent calling unsupported payment method (#1836)
Serhii-Borodenko Nov 28, 2024
17d34be
CW-782: Show error report popup without cooldown (#1739)
MrCyjaneK Nov 28, 2024
79f20c2
update versions (#1835)
OmarHatem28 Nov 29, 2024
de970fc
test (#1838)
OmarHatem28 Nov 29, 2024
bd38393
fix sending issue (#1840)
OmarHatem28 Nov 29, 2024
de15c40
Add APK verification to readme
tuxpizza Nov 30, 2024
c839138
Merge pull request #1843 from cake-tech/apk-verification
konstantinullrich Dec 1, 2024
5b162c5
Update AndroidManifestBase.xml
OmarHatem28 Dec 2, 2024
3e1cb39
fix infinity values in LetsExchange fixed rate (#1849)
Serhii-Borodenko Dec 2, 2024
2e6dbe7
(fix)[translations]: update French translations for wallet (#1850)
MyEcoria Dec 3, 2024
0691b9d
NanoGPT portuguese string fix (#1839)
ArTombado Dec 3, 2024
01faeab
test (#1842)
OmarHatem28 Dec 3, 2024
ad6eb7d
macos new build
OmarHatem28 Dec 3, 2024
9fcbc4d
CW-846: Correctly display balance (#1848)
MrCyjaneK Dec 4, 2024
93ed71f
temporarily ignore flutter secure storage errors
OmarHatem28 Dec 9, 2024
c74194a
Merge remote-tracking branch 'origin/main'
OmarHatem28 Dec 9, 2024
c78662f
CW 781 replace all print statements with printV (#1733)
MrCyjaneK Dec 9, 2024
03ff228
Cw 658 make the addressbook popup can be turned off from the settings…
Serhii-Borodenko Dec 9, 2024
6744bb8
try another approach (don't know how it used to work but not with the…
OmarHatem28 Dec 9, 2024
5553d5c
potential fix for cached jks
OmarHatem28 Dec 10, 2024
35cf4a7
separate CI steps more clearly
OmarHatem28 Dec 10, 2024
ed600f9
disable cache key for now
OmarHatem28 Dec 10, 2024
7364c7d
API changes for v0.21
J0J0XMR Dec 10, 2024
15e70fe
Fix PjURI amount not filling on send page
J0J0XMR Dec 11, 2024
9590aa2
CW-802: Ethereum enhancements (#1826)
Blazebrain Dec 11, 2024
82bad3a
fix regex for xrp and wow
OmarHatem28 Dec 11, 2024
6e8cc9c
CW-854 Monero Wallet Group Fix (#1865)
Blazebrain Dec 11, 2024
699f591
fix: Tentative fix for transaction history items overlap across walle…
Blazebrain Dec 11, 2024
329a1fd
CW-703: Better Seed UI/UX (#1868)
Blazebrain Dec 11, 2024
e2a1d86
CW-673: Save Haven seeds to show it to the user after Haven removal (…
MrCyjaneK Dec 11, 2024
1320b3e
Update address_validator.dart (#1805)
Serhii-Borodenko Dec 11, 2024
fd6801c
CW-834 Empty error when spending in wownero (#1870)
MrCyjaneK Dec 11, 2024
5abd524
Update seed page strings and colors (#1871)
tuxpizza Dec 12, 2024
ad34caa
UI Enhancements (#1824)
tuxpizza Dec 12, 2024
df6ea55
CW-848-amount-0-fee-error-fix-in-monero (#1866)
MrCyjaneK Dec 12, 2024
489a409
Cw 807 add extra fields for xrp and xlm exchanges (#1869)
Serhii-Borodenko Dec 12, 2024
e21cf71
CW-703: Better Seed UI/UX - Fix for Japanese PolySeeds (#1875)
Blazebrain Dec 13, 2024
3ad0422
test: Attempting automation for testing (#1734)
Blazebrain Dec 13, 2024
9a60b01
add transaction success info page (#1878)
Serhii-Borodenko Dec 13, 2024
c620d7f
CW-829 Solana Enhancements (#1858)
Blazebrain Dec 13, 2024
ae75875
Ledger monero fix (#1834)
konstantinullrich Dec 13, 2024
ca4d4ae
Update support links (#1876)
tuxpizza Dec 14, 2024
707395b
Confirmation checkboxes (#1877)
rafael-xmr Dec 14, 2024
d55e635
Cw 853 mweb utxos are not displayed in coin control screen (#1873)
Serhii-Borodenko Dec 14, 2024
ae80fb3
CW-774: Enforce Seed Verification (#1874)
Blazebrain Dec 14, 2024
faf1219
TEMP REPO
J0J0XMR Dec 14, 2024
34f5b2a
Merge branch 'main' into payjoin-merge
J0J0XMR Dec 17, 2024
3ad8db4
Update pubsec
J0J0XMR Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
298 changes: 298 additions & 0 deletions .github/workflows/automated_integration_test.yml

Large diffs are not rendered by default.

15 changes: 14 additions & 1 deletion .github/workflows/cache_dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v1
with:
flutter-version: "3.19.6"
flutter-version: "3.24.4"
channel: stable

- name: Install package dependencies
Expand Down Expand Up @@ -69,3 +69,16 @@ jobs:
cd /opt/android/cake_wallet/scripts/android/
source ./app_env.sh cakewallet
./build_monero_all.sh

- name: Cache Keystore
id: cache-keystore
uses: actions/cache@v3
with:
path: /opt/android/cake_wallet/android/app
key: keystore

- if: ${{ steps.cache-keystore.outputs.cache-hit != 'true' }}
name: Generate KeyStore
run: |
cd /opt/android/cake_wallet/android/app
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS
21 changes: 21 additions & 0 deletions .github/workflows/no_print_in_dart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: No print statements in dart files

on:
pull_request:
branches: [main]

jobs:
PR_test_build:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v4
- name: Check for print() statements in dart code (use printV() instead)
if: github.event_name == 'pull_request'
run: |
GIT_GREP_OUT="$(git grep ' print(' | (grep .dart: || test $? = 1) | (grep -v print_verbose.dart || test $? = 1) || true)"
[[ "x$GIT_GREP_OUT" == "x" ]] && exit 0
echo "$GIT_GREP_OUT"
echo "There are .dart files which use print() statements"
echo "Please use printV from package: cw_core/utils/print_verbose.dart"
exit 1
99 changes: 91 additions & 8 deletions .github/workflows/pr_test_build_android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ on:
jobs:
PR_test_build:
runs-on: ubuntu-20.04
strategy:
matrix:
api-level: [29]
env:
STORE_PASS: test@cake_wallet
KEY_PASS: test@cake_wallet
Expand Down Expand Up @@ -50,22 +53,40 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v1
with:
flutter-version: "3.19.6"
flutter-version: "3.24.0"
channel: stable

- name: Install package dependencies
run: |
sudo apt update
sudo apt-get install -y curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake clang

- name: Execute Build and Setup Commands

- name: Clone Repo
run: |
sudo mkdir -p /opt/android
sudo chown $USER /opt/android
cd /opt/android
git clone https://github.com/cake-tech/cake_wallet.git --branch ${{ env.BRANCH_NAME }}

# - name: Cache Keystore
# id: cache-keystore
# uses: actions/cache@v3
# with:
# path: /opt/android/cake_wallet/android/app
# key: keystore
#
# - if: ${{ steps.cache-keystore.outputs.cache-hit != 'true' }}
- name: Generate KeyStore
run: |
cd /opt/android/cake_wallet/android/app
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS

- name: Execute Build and Setup Commands
run: |
cd /opt/android
-y curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install cargo-ndk
git clone https://github.com/cake-tech/cake_wallet.git --branch ${{ env.BRANCH_NAME }}
cd cake_wallet/scripts/android/
./install_ndk.sh
source ./app_env.sh cakewallet
Expand Down Expand Up @@ -93,20 +114,34 @@ jobs:
cd /opt/android/cake_wallet
flutter pub get

- name: Generate KeyStore

- name: Install go and gomobile
run: |
cd /opt/android/cake_wallet/android/app
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS
# install go > 1.23:
wget https://go.dev/dl/go1.23.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.1.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:~/go/bin
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init

- name: Build mwebd
run: |
# paths are reset after each step, so we need to set them again:
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:~/go/bin
cd /opt/android/cake_wallet/scripts/android/
./build_mwebd.sh --dont-install

- name: Generate key properties
run: |
cd /opt/android/cake_wallet
flutter packages pub run tool/generate_android_key_properties.dart keyAlias=testKey storeFile=key.jks storePassword=$STORE_PASS keyPassword=$KEY_PASS
dart run tool/generate_android_key_properties.dart keyAlias=testKey storeFile=key.jks storePassword=$STORE_PASS keyPassword=$KEY_PASS

- name: Generate localization
run: |
cd /opt/android/cake_wallet
flutter packages pub run tool/generate_localization.dart
dart run tool/generate_localization.dart

- name: Build generated code
run: |
Expand Down Expand Up @@ -149,8 +184,11 @@ jobs:
echo "const fiatApiKey = '${{ secrets.FIAT_API_KEY }}';" >> lib/.secrets.g.dart
echo "const payfuraApiKey = '${{ secrets.PAYFURA_API_KEY }}';" >> lib/.secrets.g.dart
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> lib/.secrets.g.dart
echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> lib/.secrets.g.dart
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> lib/.secrets.g.dart
echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart
echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart
echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart
Expand All @@ -168,11 +206,47 @@ jobs:
echo "const nanoNowNodesApiKey = '${{ secrets.NANO_NOW_NODES_API_KEY }}';" >> cw_nano/lib/.secrets.g.dart
echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
echo "const tronNowNodesApiKey = '${{ secrets.TRON_NOW_NODES_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
echo "const meldTestApiKey = '${{ secrets.MELD_TEST_API_KEY }}';" >> lib/.secrets.g.dart
echo "const meldTestPublicKey = '${{ secrets.MELD_TEST_PUBLIC_KEY}}';" >> lib/.secrets.g.dart
echo "const letsExchangeBearerToken = '${{ secrets.LETS_EXCHANGE_TOKEN }}';" >> lib/.secrets.g.dart
echo "const letsExchangeAffiliateId = '${{ secrets.LETS_EXCHANGE_AFFILIATE_ID }}';" >> lib/.secrets.g.dart
echo "const stealthExBearerToken = '${{ secrets.STEALTH_EX_BEARER_TOKEN }}';" >> lib/.secrets.g.dart
echo "const stealthExAdditionalFeePercent = '${{ secrets.STEALTH_EX_ADDITIONAL_FEE_PERCENT }}';" >> lib/.secrets.g.dart

- name: Rename app
run: |
echo -e "id=com.cakewallet.test_${{ env.PR_NUMBER }}\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties

# Step 3: Download previous build number
- name: Download previous build number
id: download-build-number
run: |
# Download the artifact if it exists
if [[ ! -f build_number.txt ]]; then
echo "1" > build_number.txt
fi

# Step 4: Read and Increment Build Number
- name: Increment Build Number
id: increment-build-number
run: |
# Read current build number from file
BUILD_NUMBER=$(cat build_number.txt)
BUILD_NUMBER=$((BUILD_NUMBER + 1))
echo "New build number: $BUILD_NUMBER"

# Save the incremented build number
echo "$BUILD_NUMBER" > build_number.txt

# Export the build number to use in later steps
echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV

# Step 5: Update pubspec.yaml with new build number
- name: Update build number
run: |
cd /opt/android/cake_wallet
sed -i "s/^version: .*/version: 1.0.$BUILD_NUMBER/" pubspec.yaml

- name: Build
run: |
cd /opt/android/cake_wallet
Expand All @@ -196,12 +270,20 @@ jobs:
cd /opt/android/cake_wallet/build/app/outputs/flutter-apk
mkdir test-apk
cp app-arm64-v8a-release.apk test-apk/${{env.BRANCH_NAME}}.apk
cp app-x86_64-release.apk test-apk/${{env.BRANCH_NAME}}_x86.apk

- name: Upload Artifact
uses: kittaakos/upload-artifact-as-is@v0
with:
path: /opt/android/cake_wallet/build/app/outputs/flutter-apk/test-apk/

# Re-upload updated build number for the next run
- name: Upload updated build number
uses: actions/upload-artifact@v3
with:
name: build_number
path: build_number.txt

- name: Send Test APK
continue-on-error: true
uses: adrey/[email protected]
Expand All @@ -212,3 +294,4 @@ jobs:
title: "${{ env.BRANCH_NAME }}.apk"
filename: ${{ env.BRANCH_NAME }}.apk
initial_comment: ${{ github.event.head_commit.message }}

32 changes: 30 additions & 2 deletions .github/workflows/pr_test_build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v1
with:
flutter-version: "3.19.6"
flutter-version: "3.24.0"
channel: stable

- name: Install package dependencies
Expand Down Expand Up @@ -89,10 +89,29 @@ jobs:
cd /opt/android/cake_wallet
flutter pub get

- name: Install go and gomobile
run: |
# install go > 1.23:
wget https://go.dev/dl/go1.23.1.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.1.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:~/go/bin
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init

- name: Build mwebd
run: |
# paths are reset after each step, so we need to set them again:
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:~/go/bin
# build mwebd:
cd /opt/android/cake_wallet/scripts/android/
./build_mwebd.sh --dont-install

- name: Generate localization
run: |
cd /opt/android/cake_wallet
flutter packages pub run tool/generate_localization.dart
dart run tool/generate_localization.dart

- name: Build generated code
run: |
Expand Down Expand Up @@ -125,6 +144,8 @@ jobs:
echo "const sideShiftAffiliateId = '${{ secrets.SIDE_SHIFT_AFFILIATE_ID }}';" >> lib/.secrets.g.dart
echo "const simpleSwapApiKey = '${{ secrets.SIMPLE_SWAP_API_KEY }}';" >> lib/.secrets.g.dart
echo "const simpleSwapApiKeyDesktop = '${{ secrets.SIMPLE_SWAP_API_KEY_DESKTOP }}';" >> lib/.secrets.g.dart
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> lib/.secrets.g.dart
echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> lib/.secrets.g.dart
echo "const onramperApiKey = '${{ secrets.ONRAMPER_API_KEY }}';" >> lib/.secrets.g.dart
echo "const anypayToken = '${{ secrets.ANY_PAY_TOKEN }}';" >> lib/.secrets.g.dart
echo "const ioniaClientId = '${{ secrets.IONIA_CLIENT_ID }}';" >> lib/.secrets.g.dart
Expand All @@ -144,6 +165,7 @@ jobs:
echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
echo "const testCakePayApiKey = '${{ secrets.TEST_CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
echo "const cakePayApiKey = '${{ secrets.CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
Expand All @@ -154,6 +176,12 @@ jobs:
echo "const nanoNowNodesApiKey = '${{ secrets.NANO_NOW_NODES_API_KEY }}';" >> cw_nano/lib/.secrets.g.dart
echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
echo "const tronNowNodesApiKey = '${{ secrets.TRON_NOW_NODES_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
echo "const meldTestApiKey = '${{ secrets.MELD_TEST_API_KEY }}';" >> lib/.secrets.g.dart
echo "const meldTestPublicKey = '${{ secrets.MELD_TEST_PUBLIC_KEY}}';" >> lib/.secrets.g.dar
echo "const letsExchangeBearerToken = '${{ secrets.LETS_EXCHANGE_TOKEN }}';" >> lib/.secrets.g.dart
echo "const letsExchangeAffiliateId = '${{ secrets.LETS_EXCHANGE_AFFILIATE_ID }}';" >> lib/.secrets.g.dart
echo "const stealthExBearerToken = '${{ secrets.STEALTH_EX_BEARER_TOKEN }}';" >> lib/.secrets.g.dart
echo "const stealthExAdditionalFeePercent = '${{ secrets.STEALTH_EX_ADDITIONAL_FEE_PERCENT }}';" >> lib/.secrets.g.dart

- name: Rename app
run: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
macos/Runner/Configs/AppInfo.xcconfig


integration_test/playground.dart

# Monero.dart (Monero_C)
scripts/monero_c
# iOS generated framework bin
Expand Down
4 changes: 2 additions & 2 deletions PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ Last modified: January 24, 2024
Introduction
============

Cake Labs LLC ("Cake Labs", "Company", or "We") respect your privacy and are committed to protecting it through our compliance with this policy.
Cake Labs LLC ("Cake Labs", "Company", or "We") respects your privacy and are committed to protecting it through our compliance with this policy.

This policy describes the types of information we may collect from you or that you may provide when you use the App (our "App") and our practices for collecting, using, maintaining, protecting, and disclosing that information.

This policy applies to information we collect:
- On this App.
- In email, text, and other electronic messages between you and this App.
It does not apply to information collected by:
- Us offline or through any other means, including on any other App operated by Company or any third party (including our affiliates and subsidiaries); or
- Us offline or through any other means, including on any other App operated by the Company or any third party (including our affiliates and subsidiaries); or
- Any third party (including our affiliates and subsidiaries), including through any application or content (including advertising) that may link to or be accessible from or on the App.
Please read this policy carefully to understand our policies and practices regarding your information and how we will treat it. If you do not agree with our policies and practices, you have the choice to not use the App. By accessing or using this App, you agree to this privacy policy. This policy may change from time to time. Your continued use of this App after we make changes is deemed to be acceptance of those changes, so please check the policy periodically for updates.

Expand Down
19 changes: 15 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@

# Cake Wallet

Cake Wallet is an open source, non-custodial, and private multi-currency crypto wallet for Android, iOS, macOS, and Linux.
[Cake Wallet](https://cakewallet.com) is an open-source, non-custodial, and private multi-currency crypto wallet for Android, iOS, macOS, and Linux.

Cake Wallet includes support for several cryptocurrencies, including:
* Monero (XMR)
* Bitcoin (BTC)
* Ethereum (ETH)
* Litecoin (LTC)
* Bitcoin Cash (BCH)
* Polygon (MATIC)
* Polygon (Pol)
* Solana (SOL)
* Nano (XNO)
* Haven (XHV)
Expand All @@ -44,7 +44,7 @@ Cake Wallet includes support for several cryptocurrencies, including:
* Create several wallets
* Select your own custom nodes/servers
* Address book
* Backup to external location or iCloud
* Backup to an external location or iCloud
* Send to OpenAlias, Unstoppable Domains, Yats, and FIO Crypto Handles
* Set desired network fee level
* Store local transaction notes
Expand Down Expand Up @@ -99,6 +99,17 @@ Cake Wallet includes support for several cryptocurrencies, including:
* F-Droid: https://fdroid.cakelabs.com
* APK: https://github.com/cake-tech/cake_wallet/releases

### APK Verification

APK releases on GitHub, Accrescent, and F-Droid use the same key. They can easily be verified using [apksigner](https://developer.android.com/tools/apksigner#options-verify) or [AppVerifier](https://github.com/soupslurpr/AppVerifier).

See below for Cake Wallet's SHA-256 signing certificate hash:

```
com.cakewallet.cake_wallet
C5:40:53:AB:0F:10:D9:54:17:62:A3:DA:76:65:AE:3D:BA:5E:7C:74:3A:B4:F1:08:A5:34:9D:62:AC:10:6E:F5
```

# Support

We have 24/7 free support. Please contact [email protected]
Expand Down Expand Up @@ -161,7 +172,7 @@ The only parts to be translated, if needed, are the values m and s after the var

4. Add the language to `lib/entities/language_service.dart` under both `supportedLocales` and `localeCountryCode`. Use the name of the language in the local language and in English in parentheses after for `supportedLocales`. Use the [ISO 3166-1 alpha-3 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) for `localeCountryCode`. You must choose one country, so choose the country with the most native speakers of this language or is otherwise best associated with this language.

5. Add a relevant flag to `assets/images/flags/XXXX.png`, replacing XXXX with the 3 letters localeCountryCode. The image must be 42x26 pixels with a 3 pixels of transparent margin on all 4 sides. You can resize the flag with [paint.net](https://www.getpaint.net/) to 36x20 pixels, expand the canvas to 42x26 pixels with the flag anchored in the middle, and then manually delete the 3 pixels on each side to make transparent. Or you can use another program like Photoshop.
5. Add a relevant flag to `assets/images/flags/XXXX.png`, replacing XXXX with the 3 letters localeCountryCode. The image must be 42x26 pixels with 3 pixels of transparent margin on all 4 sides. You can resize the flag with [paint.net](https://www.getpaint.net/) to 36x20 pixels, expand the canvas to 42x26 pixels with the flag anchored in the middle, and then manually delete the 3 pixels on each side to make it transparent. Or you can use another program like Photoshop.

6. Add the new language code to `tool/utils/translation/translation_constants.dart`

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ If you need to report a vulnerability, please either:

## Supported Versions

As we don't maintain prevoius versions of the app, only the latest release for each platform is supported and any updates will bump the version number.
As we don't maintain previous versions of the app, only the latest release for each platform is supported and any updates will bump the version number.
Loading