* 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
* wrap in try/catch just in case [skip ci]
* Update lib/utils/token_utilities.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* fix: Fix QR Code Icons
* Update QR Code images
* fix: QR Codes Wallet Type Images
- Added missing solana qr code image to receive page
- Added wallet type image to QR on AnonPay invoice and donation pages
- Added a getQRImage util for easy access to the qr images
* fix: Update eth_pol image for receive page
* feat: Swap flow for Pay Anything. [WIP]
* feat: Pay Anything Swap Flow [WIP]
* feat: Pay anything swap flow [WIP]
- Add fiat values for send and receive amounts to swap details confirmation bottomsheet
* feat: Pay anything swap flow [WIP]
- Switch exchangeviewmodel back to factory
- Expand address box to fill width
* Handle second swipe to swap cta
* Add fiat for receive amount
* Scope Observers for bottomsheets and add validator
* fix: Repeated instances issue for exchangeVM
* fix: Estimated fee and balance not correctly updating after wallet switching occurs
* fix: Available balance not updating properly after wallet switching
* fix: Available balance and fee rate not displaying after wallet is switched in pay anything flow
* fixes: Pay anything related RC fixes
- Recieve fiat amount showing as 0.0
- ID overlapping when there's enough space
- receive amount changing even in fixed rate mode
- Invalid double error for setReceiveFiatAmount
* feat: Swap flow for Pay Anything. [WIP]
* feat: Pay Anything Swap Flow [WIP]
* feat: Pay anything swap flow [WIP]
- Add fiat values for send and receive amounts to swap details confirmation bottomsheet
* feat: Pay anything swap flow [WIP]
- Switch exchangeviewmodel back to factory
- Expand address box to fill width
* Handle second swipe to swap cta
* Add fiat for receive amount
* Scope Observers for bottomsheets and add validator
* fix: Repeated instances issue for exchangeVM
* fix: Estimated fee and balance not correctly updating after wallet switching occurs
* fix: Available balance not updating properly after wallet switching
* fix: Available balance and fee rate not displaying after wallet is switched in pay anything flow
* feat: Swap flow for Pay Anything. [WIP]
* feat: Pay Anything Swap Flow [WIP]
* feat: Pay anything swap flow [WIP]
- Add fiat values for send and receive amounts to swap details confirmation bottomsheet
* feat: Pay anything swap flow [WIP]
- Switch exchangeviewmodel back to factory
- Expand address box to fill width
* Handle second swipe to swap cta
* Add fiat for receive amount
* Scope Observers for bottomsheets and add validator
* fix: Repeated instances issue for exchangeVM
* fix: Estimated fee and balance not correctly updating after wallet switching occurs
* fix: Available balance not updating properly after wallet switching
* Fix: Give wallet some time to open before populating send info
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* feat: use better embedded Tor
* update docs [skip ci]
* fix: update torch properly add minimum os version for iOS
* fix: use of invalid thread api on iOS
* fix: disable use of lzma and zstd system libraries
* fix: update torch_dart to work on linux
* Add SafeArea to base page
* chore: Move SafeArea to wrap body instead of being at top level
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* feat: Pay Anything from Any Wallet
* feat: Trigger payment flow when address is pasted
* chore: Remove unneeded changes
* feat Expand address checks and fix scanning bch qrs
* fix: Add support for dogecoin
* feat: More modifications for Pay from Any Wallet
This change:
- Adds the pay from any wallet flow to externally signed QR codes
- Adds fixes for review comments
- Fixes failing tests
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Add user ETH and SOL tokens to exchange currency lists
* Update default_spl_tokens.dart
* fix solana token icon issue
* add user currency to Trade and update usage
* add support for user Tron and Polygon tokens in exchange
* removing the providersForCurrentPair method and related logic
* Improve currency search
* prevent crash in EVM wallets for unknown token symbols
* Improve asset lookup in XOSwap provider
* revert token enabled state for tron solana
* Move SPL and Tron token classes to cw_core
* fix updating trades for user tokens
* Improve token matching by including tag comparison
* safer currency parsing across all exchange providers
* Update edit_token_page.dart
* sync status eta
* other necessary changes
* feat: Enhance Sync ETA display mode
- Enhance block rate calculation with weighted averages(accounts for network flunctuations and sync speed of more recent blocks while calculating eta, basically giving us more accuracy)
- Add option to switch between ETA and blocks remaining display in display settings
- Add placeholder ETA while gathering block data
* chore: Listen to smaller changes in eta
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Electrum Wallets not reconencting correctly if the OS closes the connection
* fix: Electrum connectivity bug. Enahnced checks and reconnect when needed, and Socket health logs page for logs
* fix: Add extra checks
* chore: Migrate to static log list instead of file storage
* fix: Electrum connectivity review comments
This change:
- Adds reset count for used trusted nodes
- Adds context guards for ScaffoldMessenger calls
* fix: Reset the state for _resetCount when there is a wallet switch
* feat: bitcoin view-only
* fix: add UR to cw_bitcoin, fix payjoin issue
* feat: add unsignedPsbt to PendingBitcoinTransaction
* wip
* feat: xpub restore from bitcoin URI QR
* feat(dev): debug UR codes [skip ci]
* fix: master fingerprint default in create bitcoin transaction
* fix: handle empty private key in bitcoin transaction building
* fix: show success dialog after btc ur transaction
* fix(ui): remove SP from UI in view only wallet
* fix(cw_bitcoin): tx sending on non-airgap
* fix(cw_bitcoin): disable all non-segwit addresses
* feat(ur): support BBQR for coldcard qr
* flutter 3.27.0 -> 3.27.4
* feat: raw xpub qr support for coldcard q
* fix: update ledger_bitcoin
fix: update switching button
* fix: restore button not showing up after scanning
* feat: commit raw tx (from coldcard Q)
* feat: legacy crypto-psbt support for seed signer
* chore: address comments from review
* fix(cw_bitcoin): disable sp and payjoin for cupcake
* feat: enable DNSSEC BIP353 in PSBT (#2397)
* feat: enable DNSSEC BIP353 in PSBT
* chore: put bitcoin view only behind a featureflag
* fix: update Monero wallet to work with new internal URQR return format
* feat: add "Restore from Cupcake App" option with localized strings
* feat: enable DNSSEC BIP353 in PSBT using dnssec-prover (#2401)
* fix: use dnssec-prover
chore: bump ndk to r28c
* fix: validate DNSSEC proof before updating the UI
* fix: rename button to copy debug info to not hide actions on URQR widget
---------
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
* feat: Add support for automatic node switching.
This change:
- Adds isTrustedNodeForSwitching property to Node class.
- Adds UI Checkbox to mark a node as trusted for automatic switching in Node create or edit form.
- Implements checkNodeHealth method in wallet classes to verify node connectivity.
- Adds NodeSwitchingService for managing automatic node switching based on health checks.
- Adds setting option for user to enable/disable automated node switching
* fix(automatic-node-switch): Set node health check interval to 5 minutes in NodeSwitchingService
* refactor: Update handler method
* feat: Automatic Node Switching Improvements
This change:
- Moves enable automatic node switch to the Manage Nodes Page
- Adds check to verify node health before attempting to sync in EVM, Sol and Tron Wallets.
- Modifies trusted ndoes list for monero
- Adds trigger for Node Health Check when app resumes from background
* fix: Increase default request timeout for Tron and update health check interval for node switch
* feat: Enhance Node health check functionality.
This change adds additional checks for token balance in EVM, Solana and Tron Wallets in checkNodeHealth.
* fix: Update health check interval to 30 seconds in NodeSwitchingService
* Update bitcoin_electrum_server_list.yml
* fix: Electru wallet not connecting to new node after switching
* fix: Automated Node Switch not working on Decred Wallet
* fix: Add more nodes for AutoSwitching
This change:
- Enables more nodes across wallet types for auto switching
- Modifies CTA for checkbox
- Renames flags to fit
* fix: Add migration function for setting up default nodes for autoswitching
* fix: Review and testing fixes
* chore: Adjust balance and history fetch timer
* fix: remove redundant mobile check for hardware wallet support and add macOS BLE permission handling
* fix: update connect_device_page platform check and add macOS Bluetooth entitlements
* fix: Ledger Monero on Windows
* feat: add support for Ethereum EIP-681 URIs in PaymentRequest and implement test coverage
* test: add unit test for EIP-681 URI handling with contract and no chainId [skip-ci]
* fix(CW-1114): rounding error for really large numbers
* fix: wrong decimals for eth fee display
* fix: limit fractional digits to a maximum of `decimals` in `format_fixed` function [skip-ci]
* test: add unit tests for `formatFixed` function
* refactor: replace custom balance formatting with `formatFixed` utility function
* refactor: improve dEuroViewModel formatting and computation logic
* refactor: extract and simplify interest action handlers in dEuro savings page
* fix: deuro add should show edit Add bottom sheet
* feat: block user from entering amount bigger than the max
* feat: use new tooltip bottomsheet for dEuro
* feat: add pull down to refresh dEuro savings
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>