Commit Graph
4306 Commits
Author SHA1 Message Date
Blazebrain 3f8cc0e975 Merge remote-tracking branch 'origin/dev' into CW-1529-Improved-Seed-UI
# Conflicts:
#	lib/new-ui/pages/home_page.dart
#	res/values/strings_ar.arb
#	res/values/strings_bg.arb
#	res/values/strings_cs.arb
#	res/values/strings_es.arb
#	res/values/strings_fa.arb
#	res/values/strings_fr.arb
#	res/values/strings_gn.arb
#	res/values/strings_ha.arb
#	res/values/strings_hi.arb
#	res/values/strings_hr.arb
#	res/values/strings_hy.arb
#	res/values/strings_id.arb
#	res/values/strings_it.arb
#	res/values/strings_ja.arb
#	res/values/strings_ko.arb
#	res/values/strings_my.arb
#	res/values/strings_nl.arb
#	res/values/strings_pl.arb
#	res/values/strings_pt.arb
#	res/values/strings_pt_BR.arb
#	res/values/strings_ru.arb
#	res/values/strings_th.arb
#	res/values/strings_tl.arb
#	res/values/strings_tr.arb
#	res/values/strings_uk.arb
#	res/values/strings_ur.arb
#	res/values/strings_vi.arb
#	res/values/strings_yo.arb
#	res/values/strings_zh.arb
2026-09-15 10:45:35 +01:00
David AdegokeandGitHub 96e5329b32 fix: sign and verify for evm wallets (#3599) 2026-09-14 21:58:22 +02:00
ef6879b617 fix(CW-1638): include transaction notes in history CSV export (#3623)
* fix(CW-1638): include transaction notes in history CSV export

The `note` column of the transaction-history CSV export was always written
as an empty string for transaction rows, so notes a user added to a
transaction never appeared in the exported file.

Index the `TransactionDescription` Hive box once per export and look each
transaction's note up by the same keys the app writes them under
(`<txHash>_<primaryAddress>`, falling back to the legacy bare `<txHash>`),
then write it through the existing `escapeField` so multi-line notes and
notes containing commas or quotes stay valid CSV.

`CsvExportService` now takes the box, so it is resolved through `getIt` at
both export entry points.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* perf(CW-1638): resolve the note-key address once per CSV export

`_noteFor` read `balanceViewModel.wallet.walletAddresses.primaryAddress`
once per transaction row. On Monero and Wownero that getter is not a field
read: it calls `getAddress`, which issues an FFI `numSubaddresses` call plus
four `ffiAddress` calls before its address cache is consulted. Since
`buildCsvContent` runs on the main isolate, exporting a wallet with a long
history meant thousands of synchronous FFI round-trips with no yield point.

Every item in one export belongs to the same wallet, so the value is
invariant across rows. Resolve it once in `buildCsvContent` and thread it
through to `_noteFor`. An export holding no transaction rows now skips the
read entirely.

No change to the exported output.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* fix(CW-1638): neutralise spreadsheet formulas in CSV export

The note column this PR adds is fed by TransactionDescription.transactionNote,
which is not always authored by the user: a scanned bitcoin: URI carries
tx_description / message straight through payment_request.dart into
Output.note, and an address-resolution result writes Output.note too. Both are
folded into the note persisted by SendViewModel.

escapeField only quoted for , " and \n, so a note beginning with = + - @ TAB or
CR reached the cell untouched and Excel / LibreOffice / Sheets evaluate it as a
formula (=IMPORTDATA to exfiltrate a neighbouring cell, =HYPERLINK for phishing
anchor text, =cmd|… for DDE). trade.memo and the provider-supplied trade/order
strings had the same exposure already.

Neutralise inside escapeField rather than at the two call sites so every column
is covered and a future free-text column cannot forget it. Values starting with
a trigger are prefixed with an apostrophe, the spreadsheet text marker, guarded
by a plain-number test so negative amounts are left alone — formatFixed really
can emit a leading '-'. Also quote on a bare \r, which previously passed through
unquoted and splits rows in many CSV parsers.

Tests cover the escaping rules, the neutralisation, a row built end to end, and
the note column itself, including the two lookup keys and the payment-request
injection path.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* perf(CW-1638): bound the CSV note lookup to the exported rows

Review feedback: the note index copied every entry in the shared
transactionDescriptionBox, including notes belonging to other wallets,
so its memory scaled with the box rather than with the export.

Collect the keys the exported rows can ask for first — for each
transaction row both `<txHash>_<primaryAddress>` and the bare
`<txHash>` — then walk the box once and keep only matching notes.
Lookups stay O(1) per row and first-wins/key-preference behaviour is
unchanged; a box walk is skipped entirely when the export has no
transaction rows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* refactor(CW-1638): simplify the CSV note lookup to a plain scan

Notes are written into the TransactionDescriptions box with `add`
(send_view_model.dart:1257,1263 and transaction_details_view_model.dart:299),
so entries carry auto-incrementing integer keys and `box.get(descriptionKey)`
cannot find them. Drop the prebuilt lookup map and the wanted-key set in
favour of a per-row scan that mirrors the app's own read path in
`TransactionDetailsViewModel.note`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* docs(CW-1638): drop the explanatory comments from the CSV note lookup [skip ci]

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Omar <omarh.ismail1@gmail.com>
2026-09-14 14:43:12 +02:00
Omar 21c73d0012 change arbitrum default node [skip ci] 2026-09-13 17:45:22 +02:00
Omar HatemandGitHub 3bb64b71ac Add more guards to amounts being zero or infinity (#3612)
* Add more guards to amounts being zero or infinity

* Add more guards to amounts being zero or infinity
2026-09-12 18:59:00 +02:00
Omar 8d75c3f0c3 minor fix [skip ci] 2026-09-12 17:10:57 +02:00
cyanandGitHub 6687e478f4 fix: monero silently ignoring wallet opens (#3621) 2026-09-12 16:57:19 +02:00
cyanandGitHub 90e25afc11 fix: unify encryption across platforms (#3470)
* fix: unify encryption across platforms

* sync rename
2026-09-12 15:24:11 +02:00
PatrickandGitHub 5b0f0fcd24 CW-1468 Home Screen Top Bar Layout (#3576)
* Improve homescreen layout and account access

* Add homescreen layout regression tests

* address feedback
2026-09-12 14:20:16 +02:00
malik1004xandGitHub bfae2191b0 Merge pull request #3365 from cake-tech/cw-1440-new-buy-sell-flow
Buy/Sell flow (New UI)
2026-09-11 13:07:36 +02:00
Robert Malikowski 8bbaa3fef0 tiny review fixes 2026-09-11 13:07:06 +02:00
Robert Malikowski 85b79a3f41 Merge branch 'dev' into cw-1440-new-buy-sell-flow
# Conflicts:
#	res/values/strings_it.arb
#	res/values/strings_ja.arb
#	res/values/strings_ko.arb
#	res/values/strings_my.arb
#	res/values/strings_nl.arb
#	res/values/strings_pl.arb
#	res/values/strings_pt.arb
#	res/values/strings_pt_BR.arb
#	res/values/strings_ru.arb
#	res/values/strings_th.arb
#	res/values/strings_tl.arb
#	res/values/strings_tr.arb
#	res/values/strings_uk.arb
#	res/values/strings_ur.arb
#	res/values/strings_vi.arb
#	res/values/strings_yo.arb
#	res/values/strings_zh.arb
2026-09-11 12:53:54 +02:00
David AdegokeandGitHub 2b2c282089 Merge pull request #3597 from cake-tech/CW-1621-Brazillian-Locale-Fix
fix: brazillian localle bug that makes app unresponsive
2026-09-10 14:36:49 +01:00
cyanandGitHub 191d749228 fix: disable prebuilt libraries from cargokit (#3610) 2026-09-10 13:29:37 +02:00
Blazebrain 65500659fb refactor: adjust image height and add top spacing 2026-09-09 15:13:13 +01:00
Blazebrain 873ef018b6 Merge branch 'dev' of https://github.com/cake-tech/cake_wallet into CW-1529-Improved-Seed-UI 2026-09-09 14:55:06 +01:00
Seth For PrivacyandGitHub 09fdded7a6 docs: update build instructions and fix stale doc links (#3559) (#3561)
Replace the README's placeholder build section and the stale
howto-build-android.md reference with links to the current
platform-specific guides in docs/builds/.

Also fix broken links in docs/ADDING_NEW_WALLET_TYPES.md that pointed
to a non-existent adding_new_l2_network_guide.md file and align the
README/docs copyright years with LICENSE.md (2018-2025).
2026-09-09 12:34:19 +02:00
cyanandGitHub 0b3ac17660 createTransaction use BigInt instead of double (#3608) 2026-09-09 12:02:19 +02:00
Blazebrain 6bb52fd746 fix: switch "seed" to "recovery phrase" in more places and handle edgecases for seed verification reminders 2026-09-09 08:58:09 +01:00
Blazebrain be16d531ae feat: enhance locale detection 2026-09-09 05:36:04 +01:00
Blazebrain 7e0f0fc3cd refactor: improve locale handling fixing issues with yoruba, hausa and guarani languages 2026-09-09 02:35:27 +01:00
Konstantin UllrichandGitHub 9d6adcfe68 Use baseunit provider (#3582)
* feat: introduce BaseUnit provider for money settings with aspect-based notifications and add unit tests

* test: expand use_base_unit_provider_test with comprehensive scenarios for BaseUnitConfig behaviors
2026-09-08 06:36:25 +02:00
Omar HatemandGitHub 9320180684 v6.4.4 Release Candidate (#3594)
- Monero sync patches
- Trezor bitcoin
- Solana NFTs sending
- Bug fixes
2026-09-05 00:16:01 +08:00
Blazebrain 239bbc4900 Merge branch 'dev' of https://github.com/cake-tech/cake_wallet into CW-1529-Improved-Seed-UI 2026-09-04 11:30:51 +01:00
Blazebrain 3fabbc5c5e fix: brazillian localle bug that makes app unresponsive 2026-09-03 13:40:26 +01:00
PatrickandGitHub 73a739411f Delete CakePay Auth-token if the API returns 401 (#3538)
* delete cakepay auth token on 401

* fix cakepay auth refresh

* fix Cake Pay error handling
2026-09-03 01:58:45 +08:00
David AdegokeandGitHub ea4d752914 solana nft improvements and other fixes (#3581)
* feat: improvements covering solana nfts(send, ownership badge, persistent imports etc), closing emptied token accounts and other fixes from patch

* feat: more improvements for nfts including security hardening

* fix: display error in full
2026-09-03 01:54:11 +08:00
malik1004xandGitHub 87ba3838ae disable mweb ad (#3593) 2026-09-03 01:48:53 +08:00
malik1004xandGitHub 68eb1c3ded auto-select custom node on wallet creation (#3592)
* auto-select custom node on wallet creation

* safeguard for wallet type
2026-09-02 19:11:57 +08:00
David AdegokeandGitHub 1f3b261e3d CW 1515 Contacts List Out Of Sync (#3550)
* fix android CI

* fix: address book wallet contacts tab not updating after wallet changes

* feat: add page open listener for contact list and handle concurrent calls to fetch contact list
2026-09-02 18:30:28 +08:00
5a497bf05a Monero: keep the sync progress redrawing during wallet2's warm-up (#3575)
* Monero: keep the sync progress redrawing during wallet2's warm-up

* fix: double call in getNodeHeight()
fix: error handling in _refreshNodeHeight

---------

Co-authored-by: Vikrant Sharma <vik@cakewallet.com>
2026-09-02 18:17:28 +08:00
Konstantin UllrichandGitHub 0d353a0932 feat: enhance hardware wallet compatibility and improve transaction handling (#3517)
* feat: enhance hardware wallet compatibility and improve transaction handling

- Updated hardware wallet services for Bitcoin and Litecoin (Ledger & Trezor).
- Added `LitecoinTrezorService` for signing and managing Litecoin transactions.
- Improved `PSBTTransaction` builder to handle change outputs and derivation paths.
- Fixed exception handling in `wallet_hardware_restore_view_model`.
- Refactored output and input structures to ensure consistency and extend compatibility.

* refactor: address comments

* refactor: address comments

* refactor: address comments
2026-09-01 19:42:33 +08:00
Robert Malikowski 9d4d1220f2 Merge branch 'dev' into cw-1440-new-buy-sell-flow 2026-09-01 13:04:02 +02:00
Blazebrain bb79edf396 fix: lint issues 2026-09-01 10:41:07 +01:00
Blazebrain 87a03fc88d Merge branch 'dev' of https://github.com/cake-tech/cake_wallet into CW-1529-Improved-Seed-UI 2026-09-01 10:32:55 +01:00
Blazebrain 323a1df6e9 feat: remind users with a balance to back up their recovery phrase 2026-09-01 10:01:07 +01:00
Konstantin UllrichandGitHub df87bab836 feat: add fallback locktime support in PSBT deserialization (#3583) 2026-09-01 14:52:57 +08:00
Robert Malikowski 5474cfaa08 update translations 2026-08-31 18:00:50 +02:00
Omar 6df6108d37 update app version 2026-08-29 15:37:13 +08:00
Blazebrain 837c4d7d22 feat: redesign the pre-seed and seed verification screens 2026-08-28 23:07:43 +01:00
Blazebrain e95d9d143e feat: persist whether a wallet still needs its recovery phrase backed up 2026-08-28 23:07:43 +01:00
Blazebrain 9a66b511e3 feat: add recovery phrase wording for the redesigned seed flow 2026-08-28 23:07:43 +01:00
905db64f77 feat: zano hf + bip39 (#3359)
* feat: bip39 zano hf

* fix: correct monero_c hash

* lockfile [skip ci]

* fix: zano: proper bip32
fix: zano respect 24 word setting
fix: rename / delete

* fix: nonBip39WalletTypes

* fix: zano wallet rename

* fix: passphrase store zano

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-08-28 15:49:51 +08:00
Omar HatemandGitHub 14167a85e8 v6.4.2 (#3566)
* Rush Release please test quickly

* Fix Zcash Lag
2026-08-28 10:07:16 +08:00
Robert Malikowski 7b5ffe8812 import 2026-08-27 13:35:00 +02:00
Robert Malikowski d28619219e Merge branch 'refs/heads/dev' into cw-1440-new-buy-sell-flow 2026-08-27 12:28:17 +02:00
Robert Malikowski 09a3428245 address review comments 2026-08-27 12:27:49 +02:00
cyanandGitHub 3ba43ede62 Cyjan zec mutex 2 (#3569)
* fix: mutex on zec

* refactor: simplify orchard migratable balance checks and update related methods
2026-08-27 10:58:22 +08:00
Robert Malikowski c2441b16d5 showSymbol: false, 2026-08-26 10:13:24 +02:00
David AdegokeandGitHub 06e75551a7 CW-1615: Harden walletconnect auth (#3547)
* fix android CI

* fix: harden walletconnect auth so a connected session won't transfer on dApp when wallet is switched within the app

* refactor: improve session mgmt and better error handling, also added a loader to the listing page

* feat: switch to newer id for solana dapps connections and fix requests not triggering
2026-08-26 11:45:03 +08:00