Commit Graph
2165 Commits
Author SHA1 Message Date
82e3ebf4fa implement-payjoin (#1949)
* Initial Payjoin

* Initial Payjoin

* More payjoin stuff

* Minor fixes

* Minor fixes

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Fix minor bug causes by data inconsistency in the btc utxos

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Initial Payjoin

* Initial Payjoin

* More payjoin stuff

* Minor fixes

* Minor fixes

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Fix minor bug causes by data inconsistency in the btc utxos

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Minor cleanup

* Fix Rebase issues

* Move PJ Receiver to isolate

* Add Payjoin Setting

* Payjoin Sender are now isolated

* Added Payjoin sessions to tx overview. Fix Fee issue with payjoin

* Clean up code

* Fix taproot for payjoin

* Fix CI Errors

* Add Payjoin UI elements and details page

* Add Payjoin UI elements and details page

* Fix Translations

* feat: Detect Payjoin URIs in pasted text and show to the User sending Payjoin

* feat: rename pjUri to payjoinURI for more code clarity

* Update res/values/strings_pl.arb

Co-authored-by: cyan <cyjan@mrcyjanek.net>

* Update cw_bitcoin/lib/payjoin/manager.dart

Co-authored-by: cyan <cyjan@mrcyjanek.net>

* Update cw_bitcoin/lib/payjoin/manager.dart

Co-authored-by: cyan <cyjan@mrcyjanek.net>

* feat: Disable Payjoin per default

* feat: Disable Payjoin fully if disabled or no Inputs available

* feat: Resume Payjoin if app comes back to foreground

* chore: Revert overly aggressive code formats

* feat: show correct Payjoin amount for receivers

* feat: Improved payjoin status

* feat: Show payjoin errors on payjoin details screen

* deps: update flutter to 3.27.4

* feat: Revert localisations

* bug: Remove duplicate transaction id on payjoin details

* style: remove double await in payjoin sender

* refactor(cw_bitcoin): Refactor method signatures and convert constructor to factory

* refactor(cw_bitcoin): Refactor wallet service and PSBT signer for cleaner code

Removed unnecessary `CakeHive` dependency and refactored `BitcoinWallet` initialization to use `payjoinSessionSource`. Improved code readability in `PsbtSigner` by reformatting lines and simplifying constructor methods for `UtxoWithPrivateKey`.

* fix: Resume Payjoin Sessions and load PJUri after sleep

* feat: Add "Copy Payjoin URL button" to receive screen

* fix: Add "Payjoin enabled"-Box below QR Code on the receive screen

* fix: Set payjoin_enabled color to black independent of the theme

* refactor: Payjoin session management and cleanup unused code.

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: cyan <cyjan@mrcyjanek.net>
2025-05-12 20:33:14 +03:00
eveneastandGitHub b4e16a05b1 chore: fix some typos in comment (#2258)
Signed-off-by: eveneast <qcqs@foxmail.com>
2025-05-11 18:38:00 +03:00
OmarHatem b1fc9ba2e5 add words count next to seed type 2025-05-11 01:04:47 +03:00
OmarHatem 51a4954fcb Merge remote-tracking branch 'origin/main' 2025-05-09 15:01:27 +03:00
OmarHatem b28ea4199c Remove SwapTrade 2025-05-09 15:01:09 +03:00
SerhiiandGitHub 5b43cb5373 fix: hide balance for monero accounts (#2256) 2025-05-08 23:47:34 +03:00
SerhiiandGitHub a9e05073a5 fix: include destination parameter in payment method fetch request (#2254) 2025-05-07 17:48:13 +03:00
Konstantin UllrichandGitHub c6f9d12a8e fix: selection of the wordlist for seed validation on the restore from seed page (#2255) 2025-05-07 17:46:17 +03:00
SerhiiandGitHub cab4792388 fix: possible context null check issue in exchange trade (#2253) 2025-05-07 17:22:03 +03:00
OmarHatem cd0844dcc1 Merge remote-tracking branch 'origin/main' 2025-05-05 11:50:13 +03:00
OmarHatem eccc94a019 temp. ignore secure storage iOS issue 2025-05-05 11:50:04 +03:00
cyanandGitHub a2294c4a06 fix(cw_monero): prevent monero wallet from breaking during rename (#2214)
* fix(cw_monero): prevent monero wallet from breaking during rename

* update to cleaned up monero.dart

* fix: transaction screen not refreshing in monero

* fix: wallets not opening until app restart after rename.

* fix(cw_decred): wallet renaming throwing

* fix: transaction not being shown after sending until 1st confirmation

* fix(cw_monero): loop safeguard

* fix: don't await wallet.fetchTransactions
2025-05-02 15:30:39 +03:00
David AdegokeandGitHub dd8413bae2 CW 818: Improve Passphrase Discoverability When Restoring (#2224)
* feat(passphrase for restore): improve passphrase discoverability for restore flow.

Makes the option for adding a passphrase more visible for the user to see while restoring a wallet with seeds.

This change:
- Adds a checkbox on the restore from seeds page that asks if the wallet has a passphrase
- Switches the main CTA for the page to "Add Passphrase" when the checkbox is checked
- Pops up a bottomsheet with input fields for the passphrase when the "Add Passphrase" button is pressed
- Completes the flow and restores the wallet with the passphrase when the "Restore" button on the bottomsheet is pressed
- Hides the passphrase input fields in AdvancedSettings page when its a restore flow.

* feat(passphrase for restore): improve passphrase discoverability for restore flow. (Cont.)

This change:
- Obscures the passpgrase input fields by default
- Changes the color for the main CTA button

* feat(passphrase for restore): improve passphrase discoverability for restore flow. (Cont.)

This change:
- Adjusts the colors for the buttons on both the seed page and the bottomsheet

* feat(passphrase for restore): improve passphrase discoverability for restore flow. (Cont.)

This change:
- Combines the control for the visibility icons of the passphrase input fields - one tap to rule them all :)
2025-05-02 02:56:06 +03:00
SerhiiandGitHub cb257e1391 fix: allow address only edits (#2233) 2025-05-01 18:23:56 +03:00
OmarHatem 0e4c9bb138 Fix not accepting "," in some currencies 2025-05-01 16:21:47 +03:00
OmarHatem b25cb527cb Merge remote-tracking branch 'origin/main' 2025-04-30 10:27:28 +03:00
OmarHatem 0188535eb9 Enable error reports without cooldown in testing builds 2025-04-30 10:27:21 +03:00
cyanandGitHub da8a82a10f feat(dev): add secrets dev screen (used to recover corrupted wallet) (#2234)
* feat(dev): add secrets dev screen (used to recover corrupted wallet)

* fix(dev): decode only password fields
2025-04-30 09:29:08 +03:00
OmarHatem e527083871 Gracefully handle toast messages error on desktop platforms 2025-04-28 15:12:42 +03:00
OmarHatem d86c501fc5 patch: running android related code on other platforms 2025-04-28 07:21:12 +03:00
David AdegokeandGitHub b5ba9385e8 Handle Network Connection Errors (#2213)
* fix(moralis-nft-errors): guard against concurrent NFT fetches and adjusts the message being presented to the user.

Previously multiple calls to get NFTs for the currently opened wallet could overlap and queue the error bottom sheet multiple times.

This change:
- Registers the NFTViewModel as a lazySingleton so its isLoading flag persists.
- Adds an early return in the call to fetch the wallet NFTs when isLoading is already true.
- Cleans up the error message being displayed to the user when there is an error.

* feat(moralis-nft-error): localize error message in NFTViewModel

* feat(nft/wc-bottom-sheet): Revamped the flow, service, theme, and UI for smoother UX

Revamps bottom‑sheet handling end‑to‑end to deliver a much more smoother experience.

This change:
- Refactors the BottomSheetService queueing logic to prevent races and ensure strict sequencing
- Update theme extensions and styling for the bottom‑sheet components
- Adds the option to either auto dismiss or allow user manually dismiss the bottomsheet

* fix: Context clash when entering the wallets on airplane mode. The flushbar clashes with the bottomSheet and results in it blocking entry to the selected wallet.

This change:
- Moves the logic for fetching nft to the listing  page, no need fetching if the user does not route to the page,
- Routes to balance page when entering from wallet list page
- Adds a fade transition when entering the dashboard
- Reverts nftViewModel registeration to be a factory

* fix: Revert animation for now, prior to when the UX overhaul for the app is done

* fix: Remove duplicate registration
2025-04-25 01:12:56 +03:00
02e74b5997 CW-1000 Background sync improvements (#2142)
* feat: background sync improvements

- dev options on ci build cherrypick
- add permissions for background sync to AndroidManifestBase
- enable desugaring + update java compatibility to 17
- update walletconnect_flutter_v2
- update ens_dart
- update nostr_tools
- add notification for new transactions found in background
- expose more settings from flutter_daemon in UI
- remove battery optimization setting when it's already disabled
- fix notification permission handling
- fix background sync last trigger saving
- prevent notifications from being duplicated

* potential fix for multiple notifications firing for the same tx

* improve logging in background sync

* ui improvements to ignore battery optimization popup

* feat: logs for bg sync
disable decred bgsync

* fix: call store() directly to be sure that it is writing the data

* chore: rename logs to background sync logs

* Update lib/view_model/dashboard/dashboard_view_model.dart

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

* chore: remove unused key

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-04-24 19:06:43 +02:00
e6c9cf54fb Explore-Reown-For-WalletConnect (#2156)
* 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>
2025-04-24 18:39:58 +02:00
SerhiiandGitHub 526796e2d7 fix: use correct navigator for dialog (#2223) 2025-04-24 01:08:14 +02:00
Omar HatemandGitHub 698f0199d0 Add the code to enable removing Haven wallets (#2222) 2025-04-23 12:19:59 +02:00
OmarHatem b4fcec3a01 Merge remote-tracking branch 'origin/main' 2025-04-22 23:56:54 +02:00
OmarHatem 6b95b7c6ac Add fallback for tx status [skip ci] 2025-04-22 23:56:29 +02:00
cyanandGitHub 3e25be6dcf fix: allow bakcups to be created even if one of the wallets is corrupted (#2221) 2025-04-22 21:41:31 +02:00
David AdegokeandGitHub e4a89f4d1e Merge pull request #2212 from cake-tech/CW-1015-Desktop-Issues
CW-1015: Desktop Issues
2025-04-22 17:16:06 +01:00
Omar HatemandGitHub e09d9aadfa - Improve code for backup cache (#2216)
* - Improve code for backup cache
- Backup all Cached values without manually adding each one

* Exclude some cache keys from backup [skip ci]

* Exclude some cache keys from backup [skip ci]
2025-04-19 01:13:37 +02:00
53efdced68 fix: more verbose errors in backups (#2196)
* fix: more verbose errors in backups

* show user friendly error, but prompt to send the full logs [skip ci]

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-04-19 01:13:07 +02:00
SerhiiandGitHub ffe1c115fa Cw 1038 filter transaction popup not scrollable (#2207)
* ui:make overflowing filter sections scrollable

* Update pull_request_template.md
2025-04-18 14:53:22 +02:00
OmarHatem 66e1745ad9 more trace in minor error [skip ci] 2025-04-18 04:47:53 +02:00
OmarHatem 0899b39ad9 Merge remote-tracking branch 'origin/main' 2025-04-17 20:36:41 +02:00
OmarHatem f81957ed24 minor ui fix [skip ci] 2025-04-17 20:36:33 +02:00
Blazebrain fe435d4e3b fix(buy/sell-flow): add buy/sell toggle to DesktopExchangeCardsSection
The desktop exchange screen was only showing the buy flow with no way
to switch to sell. This change adds the missing toggle to the DesktopExchangeCardsSection and links it up in the buy/sell page
2025-04-17 08:09:53 +01:00
Blazebrain d9c01a5d07 fix(desktop-pin-code-issue): persist FocusNode so KeyboardListener works on macOS
Previously, every rebuild created a new FocusNode, so KeyboardListener never
held focus and missed key events on macOS.

This change:
- Moves the FocusNode into state and initializes it in initState
- Requests focus once after the first frame
- Disposes of the FocusNode in dispose
- Removes the inline FocusNode creation from build
2025-04-17 07:51:03 +01:00
SerhiiandGitHub b2d4698cdf fix: bottom sheet stuck on swap (#2211) 2025-04-17 05:14:12 +02:00
Omar HatemandGitHub 77980496a8 Remove words length from pre-seed warning (#2208)
* Remove words length from pre-seed warning

* Adjust backup to default node selection if null
Gracefully handle Decred failure
Minor fixes
2025-04-16 03:37:34 +02:00
Omar HatemandGitHub ca564bc2e6 V4.26.0 rc (#2198)
* v4.26.0 Release Candidate

* Fix Wownero Creation issue

* Add KES fiat currency

* Adjust backup to default node selection if null
Gracefully handle Decred failure
Minor fixes
2025-04-15 02:50:07 +02:00
David AdegokeandGitHub f574fa5e9b CW-1035: Solana New Fixes (#2205)
* fix: Error while restoring Solana Wallet with PrivateKey

* fix: Enhance Solana Error Messages, especially for ATA Creation Errors

* - Optimize Solana Transaction History, now more smoother and faster
- fix bug with transactions history not being displayed in real time until next reload
2025-04-15 02:37:46 +02:00
cyanandGitHub 87207c61ba fix: wallet grouping eating wallets (#2203) 2025-04-14 18:47:31 +02:00
SerhiiandGitHub 990feb48ec fix-talkback-slide-button-accessibility (#2200)
* fix:talkback send slide button accessibility

* fix accessible button color
2025-04-14 14:30:41 +02:00
Omar HatemandGitHub ce12f517f4 v4.26.0 Release Candidate (#2191)
* v4.26.0 Release Candidate

* Fix Wownero Creation issue

* Add KES fiat currency
2025-04-12 03:23:41 +02:00
a7376c3225 Address-formatting-enhancements-MWEB (#2189)
* apply formatting to address book and MWEB

* fix wallet type exception

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

* Update lib/src/screens/contact/contact_list_page.dart [skip ci]

* Update lib/src/screens/contact/contact_list_page.dart [skip ci]

* Update lib/utils/address_formatter.dart [skip ci]

* Update lib/utils/address_formatter.dart [skip ci]

* Update lib/utils/address_formatter.dart

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
2025-04-11 19:51:30 +02:00
OmarHatem 2f28ea3fb7 do nothing if the user wants to switch to haven [skip ci] 2025-04-11 19:22:27 +02:00
Konstantin UllrichandGitHub 37ede52ea6 fix: fix amount mapping for OCP (#2190) 2025-04-11 16:23:32 +02:00
OmarHatem 277dde4614 skip scam check on whitelisted tokens 2025-04-11 14:51:19 +02:00
OmarHatem 9b1ca4ea2e Merge remote-tracking branch 'origin/main' 2025-04-11 04:41:23 +02:00
OmarHatem 079480e3c9 minor fix [skip ci] 2025-04-11 04:41:13 +02:00