Commit Graph
2683 Commits
Author SHA1 Message Date
Konstantin UllrichandGitHub 77f305af09 feat: add ToMoney extension for double type and refactor currency amount conversions (#3391) 2026-07-12 03:55:54 +03:00
Omar HatemandGitHub 38acc625f0 Add Radar to Apps screen (#3366)
* Add Radar to Apps screen

* ignore flutter error [skip ci]
2026-07-11 04:57:54 +03:00
malik1004xandGitHub f4b17e3354 fix styling on new wallet type selection (#3392) 2026-07-10 19:49:42 +03:00
Konstantin UllrichandGitHub 03d5046b81 Merge pull request #3374 from cake-tech/add-preimage-to-transaction-details
feat: add lightning preimage to transaction details
2026-07-10 15:26:55 +02:00
cyanandGitHub 2111edc5c5 prices: update endpoint (#2977) 2026-07-10 16:19:58 +03:00
David AdegokeandGitHub a7073df422 feat: harden spam detection for solana and evm (#3322)
* feat: harden spam detection for solana and evm

* fix: guard scam/impersonator tokens from auto-enabling on EVM and Solana

* feat: enhance token property validation for scam detection
2026-07-10 14:52:19 +03:00
c9e0ac85d4 feat(exchange): add TRX and USDT-on-Tron to Chainflip (#3341)
Chainflip added Tron support with asset ids trx.tron and usdt.tron.
Enable both for swaps in the Chainflip provider.

Tron needs explicit handling because Chainflip's network slug is
'tron', while Cake uses the 'TRX' tag (and null for native TRX), so
the generic title.tag normalization can't produce the right ids:
- _supported: add trx, usdttrc20
- _normalizeCurrency: map trx -> trx.tron, usdttrc20 -> usdt.tron
- _normalizeNetworkName: TRON -> Tron (status lookup in findTradeById)
- _toCurrency: reverse-map trx.tron/usdt.tron for trade resolution

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 16:55:28 +03:00
910a5cd9ef if input transactions are not all fetched correctly or had a failure,… (#3353)
* if input transactions are not all fetched correctly or had a failure, still parse the transaction correctly instead of skipping it

* handle nullable tx fee

* show warning for BTC txs with missing inputs

---------

Co-authored-by: Serhii <17529954+serhii-bor@users.noreply.github.com>
2026-07-08 23:48:32 +03:00
7928c912e8 Address resolver refactoring (#3291)
* restructure address resolver sources

* refactor address resolver into lookup service

* refactor address resolver to provider pattern

* use addressSource to drive providers & settings

* error handling

* add address source icons

* Update lib/core/address_validator.dart [skip ci]

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

* review fixes

* add validations to extractParsedAddress

* skip address resolver for valid addresses

* minor fix [skip ci]

* fix formattedName x[skip ci]

Co-authored-by: malik1004x <malikowskirobert@gmail.com>

* fix formatted name zano [skip ci]

Co-authored-by: malik1004x <malikowskirobert@gmail.com>

* address PR review comments

* add icons for new address source resolvers

* confirm parsed addresses in contacts

* minor fixes

* LNUrl for BTCLN only and contact name handling

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: malik1004x <malikowskirobert@gmail.com>
2026-07-06 16:48:30 +03:00
Konstantin Ullrich 6cb3149322 feat: add lightning preimage to transaction details 2026-07-06 14:42:03 +02:00
malik1004xandGitHub 787d4540f5 add missing ModalScrollController to ProviderOptionsPage (#3357) 2026-06-30 13:40:46 +03:00
75f3fe735b Introduce Money class and refactor currency handling (#3157)
* feat: add `Money` class for precise currency handling and amount parsing

- Introduced `Money` class for handling money values with fixed-point precision.
- Added parsing and comparison methods to `CryptoCurrency` and `FiatCurrency` interfaces.
- Implemented `smartAmountSanitizer` for format normalization.

Includes extensive unit tests for validation.

* refactor: optimize Money class with new factories and string formatting improvements

* refactor: unify balance handling with `Money` refactor

* refactor: update `ElectrumBalance` and transaction logic to use `Money` for currency precision

* refactor: standardize balance handling with `Money` across `Monero`, `Wownero`, and `Zano` wallets

* refactor: migrate EVM balance and transaction handling to `Money` for consistent currency precision

* refactor: migrate Decred balance and transaction handling to `Money` for consistent currency precision

* refactor: migrate nano balance and transaction handling to `Money` for consistent currency precision

* refactor: migrate Solana balance and transaction logic to `Money` for precise currency handling

* refactor: migrate Tron balance and transaction handling to `Money` for consistent currency precision

* refactor: migrate Zcash balance and transaction handling to `Money` for consistent currency precision

* refactor: adjust lib to handle money

* refactor: remove legacy Decred amount formatting and migrate to `Money`

* refactor: migrate pending transaction amount and fee to `Money`

* refactor: migrate dEuro savings and transaction logic to `Money` for improved precision and consistency

* refactor: migrate Bitcoin and lightning transaction logic to `Money` for consistent currency precision

* refactor: migrate Wownero, EVM, Zano, and Zcash transaction logic to `Money` for consistent and precise currency handling

* refactor: standardize balance handling across wallets, migrate to `Money.zero` and refine `Balance` class for consistency

* refactor: migrate Solana transaction and wallet logic to `Money` for consistent and precise currency handling

* refactor: improve fiat balance and formatting for consistency on dashboard

* fix: fiat input mode switching and standardize crypto amount display logic

* fix: cw_evm generator

* refactor: migrate exchange amount handling to `Money` for improved precision and consistency

* test: remove redundant and commented-out tests, tidy test cases, and apply minor formatting adjustments

* fix using Money wrapper in BridgeViewModel and USDT0Service

* refactor: streamline `AmountConverter` and `LightningWallet`, add `cw_core` tests to GitHub workflow, and remove unused/deprecated logic

* refactor: enhance `changeReceiveAmount` with `isCanonical` support, improve null handling, and refine amount parsing logic

* minor fix

* try/catch the lightning log file error

* feat: add copy-to-clipboard functionality for transaction amounts, fix typo in trailing widget method name (#3219)

* Cw 1234 disallow sp and mweb addresses as refund for swaps (#3187)

* disallow SP and MWEB for swaps

* Simplify address selection in addressForExchange

Refactor addressForExchange method to simplify address selection logic.

* validate refund and receive address types

* localize address validation messages

* minor ui fix [skip ci]

* minor fix [skip ci]

* Revert "localize address validation messages"

* fix translations

---------

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

* refactor: replace manual amount sanitization with `sanitized()` extension across the codebase, add unit tests for `AmountSanitizer`

* fix: correct `sanitized()` test expectations for decimal handling in `amount_sanitizer_test.dart`

* refactor: fee display logic and append currency symbol in `send_confirm_sheet.dart`

* refactor: simplify `ZcashBalance` class by replacing custom fields with inherited properties, update references accordingly

* refactor: replace hardcoded USDT contract address with `DefaultTronTokens` lookup, improve maintainability

* refactor: replace `currency` with `inputAmount.currency` in Solana transaction signing methods to avoid inconsistency

* fix: handle null `fee` in `electrum_transaction_info.dart` to prevent potential runtime errors

* refactor: replace raw fee and amount handling with `Money` object for improved consistency and maintainability

* fix: limit fiat balance display to 2 decimal places in `balance_view_model.dart`

* refactor: replace raw `amount` and `fee` types with `Money` in Solana transaction methods for consistency and precision

* refactor: replace raw `amount` and `fee` handling with `Money` and improve balance calculation consistency across view models

* refactor: replace raw balance strings with `Money` and simplify `UnconfirmedBalanceModal` widget logic

* refactor: replace `print` with `printV` for better logging, add equality and hashCode overrides to `ERC20Currency` for object comparison

* feat: prepare deuro savings migration

* feat: add V1 savings migration support and improve formatting consistency in DEuro view model

* feat: add V1 savings withdrawal support and update associated UI components and logic

* refactor: replace `Image.asset` with `CakeImageWidget`, update balance string handling, and streamline address validation logic

* refactor: use `Money.tryParse` with fallback to `Money.zero` in `NanoBalance.fromRawString` for safer balance parsing

* refactor: replace `ERC20Currency` with `Erc20Token` for consistency and remove unused `evm_erc20_currency.dart` file

* refactor: add computed `hasDepositAmount` for deposit null-checks, optimize balance handling in `zano_wallet`, update Breez SDK to v0.14.0, and implement equality/hashCode for `Currency`

* refactor: rename `amountSats` to `amount` in `PrepareLnurlPayRequest` for consistency

* revert: downgrade Breez SDK to v0.11.0 in `pubspec.yaml` and update relevant references in `pubspec.lock`

* fix: use `cryptoAmount.copyWith` for currency consistency and replace `Image.asset` with `CakeImageWidget` in swap address modal

* fix: ensure currency consistency by using `cryptoAmount.copyWith` in Solana and EVM wallet transactions

* refactor: simplify CSV row generation logic by removing `_splitAmountCurrency` and streamlining amount/fee handling

* fix: LateInitializationError Field 'sdk' has not been initialized

* fix: use `Money.tryParse` for safer parsing of deposit and receive amounts

* chore: remove debug print statement

* refactor: update transaction processing to consistently use `Money` for amounts and fees

* refactor: improve currency and amount handling, simplify logic, and enhance code readability in Send and Swap pages

* refactor: integrate `DecimalInputFormatter` for consistent decimal input across Send and Swap pages, simplify input handling logic

* fix: "fiatMode" per output on sendPage

* refactor: make transaction_details_height applicable more readable

* fix: use correct base unit for deposit

* refactor: use Money in estimateFakeSendAllTxAmount method

* fix decred frozen balance
minor fixes

* fix decred frozen balance
minor fixes

* fix: automatically switch to lightning if lnurl or invoice detected

* fix: getBolt11Amount test cases

* fix: standardise crypto amount formatting and display

* fix: use base unit for Tron transaction fee parsing
* refactor: hardcode fractional digits to 8 in `AmountParsingProxy` display methods
* refactor: ensure consistent 8-decimal precision for fee formatting in `PendingTransaction`
* fix: use `AmountParsingProxy` for available balance display in exchange view model
* fix: improve amount formatting and layout in swap and send confirmation sheets
* chore: remove redundant decimal truncation in balance view model and send confirmation sheet

* fix: allow for editing text field if it is filled with "ALL"

* fix: allow for editing text field if it is filled with "ALL"

* fix: update currency detection logic for lightning mode

* avoid potential infinite loop [skip ci]

* fix: getDisplayCryptoAmount

* fix: update estimated fee calculation

* chore: simplify fee calculation logic [skip-ci]

* fix value display in hidden mode

* fix stale state in send confirm sheet

* fix decimals for mweb

* fix available balance display for sol/trx on swap

* restore proper hint text

* fix swap receive amount calculation for xno

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: Serhii <17529954+serhii-bor@users.noreply.github.com>
Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
2026-06-30 02:45:44 +03:00
Omar dcca96b0d6 minor fix 2026-06-28 14:56:35 +03:00
d09391bf99 Upgrade Flutter version to 3.41.9 (#3213)
* commit generated files and remove codegen metadata

* remove hive_generator dependency

* update dependencies

* update intl

* update ios project files

* update native code

* update android deps

* update image name in ci

* revert impeller

* re-ignore min version error

* fix cw_decred dependency

* update hive in cw_core

* fix docker build cache for decred

* fix conflict

* prevent frozen coins being reset on coin info refresh

* fix for makeSecure

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-06-26 16:03:31 +03:00
malik1004xandGitHub eaa8338a52 prevent trade.from saving as null + fallback when it does (#3346) 2026-06-25 13:05:05 +03:00
malik1004xandGitHub d3a1464775 improve address rotation button ui + fix bug when autogenerate is disabled (#3334)
* improve address rotation button ui + fix bug when autogenerate is disabled

* remove dumbass debug print

* add button show condition
2026-06-25 12:29:42 +03:00
SerhiiandGitHub 7a9a585543 fix-monero-com-backup-restore-bug (#3339)
* reject backups from other apps

* make compatibility check optional
2026-06-25 12:25:57 +03:00
Omar cda9d09ead minor fixes [skip ci] 2026-06-23 17:39:57 +02:00
malik1004xandGitHub 2764b46bfe Fix desktop qr sizing (#3344)
* fix qr sizing on desktop

* fix cardsview sizing
2026-06-22 18:22:33 +02:00
Omar HatemandGitHub 29684affc2 refactor: improve locale parsing and normalization in localization ge… (#3330)
* refactor: improve locale parsing and normalization in localization generation script

* Remove chinese tranditional because it's breaking flutter

* delete retry in case of parallel save [skip ci]

* Improve translation
2026-06-17 23:09:35 +02:00
241503774f dev: add recovery screen when sqlite db doesn't open (#3179)
* dev: add recovery screen when sqlite db doesn't open

* Update cw_core/lib/db/sqlite_debug.dart [skip ci]

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-06-15 01:21:14 +02:00
malik1004xandGitHub 9face62eff disable editing coin control from settings (#3284) 2026-06-15 01:17:47 +02:00
malik1004xandGitHub dbbd06aa56 fix padding on NewWalletTypePage (#3333) 2026-06-13 11:34:49 +02:00
malik1004xandGitHub 3eaf073120 fix lnurl from scan button (#3332) 2026-06-13 11:19:47 +02:00
Omar dc1b369e08 fix: use buy-specific address for buy/sell flow and restrict lightning invoice generation to bitcoin wallets 2026-06-10 19:55:47 +02:00
David AdegokeandGitHub 782253a653 fix: propagate buy/sell crypto address to providers without needing to focus the field (#3324) 2026-06-10 19:54:54 +02:00
David AdegokeandGitHub 99f96b0a78 feat: Add token to recieve address QR and link to pay anything flow on Solana and Tron, also fix token not showing on evm wallets QRs when scanned from dashboard (#3320) 2026-06-10 19:31:34 +02:00
David AdegokeandGitHub 303143052a fix: nft popup error triggering multiple times on error or internet failure (#3321) 2026-06-10 19:20:22 +02:00
redsh4deandGitHub 1f7b57ee95 Update single coin route to use HardwareWalletViewModel (#3317) 2026-06-10 12:57:46 +02:00
David AdegokeandGitHub f462f0a2d7 tentative fix for evm wallet creation issue after backup restore (#3316) 2026-06-09 00:01:44 +02:00
malik1004xandGitHub c7275cb6fe make positioned direct child of stack in scan (#3313) 2026-06-08 13:06:25 +02:00
Omar efa2de1dd3 enable exchange provider
Fix share util on ipad
2026-06-08 10:44:40 +02:00
David AdegokeandGitHub 7c321faf2f Release fixes (#3301)
* fix: Solana GMT token showing the wrong decimal place

* add badge icon to swap confirm sheet, also address book chain icons display correctly

* missing mask icon for mweb
2026-06-06 14:34:56 +02:00
malik1004xandGitHub d18986863f fix manual input button on scan page (#3306) 2026-06-06 13:54:12 +02:00
Omar 1264fdbaa0 remove old ln hack in scan parsing logic 2026-06-05 15:30:46 +02:00
Omar HatemandGitHub 0c72b08f0e v6.2.0 Release Candidate (#3274)
* v6.2.0 Release Candidate

* update zcash

* Update release notes and version
2026-06-05 10:49:30 +02:00
David AdegokeandGitHub 74c7de1c9c Generic fixes (#3292)
* Add masked token image to to currency picker items and adjust estacked badge icon for node share qr

* fix: Missing chain images in bridge flow

* chore: Update image paths

* fix: WC connection not triggering for Solana from scan qr

* fix: Wallet icon and eth currency icon displaying wrongly in various places for Base wallets
2026-06-04 18:17:35 +02:00
malik1004xandGitHub ba80309ff3 fix send external qr size (#3299) 2026-06-04 18:13:02 +02:00
malik1004xandGitHub 8c1c700b93 fix sizing (#3298) 2026-06-04 18:08:11 +02:00
malik1004xandGitHub 73187e6d5e change color for urqr indicator on scan page (#3294) 2026-06-04 17:48:28 +02:00
SerhiiandGitHub ea4bdc709b Validate swap amounts before creating trade (#3296) 2026-06-04 17:45:07 +02:00
malik1004xandGitHub 5099fa3b9c tx-confirmation-options-on-dev [cw-1463] (#3289)
* add note and contact options to tx confirmation screen

* fix closing animation for confirm sheet

* fix note button for lightning

* sizing fix

* add local tx info for evm/sol/trx

* fix for xmr/zec

* merge

* fixes
2026-06-04 11:32:19 +02:00
malik1004xandGitHub 1704bc5172 6.2 home ui fixes (#3290) 2026-06-04 04:35:29 +02:00
Omar 281725fa5b Fix and update monero_c hash 2026-06-03 18:29:09 +02:00
86ea17d5bf improved scan screen [cw-1507] (#3281)
* (wip) new scan screen

* improved scan screen

* fixes for ui

* switch to modal sheet

* add urqr (cupcake) progress indicator

* fixes

* Update lib/new-ui/pages/scan_page.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-06-03 18:13:22 +02:00
David AdegokeandGitHub 52c380a455 Unify svg and png rendering (#3288)
* Improve token image display with mask and background

* Enhance token image bg and remove wierd halo effect that was showing, also add token bg to disclaimer and picker

* Add token bg to more locations and give another shot at halo

* fix: halo around token images

* add token background to non-transparent images only

* another shot at bg based on transparency

* refactor: enhance token image widget shape handling and add filter quality option to cake image widget

* fix: another shot

* refactor: update token image shape handling for svg, no need to clip

* fix: bnb wallet image not displaying on receive token display

* Remove svg path and render all through token image widget
2026-06-03 17:44:19 +02:00
David AdegokeandGitHub 0b4e52c5f9 refactor: token image updates (#3287)
* Improve token image display with mask and background

* Enhance token image bg and remove wierd halo effect that was showing, also add token bg to disclaimer and picker

* Add token bg to more locations and give another shot at halo

* fix: halo around token images

* add token background to non-transparent images only

* another shot at bg based on transparency

* refactor: enhance token image widget shape handling and add filter quality option to cake image widget

* fix: another shot

* refactor: update token image shape handling for svg, no need to clip

* fix: bnb wallet image not displaying on receive token display
2026-06-03 17:01:38 +02:00
8af85351e9 feat: redesign for CurrencyPicker and FiatPicker, introduce recents and currency groupings (#3248)
* Redesign for CurrencyPicker and FiatPicker, introduce recents and currency groupings

* chore: cleanup

* refactor: switch recents to previously completed trades, specify stables to be displayed, fix scrollable and adjust badge

* refactor: switch recents to previously completed trades, specify stables to be displayed, fix scrollable, adjust badge, add fiat and multinetwork currency pickers to buy and sell flows

* fresh set of changes and fixes for new currency picker flow

* add chain label to items on search and smooth pop

* add chain pill and label to xstocks

* properly filter search results

* shorten chain pill name for BSC tokens

* Review fixes

* cleanups

* safe pop

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2026-06-03 16:38:16 +02:00
David AdegokeandGitHub 4365462279 Improve token image display with mask and background (#3231)
* Improve token image display with mask and background

* Enhance token image bg and remove wierd halo effect that was showing, also add token bg to disclaimer and picker

* Add token bg to more locations and give another shot at halo

* fix: halo around token images

* add token background to non-transparent images only

* another shot at bg based on transparency

* refactor: enhance token image widget shape handling and add filter quality option to cake image widget

* fix: another shot
2026-06-03 14:10:49 +02:00
malik1004xandGitHub 371c063bc6 fix naming on wallet type page (#3279)
* fix naming on wallet type page

* add long press copy to tx history amount
2026-06-02 16:55:54 +02:00