* implement v3 backup system
- Add new BackupServiceV3 with chunked backup support and checksums
- Implement json-based metadata in backup system
- Instead of binary file export a .zip file that user can open and
see that it is a cake backup
(should also prevent 3rd party software from corrupting binary
data inside of the file, in case it doesn't checksum will fail,
and user will know for sure that backup got corrupted)
- Update flutter to 3.27.4 to use archive ^4.x.x (it offers in memory
archive operations)
* fix wallets not getting restored properly
* prevent out of memory errors on files that are way too big during restore
* Update lib/view_model/backup_view_model.dart [skip ci]
* Update lib/core/backup_service.dart [skip ci]
* Update lib/core/backup_service.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* 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>
* use focusNode instead of onTapOutside for TextFieldListRow
* add a transaction description box to the backup
* fix
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* 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>
* bio auth mac fix
* remove comment and change duration from 2 to 0
* cherry pick previous changes
* workaround for secure storage bug on mac
* bump version to 3.19.5 (because breez will need this version anyways)
* some code cleanup
* some changess didn't get saved
* just documenting the issue [skip ci]
* undo accidental removal + minor code cleanup
* merge conflicts
* Minor UI change [skip ci]
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Center the account text on the balance page
* Modify dashboard button spacing
* Change default theme to Dark theme
* Remove legacyTheme and modify theme order
* Add condition for Monero.com wallet default theme
* Add locale for new themes
* Add new themes
* Update padding
* Fixes
* Update settings_store.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* be absolutely sure we delete secure storage keys before writing them
* sync with other PR
---------
Co-authored-by: fossephate <fosse@book.local>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* - Catch get balance network issues
- Disable remove button when adding node
* Update packages and android gradle version
minor enhancements
* Backup issue fix
* update workflow java version
* Remove useless permission check for saving file
* minor enhancements
* only delete secure storage key before overriding it on MacOS
* Minor UI changes
* Remove debug prints [skip ci]
* Revert FR localization changes
* add preference keys for default nano/banano rep
* updates to change rep page, add success message
* forgot to save this file
* nano_client cleanup
* first pass
* refactor to use sharedprefs in nano_client
* review fixes
* disable bio auth for macos
* Disable for Linux as well
---------
Co-authored-by: fossephate <fosse@book.local>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* New versions
* update the new version text after macos [skip ci]
* add cake-wallet headers
* add nano/banano to getAddressFromStringPattern
* Revert "Exolix integration (#1080)"
This reverts commit 9eb6867ab9.
* fix: Bug in conditions check and clean up of repeated code in switch cases (#1117)
* update build numbers [skip ci]
---------
Co-authored-by: fosse <matt.cfosse@gmail.com>
Co-authored-by: Adegoke David <64401859+Blazebrain@users.noreply.github.com>
* initial button refactor and gradient background
* CW-397 Use a separate Hive instance to avoid Issues with plugins using Hive
* CW-397 Add Support Page Strings
* CW-397 Add new Support Page
* CW-397 Add Support Live Chat Page
* CW-397 Add Hive Type Ids Doc
* CW-397 Use Newer Chatwoot SDK Version and add new Images
* CW-397 Update pubspec_base.yaml
* CW-397 Add own Chatwoot Widget
* Lowercase `s` skip-ci
* CW-397 Fix WebMessageListener
* CW-397 Fix Merge conflicts
* CW-397 Add Erc20 Hive Type ID
* CW-397 Fix Ethereum Hive Error
* CW-397 Revert to Restore Button
* CW-397 Only use In App chat on mobile
* CW-397 Move Chatwoot Website Token to secrets
* CW-397 Add Chatwoot Website Token to workflow
* CW-397 Move Chatwoot fetchUrl to Support View Model
---------
Co-authored-by: Rafael Saes <git@saes.io>
Co-authored-by: Justin Ehrenhofer <justin.ehrenhofer@gmail.com>
* Run Monero Synchronization task in background on Android
* Add monero sync task in the load function to be registered/cancelled when user changes wallets
* Revert unused file changes
* Register Sync task on all monero wallets if any
* Add Sync Modes and change task frequency based on user's choice
* Register background task after current wallet is set
* Add Sync All toggle and change task wallets to sync accordingly
* Enable background notifications in release mode temporarily
* Disable constraints and increase the frequency of tasks
* Decrease frequency of background tasks
* Delay the background task thread till the syncing thread finish (Dummy Trial-1)
* Start Sync process and wait for it to finish
* Wait for synchronization to finish before ending the background thread
Add 10 minutes timeout duration for sync process
* Connect to node before syncing wallet
* replace testing configuration with the configurations agreed on
* Fix Conflicts with main
* Update and Migrate Background tasks to null safety
* Update workmanager version in pubspec_base also
* Move Sync options to Connection and sync page
Show Sync options only for Monero and Haven
Minor Enhancements
* Remove debugging notifications
Revert aggressive mode frequency to 6 hours [skip ci]
* Add iOS configs
* Revert debugging changes
Fix conflicts with main
* Add/Extract Sync configurations to/from backup file [skip ci]
* Add initial flow for ethereum
* Add initial create Eth wallet flow
* Complete Ethereum wallet creation flow
* Fix web3dart versioning issue
* Add primary receive address extracted from private key
* Implement open wallet functionality
* Implement restore wallet from seed functionality
* Fixate web3dart version as higher versions cause some issues
* Add Initial Transaction priorities for eth
Add estimated gas price
* Rename priority value to tip
* Re-order wallet types
* Change ethereum node
Fix connection issues
* Fix estimating gas for priority
* Add case for ethereum to fetch it's seeds
* Add case for ethereum to request node
* Fix Exchange screen initial pairs
* Add initial send transaction flow
* Add missing configure for ethereum class
* Add Eth address initial setup
* Fix Private key for Ethereum wallets
* Change sign/send transaction flow
* - Fix Conflicts with main
- Remove unused function from Haven configure.dart
* Add build command for ethereum package
* Add missing Node list file to pubspec
* - Fix balance display
- Fix parsing of Ethereum amount
- Add more Ethereum Nodes
* - Fix extracting Ethereum Private key from seeds
- Integrate signing/sending transaction with the send view model
* - Update and Fix Conflicts with main
* Add Balances for ERC20 tokens
* Fix conflicts with main
* Add erc20 abi json
* Add send erc20 tokens initial function
* add missing getHeightByDate in Haven
* Allow contacts and wallets from the same tag
* Add Shiba Inu icon
* Add send ERC-20 tokens initial flow
* Add missing import in generated file
* Add initial approach for transaction sending for ERC-20 tokens
* Refactor signing/sending transactions
* Add initial flow for transactions subscription
* Refactor signing/sending transactions
* Add home settings icon
* Fix conflicts with main
* Initial flow for home settings
* Add logic flow for adding erc20 tokens
* Fix initial UI
* Finalize UI for Tokens
* Integrate UI with Ethereum flow
* Add "Enable/Disable" feature for ERC20 tokens
* Add initial Erc20 tokens
* Add Sorting and Pin Native Token features
* Fix price sorting
* Sort tokens list as well when Sort criteria changes
* - Improve sorting balances flow
- Add initial add token from search bar flow
* Fix Accounts Popup UI
* Fix Pin native token
* Fix Enabling/Disabling tokens
Fix sorting by fiat once app is opened
Improve token availability mechanism
* Fix deleting token
Fix renaming tokens
* Fix issue with search
* Add more tokens
* - Fix scroll issue
- Add ERC20 tokens placeholder image in picker
* - Separate and organize default erc20 tokens
- Fix scrolling
- Add token placeholder images in picker
- Sort disabled tokens alphabetically
* Change BNB token initial availability
* Fix Conflicts with main
* Fix Conflicts with main
* Add Verse ERC20 token to the initial tokens list
* Add rename wallet to Ethereum
* Integrate EtherScan API for fetching address transactions
Generate Ethereum specific secrets in Ethereum package
* Adjust transactions fiat price for ERC20 tokens
* Free Up GitHub Actions Ubuntu Runner Disk Space
* Free Up GitHub Actions Ubuntu Runner Disk space (trial 2)
* Fix Transaction Fee display
* Save transaction history
* Enhance loading time for erc20 tokens transactions
* Minor Fixes and Enhancements
* Fix sending erc20
fix block explorer issue
* Fix int overflow
* Fix transaction amount conversions
* Minor: `slow` -> `Slow`
* Update build guide
* Fix fetching fiat rate taking a lot of time by only fetching enabled tokens only and making the API calls in parallel not sequential
* Update transactions on a periodic basis
* For fee, use ETH spot price, not ERC-20 spot price
* Add Etherscan History privacy option to enable/disable Etherscan API
* Show estimated fee amounts in the send screen
* fix send fiat fields parsing issue
* Fix transactions estimated fee less than actual fee
* handle balance sorting when balance is disabled
Handle empty transactions list
* Fix Delete Ethereum wallet
Fix balance < 0.01
* Fix Decimal place for Ethereum amount
Fix sending amount issue
* Change words count
* Remove balance hint and Full balance row from Ethereum wallets
* support changing the asset type in send templates
* Fix Templates for ERC tokens issues
* Fix conflicts in send templates
* Disable batch sending in Ethereum
* Fix Fee calculation with different priorities
* Fix Conflicts with main
* Add offline error to ignored exceptions
---------
Co-authored-by: Justin Ehrenhofer <justin.ehrenhofer@gmail.com>
* chore: Setup
* feat: Verbose controls for TOTP 2FA WIP [skip-ci]
* feat: Implement verbose controls for sends to contact, non contacts and internal wallets
* feat: Implement verbose 2FA control for exchanges to internal wallets [skip-ci]
* Implement verbose controls
* chore: PR cleanup
* fix: Implement fixes and recommendations on verbose controls
* feat: Localization for verbose controls settings
* fix: disable pin when 2fa is not activated
* fix: Naming error
* chore: Reformat code with linelength of 100
* fix: Wallet type page and type bug when creating wallet
* fix: add new values to be stored in local storage to both reload function and import/export functions in back_service.dart
* fix: White spaces with localization files
* fix: Switch observers in modify_2fa page to individual observer
* chore: Switch custom tab widget to reusable SettingsChoicesCell widget
* chore: Remove unneeded argument in create wallet entrypoint
* fix: Switch type for selectedCakePreference when importing preferences from backup file
* fix: Await all values being saved to local storage
---------
Co-authored-by: David Adegoke <blazebrain@Davids-MacBook-Pro.local>
* feat: In the privacy settings screen, add 2 options to Enable/Disable Buy and Sell actions
* fix: add strings
* fix: add the rest of the strings
* fix: disable instead of hide buy & sell buttons
* fix: use disableSell
* fix: main actions able to be onTapped even when disabled