Send-success art: replace the Cake birthday cake with a Hash Bags money sack
that has a # on it and erupts #/$/₿ (assets/images/hash_bag.png). Used by the
success page, send-confirm sheet, exchange-trade, and dEURO savings.
Asset renames (files + refs):
- birthday_cake.png -> hash_bag.png
- restore_cupcake(.png/_dark) -> restore_hashbag.png
- qr-cake.png -> qr-hashbag.png
- arrow_bottom_cake_green.png -> arrow_bottom_green.png (+ 2.0x/3.0x)
Identifier renames:
- CakeImageWidget -> HashImageWidget (widget + file + 93 refs)
- typography _cakeRegular/_cakeBold/_cakeSemiBold -> _hash*
Transaction filter: drop the Cake Pay "Orders" row and every non-Trocador
trade provider; the swap gate is already Trocador-only, so this just aligns the
filter UI with reality.
Android launcher: add breathing room to the adaptive-foreground # (all
densities, monochrome included); iOS icon unchanged.
About page: swap the Cake easter eggs for Hash Bags ones.
Deferred (needs a build to verify): new-ui .svg.vec filename renames
(cake_squircle_icon, cakewallet-wordmark, cake-setting) — already Hash Bags in
content, only the filenames are cake, and they route through the .vec precompile.
URL replacements throughout lib/:
- support_view_model.dart: removed Cake's own support channels (email,
website, forum, Telegram, Telegram bot). Only GitHub Issues + Releases
remain. Third-party provider support links (ChangeNow, SideShift,
SimpleSwap, Exolix, Trocador, Onramper, DFX, MoonPay, Robinhood,
Kryptonim) kept — genuinely useful when a swap goes sideways.
- transaction_details_view_model.dart + payjoin_details_view_model.dart:
mempool.cakewallet.com -> mempool.space (canonical free public mempool,
no affiliate).
- services_updates_widget.dart: status.cakewallet.com -> our GH issues.
- 8 widget/screen files: docs.cakewallet.com / blog / cakewallet.com help
URLs repointed to github.com/Such-Software/hash-wallet (placeholder
until we have our own docs; better than dead-linking to Cake's docs).
User-facing text changes:
- walletkit_service.dart: WalletKit metadata (name/description/url/icon/
redirect) all -> Hash Wallet / Such Software repo / hashwallet:// scheme.
- di.dart: TrezorConnect callback URL + appName -> Hash Wallet.
- vulnerable_seeds_popup.dart + haven_wallet_removal_popup.dart: copy
rewritten to say 'Hash Wallet' instead of 'Cake Wallet', and point to
GH issues instead of Cake's support email.
- swap_provider_initial_preference_modal.dart: trailing 'Cake Wallet.'
-> 'Hash Wallet.'
Deep-link URL scheme cakewallet:// -> hashwallet:// in:
- lib/main.dart, lib/src/screens/root/root.dart, lib/view_model/link_view_model.dart
Means any cakewallet:// link from a payment QR / Trezor callback /
shortcut now routes via hashwallet://. No existing user base so no
migration needed.
SVG asset swaps (content replaced, filenames kept so call-sites compile
without rewriting):
- assets/new-ui/cake_squircle_icon.svg -> hash_wallet/02_app_icon.svg
- assets/new-ui/cakewallet-wordmark-light.svg -> hash_wallet/03_lockup_horizontal.svg
(dark text for light backgrounds)
- assets/new-ui/cakewallet-wordmark.svg -> hash_wallet/03_lockup_horizontal_dark.svg
(light text for dark backgrounds)
- apps_widget.dart: the conditional cakelabs-icon render became a SizedBox()
no-op. The Apps tab is gutted anyway (placeholder content); this widget
is also used elsewhere where the Cake Labs attribution badge is unwanted.
The big one. Touches 760+ files. Locks in the user's decision to break
import-line compatibility with upstream cake-tech/cake_wallet in exchange
for a binary named hash_wallet on every platform.
Changes:
- pubspec_description.yaml: project name cake_wallet -> hash_wallet
- 762 Dart files: every 'package:cake_wallet/...' import rewritten to
'package:hash_wallet/...' (lib/, cw_*/lib/, tool/, test/, integration_test/)
- linux/CMakeLists.txt: BINARY_NAME cake_wallet -> hash_wallet
- windows/CMakeLists.txt: project + BINARY_NAME (CakeWallet -> HashWallet)
- windows/runner/Runner.rc: company / file / product strings to Hash Wallet
+ Such Software LLC copyright
- macos/Runner.xcodeproj/project_base.pbxproj: cake_wallet_new.app refs
-> hash_wallet.app (macOS output bundle name)
- com.suchsoftware.HashWallet.yml (Flatpak): all binary path refs
cake_wallet -> hash_wallet (e.g. /app/hash_wallet/hash_wallet)
- linux/com.suchsoftware.HashWallet.desktop: Exec=hash_wallet
- scripts/android/copy_monero_deps.sh: CW_DIR target path
- configure_hash_wallet.sh: error message typo (old filename)
INTENTIONALLY UNCHANGED:
- cw_* subpackage names (cw_core, cw_bitcoin, cw_wownero, etc.) — they
remain as the historical 'cake wallet' naming; renaming them would
cascade through every sub-package's internal structure
- Method channel name 'com.cake_wallet/native_utils' in iOS/macOS/Android
AppDelegates and MainActivity — it's a string identifier that has to
match the Dart side exactly. Renaming requires both-sides change; it's
internal-only and not user-visible.
- ghcr.io/cake-tech/cake_wallet:debian13-... docker image references in
build scripts — that's Cake Labs' published image we use as the build
environment, not ours.
User data directory now follows the new binary name:
~/.local/share/hash_wallet/ (was ~/.local/share/cake_wallet/)
~/.config/hash_wallet/ (was ~/.config/cake_wallet/)
Existing users on the old name will need migration if any exist.
* Add Black theme
* Fix black theme
* Add WixMadefor Font
* feat: Enhance theme setup
This change:
- Adds support for custom themes
- Updates theme retrieval logic to ensure the right theme is used based on user preferences(especially for custom themes).
* Add black custom colors
* Add custom accent colors
* feat: Restructure custom colors handling for themes
* feat: Integrate new custom colors structure across various components - WIP
* feat: Integrate new custom colors structure across various components, black theme now ready for tests
* feat: Add new accent color themes and update theme selection UI
- Enhanced theme selection UI in display settings to support accent color choices.
- Updated theme handling logic to accommodate new accent color variants.
* Minor updates to display_settings_page.dart
* Update settings_theme_choice.dart
* Revert accidental change in display_settings_page.dart
* Revert WixMadeFor font, fix SVG colors for CakeImageWidget, and test some color changes
* Update Monero Orange
* fix: Remove unused custom colors
* Test outline
* Test spacing and colors
* Add padding
* Remove outline
* Add other accent colors
* Update display_settings_view_model.dart
* Update names and fix switch case
* Add outline and update dark_theme.dart colors
* Add gradient to option_tile.dart
* Update icons
* Update some colors
* Switch option_tile.dart to TextButton
* Add updated icons
* Fix icon resolution
* Cleanup old icons + Update pubspec_base.yaml
* Remove unused fonts
* Update more icons
* Update image paths
* Remove more icons + update some component colors
* Add back DAI icon
* Fix errors
* feat: Implement OLED mode for BlackTheme
* feat: Add OLED mode for BlackTheme and localizations
* feat: Implement OLED mode for Black Theme
* refactor: Remove unused theme parameters and set up easy access to toggleKnob custom colors
* fix: Cleanup UI and overflows
* feat: Persist black theme selection if OS theme mode while app is in system mode
* fix: OS theme change when app is in background restrict pin screen from proceed
* Fix theme picker sizing
* Update lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* refactor: Enhance theme access by introducing ThemeX extension for easier retrieval of current theme and custom colors
* refactor: Remove currentTheme parameter from GradientBackground widget and adjust across affected widgets
* refactor: Remove currentTheme parameter from StandardSwitch and SettingsSwitcherCell, using ThemeX extension for theme access
* refactor: Remove currentTheme parameter from various widgets dependent on SettingsSwitcherCell and StandardxSwitcher, using ThemeX extension for theme access
* refactor: Remove currentTheme in bottomsheets and related widgets, switching to theme extension
* refactor: Remove constructor theme access in OptionTile and related widgets, switching to theme extension
* refactor: Switch bottomsheet related widgets to use theme extension instead of constructor access
* refactor: Migrate currentTheme access from constructor based to extension base
* refactor: Switch theme access from constructor base to extension base [skip ci]
* refactor: Migrate more widgets to use extension based theme access and clean up code
* refactor: Update theme access across multiple widgets to use the new theme extension
* refactor: Clean up theme access in various widgets, moving to extension-based theme usage
* refactor: Make theme picker preview responsive
* fix: Persist saved black theme accent when app is put in background and brought back
* remove unused variables [skip ci]
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This change:
- Adds svg icons for history and notification
- Updates the sidebar and services widget to use new images
- Fixes services widget icon looking very tiny on desktop
* Fix some colors
* fix(theme-updates): Modify condition for theme border style display when hasUnderlineBorder is true
* fix(themes-updates): Adjust switch colors and modify payjoin hint text
* fix: Crash report relating to success image display on successful exchange
* fix(theme-updates): Adjust animated text max width to prevent overflows
* fix(theme-updates): Adjust fee picker styling
* fix(themes-updates): Remove text overflow on welcome screen animation
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* Add theme base v2
* Initial new theme base files
* Typos
* Fixes
* Update theme files
* feat: Migrate to Material 3 Theming
Foundation, Theme Data Refactor, and First Extension Cleanup Batch.
This commit completes the first major phase of migrating to Material 3 theming by setting up the foundations for material 3 integration and begins the initial migration, removing custom theme extensions, updating theme data, and refactoring all relevant widget and page theming to use Material 3’s built-in color and typography tokens.
These changes:
- Lays the groundwork for Material 3 theming by restructuring the app’s theme configuration to use Material 3’s ColorScheme and TextTheme as the primary sources of color and typography throughout the app.
- Refactors the core theme config files by removing legacy custom color roles ensuring all color definitions now map directly to Material 3’s role.
- Begins the first batch migration of custom theme extensions (InfoTheme, PlaceholderTheme, KeyboardTheme, PinCodeTheme) and updates all affected widgets and pages to use Material 3 color and typography tokens instead of the custom properties.
- Cleans up the codebase by deleting the files of the initial set of migrated extensions and eliminating all related imports and usages.
* feat: Migrate to Material 3 Theming.
This change:
- Updates the themes README.md file to reflect the current structure and give more information based on the first major phase that was completed.
* feat: Migrate to Material 3 Theming
Deleting previous theme extensions
* feat: Migrate to Material 3 Theming
Another batch of migrations from existing extensions
* feat: Migration to Material 3 Theming
Third Migration batch for theme extensions
* fwat: Migration to Material 3 Theming
Final Migration batch for previous theme extensions
* Update onboarding hero
* Update button radius
* Add surfaceContainer to light theme
* feat(themes): Migrate to Material 3 Theming
This change:
- Adds new set of hero images
- Modifies the core structure for the themes
- Add missing color tokens to the theme classes
- Adds a CustomThemeColor class for custom color tokens
- Modifies the themelist to have a fall back for previous theme implementation
- Adds localization for some texts
- Modifies the flow for loading the theme on app start
- Add a WidgetsBindingObserver that listens for changes in the device theme and updates the app theme when there is a change
- Registers the themeStore as a Singleton for codebase wide use
* feat(themes): Migrate to Material 3 theming
This change:
- Migrates UI flows across the app to the new themes
- Confirms styling and typography of components across the app uses the new themes
- Remove instances of Palette use
- Switch TextStyles across the app to use theme text styles
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adjusts bottomsheets styling and removes duplicate close button
- Removes more themedata extensions from the previous implementation
* - Remove outlines from cards and dock
- Update menu colors
- Update padding/divider size for cards
* - Update PIN screen
- Fix navigation dock shadow
- Update wallet screen colors
* Update border radius --skip-ci
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adds gradient backgrounds to the dashbaord and balance cards.
- Migrates the input fields across the app to BaseTextFormFields.
- Removes dependence of input fields on individual styling, focusing instead on using theme defined InputDecoration styling with adjustments on individual components where needed.
- Applies new theme styling to BaseTextFormField, AddressTextField and CurrencyAmountTextField.
* - Switch some hero images to PNG
- Fix nagivation_dock shadow
- Minor fixes
* feat: Add fallback to previous underline styling in central widgets
This change:
- Adds a fallback to CurrencyAmountTextField, AddressTextField, and BaseTextFormField, allowing them use the previous theme styling.
- Adds localization for new texts
* feat(themes): Update warning box colors for dark and light themes
* feat(themes): Relaod themes when user restores from backup, ensuring the user previous theme preference is used.
* feat(themes): Handle themes logic during restore from backup
This change:
- Refactors theme loading logic to handle backup restore edgecase
- Refreshes the theme based on the user saved preference during restore from backup flow
* Fix card gradients and spacing
* Fix even more radiuses
Test new icons for navigation_dock.dart
* Update onboarding flow backgrounds
Fix swap icon clipping
Fix some text colors
Add more hero images
* Fix incorrect color for light theme
* Fix more hero images and cleanup
* Update text field icons
Fix info box CTA colors
Fix sync indicator colors
* Update toggle colors
Update dark theme colors (minor)
Update crypto_balance_widget.dart icon
* Update page transitions in router.dart
Fix some colors
* feat(themes): Display label by default for filled textfields
* feat(themes): Refactor theme handling across various components
This change:
- Fixes issue with themeMode resetting to system mode when app is restarted causing a UI glitch
- Updates theme checks from `currentTheme.type == ThemeType.dark` to `currentTheme.isDark` for consistency
- Adjusts UI components to use the theme directly from the themeStore
* feat(themes): Add animating tagline to the create pin welcome screen
* Revert text fields label temporarily, fix a couple colors, and cleanup some images
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* add timeout for mempool fee api and make it only in bitcoin
* disable Monero Ledger for desktop
* handle onramper tag issue
* better handle main actions UI
* make service status scrollable with a better UI
* fix stupid race condition
* minor handling
* update btc fee api
update our xmr node to use ssl
* manually add supported unstoppable domains for now
* change bitcoin default node
code enhancement
* revert debugging code [skip ci]
* minor enhancements [skip ci]
* increase sync indicator size [skip ci]
* fix selecting USA country not triggering the reaction
* fix scrolling on cake features page [skip ci]
* Change order of currencies in currency picker
* Disable Background sync until implemented properly
* remove ability to use device pin in bio auth
* Fix condition
* Minor fix [skip ci]
* make notifications red dot go when opened
* Update Frozen coin text color
* Update Frozen coin text color
* Fetch internal transactions for eth and polygon
* Remove debug prints [skip ci]
* Fix Camera permission on iOS [skip ci]
---------
Co-authored-by: tuxsudo <tuxsudo@tux.pizza>
* New price API
* Fix test app package id
* Fix workflow
* change environment variable to use pr number [skip ci]
* Fix un-needed padding
* Fix raw value for usdtSol
* Remove duplicate fetching for balance and transactions at start [skip ci]
* Fix address validation of spl tokens
* Add Service Status
* Update lib/src/widgets/service_status_tile.dart
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
* Update lib/src/widgets/services_updates_widget.dart
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
* Update monero version
* update sodium script
* Change automatic priority fee rate
---------
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>