Commit Graph
3480 Commits
Author SHA1 Message Date
OmarHatem dd772d84f9 tolerate nullable payment methods 2025-11-02 05:54:27 +01:00
44a4a01b91 languages: add guarani (#2603)
* spanish: some necessary, minor rewording for new background sync strings

* en: fix unmetered network typo

* languages: add guarani

Adds strings_gn.arb file.

* fix: remove `,` from beginning and end of file

* tl_constant: add `gn` value

* flags: add guarani (PY) flag

Adds _gn.png_ file.

* languages: add guarani

* localeCountryCode: fix guarani value to 3 letters (grn); making it cohesive with all others

* res/values: replace strings_gn.arb file for appropriate one

* guarani: remove unnecessary `,` at the beginning and end of file

* guarani: fix a lot of syntax errors...

* guarani: remove all remaining trails of Spanish translation; fix all wrongly translated `${}` values back to English

* fix: gn translation

* ci: add ci check for translations

* Update .github/workflows/are_translations_sane.yml

* res/values: adds fixed `strings_gn.arb` file

* res/values: undoes wrong GN=>ES translations on file

* res/values: fix missing `}` for `strings_gn.arb`

* res/values: adds revised `strings_gn.arb` file

* res/values: adds revised `strings_gn.arb` file

* res/values: adds revised `strings_gn.arb` file

---------

Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-11-01 02:31:54 +01:00
cyanandGitHub 76876181e5 feat: initial hive -> SQLite (#2502)
* 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
2025-10-31 22:37:15 +01:00
OmarHatem 718525926e fixate grpc version 2025-10-31 17:28:12 +01:00
OmarHatem f5119d262a fix: better handle exchange url launching 2025-10-31 15:00:33 +01:00
OmarHatem 3f9840233a chore:
- disable SideShift
- minor fixes
2025-10-31 01:55:09 +01:00
cyanandGitHub 00b99a9fa0 fix: report isClosed from ProxySocket and use it to reconnect (#2617) 2025-10-30 02:16:18 +01:00
Konstantin UllrichandGitHub 55bae6c581 chore: update trezor_connect dependency to latest commit hash across pubspec files (#2618) 2025-10-30 02:08:40 +01:00
OmarHatem f47509ebb9 Enable SSL for some nodes [skip ci] 2025-10-28 20:53:13 +01:00
0ac6c60824 cyjan-llm-es-translation (#2607)
* cyjan-llm-es-translation

* Check Spanish translation

* More Spanish translation improvements

---------

Co-authored-by: Jaim3 <github@jaim3.com>
2025-10-28 20:37:45 +01:00
OmarHatem eb6c8c1d20 remove print statements [skip ci] 2025-10-28 20:34:58 +01:00
Konstantin UllrichandGitHub 47d93bd418 Add support for Ledger Nano Gen 5 (#2609)
* chore: update `ledger_flutter_plus` dependency to new repository URL and commit hash in `pubspec_base.yaml`

* feat: add support for Ledger Nano Gen 5 hardware wallet and include new SVG asset

* chore: update `ledger_flutter_plus` dependency reference and remove redundant method call in `LedgerViewModel`
2025-10-28 20:15:09 +01:00
OmarHatem d7e9f09f60 Remove same currency swap check 2025-10-28 01:46:17 +01:00
OmarHatem 7b9cd9ec2b Cleanup and Bug fixes 2025-10-27 16:34:49 +01:00
Omar HatemandGitHub 97c976d26c v5.5.2 Release candidate (#2611)
Just fixing the EVM, Sol and Tron trying to double spend and enhancing the error message to the user
2025-10-26 15:01:50 +01:00
226addcc3d Enhance EVM Fees Error Handling (#2610)
* fix: Add more patterns to the EVM fees error handler

* refactor: Enhance EVM transaction error handling with multiple parsing patterns

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-25 13:38:32 +02:00
c457a7fea6 Improve Automatic Node Switching (#2596)
* feat: Enhance node switching logic with connectivity checks and attempt limits

- Added connectivity checks before node health verification to ensure network availability.
- Introduced maximum node switching attempts and cooldown periods to prevent excessive retries.

* refactor: Improve node switch PR comments
- Reduce cooldown time to 15 seconds
- Combine increment code into one within the finally block

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-25 13:34:44 +02:00
b0b053a19d fix: Already Known Error (#2606)
* fix: Already made error and update transactions two seconds after successful send for evm, tron and sol

* feat: Add updateTransactionsHistory method on WalletBase to handle transaction update immediately after sending

* Update lib/view_model/send/send_view_model.dart [skip ci]

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-25 13:34:29 +02:00
cyanandGitHub 6388ae8af8 ci: switch to linode (#2605) 2025-10-24 23:20:02 +02:00
cyanandGitHub fd9b4bbdee feat: LLM assisted translations (#2597)
translations: Fix polish translation
2025-10-24 11:56:51 +02:00
Omar HatemandGitHub b46aea00b3 v5.5.1 Release Candidate (#2598)
* v5.5.1 Release Candidate
changes:
- Enable Trezor for iOS
- Add Swaps.xyz DEX

* update versions [skip ci]
2025-10-21 01:32:45 +02:00
ee0996f535 CW-1175-Implement-swaps.xyz-swap-provider (#2526)
* Integrate SwapsXYZ

* Remove print

* enhance SwapsXyz EVM token swap handling

* Disable fixed rate support in SwapsXyz provider

* enable fixed rate swap

* fix timestamp parsing

* remove sender and recipient address from fetchRate

* Improve SwapsXYZ trade approval logic

* fix trade ID overflow

* add Base chain support for  swaps xyz

* Update lib/view_model/exchange/exchange_trade_view_model.dart

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

* add missing support for Base

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-20 23:22:01 +02:00
tuxsudoandGitHub 697ec0ab82 Update restore hardware wallet copy (#2588) 2025-10-18 03:08:38 +02:00
cyanandGitHub 2cf1202f36 fix: downgrade and fork reown (#2566)
Due to reown changing their license in version
1.2.0 we switched to use last open source release
of reown with all fixes for flutter 3.32.0 and
16kb page size requirements.

chore: drop dependency overrides for reown
ci: switch prebuilds to use github releases instead of CDN
fix: reown socket errors in onDone and onError
fix: remove flutter_secure_storage on linux (closes #2577, #2561)
2025-10-17 20:05:28 +02:00
cyanandGitHub 3756d46ad4 chore: don't default to installing system files in scripts (#2592) 2025-10-17 19:01:31 +02:00
cyanandGitHub 718db2f214 ci: don't execute unnecessary steps (#2581) 2025-10-17 16:23:50 +02:00
JoeGruffinsandGitHub 32dd69b24b dcr: Point widget to correct image. (#2586) 2025-10-16 22:24:12 +02:00
Omar HatemandGitHub b1ee2acdc0 v5.5.0 Release candidate (#2574)
* v5.5.0 Release candidate

* RC contents:
- Trezor
- Bitbox
- Base
- Hardware/Air-gapped wallets flow enhancements
- New Theme
- UI enhancements
- Bug fixes

fixes:
- Disable LTC for bitbox
- Fix missing coins icons

* RC contents:
- Trezor
- Bitbox
- Base
- Hardware/Air-gapped wallets flow enhancements
- New Theme
- UI enhancements
- Bug fixes

fixes:
- Disable LTC for bitbox
- Add USDE icon
- Fix missing images

* RC contents:
- Trezor
- Bitbox
- Base
- Hardware/Air-gapped wallets flow enhancements
- New Theme
- UI enhancements
- Bug fixes

fixes:
- Disable LTC for bitbox
- Add USDE icon
- Fix missing images
- Refactor code and remove `normalizedIconPath`

* RC contents:
- Trezor
- Bitbox
- Base
- Hardware/Air-gapped wallets flow enhancements
- New Theme
- UI enhancements
- Bug fixes

fixes:
- Disable LTC for bitbox
- Add USDE icon
- Fix missing images
- Refactor code and remove `normalizedIconPath`

* RC contents:
- Trezor
- Bitbox
- Base
- Hardware/Air-gapped wallets flow enhancements
- New Theme
- UI enhancements
- Bug fixes

fixes:
- Disable LTC for bitbox
- Add USDE icon
- Fix missing images
- Refactor code and remove `normalizedIconPath`

* - Add xstocks to existing wallets
- Add xstocks initial icons

* - Add All xStocks icons
- Fix All tokens issues and persistent
2025-10-15 05:26:56 +03:00
tuxsudoandGitHub 03c3a3624c Fix menu action icons (#2582)
* Fix menu action icons

* Fix a couple picker icons
2025-10-14 14:52:53 +03:00
226d8d9197 Minor fixes (#2575)
* Actually fix settings_theme_choice.dart container this time

* Switch crypto icons to webp

* Fix crypto image extensions

* Fix support images and add Base icon

* Fix image links

* Fix more image links

* Update lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart [skip ci]

* Update cw_core/lib/crypto_currency.dart [skip ci]

* Update cw_core/lib/crypto_currency.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-14 03:04:55 +03:00
Konstantin UllrichandGitHub 8ebfafba38 feat: update support page design (#2579) 2025-10-13 18:09:19 +03:00
2a74317aff Add Base Wallet (#2558)
* chore: Create Base package template

* chore: Update configuration scripts and dependencies to include 'base' coin support

* chore: Update pubspec.yaml, adjust SDK constraints, and add new dependencies

* feat: Add support for base wallet type and cryptocurrency in related configurations

* feat: Implement BaseWallet and DefaultBaseTokens classes for managing base cryptocurrency transactions

* feat: Add BaseTransactionHistory and BaseTransactionInfo classes for handling base cryptocurrency transaction data

* feat: Implement BaseClient, BaseWalletService, and BaseMnemonicIsIncorrectException

* feat: Setup base proxy for main package and adjust token class name

* feat: Setup initial base node configuration

* feat: Integrate support for base wallet type across various functions and services

* feat: Add base support to exchange and outputs

* feat: Add base wallet type integration to wallet creation and node management

* feat: Add base support to transaction details and transaction list item

* feat: Implement BaseURI class and add base support across wallet creation and keys view models

* feat: Add support for BaseScan preference in settings store

* feat: Integrate Base support into various workflows and documentation

* feat: Addingbase config to windows and secret key support

* feat: Add base support to settings and address handling

* chore: Move walletTypeToCurrency to another file and adjust across codebase

* feat: Add 'basescan_history' string localization

* feat: Remove Cryptocurrency.base, it doesn't have a base currency

* feat: Set eth as native currency

* feat: Enhance Base support across various sending, exchange, transaction details, fees, dashboard and balance

* feat: Integrate Base wallet support in advanced privacy settings and home settings view models

* feat: Add Base wallet support with icon and integration across providers, default settings migration, preferences, wallet connect, settings and token utilities

* feat: Update currency handling to use baseEth for Base wallet integration across various components

* fix: Update default token symbol to ETH in Base wallet transaction model

* refactor: Change default currency references from BASE to ETH across client, transaction info, and wallet components

* feat: Introduce normalizedIconPath for CryptoCurrency to standardize icon retrieval across wallet components

* fix: Include baseEth as a native token in EVMChainClient for currency handling

* chore: Update base_icon.png

* feat: Add more nodes to base_node_list.yml

* refactor: Update wallet icon retrieval to use normalizedIconPath

* chore: Remove unused cases and cleanup impl.

* feat: Add base proxy generation to configure

* refactor: Update base proxy and generation code in configure.dart

* feat: Add missing wallet and mono images

* fix: Wrong image path for pr and add missing base qr image

* feat: Enhance EVMTransactionErrorFeesHandler to parse new insufficient funds error format and calculate transaction fees in ETH and USD

* feat: Add gas price safety buffer for Base chain transactions to improve fee estimation accuracy, also fixes send all not calculating correctly

* Update model_generator.sh [skip ci]

* Update assets/base_node_list.yml [skip ci]

* Update cw_base/lib/default_base_erc20_tokens.dart [skip ci]

* Review fixes

* fixes

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
2025-10-11 04:24:32 +03:00
025fc9154c Pay Anything Flow Enhancements (#2564)
* fix: update Bitcoin and Litecoin Bech32 address patterns for improved detection for pay anything flow

* feat: add Litecoin MWEB address detection patterns for pay anything flow

* feat: Add support for ERC-681 payment scheme to QR and link to exchange send from external QR

* feat: Introduce TokenUtilities to centralize token management across viewmodels

- Added TokenUtilities class to centralize token-related operations for EVM, Solana, and Tron tokens.
- Refactored existing methods in ExchangeTradeViewModel and SendViewModel to utilize TokenUtilities.
- Updated PaymentRequest to include contractAddress.
- Enhanced payment QR scanning to fetch token details for QRs with contract addresses - ERC-681 QR scheme

* fix: Prefill amount with other data when app is brought up via payment deeplink on QR scan

* fix: Reduce trade not created errors WIP

* feat: Add exchange provider logging functionality

* feat: Enhance ERC681URI with amount normalization, prevents parsing issues with various input formats for amounts

* - Use regex from address validator for btc/ltc manual checks
- Add check for solana addresses
- Handle failures in normalizeToInteger method
- fix issue with address only being added when there's an amount

* feat: Trigger pay anything flow when address is pasted via ctrl v or paste input

* fix: remove duplicate registration

* fix: disable text selection in SendCard address field

* feat: Prevent swap option from showing for Mweb and Silent Payment addresses in Pay Anything flow

* refactor: remove notes widget and controllers from swap confirmation bottomsheet

* fix: Issue with tap send all button not responsive, and updateing fiat amount, after wallet syncing is complete if it was previously tapped while wallet was syncing

* fix: Resolve excessive decimal places error with input sanitization and formatting for amount entry

* fix: Add check for already usable amount format to prevent errors with Nano QR scanning

* fix: Improve fiat input handling by preventing unnecessary updates during user input

* fix: Handle potential null case for setReceiveAmountFromFiat

* Update lib/src/widgets/bottom_sheet/payment_confirmation_bottom_sheet.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-11 04:20:09 +03:00
SerhiiandGitHub a56ae8e4ab fix dogecoin transaction size calculation (#2570) 2025-10-11 02:31:15 +03:00
Konstantin UllrichandGitHub 8b76391a2e LCW-1128-Add-support-for-Trezor (#2565)
* feat: add support for Trezor hardware wallet integration Restore Wallets

* feat: add Trezor hardware wallet support, implement RLP decoding utility, and update transaction signing logic

* feat: add bitcoin trezor signing

* chore: update Trezor Connect dependency to specific commit hash in pubspec_base.yaml

* feat: add trezor support for litecoin

* feat: add colorFilter for device manufacturer icons to align with theme styles

* refactor: optimize Trezor callback handling

* feat: add BitBox and Trezor support for Bitcoin and Litecoin, update transaction signing logic, and improve modularity in hardware wallet services

* refactor: simplify constructor assertions in `BaseBottomSheetWidget` and cleanup Trezor chainId handling logic

* feat: conditionally render device manufacturers based on platform and hide SeedSigner for now
2025-10-11 02:12:27 +03:00
cyanandGitHub 75ca159d2c ci: use prebuilt monero_c on CI builds (#2569) 2025-10-11 02:09:22 +03:00
c746b85a4b UI updates (#2368)
* 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>
2025-10-10 16:00:39 +03:00
OmarHatem 85a9e36f2e Add kryptonim support link [skip ci] 2025-10-09 15:54:42 +03:00
SerhiiandGitHub f7d29c9f38 Cw 1117 prevent sending a transaction twice by mistake (#2567)
* Revert "Prevent double send actions in SendPage (#2542)"

This reverts commit dd4c941d2f.

* disable send buttons when ExecutedSuccessfully

* return value on bottom sheet pop [skip ci]
2025-10-09 15:35:47 +03:00
Konstantin UllrichandGitHub 82dfd6afa2 LCW-1191-ios-node-qr-issue (#2568)
* refactor: improve `NodeCreateOrEditPage` and `NodeForm` structure and state management

* fix: eliminate `widget.nodeViewModel` references in constructor
2025-10-08 16:59:57 +03:00
9a7230fc73 i18n: fix brand capitalization in exchange confirmation (#2560)
* i18n: keep brand 'Cake Wallet' unlocalized in exchange confirmation string

This change updates the English translation string 'exchange_trade_result_confirm' to use the brand name 'Cake Wallet' (capitalized) instead of the lower-case 'cake wallet'. This prevents translation errors where 'cake' is translated as an edible cake in multiple languages. See issue #2548.

* i18n: fix brand capitalization in exchange_trade_result_confirm to "Cake Wallet"

* Update strings_en.arb

* Update res/values/strings_en.arb

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-10-08 16:33:56 +03:00
David AdegokeandGitHub 6cacfd087a fix: Remove check for zero transaction amounts in transactions page (#2559)
* fix: Polygon transactions not coming up in transactions history page

* fix: Filter out polygon spam transactions

* fix: Remove check for zero transaction amounts in transactions page

* fix: remove redundant check for zero transaction amounts in transactions page
2025-10-06 14:04:19 +03:00
OmarHatem 675db37acc fix robinhood dogecoin [skip ci] 2025-10-05 18:14:17 +03:00
OmarHatem 9214fd63ff minor fix [skip ci] 2025-10-05 17:48:56 +03:00
OmarHatem b7156c3f5d minor fix [skip ci] 2025-10-04 04:53:30 +03:00
cyanandGitHub 9843c3c156 feat: handle label restore field from cupcake (#2551) 2025-10-03 20:58:37 +03:00
OmarHatem 2a0bbe059f populate amount only if qr has it [skip ci] 2025-10-03 16:24:19 +03:00
OmarHatem efef498c31 remove swaptrade limit [skip ci] 2025-10-03 13:38:34 +03:00
Konstantin UllrichandGitHub 80bba64c26 feat: integrate getOnramperSignature method and add support for retrieving Onramper signature (#2553)
* feat: integrate `getOnramperSignature` method and add support for retrieving Onramper signature

* fix: make `getOnramperSignature` call asynchronous

* fix: normalize networkWallets parameter to lowercase [skip ci]
2025-10-02 18:45:30 +03:00
cyanandGitHub 2120d01475 fix: use bash for bitbox build script (#2556) 2025-10-02 18:44:25 +03:00