Catches up from the May 12 fork point (v6.1.2+23) through v6.5.0: 535
upstream commits, including the Monero silent-open fix, Monero on Trezor,
Ledger/Trezor BLE fixes, the new seed and history screens, quick Bitcoin
sync, git-pinned dependencies (pubspec_overrides.yaml), frozen Hive
adapters (*.part.dart), monero_c v0.18.4.6-RC2 and Flutter 3.41.9.
Merged with both sides normalized first (import rename, 100-column
format), which took the conflict count from 614 paths to 322. The
procedure is now scripts/upstream_sync.sh.
Kept from Hash Bags:
- WalletType enum order and Hive IDs. SQLite stores WalletType.index and
our order differs from upstream's; taking theirs would reread saved
wallets as other chains. Our frozen adapter keeps the shipped IDs.
- The 1.0.2 legacy PIN and wallet-password decode and self-heal.
- Removed chains (Solana, Tron, Zano, Zcash, Decred, Haven) and the new
Robinhood chain stay out; Cake Pay and non-Trocador swaps stay out.
- Default nodes (node.wownero.org, sethforprivacy, Blockstream, bysh.me),
converted to upstream's isDefault node-list key; Wownero is back in the
node reset list.
- Privacy: address resolvers limited to domain-anchored sources again;
prices.neroswap.com for fiat; upstream's charts tab, which reads
prices.cakewallet.com, sits behind FeatureFlag.isChartsEnabled = false.
- Lightning stays behind FeatureFlag.isLightningEnabled, including
upstream's new post-seed Lightning username step.
- Our icon pipeline, branding and bundle identifiers.
Twelve new upstream widget tests are skipped: test and code are unchanged
from v6.5.0 apart from renames (not rerun on a pristine upstream checkout;
upstream's top_bar_test does not compile against its own TopBar).
flutter analyze lib: 0 errors; flutter test: 345 passed, 12 skipped;
flutter build bundle compiles. Built with Flutter 3.41.9.
* 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>
The About screen has been showing Cake Wallet's app icon, and the receive QR
page — the screen a user screenshots to get paid — has been showing Cake's
wordmark. In CI builds only, which is why nobody caught it.
compile_graphics.sh compiles res/pictures/*.svg into assets/new-ui/*.svg.vec,
and every platform workflow runs it. That makes res/pictures the source and
assets/new-ui the output. The August de-cake pass replaced three files under
assets/new-ui and left res/pictures untouched, so each CI build faithfully
recompiled Cake's artwork straight over the top of ours. Locally it looked
right, because locally nobody re-runs the compiler.
Three files, all of them branding: hash_squircle_icon.svg, hash-wordmark.svg,
hash-wordmark-light.svg. The sources are now the Hash Bags artwork, so the
compiler produces what the filenames have claimed since August.
This is the third time somebody else's artwork has reached users through this
repo, and the second time an audit missed it, so it gets a test rather than
another careful look: any SVG present in both res/pictures and assets/new-ui
must be byte-identical. Drift means a hand-edit that the next CI build will
silently revert. The test also asserts it compared something, because a silent
zero is how the previous two got through.
AGENTS.md has had the rule the whole time: generated files are never
hand-edited, fix the source and regenerate. The trap here is that the generated
copies sit beside the sources under identical names, and the ones the Dart code
references are the generated ones.
* 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>
- res/pictures/balance_card_icons/wownero.svg had an opaque background rect
(+#FFF5FD fill), so the ChainIcon's srcIn colorFilter flooded the whole
circle solid grey. Replaced with a clean alpha glyph (white W-in-circle on
transparent, like monero.svg) so the dark bg shows through the negative
space. Source in res/pictures → compile_graphics.sh regenerates the .vec.
- dark theme surface #0B1F14 → #10281B (a bit less dark, per feedback)
* 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>
* Add masked token image to to currency picker items and adjust estacked badge icon for node share qr
* fix: Missing chain images in bridge flow
* chore: Update image paths
* fix: WC connection not triggering for Solana from scan qr
* fix: Wallet icon and eth currency icon displaying wrongly in various places for Base wallets
* UI fixes, updated icons, and temporarily revert Rescan button
* readd ping test button to node list, readd rescan to connections, fixup ui
* increase gap for node edit button
* remove rescan from connections for sp
* remove rescan from connections for mweb
---------
Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
* refactor: migrate hardware wallet resources to `new-ui`, add Trezor model support, and streamline hardware wallet handling across services
* refactor: migrate hardware wallet resources to `new-ui`, add Trezor model support, and streamline hardware wallet handling across services
* fix: correctly check for Ledger hardware wallet type in `isHardwareWallet` logic
* refactor: unify `isConnected` method for hardware wallets, add Trezor-specific support, and update Monero sync logic
* refactor: add Trezor transaction signing support, streamline hardware wallet handling, and update Monero dependency
* refactor: improve Trezor transaction handling, adjust hardware wallet state logic, and update Monero dependency references
* fix: non-hww tx commit() in xmr
fix: prod monero_c
fix: keyImage import workaround for Trezor/Cupcake
chore: add kotlin's .salive to .gitignore
* fix: universal_ble builds on iOS
chore: remove prints
fix: proper CI prebuilt for linux
* new trezor connection ui
* fix page title
* typo
* fix page title anim
* refactor: enhance Trezor pairing flow, update state management, and simplify UI logic in hardware wallet integration
* fix: correct widget indentation in Trezor pairing failure state UI
* fix: extract Trezor pairing failure state UI to `_errorBox` widget and update Trezor dependency reference
* refactor: simplify hardware wallet pairing error UI, optimize `_errorBox` layout, and streamline widget logic
* Update cw_monero/lib/pending_monero_transaction.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Update lib/buy/robinhood/robinhood_buy_provider.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: add USB intent filters, device filter for hardware wallets, and update Trezor dependency reference
* Update cw_monero/pubspec.yaml [skip ci]
* Update cw_wownero/pubspec.yaml [skip ci]
* Update cw_zano/pubspec.yaml [skip ci]
* fix: use CryptoCurrency.title instead of amount-refactor-only .symbol getter
new_wallet_type_page used curr.symbol, which only exists on the
amount-refactor branch (String get symbol => title). On dev the
equivalent is curr.title. Adapts the Trezor feature to dev's API
without pulling in amount-refactor.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Fix wallet list screen not scrollable
minor fixes
---------
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
Co-authored-by: Konstantin Ullrich <konstantin@cakewallet.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat: Implement USDT0 Bridging using OFT Standard by Layer Zero. POC available in apps menu.
* feat: Implement USDT0 Bridging using OFT Standard by Layer Zero. POC available in apps menu.
* feat: Implement USDT0 Bridging using OFT Standard by Layer Zero. POC available in apps menu.
* Add transaction history and status polling for USDT0 bridging
* Add Transaction history and status polling for USDT0 Bridging
* USDT0 Bridging Implementation
* Update Arbitrum USDT token symbol
* fix: Merge conflicts
* fix: Merge conflicts
* chore: Rever formatting
* feat: Implement new flow
* feat: Implement new ui flow
* Add currency to configure
* feat: new ui flow
* Update USDT0 implementation
- Switch to sqlite for storage instead of hive
- Switch bridge history and details to modals
- Switch bridge transfer details page to new tx details ui
* refactor: rearrange modal action buttons
* enhance usdt0 bridge flows
* Update lib/entities/wallet_manager.dart [skip ci]
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>