Commit Graph
4269 Commits
Author SHA1 Message Date
Omar HatemandGitHub 9fe23970c7 V6.4.5 rc (#3639)
* v6.4.5 Release candidate

* Apply patches for BLE session, locktime prompt, and monero coincontrol on hww [skip ci]

* include the fix for bluetooth prompt showing on app start

* include the fix for bluetooth prompt showing on app start
2026-09-20 02:40:48 +02:00
PatrickandGitHub bbff4b0994 fix: allow taps through transaction history gradient (#3625) 2026-09-20 00:37:30 +02:00
Konstantin UllrichandGitHub 3d03a62e21 Add thread-safety and BLE support for Ledger and Trezor devices (#3638)
* feat: support BLE device detection for Ledger and Trezor wallets, update trezor-flutter dependency

* feat: add BLE connection state listener for Trezor devices, handle disconnect events, and clean up resources on close

* feat: add mutex locking to MoneroTrezorService for thread-safe operations
2026-09-18 21:10:59 +02:00
malik1004xandGitHub 410475b2b8 fix changelog item padding (#3636) 2026-09-18 18:47:08 +02:00
BSN ∞/21MandGitHub fae2be2c22 26-08-24_Translation_de_DE (#3553)
* 26-08-19_Update Transöation_de_DE

* 26-08-24_Update Translation_de_DE

* 26-09-09_Update Translation_de_DE

* 26-09-17_Update Translation_de_DE
2026-09-18 16:41:27 +02:00
98f58c2898 Cw 1624 trezor passphrase on trezor device instead of app (#3601)
* feat: add support for Trezor device settings configuration and `AwaitingSettings` state in pairing flow

* fix ugly widgets

* trezor options ui

* feat: add support for Trezor on device passphrases

* chore: bump trezor_flutter deps

* fix: remove unused subtitle property in proceed_on_device_sheet [skip ci]

* chore: update trezor_flutter dependency to latest commit [skip ci]

* fix: set restore height and store wallet during initialization steps

---------

Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
2026-09-18 02:27:32 +02:00
Omar HatemandGitHub dd58455ea6 Revert "fix: unify encryption across platforms (#3470)" (#3634)
This reverts commit 90e25afc11.
2026-09-18 00:33:16 +02:00
David AdegokeandGitHub 3a04c7ff1e feat: restrict history api calls when toggle is off in privacy settings (#3615)
* feat: restrict history api calls when toggle is off in privacy settings

* refactor: remove unnecessary transaction timer cancellation
2026-09-16 23:05:40 +02:00
Omar 5ed6759edc fix linux 2026-09-15 17:37:02 +02:00
ClaudeandOmar e3215157e6 fix(linux): don't ship libsqlite3.so as a dereferenced symlink
The Linux bundle installed lib/libsqlite3.so as a symlink to
libsqlite3_flutter_libs_plugin.so, which holds the sqlite3 amalgamation
compiled into the plugin. The release tarball dereferences that symlink,
so the extracted tree carries two byte-identical copies of the same
shared object with the same SONAME. Loading both maps sqlite twice and
sqlite3_initialize calls through a null mutex-init pointer, segfaulting
about a second after launch before any UI paints.

Drop the alias and open the plugin under its real name instead, falling
back to the system sqlite when it isn't there.

Verified on the v6.4.4 Linux release: restoring a real symlink launches
and paints, copying the file back over it reproduces the segfault.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkQt8DaFfxs3FThEUaMPix
2026-09-15 16:32:43 +02:00
David AdegokeandGitHub 90e300f2c2 Merge pull request #3584 from cake-tech/CW-1529-Improved-Seed-UI
CW-1529: Improved Seed UI
2026-09-15 13:01:01 +01:00
Blazebrain 87f372d660 chore: lints cleanup and localization 2026-09-15 11:37:43 +01:00
Blazebrain 3b9ed6f4a0 chore: cleanup 2026-09-15 11:26:55 +01:00
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