Commit graph

3224 commits

Author SHA1 Message Date
David Adegoke
c6cb48096d
refactor: Update CakeImageWidget to allow nullable BoxFit (#2326) 2025-06-17 23:24:18 +03:00
JoeGruffins
65402ba1eb
dcr: Always fetch the current dir path. (#2242)
* dcr: Always fetch the current dir path.

On ios devices the path will change between updates breaking decred.
Never save the path and always check to ensure it is up to date.
Previous wallets were also not creating a directory in the correct
place. Move those when found.

* Update cw_decred/lib/wallet_service.dart

* dcr: Update libwallet dep.

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-06-17 01:37:49 +03:00
cyan
17d99e5451
feat(ui): add app logo to qr code (#2072)
fix(ui): use high instead of low error correction for QR codes
2025-06-17 01:32:11 +03:00
Konstantin Ullrich
85d3e727e2
CW-1092-restoring-from-backup-doesnt-maintain-hardware-wallets (#2319)
* feat: add hardware wallet verification during backup restoration

* style: improve readability of verifyHardwareWallets in backup_service_v3.dart
2025-06-17 01:31:49 +03:00
Serhii
4fb2fc47ad
fix: extra ID for Trocador swap (#2307) 2025-06-16 17:52:15 +03:00
cyan
a96b493b60
CW 1080: fix(cw_monero): call store() directly after commiting tx (#2312)
* fix(cw_monero): call store() directly after commiting tx to make sure that tx key is written to cache
also, store it in TransactionDescription hive box

* Update lib/view_model/send/send_view_model.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-06-16 17:49:43 +03:00
David Adegoke
fe0c9ecc0e
CW-1084: Solana Issues (#2305)
* fix(solana-issues): Fix missing solana transaction history entries

* fix(solana-issues): Fixes issues relating to Solana Transaction History

This change:
- Modifies transaction parsing logic to handle more scenarios and better parse Solana transaction data.
- Adds partial filter for spam transactions

* fix(solana-issues): Enhance transaction parsing for Associated Token Account (ATA) programs

This change:
- Adds logic to differentiate between create account and token transfer transactions for the ATA program.
- Introduces a check to skip transactions that only create accounts without associated token transfers.

* fix(solana-issues): Improve transaction update logic and enhance error handling

This change:
- Updates the transaction update callback to only trigger when new valid transactions are present.
- Enhances error handling for insufficient funds by distinguishing between errors for sender and receiver.
2025-06-14 04:18:46 +03:00
Luis Miguel
e5d0194f11
Improving spanish translation (#2313)
Thanks for contibuting
2025-06-12 00:48:10 +03:00
Konstantin Ullrich
8457a45c2a
update-payjoin (#2281)
* feat: upgrade to flutter_payjoin 0.23.0

* fix: dependency discrepancy freezed_annotation

* feat(cw_bitcoin): use latest payjoin deps

* ci: update rust toolchain

* Update pubspec.yaml

* trial: downgrade flutter payjoin ffi

* some checks

* trial 2

* [skip ci] use correct image for CI

* fix: bump flutter sdk to 3.29.0

* partial revert

---------

Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-06-11 19:44:06 +03:00
David Adegoke
b0edf1fe75
fix(desktop-icon): Desktop Icons Fix (#2303)
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
2025-06-04 20:15:36 +03:00
David Adegoke
1d6e594e04
CW-959: Swap Status on Transaction Screen (#2299)
* feat(swap-status-monitor): add real-time swap status monitoring and UI updates

- Introduce SwapManager for automatic tracking of active-wallet swaps.
- Automatically queues new or updated trades from the Hive box.
- Periodically fetch and persist swap statuses via the corresponding trade provider.
- Implement start(wallet, providers), stop(), and dispose() for lifecycle control.
- Apply user's ExchangeApiMode(disabled, tor-only, enabled) when fetching updates.
- Remove swaps from the watchlist on any final state (completed, expired, failed).
- Dispose SwapManager in AppState.dispose() to cancel polling and the Hive subscription.

* refactor(swap-status): replace SwapManager with TradeMonitor for improved trade monitoring.

This change improves the flow by simplifying the trade monitoring logic.

- Removes SwapManager class and replace with TradeMonitor implementation
- Update di and Appstate to register and dispose TradeMonitor
- Modify DashboardViewModel to use TradeMonitor instead of SwapManager

* fix: Modify trade monitoring logic to ensure trade timers are properly disposed when wallet switching occurs

* fix(swap-status): Fix receive amount for exchanges showing as .00 because of null values

* feat(swap-status): Enhance Trade Monitoring

This change:
- Adds a privacy settings option to disable automatic exchange status updates.
- Prevents trade monitoring when privacy settings option is enabled.
- Disables trade monitoring when the app is in background, we only want to run these checks in foreground.
- Refactors the trade monitoring logic to remove unneccessary checks and use of resources.

* feat(swap-status): Enhance Trade Monitoring

This change:
- Adds a privacy settings option to disable automatic exchange status updates.
- Prevents trade monitoring when privacy settings option is enabled.
- Disables trade monitoring when the app is in background, we only want to run these checks in foreground.
- Refactors the trade monitoring logic to remove unneccessary checks and use of resources.

* fix(swap-staus): Prevent unneccessary calls

* feat(swap-status): Prevent api request calls as long as last update time is less than specified interval
2025-06-04 18:24:56 +03:00
OmarHatem
1134915920 fix cakepay terms and conditions link [skip ci] 2025-06-03 03:22:04 +03:00
OmarHatem
418fdb62d3 v5.0.1 [skip ci] 2025-05-29 18:09:39 +03:00
Omar Hatem
d332377a2b
Revert "FIX (#2283)" (#2298)
This reverts commit 7b8ddf9685.
2025-05-29 16:54:22 +03:00
David Adegoke
b77c22b0df
Update Theme Setup (#2300)
* refactor(theme-setup-update): Move didChangePlatformBrightness lifecycle method to Root widget instead of AppState. We already have an active WidgetsBindingObserver in Root widget.

* fix(theme): Add workaround for flutter iOS didChangePlatformBrightness issue causing unneeded rebuilds.
2025-05-29 16:46:43 +03:00
OmarHatem
b79fb6af1f minor UI fix [skip ci] 2025-05-29 05:59:10 +03:00
OmarHatem
1fa1181c82 minor UI fix [skip ci] 2025-05-29 05:41:31 +03:00
OmarHatem
9a426ee5d4 minor UI fix [skip ci] 2025-05-29 05:04:20 +03:00
Omar Hatem
c2b138c65c
v4.29.0 Release Candidate (#2289)
* v4.29.0 Release Candidate

* update versions [skip ci]

* Latest Release Candidate
- some UI fixes
- Ledger enhancements

* final RC

* change ledger signing text [skip ci]
2025-05-27 19:35:30 +03:00
tuxsudo
46a73de82e
Minor UI Fixes (#2296)
* Fix some colors

* fix(themes): Adjust background and text colors for action buttons on info bottomsheet

---------

Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
2025-05-27 15:01:46 +03:00
Omar Hatem
41fa97a203
Revert "CW-959: Swap Status on Transaction Screen (#2247)" (#2295)
This reverts commit eede8fa6c7.
2025-05-27 04:11:26 +03:00
David Adegoke
2f2b45f844
Adjust Animation Cursor baseline (#2294)
* 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

* fix(themes-update): Fix the cursor to the baseline for the text

---------

Co-authored-by: tuxsudo <tuxsudo@tux.pizza>
2025-05-27 01:14:42 +03:00
David Adegoke
eede8fa6c7
CW-959: Swap Status on Transaction Screen (#2247)
* feat(swap-status-monitor): add real-time swap status monitoring and UI updates

- Introduce SwapManager for automatic tracking of active-wallet swaps.
- Automatically queues new or updated trades from the Hive box.
- Periodically fetch and persist swap statuses via the corresponding trade provider.
- Implement start(wallet, providers), stop(), and dispose() for lifecycle control.
- Apply user's ExchangeApiMode(disabled, tor-only, enabled) when fetching updates.
- Remove swaps from the watchlist on any final state (completed, expired, failed).
- Dispose SwapManager in AppState.dispose() to cancel polling and the Hive subscription.

* refactor(swap-status): replace SwapManager with TradeMonitor for improved trade monitoring.

This change improves the flow by simplifying the trade monitoring logic.

- Removes SwapManager class and replace with TradeMonitor implementation
- Update di and Appstate to register and dispose TradeMonitor
- Modify DashboardViewModel to use TradeMonitor instead of SwapManager

* fix: Modify trade monitoring logic to ensure trade timers are properly disposed when wallet switching occurs

* fix(swap-status): Fix receive amount for exchanges showing as .00 because of null values
2025-05-27 00:52:51 +03:00
tuxsudo
78bb170533
Fix some colors (#2293)
* 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>
2025-05-27 00:35:11 +03:00
Konstantin Ullrich
90aee053cd
CW-1045-Ledger-Bugs-Enhancements (#2278)
* feat: prepare ledger.dart to use callbacks

* feat: set ledger callback using monero_c

* fix(cw_monero): async ledger

* build: Bump monero_c dependencies

* feat: Add "How to connect" to HW Device selection screen

* refactor: use monero_c free to clean pointer

* fix: use new monero_c deps

* fix: merge conflicts regarding new theming

* feat: add status bottomsheet indicating an ongoing signing process

* fix: getLastLedgerCommand monero.dart generation

* reformat send_view_model.dart [skip ci]

---------

Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-05-26 18:38:51 +03:00
cyan
e03dcc7fe9
feat: better backup errors (#2290)
Instead of creating error reports show the error to user
use BackupVersion.unknown
2025-05-26 11:38:36 +03:00
David Adegoke
d342173239
Modify Themes Startup Behaviour (#2288)
* feat(themes): Reflect current system theme at the start of the app if the themeMode is system mode

* feat(themes): Extract platform awareness for router into a function, and use where needed
2025-05-26 04:43:15 +03:00
tuxsudo
df88914628
New themes (#2239)
* 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>
2025-05-25 23:11:45 +03:00
rafael_xmr
7b8ddf9685
FIX (#2283)
* FIX!

* resolve conflicts with main

* undo debug changes

* fix: methods

* fix: methods2

* Fix Tron issue

* fix: 1k limit & reaching top

* fix: missing unspents

* fix: missing commit

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2025-05-25 22:28:08 +03:00
OmarHatem
e52bceda3a Merge remote-tracking branch 'origin/main' 2025-05-25 03:59:27 +03:00
OmarHatem
df20e22fae minor: ignore package unreasonable error 2025-05-25 03:59:18 +03:00
cyan
fd3158293e
fix(cw_monero): properly await transaction commit (#2284) 2025-05-24 22:21:49 +03:00
Konstantin Ullrich
939e5d9279
CW-1076-payjoin-ux-enhancements (#2282)
* feat: Add Payjoin Unavailable bottom sheet

* feat: Add Payjoin Info Card to Dashboard

* feat: Open payjoin docs on learn more
2025-05-24 04:24:06 +03:00
David Adegoke
1aac17676d
feat: Migrate to EtherScan v2 API for supported EVM chains (#2264) 2025-05-23 00:32:18 +03:00
OmarHatem
d356d5bfcb change exchange dock item to buy 2025-05-22 15:01:51 +03:00
OmarHatem
773adfaaca Merge remote-tracking branch 'origin/main' 2025-05-21 05:19:33 +03:00
OmarHatem
b872b43b75 fix hive error 2025-05-21 05:19:23 +03:00
Konstantin Ullrich
43808992ec
misc-seed-page-fixes (#2280)
* feat: Trim pasted seed

* fix: Fix Seed Type selection
2025-05-21 01:24:30 +03:00
OmarHatem
79faeb98af add cake relay server 2025-05-20 21:25:00 +03:00
OmarHatem
dcaeac9b85 disable swap until synced for btc/ltc/xmr 2025-05-20 03:10:49 +03:00
OmarHatem
1e5568fc1b Update button text 2025-05-17 03:30:49 +03:00
cyan
1c7dd02a53
fix(cw_monero): wait a bit before refreshing txlist so it appears (#2275) 2025-05-17 02:03:02 +03:00
Omar Hatem
914561716d
v4.28.0 Release Candidate (#2260)
* v4.28.0 Release Candidate

* Fix Android deeplinking

* minor [skip ci]

* update app versions [skip ci]

* merge main

* - Re-enable SwapTrade
- Hide Keyboard on opening fee selection

* handle old backups import

* - Fix seed type UI
- Temp fix for Deleting Monero wallet

* update build number [skip ci]

* minor nullability handling

* disable payjoin for SP
2025-05-16 13:51:36 +03:00
Konstantin Ullrich
c12daced40
feat: Load default ERC20 Tokens for existing ETH and Polygon Wallets (#2274) 2025-05-15 22:57:02 +03:00
cyan
bc52cf485e
fix(cw_monero): transaction not appearing after send (#2268)
* fix: catch error in newly added fetchTransactions call
fix: null handling in cw_monero

* fix(cw_monero): transaction not appearing after send
2025-05-15 19:48:43 +03:00
Serhii
557e1c9839
Cw 935 get exchange payment method recommendations from on ramper (#2235)
* fix: default to recommended payment method in Onramper

* fix: support displaying unknown payment methods

* feat: fetch recommended Onramper payment type
2025-05-15 19:48:06 +03:00
cyan
66efce4d70
fix(cw_monero): move isolates to top level functions so WalletBase will not get sent over. (#2269) 2025-05-15 15:17:56 +03:00
Konstantin Ullrich
1b2e3f2ee1
fix: Payjoin button not showing (#2272) 2025-05-15 14:56:43 +03:00
cyan
40084ec532
fix: catch error in newly added fetchTransactions call (#2265)
fix: null handling in cw_monero
2025-05-15 02:07:17 +03:00
David Adegoke
ca8dbf3c81
feat: Allow tap to copy on exchange url and add launch icon for launch. (#2262) 2025-05-13 15:01:53 +03:00