* 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
* 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 :)
* 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
* 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>
* 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>
* - 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]
* 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>
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
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
* 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
* feat: Add Open CryptoPay for sending
* bug: Fix sending Open CryptoPay for eth
* feat: add transaction dismissal
* style: remove print statements from OCP
* feat: add support for Monero over OCP
* bug: Hide "Add to Address Book" on OCP transactions
* style: revert code style in send_view_model.dart
* style: revert code style in send_view_model.dart
* feat: set failure state if it fails to create an OCP transaction
* Update lib/view_model/send/send_view_model.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: add exodus style bip39 to monero legacy seed
* feat: restore monero wallet from bip39 and add test
* bug: fix wrong naming in CI
* feat: add monero bip39 UI flow
* fix: monero.dart generation
* fix: skip monero_wallet_service tests till CI is fixed
* ci: copy monero_libwallet2_api_c.so to /usr/lib for testing
ci: reduce timeout for cw_monero tests
* fix: monero wallet creation credentials default to bip39 if mnemonic are set
* fix: do not skip monero wallets services test
* fix: Include non bip39 monero wallets on Wallet Group
* fix: null pointer stemming from missing language selector if seed is selected
* fix: Fixes to Bip39 Creation and restore
- Do not restore from 0 for fresh bip39 wallet
- disallow restoring bip39 wallet without date or height
* fix: Fixes to Bip39 restore
- Refresh height is now getting set correctly
- Add new create monero wallet tests
- Add seed-language English for Bip39 Monero wallets
- Fix seed-type naming
* feat (cw_monero): Store monero wallet after bip39 creation
* feat (cw_monero): remove prints from monero_wallet_service_test.dart
* fix: exception during seed language autodetect
* feat (cw_monero): Add support for passphrases on bip39 seeds
* feat (cw_monero): Add support for passphrases on bip39 seeds
* fix: seed language selection for recovering bip39 wallets
* style: improve readability of isLegacySeedOnly in wallet_keys_view_model.dart
* feat: hide monero seed type selector from advanced settings when creating a child wallet
* fix(cw_monero): use named arguments for bip39_seed tests
---------
Co-authored-by: cyan <cyjan@mrcyjanek.net>