* fix android CI
* feat: add anypay core models, parser and routing engine
* feat: add anypay resolver, anypay service and wallet switch service
* refactor: route the send page payment flow through anypay service
* fix: show message when there's no swap providers for a pair and reset the trade guard on dismissal
* refactor: merge the swap from network and send to network decision pages together and clean up anypay widgets
* feat: reapply deep links to a currently open send flow and register the solana scheme
* feat: add support for zcash address detection to anypay and other minor fixes
* refactor: remove trailing icon
* feat: hide swap flow for sp and mweb addresses
* feat: enhance zcash address detection and deeplink handling
* fix: pin bitcoin_base
* refactor: Move the anypay decision navigation out of the send page and address minor review comments
* refactor: Move the anypay decision navigation out of the send page and address minor review comments
* feat: handle exception in switch service and mvoe balance compute to call site
* refactor: combine anypay entry points to one and extract selected mode widget
* fix: tx priority for doge
* chore: add dogecoin to isElectrumWallet util
* fix: annoying mobx error
---------
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
* fix android CI
* feat: add anypay core models, parser and routing engine
* feat: add anypay resolver, anypay service and wallet switch service
* refactor: route the send page payment flow through anypay service
* fix: show message when there's no swap providers for a pair and reset the trade guard on dismissal
* refactor: merge the swap from network and send to network decision pages together and clean up anypay widgets
* feat: reapply deep links to a currently open send flow and register the solana scheme
* feat: add support for zcash address detection to anypay and other minor fixes
* refactor: remove trailing icon
* feat: hide swap flow for sp and mweb addresses
* feat: enhance zcash address detection and deeplink handling
* fix: pin bitcoin_base
* refactor: Move the anypay decision navigation out of the send page and address minor review comments
* refactor: Move the anypay decision navigation out of the send page and address minor review comments
* feat: handle exception in switch service and mvoe balance compute to call site
* refactor: combine anypay entry points to one and extract selected mode widget
---------
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
* fix android CI
* feat: Migrate EVM, Sol and Tron tokens to SQL
* handle rename edgecase
* refactor: enhance token migration logic and improve database handling
User report 05ebf86e: monero?.getCurrentAccount on a Wownero wallet. The
null-aware operator guards plugin presence, not wallet type, so the
Monero bridge always ran and CWMonero's cast threw before the ?? chain
could reach the wownero branch. Dispatch by wallet.type instead. Swept
lib for the same anti-pattern: account_customizer already dispatches
(fixed 2026-08-07) and the settings_store call sites take no wallet
argument; this was the last live instance.
* fix: validate EVM restore mnemonics
* chore: drop test changes from this PR
Removes the test additions/modifications introduced by this branch so the
test design is left to the maintainers. Production code is unchanged.
Server-side forex (ECB daily reference rates) shipped in
hash-wallet-prices; the wallet needed no code change. Comment updated so
the file stops claiming USD-only.
- Wownero default becomes node.wownero.org:443 (SSL, ours) instead of a
third-party plaintext host
- Arbitrum's default was arbitrum.nownodes.io, which requires an API key
we don't ship (nowNodesApiKey is empty) — every fresh install had a dead
default RPC; now arbitrum-one-rpc.publicnode.com
- remove the other NOWNodes entries from node lists and the EVM chain
registry for the same reason; historical migration maps keep their
entries so old users still get migrated off
Deposit side: natives of shipped chains (WOW, XMR, BTC, BCH, DOGE, XNO,
ETH, ETH-Base, ETH-Arb, BNB, POL) plus major stables (USDT/USDC variants,
DAI). Receive side: same minus BNB (inherited upstream restriction) plus
LTC as a receive-only target. ZEC, DASH, SOL, AVAX, Zano, Haven, ADA,
EOS, XLM, XRP, TRX, TON and the rest disappear from the swap UI; their
CryptoCurrency entries stay defined because the raw ids back Hive-stored
trade history.
- Cake Pay: 36 files (~5.3k LOC) plus DI registrations, routes, and UI
branches (feature was hard-disabled and unreachable)
- unreachable buy providers: robinhood, dfx, onramper, meld, kryptonim
(~1.7k LOC); MoonPay untouched
- exchange providers that only existed as commented-out wiring:
changenow, sideshift, chainflip, exolix, swaptrade, letsexchange,
stealthex, xoswap, swapsxyz, thorchain, simpleswap (~5.2k LOC);
Trocador untouched; ExchangeProviderDescription values and Hive
adapters kept so stored trades and orders still deserialize
- di.dart setup() split from one 1,452-line function into 10 sequential
chunk functions; registration execution order verified identical
before and after (251 register calls)
Address-field input no longer leaves the device except toward
infrastructure implied by the typed name itself:
- remove Twitter, Mastodon, Nostr, Yat, Unstoppable Domains, FIO,
ThorChain-name, zcash.me, and Zano alias lookups (Nostr and FIO ran
with no setting gate at all; Zano is not even a supported chain)
- keep OpenAlias, BIP-353, .well-known, LNURL, and ENS, each toggleable
in Settings -> Domain lookups
- BTC fee/block/restore-height queries move from mempool.cakewallet.com
to public mempool.space (also fixes two /api/v1 paths that 404 on
standard mempool deployments)
- PRIVACY.md updated to disclose the remaining flows (mempool.space,
name lookups, opt-in silent payments and payjoin); issue templates and
the translation prompt de-Caked
- resetToDefault omitted Wownero: the reset button null-crashed and left
WOW wallets with an empty node list
- accountLabel was missing a return and rendered blank for WOW wallets
- sec_random now throws instead of returning empty bytes when the native
entropy channel fails or under-delivers
- iOS builds no longer register the leftover cakewallet:// URL scheme
- WOW fee estimate now fetched from the connected daemon's
get_fee_estimate RPC and cached; the inherited XMR constant table
remains only as a pre-fetch fallback
- pin cake_backup, flutter_local_authentication, and bech32 git deps to
their locked SHAs for reproducible builds
* fix android CI
* fix: handle the parser seeing chainless QRs in the old flow as belonging to the current wallet, causing the error jack reported
* fix: handle network switch when anypay is interrupted mid flow and currency is changed
* fix: zcash address for exchange
* fix: honour the restore height the user entered
- Make Zcash rescan work in both directions by resetting sync from the new birth height
- Keep the entered height when restoring a wallet from keys
- Tolerate grouping separators in typed restore heights
---------
Co-authored-by: Vik Sharma <vik@cakewallet.com>
* feat: Add network selector and compatible networks screen to send page for EVMs
* feat: add redesigned payanything flow and handle cases for evms, solana and tron
* feat: adding the swap part to the entire flow
* refactor: update navigation and error handling in send and swap flows
* adjust structuring and use the chain badge icons, also fix crypto and currency values not consistent on single network picker
* fix: modify guard for non-evm chains and minor cleanup
* use multipicker layout for receive section, streamline send to available balances and adjust colors as needed
* handle btc case for picker, update style and images across
* fix all pending issues with scanning qr and network handling for both evm and non evm, plus token and amount resolving
* fix all pending issues with scanning qr and network handling for both evm and non evm, plus token and amount resolving
* fix: expand fetch for tokens across networks and fix other issues regarding scanning from homepage
* auto-reformat
* fix conflict
* handle evm qr scan from homepage and add guards for swap and switch flows
* chore: Cleanup
* chore: set estimated fee to 0 when switching wallet
* fix merge conflicts
* fix to review comments and reformatting for lints
* fix: root cause for token bug reported
* chore: cleanup
* feat: add improved anypay swap screen which focuses on the receive amount
fix: fiat input toggle erro (also present on prod)
reformat: anypay related widgets
* feat: add alert for unsupported networks in payment requests
* fix: prevent rate and provider from showing until amount is calculated and loaded
fix: remove send icon in rate widget and align to center
fix: adjust network badge in swap confirm widget
* feat: embed tokens for solana and tron in QR generated for swap from external
* test: add unit tests for Tron, Solana, and ERC681 URI handling and detection
* fix: review comments
* fix: handle more edgecases
* feat: enhance ERC681URI to support raw token amounts and decimals
* refactor: streamline EVM chain ID retrieval in send page and recipient network row
* fix: minor review comments
---------
Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
* feat: show Bitcoin master fingerprint in wallet keys
Add the BIP-32 master fingerprint (XFP) to the Bitcoin wallet keys shown
under Settings > Seed & Keys > Keys, labeled "Master fingerprint".
* fix: keep xPub in Keys tab by splitting silent payment keys into a dedicated list
The Keys tab / Silent Payments tab split relied on a hardcoded item index
(`items.sublist(0, 4)` / `sublist(4)`) that assumed the first four items
were always WIF/private key/public key/xPub. Adding the master fingerprint
as the first item pushed xPub into the Silent Payments tab.
Route Bitcoin silent payment keys into their own `silentPaymentItems` list
instead, and render each tab from its list.