Commit Graph
1213 Commits
Author SHA1 Message Date
09da422470 Fix one swap tap creating multiple trades (#3709)
TradeIsCreating was only set deep inside createTrade's provider loop,
after several awaits, so the swap button stayed tappable while the
first call was still running and every extra tap started another
trade. createTrade also had no in-progress check of its own.

Now createTrade returns early if a trade is already being created,
sets TradeIsCreating synchronously before the first await, and resets
the state in a finally block so the button is usable again after
success, failure or an unexpected exception. The
ConcurrentModificationError retry now awaits the inner call instead of
re-entering createTrade, so it is not blocked by the new guard.


Claude-Session: https://claude.ai/code/session_016HdqYnWEiqnBvmvqCBQgjE

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-12 13:14:15 +02:00
20f1ceb651 CW-1513/CW-1610: Add account archival and UI improvements (#3600)
* add ability to hide accounts

* remove import

* merge

* merge

* fix loading accounts when styleSettings are not saved yet

* merge

* auto-reformat

* small fixes

* proper reload on card unhide

* block hiding last card

* fixup

* revert formatting-only changes

* liner fixes

* fix overflows

* card layout as separate class to prevent index errors

* fix mini card on addresses page

* block opening customizers if wallet is syncing

* switch to BlocProvider.value to prevent auto dispose

* imports

* fix fiat balance

* Improve homescreen layout and account access

* Add homescreen layout regression tests

* improve account management w/ education + archival flows

* reorganize wallet-specific settings

* preserve account archival during dismissal

* fix: align account visuals with design feedback

* minor account & archival visual corrections

* simplify wallet settings + account UI state

* generalise education carousel & dismissal tracking

* refactor account UI flows + minor improvements

* minor refactors and improvement

* pass account balances as Money and format at display

* use fresh full balance for account archival check

* refactor BalanceCard w/ MoneyText + cleanup

* minor card_customizer cleanup

* rework card customizer flow

---------

Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-10-10 02:07:41 +02:00
Konstantin UllrichandGitHub 9f1f82fdd4 feat: enhance Bitbox ViewModel with connection tracking and refactor imports (#3706) 2026-10-09 17:20:47 +02:00
3e5a119ea7 Use Blockchair explorer link for Litecoin unspent coins (#3705)
The "View in Block Explorer" link on the Unspent coins details screen
pointed Litecoin UTXOs at litecoin.earlyordies.com, which no longer
shows transaction info. Use the same Blockchair URL the transaction
details screen uses for Litecoin.


Claude-Session: https://claude.ai/code/session_01G9ovgVGLzHmQ1a1rE1tDgK

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-09 14:44:46 +02:00
37ef179f6e Cw 1611 fetch moon pay payment methods from their api (#3565)
* add payment method api

* add payment method limits

* Update lib/buy/moonpay/moonpay_provider.dart

* fix MoonPay payment method handling

* Handle custom MoonPay payment methods

* fix limits when max is infinite [skip ci]

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-10-08 13:02:51 +02:00
cyanandGitHub a5dc3a4add fix: dismissed transaction that finishes completing async (#3687)
can overwrite new one

GHSA-5p55-jf6f-c7wx
2026-10-08 12:49:34 +02:00
046e57c598 Add Robinhood Chain (#3398)
* fix android CI

* feat: Add Robinhood Chain, all major flows done. minor issue now is our providers don't support it yet as its still pretty early, two weeks from launch

* feat: Add Robinhood Chain, all major flows done. minor issue now is our providers don't support it yet as its still pretty early, two weeks from launch

* Cleanup

* auto-reformat

* fix ui issue and contact listing for tokens

* fix: missing icons and crash for fee priority in settings

* chore: cleanup

* fixes from feedbacks

* fix: review issues and sync to latest dev
feat: switch history api to etherscan, add history toggle to privacy settings, exclude robETH from exchange pickers, skip tokens discovery for chains that moralis hasn't indexed, add tests

* fix: address Robinhood review comments

* fix: show Solana token icons in history

* fix: address review comments and default Robinhood to PublicNode

* fix:  revert filter and refuse unmapped networks in provider

---------

Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
2026-10-04 13:22:05 +02:00
8661681110 cw-1683-prepare-zano-removal (#3668)
* wip zano removal

* add zano removal popup

* constantly show popup if user keeps using deprecated wallet

* add confirmation before viewing seed

* fix viewed check

* prevent wallet staying open after seed backup

* Update lib/entities/default_settings_migration.dart

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

* add passphrase

* make popup scrollable

* delete deprecated seeds when wallet is deleted

* encrypt seeds

* also deprecate decred

* remove decred from available types

* remove backup logic

* showArrow: false,

* Remove deprecated wallet seeds deletion

Removed deprecated wallet seeds deletion from delete method.

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-10-03 14:39:38 +02:00
Omar ddb754882a update swap providers [skip ci] 2026-10-03 01:22:31 +02:00
d7ebf42814 Cw 1551 quick bitcoin wallet sync (#3446)
* add Wallet Accounts page and integrate UI

* account model refactor

* add walletInfoAccount table and API

* add WalletAccountList API

* add multi-account support for Electrum wallets

* add Bitcoin lightning card and card style handling

* refine account filtering and card selection

* update current account balance on wallet changes

* update configure.dar

* Use named parameters for card design

* Add Bitcoin account handling and refactor lookup

* refactor dashboard

* refactor cards UI and account balance handling

* Improve Bitcoin account selection and balances

* restrict unspent coin usage to current account

* filter transactions by current Bitcoin account

* refactor electrum wallet

* refactor address generation

* add accountIndex to address fetch logic

* Update configure.dart

* reload transactions on Bitcoin account change

* restore multiple BTC accounts and improve fetch

* show account balance with in btc

* track account index in Bitcoin transactions

* discover btc BIP39 accounts during restore

* fix account switching and card ordering bugs

* fix card customizer

* limit account name length in modal

* update BTC account list balance display

* auto-reformat

* formating fix

* skip HD map validation

* fix 0 balance issue

* minor fix

* quick bitcoin wallet sync

* restore shuffle change output

* restore address lookup fix

* Update electrum.dart

* remove account customizer

* Merge branch 'CW-1142-Add-accounts-feature-to-BTC' into CW-1551-Quick-Bitcoin-Wallet-Sync

* probe only segwit in account discovery

* add account discovery limit and tracking

* Improve Electrum sync account handling [skip ci]

* remove legacy monero account and address list UI

* rework BTC account balance refres

* avoid unnecessary BTC account reloads

* refactor account header in addresses page

* fix blank popup when editing an account

* fix: dedupe UTXO balance

* minor fix

* add Bitcoin current account API

* Apply batched suggestions from code review [skip ci]

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

* address PR review comments [skip ci]

* remove account customizer and fix accounts init

* restrict extra BTC accounts to SegWit

* add BTC multi-account toggle

* Fix BTC sync gating and account balance update

* minor fix

* Update electrum_wallet.dart

* store selected account on WalletInfo

* Refine wallet account reset visibility

* refactor BTC address prep and move accounts page

* refactor account stack and customizer routing

* migrate legacy Lightning card styles

* unify dashboard account change state

* fix account routing and Electrum balances

* fix account setup and wallet cards UI

* disable Bitcoin Accounts for all hardware

* merge conflicts fix

* minor fixes

* update cards_view [skip ci]

* reverted cards view update [skip ci]

* fix asset name

* moved the transaction filtering into the electrum wallet

* localization

* disable accounts for watch-only wallets

* fix: stop card render from switching the wallet account

* fix: restore Lightning transactions in tx history

* minor fix

* fix: skip duplicate legacy address generation [skip ci]

* fix: correct account balance/design mismatch bugs

* addressing review comments

---------

Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-10-03 00:44:57 +02:00
0503d54290 feat: prefill rescan height with the saved Monero and Zcash restore height (#3669)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 22:58:28 +02:00
fdb8267583 fix: enter Lightning invoice amounts in sats (#3525)
LN receive remapped btcln to BTC, so the default "sats (LN)" display mode never applied and the amount field stayed in BTC.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Konstantin Ullrich <konstantin@cakewallet.com>
2026-09-26 11:10:54 +03:00
Omar HatemandGitHub 2d8d068418 Revert "Revert "fix: unify encryption across platforms (#3470)" (#3634)" (#3635)
This reverts commit dd58455ea6.
2026-09-25 13:55:44 +03:00
malik1004xandGitHub 0d14b57ee2 add commit/branch overlay for ci builds (#3653)
* add commit/branch overlay for ci builds

* add ability to show/hide overlay

* add alert when disabling the overlay
2026-09-24 23:01:05 +02:00
b88fbf32ae charts (#3162)
* charts (wip)

* charts (wip)

* wip

* add asset grid

* split files

* logic wip

* proper getPrices logic

* viewmodel (wip)

* charts

* remove unused import

* remove restricted import...?

* fix background gradient when scrolling

* add safeguards for broken db

* save new pin on removal

* add safeguards for concurrency

* add haptic feedback

* fix haptic feedback

* fix fiat ticker

* reduce chart padding

* add line touch indicator

* improve touch target size on range selector

* add date/time display when viewing past amount

* merge

* remove iconSvgPath reference

* merge

* fix state for date display

* merge

* auto-reformat

* only load charts when page is opened

* merge

* reformat and apply lints

* refactor to use `Money` instead of storing amount in `String`

* add slop comment

* fix exception on division by zero

* ci

* workaround toDouble being removed

* disable strict parsing and rounding

* fix abs()

* use new currency picker sheet

* safeguard for max flutter-supported decimals

* fix amount precision

* adjust to new buy/sell

* Update lib/new-ui/pages/charts_page.dart

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

* adjust buy/sell di

* replace -> ignore

* reformat

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-09-22 21:32:38 +03:00
malik1004xandGitHub d38c748127 remove old ui (#3629)
* remove old ui

* remove imports to nonexistent files

* remove old buy/sell

* remove unreachable pages

* readd Routes.exchange

* remove broken di
2026-09-22 16:46:42 +02:00
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
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
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
Blazebrain 87f372d660 chore: lints cleanup and localization 2026-09-15 11:37:43 +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
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
cyanandGitHub 90e25afc11 fix: unify encryption across platforms (#3470)
* fix: unify encryption across platforms

* sync rename
2026-09-12 15:24:11 +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
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
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
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
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
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
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 e95d9d143e feat: persist whether a wallet still needs its recovery phrase backed up 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
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
cyanandGitHub 3d9b79f536 feat: bip39 decred (#3348) 2026-08-26 01:01:52 +08:00
malik1004xandGitHub 9b50011e75 Hide broken options in Bitcoin wallets without a private key (#3532)
* hide unavailable receive page options

* hide broken options in wallets without a private key

* hide exporting unavailable logs

* hide sign/verify on airgapped wallets

* hide mweb on hwws

* hide mweb ad for hww
2026-08-24 23:24:52 +03:00
David AdegokeandGitHub 703cc22b33 fix: solana wallet bugs and security issues (#3484)
* fix android CI

* fix: duplicate outgoing tx for jup swaps and stuck pending state

* fix solana security risk by handling duplicate token symbols in wallet transactions

* feat: implement additional cost handling for pending transactions in Solana wallet.

* fix: Items on security audit list for solana wallet

* refactor: streamline fee payer index handling and improve error logging

* fix: verifySignature for solana and handle wrong mint on default token

* fix: token decimals defaulting to zero and breaking amount parsing in solana

* fix: use token mask in tx history

* refactor: apply lint to modified code

* fix: merge conflicts

* fix: use Money and mint decimals when parsing sol swaps

* test: add unit tests for SPL token amount handling and parsing

* test: add more tests

* fix: update decimal handling for fetched token and remove unused fields
2026-08-24 23:21:29 +03:00
Robert Malikowski 185ee4be4f parse -> tryParse in fiat 2026-08-23 15:35:38 +02:00
Robert Malikowski 08978a06ba parentheses 2026-08-23 12:11:21 +02:00
Robert Malikowski 0260f3dc72 tryParse 2026-08-23 12:10:29 +02:00
Robert Malikowski e4b62b3814 replace , with . 2026-08-22 23:07:01 +02:00
Robert Malikowski c1366a4ce0 nullable amountForQuote 2026-08-22 22:58:41 +02:00