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.
* fix: handle unexpected ViewModel in ledger connection process
* fix: add missing exception handler for `_QueuedFuture.execute` in `exception_handler.dart`
* feat: initial hive -> SQLite
Includes migration script and initial work done to
remove dependency on hive generators.
Also contains some refactoring to make sync code
async.
Features new dev screen that lists all SQLite tables
Aspects that need testing:
- backups (from this version, and from previous versions as well)
- wallet loading / wallet list
- almost everything else
- renaming
- deletion
- sorting in wallet list
- wallet groups
- wallet seed/keys
- wallet switching
- wallet creation / restore - all methods
- wallet address page
- hardware wallet connection (and prompts from mall screens)
- contacts
- advanced settings in wallet creation
- derivation paths
- some minor wownero fixes
- base, hardware wallets
* fix: build errors
* fix: Bad state: No element in backup restore
* address comments from review
* fix: HardwareWalletType
* Reown WalletConnect Implementation
- Setup for Solana Chain
- Setup for EVM chain
- Enable signing messages and transactions on Solana Chain
- Fix issues related to signinig of transactions on Solana chain
- Decode mesage to human readable format - WIP
* Reown WalletConnect Implementation Continuation:
- Add readable text for signedTypedDatav4 and sendTransaction event requests
- Modify styling for bottomsheetModel
- Switch minimum deployment target to 13.0
- Gracefully handle errors
- Fix issues discovered while testing across dApps
* chore: ReownWalletConnectImplementation (Cont.)
- Remove unneeded code and files
- Rename files to match classes and vice versa
- Add maven jitpack repository for reown.com/yttrium repo
- Add better folder structuring to entire feature
- Add localization for all feature related texts
- Add testnet and devnet access for Solana Chain Service
- Add a better error message for Moralis NFT fetch
* feat:
- Add field to enter wc uri directly
- Handle bottomsheet not coming up after initial display
- Remove unneeded print statements
- Remove double display of success popup for session proposal bottomsheets
* fix:
- Add visual feedback to WC RelayClient Errors
- Adjust theme for bottomSheets
* Testing a theroy
* Temporarily add flags back
* Remove added flags and update proguard rules
* fix(android): update proguard-rules.pro and drop minify flags (#2199)
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* fix: Switch bottomsheet result from signOne to signAll
---------
Co-authored-by: cyan <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Redesign HW Account select screen
* fix: Avoid "Bluetooth disabled" Exception on dispose of HW Connection screen
* feat: Proceed on Ledger Modal is not dismissible by tapping out
* feat: Gracefully ignore errors thrown by monero ledger keep alive function
* feat: Close a monero ledger wallet on wallet change
* fix: Leave connect screen without connecting
* Fix sending for monero ledger
* Ignore no tx keys found error
* re-add Monero to Ledger enabled wallets
* Fix No Element Exception on requireHardwareWalletConnection check
* Fix Showing connection screen again
* Maybe fix Race condition
* fix namespace
* Maybe fix Race condition and add missing pop
* Minor fixes
* Minor fixes
* Fix minor localization
* Fix minor localization
* Add Text prompt if device is not showing after 10 seconds.
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
* improve exception throwing on broken wallets
- put _lastOpenedWallet to avoid issues on windows (file is currently open by)
- don't throw corruptedWalletsSeed - instead store it inside of secureStorage
- await ExceptionHandler.onError calls where possible to makse sure that popup won't be canceled by some UI element
- adjust BaseAlertDialog to be scrollable if the text is too long
- add ExceptionHandler.resetLastPopupDate - that can be called when we want to show error report screen (bypassing cooldown)
* fix: HiveError: Box has already been closed.
* await the alerts to be sure that each one of them is being shown
fix typo in secure storage
* Update lib/core/backup_service.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* address comments on github
* don't store seeds in secure storage
* fix wallet password
* update monero_c
update corrupted seeds UI
prevent app from crashing when wallet is corrupted
* show alert with seeds
* Update corrupted wallet UI
Fix wallet opening cache
* remove unused code
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Fix conflicts with main
* fix for multiple wallets
* Add tron to windows application configuration.
* Add macOS option for description message in configure_cake_wallet.sh
* Include missed monero dll for windows.
* fix conflicts with main
* Disable haven configuration for iOS as default. Add ability to configure cakewallet for iOS with for configuration script. Remove cw_shared configuration for cw_monero.
* fix: scan fixes, add date, allow sending while scanning
* add missing nano secrets file [skip ci]
* ios library
* don't pull prebuilds android
* Add auto generation of manifest file for android project even for iOS, macOS, Windows.
* feat: sync fixes, sp settings
* feat: fix resyncing
* store crash fix
* make init async so it won't lag
disable print starts
* fix monero_c build issues
* libstdc++
* Fix MacOS saving wallet file issue
Fix Secure Storage issue (somehow)
* update pubspec.lock
* fix build script
* Use dylib as iOS framework. Use custom path for loading of iOS framework for monero.dart. Add script for generate iOS framework for monero wallet.
* fix: date from height logic, status disconnected & chain tip get
* fix: params
* feat: electrum migration if using cake electrum
* fix nodes
update versions
* re-enable tron
* update sp_scanner to work on iOS [skip ci]
* bump monero_c hash
* bump monero_c commit
* bump moneroc version
* bump monero_c commit
* Add ability to build monero wallet lib as universal lib. Update macOS build guide. Change default arch for macOS project to .
* fix: wrong socket for old electrum nodes
* Fix unchecked wallet type call
* get App Dir correctly in default_settings_migration.dart
* handle previous issue with fetching linux documents directory [skip ci]
* backup fix
* fix NTFS issues
* Close the wallet when the wallet gets changed
* fix: double balance
* feat: node domain
* fix: menu name
* bump monero_c commit
* fix: update tip on set scanning
* fix: connection switching back and forth
* feat: check if node is electrs, and supports sp
* chore: fix build
* minor enhancements
* fixes and enhancements
* solve conflicts with main
* Only stop wallet on rename and delete
* fix: status toggle
* minor enhancement
* Monero.com fixes
* bump monero_c commit
* update sp_scanner to include windows and linux
* Update macOS build guide. Change brew dependencies for build unbound locally.
* fix conflicts and update macos build guide
* remove build cache when on gh actions
* update secure storage
* free up even more storage
* free up more storage
* Add initial wownero
* fix conflicts
* fix workflow issue
* build wownero
* ios and windows changes
* macos
* complete wownero flow (app side)
* add keychain group entitlement and update script for RunnerBase on macos
* update secure_storage version to 8.1.0 in configure.dart
* add wownero framework
* update ios builds
* proper path for wownero and monero
* finalizing wownero
* finalizing wownero
* free up even more storage
* revert commenting of build gradle configs
* revert commenting of secrets [skip ci]
* free more storage
* minor fixes
* link android wownero libraries
* bump monero_c commit
* wownero fixes
* rename target
* build_single.sh using clean env
* bump monero_c commit
* minor fix
* Add wownero polyseed
* fix conflicts with main
* fix: wallet seed display
fix: wownero not refreshing
* fix: wallet seed display
fix: wownero not refreshing
* bump monero_c commit
* minor fixes
* fix: incorrectly displaying XMR instead of WOW
* fix: incorrect restore height in wownero
* bump monero_c commit
* Add Inno Setup Script for windows exe installer
* drop libc++_shared.so
* fixes from comments
* Fix CMake for windows
* Merge latest monero dart changes [skip ci]
* bump monero_c commit
* add wownero to build scripts for macos [skip ci]
* add 14 word seed support to wownero
* UI fixes for wownero seed restore
* minor fixes
* reformat code to pass lints
* Add debug ledger code
* Add Litecoin Hardware Wallet Creation
* Add Litecoin Hardware Wallet Creation
* Fix Bitcoin not sending on Ledger
* Fixes to sending LTC using Ledger
* CW-679 Fix merge conflicts
* CW-679 Fix merge conflicts
* CW-679 Minor fixes
* CW-679 Add derivation Path of change address
* Add create Monero Wallet from Ledger
* bug fix to create Monero Wallet from Ledger
* ledger flutter plus refactoring
* ledger flutter plus refactoring
* ledger flutter plus refactoring
* Ups :|
* Ups :| I forgot USB
* Handle BT Off
* Fix Issue with A14 and USB
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Pls work
* Pls work
* Pls work
* Pls work
* Fix overpopulation
* Fix ble device detection and support for Stax and Flex
* clean up pubspec
* clean up
* MWeb merge fix
* MWeb merge fix
* Migrate to Ledger Flutter Plus
* Add connect device page before loading the wallet (Only monero)
* Add connect device page before loading the wallet (Only monero)
* Fix merge error
* Fix merge error
* Fix merge error && Allow for wallet switching
* Please compile now
* Move monero/ledger.dart from monero_c to cw_monero
* Upgrade ledger_flutter_plus
* Add more popups if action on the device is needed.
* Update monero_c dependency hash
* Yay ledger monero is even more efficient and avoids memory leaks 🥳
* [skip-ci] more code
* Fix Minor Bug
* Fix Minor Bug
* Apply requested changes
* [skip ci] Apply requested changes
* Minor Cleanup
* Welp I'm dumb :/
* Implement requested changes
* Increase ledger refresh speed
* Add Monero Ledger keep connection alive
* Add Monero Ledger keep connection alive
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: m <m@cakewallet.com>
Co-authored-by: Rafael Saes <git@rafael.saes.dev>
Co-authored-by: Matthew Fosse <matt@fosse.co>
* Revert "Revert btc address types"
This reverts commit a49e57e3
* Re-add Bitcoin Address types
Fix conflicts with main
* fix: label issues, clear spent utxo
* chore: deps
* fix: build
* fix: missing types
* feat: new electrs API & changes, fixes for last block scanning
* Update Monero
* not sure why it's failing
* Enable Exolix
Improve service updates indicator
New versions
* Add exolix Api token to limits api
* Ignore reporting network issues
* Change default bitcoin node
* Merge main and update linux version
* Update app version [skip ci]
* New versions
* Fix conflicts and update linux version
* minor fix
* feat: Scan Silent Payments homepage toggle
* chore: build configure
* feat: generic fixes, testnet UI improvements, useSSL on bitcoin nodes
* fix: invalid Object in sendData
* feat: improve addresses page & address book displays
* feat: silent payments labeled addresses disclaimer
* fix: missing i18n
* chore: print
* feat: single block scan, rescan by date working for btc mainnet
* feat: new cake features page replace market page, move sp scan toggle, auto switch node pop up alert
* feat: delete silent addresses
* fix: red dot in non ssl nodes
* fix: inconsistent connection states, fix tx history
* fix: tx & balance displays, cpfp sending
* feat: new rust lib
* chore: node path
* fix: check node based on network
* fix: missing txcount from addresses
* style: padding in feature page cards
* fix: restore not getting all wallet addresses by type
* fix: auto switch node broken
* fix: silent payment txs not being restored
* update linux version
* feat: change scanning to subscription model, sync improvements
* fix: scan re-subscription
* fix: default nodes
* fix: improve scanning by date, fix single block scan
* refactor: common function for input tx selection
* various fixes for build issues
* initial monero.dart implementation
* ...
* multiple wallets
new lib
minor fixes
* other fixes from monero.dart and monero_c
* fix: nodes & build
* update build scripts
fix polyseed
* remove unnecessary code
* Add windows app, build scripts and build guide for it.
* Minor fix in generated monero configs
* Merge and fix main
* fix: send all with multiple outs
* add missing monero_c command
* add android build script
* update version
* Merge and fix main
* undo android ndk removal
* Fix modified exception_handler.dart
* Temporarily remove haven
* fix build issues
* fix pr script
* Fixes for build monero.dart (monero_c) for windows.
* monero build script
* wip: ios build script
* refactor: unchanged file
* Added build guides for iOS and macOS. Replaced nproc call on macOS. Added macOS configuration for configure_cake_wallet.sh script.
* Update monero.dart and monero_c versions.
* Add missed windows build scripts
* Update the application configuration for windows build script.
* Update cw_monero pubspec lock file for monero.dart
* Update pr_test_build.yml
* chore: upgrade
* chore: merge changes
* refactor: unchanged files [skip ci]
* Fix conflicts with main
* fix for multiple wallets
* update app version [skip ci]
* Add tron to windows application configuration.
* Add macOS option for description message in configure_cake_wallet.sh
* fix missing encryption utils in hardware wallet functions [skip ci]
* fix conflicts
* Include missed monero dll for windows.
* reformatting [skip ci]
* fix conflicts with main
* Disable haven configuration for iOS as default. Add ability to configure cakewallet for iOS with for configuration script. Remove cw_shared configuration for cw_monero.
* fix: scan fixes, add date, allow sending while scanning
* add missing nano secrets file [skip ci]
* ios library
* don't pull prebuilds android
* Add auto generation of manifest file for android project even for iOS, macOS, Windows.
* remove tron
* feat: sync fixes, sp settings
* feat: fix resyncing
* store crash fix
* make init async so it won't lag
disable print starts
* fix monero_c build issues
* libstdc++
* merge main and update version
* Fix MacOS saving wallet file issue
Fix Secure Storage issue (somehow)
* update pubspec.lock
* fix build script
* Use dylib as iOS framework. Use custom path for loading of iOS framework for monero.dart. Add script for generate iOS framework for monero wallet.
* fix: date from height logic, status disconnected & chain tip get
* fix: params
* feat: electrum migration if using cake electrum
* fix nodes
update versions
* re-enable tron
* update sp_scanner to work on iOS [skip ci]
* bump monero_c hash
* bump monero_c commit
* bump moneroc version
* bump monero_c commit
* Add ability to build monero wallet lib as universal lib. Update macOS build guide. Change default arch for macOS project to .
* fix: wrong socket for old electrum nodes
* update version
* Fix unchecked wallet type call
* get App Dir correctly in default_settings_migration.dart
* handle previous issue with fetching linux documents directory [skip ci]
* backup fix
* fix NTFS issues
* Add Tron
Update Linux version
* Close the wallet when the wallet gets changed
* fix: double balance
* feat: node domain
* fix: menu name
* bump monero_c commit
* fix: update tip on set scanning
* fix: connection switching back and forth
* feat: check if node is electrs, and supports sp
* chore: fix build
* minor enhancements
* fixes and enhancements
* solve conflicts with main
* Only stop wallet on rename and delete
* fix: status toggle
* minor enhancement
* Monero.com fixes
* bump monero_c commit
* update sp_scanner to include windows and linux
* merge main
* Update macOS build guide. Change brew dependencies for build unbound locally.
* fix: Tron file write, build scripts
* - merge linux with Monero Dart
- Temporarily disable Monero
* fix other issues with linux
* linux ci
fix build script
* Update pr_test_build_linux.yml
install required packages
* add linux desktop dependencies
* don't use apk in linux build releases
* don't copy the file to test-apk
* fix linux runtime issues
* remove libc++_shared.so
* fix issues with linux
* prepare both android and linux (because otherwise it will fail)
* ci script updates
* run apt update
* bump image to ubuntu 22.04
note: remember to put it down later
* bump python version
* remove some dependencies
* remove unused import
* add missing dependencies
* fix dependencies
* some fixes
* remove print [skip ci]
* Add back RunnerBase.entitlements
minor fixes [skip ci]
* fix memory leak / infinite recurrsion when opening xmr wallet
* url_launcher_linux: 3.1.1 # https://github.com/flutter/flutter/issues/153083
* fix conflicts with main
* handle walletKeysFile with encryptionUtils
* update app version [skip ci]
* add wownero [skip ci]
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Rafael Saes <git@rafael.saes.dev>
Co-authored-by: M <m@cakewallet.com>
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
* add litecoin nodes
minor ui fix
* Try to open the wallet or fetch the seeds and show them to the user
* make sure the seeds are only displayed after authentication
* Add build scripts for macOS. Add macos for cw_monero plugin. Add macos proj to the application.
* - Update Flutter secure storage to work with macos
- Enable uni links only on Mobile
- Update devcelocale to work with macos
* Add network access to mac
* Change Dashboard view on desktop size screens
* Add on Tap to desktop_action_button.dart
Remove unused functions
* Fix arch match for monero lib for darwin x86_64 -> x86-64
* Add Bundle ID in entitlements files through app config script
* Update deployment target to 10.13
* Revert back to Cake fork for secure storage
* Revert back to Cake fork for secure storage
* Revert mac os version
* Revert mac os version
* Add platform channel specific code for mac os
* Add desktop sidebar
* [skip ci] Add desktop sidebar
* [skip ci] Add desktop sidebar
* - Remove legacy migration from macos
- Remove wake lock native code and just use the ready made package
* Remove wake lock native code and just use the ready made package
* Remove unstoppable domain from macos since it's not supported
* Temporarily fetch unstoppable domains only on mobile
* refactor desktop settings sidebar
* Ignore increasing brightness for non-mobile platforms
* Add Wallet selection dropdown to dashboard desktop view
* Generate MacOS icons
* localize settings
* fix dashboard sidebar and responsive utils
* Change Mac os app name and bundle id
* Fix exchange page as fullScreenDialog
* Remove constants
* - Refactor onRamper to have a single point of modification
- Enlarge initial app size
- update Flutter and Packages
* Add pubspec.lock and Podfile.lock to gitignore
* Remove Podfile.lock from cache
* Fix bug on sidebar reset
* Fix issues from code review
* [skip ci] reformat desktop dashboard
* [skip ci] reformat desktop dashboard
* Revert removing .lock files
* Revert changes in .gitignore
* [skip ci] remove .project changes
* [skip ci] remove .project changes
* Separate Dashboard desktop view from mobile view
* constraint images and pincoded box
* Remove drawer from mac os
* - Listen to keyboard events in PIN screen
- Fix PIN buttons style
* Fix desktop nav bar UI
* Add Marketplace to dashboard view
* Update trailing icon to open transaction page
* Update widget contraints
* Add empty trailing to center page title on desktop
* Refresh desktop dashboard actions on wallet change
* Change ionia welcome page animation
* Fix Constrained width screens UI
* Refactor sidebar state management
* remove empty line
* Add max width constrain to Welcome page
* Change Exchange page UI depending on platform
* - Change design/paddings for Send page on desktop view
- Make AddTemplateButton instead of having it duplicated in send/exchange
* Fix Desktop dashboard actions background color
* Constrain primary Buttons width
* Make side menu items toggle back to dashboard
* Add padding to support page
* Add width constraints to desktop dashboard
* Fix UI issues, paddings and alignments
* Rename misleading variable
Change initial mac window size
* Fix wallet create in settings
* remove unnecessary code
* remove unnecessary code
* Remove duplicated constrains
* - Use close icon on main screens
- Minor UI fixes
* fix pageview controller reset index
* Add create and restore wallet options to dropdown menu
* Fix desktop background color and address book view issues
* Fix input field
* Add onFieldSubmitted to allow "enter" button interaction
* Fix issue from code review
* Fix Popup width constraint and add focus orders
* Fix variable name
* Fix issues from code review
* refactor dropdown items
* Fix alignment in create and restore wallet screens
* Fix dropdown change state bug
Hide scanner for desktop
* remove space
* override navbar with desktopnavbar
* Remove autofocus
* remove unused code
* Fix ionia input field alignment
* Replace removed code
* Add app lock feature on mac
* Add assertion to avoid null
* Add Nano currency image
* Enable adding contact from send screen
* Fix UI issues
Add missing translation
* pop only PIN screen after successful auth
* Add back wallet settings page to desktop settings actions
* Fix Navigation animation for settings screens
* Fixate MobX version to fix restore issue
* CW-324 Refresh current settings page if wallet changed (#811)
* Fix refresh current settings page if wallet changed
* Fix refresh current settings page if wallet changed
* Refresh Wallet Seeds/Keys List upon wallet change
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* Remove navigation workaround for duplicate key, and fix the issue by handling creation/disposing of global key (#840)
* Cw 323 add wallet list to settings on mac (#843)
* Remove navigation workaround for duplicate key, and fix the issue by handling creation/disposing of global key
* - Register Wallet List as singleton in Desktop to be modify the same instance from settings and dropdown
- General Fixes and Enhancements
* Fix Changing/Restoring wallet from settings
* Fix Create wallet not showing seeds screens if launched from settings
* Add max width constraint for Alerts
* - Add Desktop API keys
- Fix Change back up password issue
- Fix Popup width
* Sync Mac with latest main updates
* Swap Transactions icon with lock icon
* Save backup file locally on desktop
* Sync with latest main updates
* Fix Navigation issues with anonpay
* Update macos build version
* Remove deprecated custom wake lock code for Android
* Remove Legacy CryptoSwift package from MacOS
* - Refactor Payfura page code
- Add OnRamper new configs to onramper_buy_provider.dart
- Fix Conflicts with main
* Updated device locale package
* Update android tools
* Revert changes and update only gradle version
* Downgrade android tools version
* Update gradle version
* Update package/gradle/plugin version
* - Fixate device locale version
- Downgrade gradle version
* Update kotlin version
* Update gradle version
* Trial for a custom fork from devicelocale
* Fixate shared preferences package version
* Revert gradle version
* Revert kotlin version
* Downgrade gradle version
* Downgrade gradle version
* Repair cache and clean before build
* Fixate flutter version
* update google services version
* revert google services version
* Force shared pref android version
* Override shared prefs android package version
* Override shared prefs android package [skip ci]
---------
Co-authored-by: M <m@cakewallet.com>
Co-authored-by: Godwin Asuquo <godilite@gmail.com>
Co-authored-by: Godwin Asuquo <41484542+godilite@users.noreply.github.com>