* feat: initialize cw_arbitrum package with essential files
- Implement ArbitrumClient for transaction handling
- Add ArbitrumWallet and related classes for wallet management
- Establish transaction history and info classes for Arbitrum transactions
- Add ArbitrumWalletService for wallet operations and management
* feat: Add arbitrum related secrets to workflow
* feat: Add nodes for arbitrum
* feat: Add Arbitrum support to cryptocurrency handling
* refactor: Update Arbitrum currency references from 'ARB' to 'ETH'
* feat: Add Arbitrum support to wallet type and transaction handling
* feat: Add Arbitrum URL schemes to Android and iOS configurations
* feat: Add Arbitrum SVG icons and a WebP image
* feat: Setup Arbitrum proxy
* fix: Add localization
* feat: Integrate Arbitrum support across various configurations and files
- Updated cakewallet.bat to include Arbitrum in app configuration.
- Added Arbitrum node list to pubspec_base.yaml.
- Modified Android, iOS, Linux, and macOS app configuration scripts to support Arbitrum.
- Introduced Arbitrum output path and generation logic in configure.dart.
- Enhanced wallet type and pubspec generation to include Arbitrum.
- Added Arbitrum-related secrets in secret_key.dart.
* feat: Enhance Arbitrum integration with new URI class and updates across various components
- Introduced ArbitrumURI class for handling Arbitrum payment URIs.
- Updated seed validator, wallet creation service, and other components to support Arbitrum.
- Added Arbitrum node handling in default settings migration and node list management.
- Enhanced preferences and settings store to include Arbitrum-specific configurations.
- Updated QR utility and token utilities to accommodate Arbitrum functionalities.
* feat: Add Arbitrum support to various buy providers
- Updated DFXBuyProvider, KryptonimBuyProvider, OnRamperBuyProvider, and RobinhoodBuyProvider to include Arbitrum wallet type and blockchain references.
- Enhanced integration for Arbitrum across multiple components to ensure consistent support.
* feat: Implement Arbitrum support in wallet selection and settings
- Added Arbitrum wallet type handling in common test flows and wallet services.
- Integrated Arbitrum icons in desktop wallet selection and menu widgets.
- Updated privacy settings to include ArbiScan options.
- Enhanced key service to support Arbitrum private and public key retrieval.
* feat: Expand Arbitrum support across various view models and components
- Integrated Arbitrum wallet type handling in advanced privacy settings, transaction details, and wallet management.
- Added Arbitrum-specific methods for transaction and wallet creation, restoration, and fee management.
- Updated dashboard and home settings to accommodate Arbitrum functionalities, including token management and transaction display.
- Enhanced exchange and send view models to support Arbitrum transactions and currency handling.
- Included Arbitrum in wallet address list and privacy settings for improved user experience.
* refactor: Simplify token initialization in Arbitrum wallet service
- Removed the migration flag from the addInitialTokens method in ArbitrumWalletService.
- Updated addInitialTokens method in ArbitrumWallet to handle existing tokens more efficiently.
- Enhanced initial token retrieval logic in DefaultArbitrumErc20Tokens to prioritize iconPath assignment.
- Improved token update logic in BaseWallet for consistency across wallet services.
* chore: Update Dart SDK constraints in pubspec.yaml
* fix: Update file paths for arbitrum assets
* fix: Correct box name formatting in Arbitrum wallet initialization
* Update .github/workflows/pr_test_build_android.yml [skip ci
* Update .github/workflows/pr_test_build_android.yml
* fix: Add missing evm params
* fix: Remove duplicate method declaration
* refactor: simplify isSwapsXyzSendingEVMTokenSwap check
* fix: Update arbitrum configs with sql storage update
* feat: Add estimated fee retrieval for Arbitrum and revamp priority fee handling for EVMChainWallet
* refactor: Update transaction priority handling and estimated fee calculations across EVMChain chains, also remove priority fee levels for Arbitrum
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* 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>
* 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>
* 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]
* 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>
* 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: 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>
* 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>
* fix: Generic fixes
* fix: Modify hasSufficientFundsForRent to work for spl transactions
* feat: Integrate seed verification into integration tests
* fix: Adjust workflow file
* chore: Remove previous working directory
* fix: Revert change
* chore: Remove step to setup kvm, already existing in new setup
* chore: Remove a couple of steps from workflow
* chore: Try switching test commands
* fix: Switch back to flutter drive
* fix: Flutter error when running tests with Flutter drive
* feat: Add screenshots to individual test pages and modify integration test script to add a watch dog to prevent infinite running on CI
* feat: Implement transaction success info robot and fix issue with send flow test
* fix: Improve integration testing for exchange flow and clean up logic and resulting errors
* fix: Handle duplicate words for seeds and test restore through seeds
* fix: Optimize implementation for transactions history test
* Skip seed verification when in debug and when not in CI flow
* chore: Remove print statements and add TODOs
* fix: Upgrade version for upload action
* fix: Add missing secrets to testing workflow file
* fix tests not working in latest main [skip slack]
# Conflicts:
# lib/src/screens/wallet_keys/wallet_keys_page.dart
* add zano seed [skip slack] [run tests]
* disable exchange_flow_test.dart [run tests] [skip slack]
* Run tests on linux always (since nobody ever used [run tests])
* fix tests after ui updates
* [skip slack] tests update
* Fixing tests WIP
* Fix create wallet integraiton test flow
* Update and fix Exchange flow test flow
* Switch printV to printToConsole
* Adjustments to the the flows on Send and Exchange
* feat: Modify Exchange and send tests to fit new flow
* fix:
- Pause screenshots for now, results in a super large json response file
- Fix delay on send bottomsheet because of pumpAndSettle animation
- Fix issue with integration test runner script
* fix(integration-tests): Fix issues relating to send flow integration tests.
This change:
- Handles the slider during the send confirmation flow during the send integration test
- Adds the missing seeds for the restore flow to the relevant workflow files
* feat: Enhance Send flow Automation Integration Test Flow
This change:
- Updates test wallet address in CommonTestConstants.
- Modifies startAppFlow to accept a dynamic key.
- Improves waitForSendPage and checkIfSendPageIsVisible methods for better page visibility handling.
- Adds validateWalletBalance method to ensure sufficient funds before sending.
- Enhances transaction success flow handling in SendPageRobot.
* refactor: Update SendPageRobot for improved transaction state handling
This change:
- Adds support for the TransactionCommitted state in the SendPageRobot.
- Removes the handleSendResult method to streamline the send flow.
- Enhances checks for successful transaction completion by verifying navigation to the DashboardPage.
- Improves visibility handling for the contact addition dialog in the transaction success flow.
* chore: Update automated integration test workflow
This change:
- Updates apkl file naming to use sanitized branch names for better consistency.
- Adds a step to output system environment information to aid in troubleshooting.
- Enhances KVM setup with checks to see if device exists and there is proper permission.
- Adjusts working directory references for Android emulator setup.
* chore: Enhance automated integration test workflow
This change:
- Adds cleanup steps for existing emulator processes to ensure fresh environment.
- Updates APK file naming to use sanitized branch names for consistency.
- Enhances debug output for APK file creation and searching, improving visibility during the workflow.
* chore: Modify apk file renaming step in workflow
* chore: Enhance automated integration test workflow
This change:
- Increases timeout for integration tests to 60 minutes.
- Adds a timeout of 90 minutes for the automated integration test job.
- Improves KVM setup with detailed checks and outputs for existing device, permissions, and functionality.
- Adds system resource checks to provide information on memory, disk space, and CPU cores during the workflow.
- Implements error handling for the integration test runner to ensure graceful failure reporting.
* chore: Enhance AVD configuration and emulator management in integration test workflow
* refactor: Improve transaction history flow tests and item visibility checks
This change:
- Enhances the scrolling logic in the CommonTestCases to check for item visibility before scrolling.
- Adds error handling and logging for transaction history checks in TransactionsPageRobot.
- Adds comprehensive item checks and scrolling for more reliable tests.
* refactor: Modify integration test runner for improved error handling and logging
This change:
- Implements error handling and logging throughout the integration test runner.
- Introduces a cleanup function for data directories and signal handling.
- Enhances test execution with retry logic and detailed duration tracking.
- Provides a comprehensive summary of test results, including passed and failed tests with their durations.
* refactor: Update error handling in transaction history flow tests
* refactor: Remove manual emulator startup logic from integration test workflow
This change simplifies the automated integration test workflow by removing the manual emulator startup process, which was previously included to handle cases where no emulator was running. The workflow now focuses on checking the emulator status and gathering device information without attempting to start an emulator manually.
* refactor: Enhance integration test workflow and error handling
* feat: Add emulator readiness checks and enhance send flow tests
This change:
- Modifies the send flow test to send $1 worth of any of the wallet currencies
- Set up switching between test wallet in case there's zero balance in any of the wallets when the test is run
- Add a mini script to check emulator readiness for the tests
* fix: More CI workflow errors for the tests
* refactor: Update emulator readiness checks and error handling in CI workflow
* fix: Readiness check successful but broken pipe when accessing settings service, plus some syntax errors in the workflow
* refactor: Enhance integration tests with improved visibility checks and timing adjustments
This change:
- Adds visibility checks for widgets before interaction in various test flows.
- Introduces consistent pump and settle durations to ensure UI stability during tests.
- Refines scrolling logic to confirm wallet types are visible before selection.
- Updates tap actions to include warnings for missed taps, improving test reliability.
* fix: Issues with confirm seeds and keys Automated test
* fix: Add missing await for tap calls
* fix: Temporarily disable CI workflow and minor cleanup to testflows
* fix: Add missing keys to CI workflow
* chore: Temporarily disable Automation CI
* chore: Cleanup
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
* feat: allow all for no-fixed monero swaps
* fix: deposit amount calculation logic and remove unused print statements
* feat: integrate UnspentCoinsListViewModel into ExchangeViewModel for more streamlined unspent coins management
* fix: unpopulating the fiat field due to a race condition
* fix: ReceiveAmount not updating on all if bestRate changes
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: add max decimal handling for crypto amounts and test coverage
* fix: correct decimal point handling in `withMaxDecimals` and update related test
* fix: ensure amount formatting aligns with selected currency decimals in ReceivePage
* fix: ensure amount controller syncs with ViewModel in AddressPage and ReceivePage
* feat: add support for currency decimals and streamline amount handling logic
* fix: ensure crypto and fiat amounts sync correctly in Send ViewModel
* Add theme base v2
* Initial new theme base files
* Typos
* Fixes
* Update theme files
* feat: Migrate to Material 3 Theming
Foundation, Theme Data Refactor, and First Extension Cleanup Batch.
This commit completes the first major phase of migrating to Material 3 theming by setting up the foundations for material 3 integration and begins the initial migration, removing custom theme extensions, updating theme data, and refactoring all relevant widget and page theming to use Material 3’s built-in color and typography tokens.
These changes:
- Lays the groundwork for Material 3 theming by restructuring the app’s theme configuration to use Material 3’s ColorScheme and TextTheme as the primary sources of color and typography throughout the app.
- Refactors the core theme config files by removing legacy custom color roles ensuring all color definitions now map directly to Material 3’s role.
- Begins the first batch migration of custom theme extensions (InfoTheme, PlaceholderTheme, KeyboardTheme, PinCodeTheme) and updates all affected widgets and pages to use Material 3 color and typography tokens instead of the custom properties.
- Cleans up the codebase by deleting the files of the initial set of migrated extensions and eliminating all related imports and usages.
* feat: Migrate to Material 3 Theming.
This change:
- Updates the themes README.md file to reflect the current structure and give more information based on the first major phase that was completed.
* feat: Migrate to Material 3 Theming
Deleting previous theme extensions
* feat: Migrate to Material 3 Theming
Another batch of migrations from existing extensions
* feat: Migration to Material 3 Theming
Third Migration batch for theme extensions
* fwat: Migration to Material 3 Theming
Final Migration batch for previous theme extensions
* Update onboarding hero
* Update button radius
* Add surfaceContainer to light theme
* feat(themes): Migrate to Material 3 Theming
This change:
- Adds new set of hero images
- Modifies the core structure for the themes
- Add missing color tokens to the theme classes
- Adds a CustomThemeColor class for custom color tokens
- Modifies the themelist to have a fall back for previous theme implementation
- Adds localization for some texts
- Modifies the flow for loading the theme on app start
- Add a WidgetsBindingObserver that listens for changes in the device theme and updates the app theme when there is a change
- Registers the themeStore as a Singleton for codebase wide use
* feat(themes): Migrate to Material 3 theming
This change:
- Migrates UI flows across the app to the new themes
- Confirms styling and typography of components across the app uses the new themes
- Remove instances of Palette use
- Switch TextStyles across the app to use theme text styles
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adjusts bottomsheets styling and removes duplicate close button
- Removes more themedata extensions from the previous implementation
* - Remove outlines from cards and dock
- Update menu colors
- Update padding/divider size for cards
* - Update PIN screen
- Fix navigation dock shadow
- Update wallet screen colors
* Update border radius --skip-ci
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adds gradient backgrounds to the dashbaord and balance cards.
- Migrates the input fields across the app to BaseTextFormFields.
- Removes dependence of input fields on individual styling, focusing instead on using theme defined InputDecoration styling with adjustments on individual components where needed.
- Applies new theme styling to BaseTextFormField, AddressTextField and CurrencyAmountTextField.
* - Switch some hero images to PNG
- Fix nagivation_dock shadow
- Minor fixes
* feat: Add fallback to previous underline styling in central widgets
This change:
- Adds a fallback to CurrencyAmountTextField, AddressTextField, and BaseTextFormField, allowing them use the previous theme styling.
- Adds localization for new texts
* feat(themes): Update warning box colors for dark and light themes
* feat(themes): Relaod themes when user restores from backup, ensuring the user previous theme preference is used.
* feat(themes): Handle themes logic during restore from backup
This change:
- Refactors theme loading logic to handle backup restore edgecase
- Refreshes the theme based on the user saved preference during restore from backup flow
* Fix card gradients and spacing
* Fix even more radiuses
Test new icons for navigation_dock.dart
* Update onboarding flow backgrounds
Fix swap icon clipping
Fix some text colors
Add more hero images
* Fix incorrect color for light theme
* Fix more hero images and cleanup
* Update text field icons
Fix info box CTA colors
Fix sync indicator colors
* Update toggle colors
Update dark theme colors (minor)
Update crypto_balance_widget.dart icon
* Update page transitions in router.dart
Fix some colors
* feat(themes): Display label by default for filled textfields
* feat(themes): Refactor theme handling across various components
This change:
- Fixes issue with themeMode resetting to system mode when app is restarted causing a UI glitch
- Updates theme checks from `currentTheme.type == ThemeType.dark` to `currentTheme.isDark` for consistency
- Adjusts UI components to use the theme directly from the themeStore
* feat(themes): Add animating tagline to the create pin welcome screen
* Revert text fields label temporarily, fix a couple colors, and cleanup some images
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* 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>
* 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>
* computed sending balance value
* files that didnt get added before
* monero + move unspent calc to view model
* working
* remove old code
* Update lib/view_model/send/send_view_model.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Implement New Swap UI including fee items and coin control and extract common fee logic to a feeViewModel, use that in SendViewModel and ExchangeViewModel
* feat: Implement New Swap UI with fee items and coin control and extract common fee logic to a feeViewModel for use in SendViewModel and ExchangeViewModel
* Update colors
* Show warning if user choose a below default transaction priority
* fix: Add warning when user select less than default transaction priority and add condition to show extraId
* Complete Swap UI flow
* Handle edgecases for XRP
* Switch swap page button texts
* Handle edgecases for XLM
* Switch prompt text and handle edgecases
---------
Co-authored-by: tuxpizza <tuxsudo@tux.pizza>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* [skip-ci] wip
* [skip-ci] styles still need updating
* working but needs style updates
* fix checkbox caption color
* sort mweb coins to be last when selecting inputs
* ui fixes
* [skip-ci] default to mweb-checkbox being off
* adaptable page view builder + workaround for keyboard actions
* Fix checkbox themeing and send card sizing
* Update lib/src/screens/send/widgets/send_card.dart
---------
Co-authored-by: tuxpizza <tuxsudo@tux.pizza>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Redesign HW Account select screen
* fix: Avoid "Bluetooth disabled" Exception on dispose of HW Connection screen
* feat: Proceed on Ledger Modal is not dismissible by tapping out
* feat: Gracefully ignore errors thrown by monero ledger keep alive function
* feat: Close a monero ledger wallet on wallet change
* fix: Leave connect screen without connecting
* CW-685 Add passphrase restore for xmr/wow (#1552)
* CW-685 Add passphrase restore for xmr/wow
* add support for polyseed passphrase
* disable 14 word seed passphrase (not supported in wownero-seed)
fix: Getting grayed screen on latest passphrase build after having restored a 14-word wownero seed (+passphrase) and attempting to restore a XMR seed, legacy or otherwise.
* fix pointer when restoring depracated wownero seed
* Fix polyseed encryption
* changes from review
* remove unused code
* add passphrase back to the screen
add passphrase to qr code backup export
* fix settings leaking through currencies on seed restore
* fix monero.com builds, make passphrase a getter on WalletBase
* add support for weird polyseed
* store passphrase for weird polyseed
* show encrypted seed only when passphrase is not empty
* force set restore height
* fix build issues
* fix build errors
* fix configure script
* print -> printV
* Update lib/view_model/wallet_keys_view_model.dart [skip ci]
* Update lib/view_model/wallet_keys_view_model.dart [skip ci]
* Update tool/configure.dart [skip ci]
* Update lib/view_model/wallet_new_vm.dart
* reuse existing passphrase field
* remove unused passphrase field
* make workflow run on pullrequests only [skip ci] [skip slack]
---------
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Zano (#1793)
* my experiments
* Inital code for Zano integration
* Added missing android log lib
* added dummy wallet & some zano implementation
* fixing api for zano
* fixed zano build script
* attempt tp fix namespace problem
* added copy script for Zano files
* changes for zano wallet
* last updates
* zano.dart test app
* wallet recovery
* added pending transfer, some cleanup of unused
* some cleanup
* send + receive qr code
* last upd
* updated build_zano.sh
* updated zano ApiCalls, removed dummy
* updated zano ApiCalls, removed dummy
* added logging for get status/get info
* restored old wallet.dart
* restoring original versions of files
* restoring original versions of files
* restored get_height_by_date.dart, removed unnecessary calls for zano get height
* restoring original versions
* added multiple destinations, send all flag; some refactoring
* logging
* removed the duplicate
* fixed syncing sync status, decimal division, safe null json parsing
* some fixes after merge
* added multibalance/asset support for zano (ui)
* adding/removing from whitelist
* transfers in different assets
* transfers for multiple destinations and send all, some refactoring
* whitelists, some refactoring
* added different digits (decimal points) for formatters, some refactoring
* open, create, restore wallet refactoring; whitelists
* whitelists
* getting and updating transaction list; restoring a wallet from QR code
* several attempts to close wallet
* some refactoring
* added seed phrase
* changed fields to BigInt, some fixes
* modified build scripts for android
* build scripts
* restored accidently removed cw_haven.dart
* inital ios integration(zano libs built)
* update in script
* latest changes
* Applied a patch for iOS build (Boost and Zano scripts)
* Removed zano.dart (script-generated) and some unnecessary files
* Revert "Removed zano.dart (script-generated) and some unnecessary files"
This reverts commit 367c86398ef2616006a2cbd2339ef2f30ed2800e.
* Removed zano.dart (generated by scripts), some files restored to initial versions
* added timer library
* changed paths in build_zano.sh
* build_zano.sh
* edit_token_page.dart - removed flag skipZanoAddressValidation
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* lib/core/address_validator.dart - updated zano address regex
lib/src/screens/dashboard/edit_token_page.dart - using AddressValidator().call
* fix zano build issues on android
* remove contrib/depends to save space
* move async call to a synchronouse one
* call sync call in isolate to make it async
generate framework for iOS as well
fix UR issues
* zano changes from monero_c repo
* update monero_c hash
* fix invalid zano imports, add support for linux, speed up CI builds
* update monero_c hash
* bump monero_c commit (yes, again, I know)
* fix wallet resttore, fix hardcoded IP
* fix regex, don't throw error when opening wallet, fix tx history, fix async calls, move stuff to isolate
* fix api calls in async transaction creation
* update build scripts
* fix some build issues
* update dependencies
* fix dependencies
* update ci scripts
* Improve multithread use of zano api
* Fix build issue
* fix zano node selection, move other zano calls to separate isolate
* update moneroc hash
WIP fixes for zano
* update monero_c
* fix monero.com builds
* sync wallet after connecting
* update monero_c
* Fix windows builds
* update monero_c
* update monero_c
* unshallow submodule
* cherry pick CW-867 Wownero fixes (#1881)
* fix wownero syntax error
* remove print statements in zano
* update zano node URL
* [PATCH] Apply new CI script (https://github.com/cake-tech/cake_wallet/pull/1948)
* drop env -i to fix cmake build errors on newer system
* [skip ci] Revert "[PATCH] Apply new CI script (https://github.com/cake-tech/cake_wallet/pull/1948)"
This reverts commit 5acb5bfe57c4b2aeb7aa40bd684a3319a68f98bc.
* [run tests] [skip slack] Fix env in build
* Dynamically detect number of cores used to build monero_c, since it appears that zano requires more memory to link (and it reliably fails for first couple builds due to OOM on CI/VM with memory constrains).
Drop unshallowing of all modules
[run tests]
* Changes from review [run tests]
* drop zano on linux (missing symbols)
fix wownero on linux
add aarch64-linux-gnu
[run tests]
* - remove duplicate entry in addToken()
- use walletPassword in createZanoNewWalletCredentials
- remove createZanoRestoreWalletFromKeysCredentials
[run tests]
* [skip ci] update dockerfile
* fix parameter issue
---------
Co-authored-by: leo <leonid.ivanov@gmail.com>
Co-authored-by: cr.zoidberg <crypto.zoidberg@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* - Add Zano Aliases
- Enable simpleswap [skip ci]
- Fix settings migration versions
* push missing file [skip ci]
* Zano pr with CW-685 passphrase (#1969)
* my experiments
* Inital code for Zano integration
* Added missing android log lib
* added dummy wallet & some zano implementation
* fixing api for zano
* fixed zano build script
* attempt tp fix namespace problem
* added copy script for Zano files
* changes for zano wallet
* last updates
* zano.dart test app
* wallet recovery
* added pending transfer, some cleanup of unused
* some cleanup
* send + receive qr code
* last upd
* updated build_zano.sh
* updated zano ApiCalls, removed dummy
* updated zano ApiCalls, removed dummy
* added logging for get status/get info
* restored old wallet.dart
* restoring original versions of files
* restoring original versions of files
* restored get_height_by_date.dart, removed unnecessary calls for zano get height
* restoring original versions
* added multiple destinations, send all flag; some refactoring
* logging
* removed the duplicate
* fixed syncing sync status, decimal division, safe null json parsing
* some fixes after merge
* added multibalance/asset support for zano (ui)
* adding/removing from whitelist
* transfers in different assets
* transfers for multiple destinations and send all, some refactoring
* whitelists, some refactoring
* added different digits (decimal points) for formatters, some refactoring
* open, create, restore wallet refactoring; whitelists
* whitelists
* getting and updating transaction list; restoring a wallet from QR code
* several attempts to close wallet
* some refactoring
* added seed phrase
* CW-685 Add passphrase restore for xmr/wow
* add support for polyseed passphrase
* disable 14 word seed passphrase (not supported in wownero-seed)
fix: Getting grayed screen on latest passphrase build after having restored a 14-word wownero seed (+passphrase) and attempting to restore a XMR seed, legacy or otherwise.
* fix pointer when restoring depracated wownero seed
* Fix polyseed encryption
* changed fields to BigInt, some fixes
* modified build scripts for android
* build scripts
* restored accidently removed cw_haven.dart
* inital ios integration(zano libs built)
* update in script
* latest changes
* changes from review
* remove unused code
* add passphrase back to the screen
add passphrase to qr code backup export
* fix settings leaking through currencies on seed restore
* fix monero.com builds, make passphrase a getter on WalletBase
* add support for weird polyseed
* store passphrase for weird polyseed
* show encrypted seed only when passphrase is not empty
* force set restore height
* Applied a patch for iOS build (Boost and Zano scripts)
* Removed zano.dart (script-generated) and some unnecessary files
* Revert "Removed zano.dart (script-generated) and some unnecessary files"
This reverts commit 367c86398ef2616006a2cbd2339ef2f30ed2800e.
* Removed zano.dart (generated by scripts), some files restored to initial versions
* fix build issues
* fix build errors
* added timer library
* changed paths in build_zano.sh
* build_zano.sh
* edit_token_page.dart - removed flag skipZanoAddressValidation
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* lib/core/address_validator.dart - updated zano address regex
lib/src/screens/dashboard/edit_token_page.dart - using AddressValidator().call
* fix zano build issues on android
* remove contrib/depends to save space
* move async call to a synchronouse one
* call sync call in isolate to make it async
generate framework for iOS as well
fix UR issues
* zano changes from monero_c repo
* update monero_c hash
* fix invalid zano imports, add support for linux, speed up CI builds
* update monero_c hash
* bump monero_c commit (yes, again, I know)
* fix wallet resttore, fix hardcoded IP
* fix regex, don't throw error when opening wallet, fix tx history, fix async calls, move stuff to isolate
* fix api calls in async transaction creation
* fix configure script
* update build scripts
* fix some build issues
* update dependencies
* fix dependencies
* update ci scripts
* Improve multithread use of zano api
* Fix build issue
* fix zano node selection, move other zano calls to separate isolate
* update moneroc hash
WIP fixes for zano
* update monero_c
* fix monero.com builds
* sync wallet after connecting
* update monero_c
* Fix windows builds
* update monero_c
* print -> printV
* update monero_c
* unshallow submodule
* cherry pick CW-867 Wownero fixes (#1881)
* fix wownero syntax error
* remove print statements in zano
* update zano node URL
* [PATCH] Apply new CI script (https://github.com/cake-tech/cake_wallet/pull/1948)
* drop env -i to fix cmake build errors on newer system
* Update lib/view_model/wallet_keys_view_model.dart [skip ci]
* Update lib/view_model/wallet_keys_view_model.dart [skip ci]
* Update tool/configure.dart [skip ci]
* Update lib/view_model/wallet_new_vm.dart
* [skip ci] Revert "[PATCH] Apply new CI script (https://github.com/cake-tech/cake_wallet/pull/1948)"
This reverts commit 5acb5bfe57c4b2aeb7aa40bd684a3319a68f98bc.
* [run tests] [skip slack] Fix env in build
* Dynamically detect number of cores used to build monero_c, since it appears that zano requires more memory to link (and it reliably fails for first couple builds due to OOM on CI/VM with memory constrains).
Drop unshallowing of all modules
[run tests]
* Changes from review [run tests]
* drop zano on linux (missing symbols)
fix wownero on linux
add aarch64-linux-gnu
[run tests]
* - remove duplicate entry in addToken()
- use walletPassword in createZanoNewWalletCredentials
- remove createZanoRestoreWalletFromKeysCredentials
[run tests]
* [skip ci] update dockerfile
* reuse existing passphrase field
* add passphrase support for zano
* Drop aarch64-linux-gnu for now.
* fix passphrase display, fix gray screen
* catch errors in polyseed encryption, encrypt only polyseed, fix coin in wownero
* update monero_c
update wownero to 0.11.3.0
* Show passphrase only when non-empty, fix passphrase being displayed as view key private.
* fix NanoAccountListPage showing up instead of MoneroAccountListPage for wownero
* build zano dependencies on android
* fix parameter issue
* minor merge leftover [skip ci]
* minor cleanup [skip ci]
* fix zano alias
update eth url for ens lookup
change $MAKE_JOB_COUNT to $NPROC
* minor cleanup [skip ci]
* fix zano alias
* Disable passphrase for creation of xmr/wow/zano
minor fixes
* fix zano on iOS
* - Fix get token data
- Enable unavailable balance
- Enable confirmations count
- Adjust explorer link
---------
Co-authored-by: leo <leonid.ivanov@gmail.com>
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
Co-authored-by: cr.zoidberg <crypto.zoidberg@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
---------
Co-authored-by: cyan <cyjan@mrcyjanek.net>
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>
Co-authored-by: leo <leonid.ivanov@gmail.com>
Co-authored-by: cr.zoidberg <crypto.zoidberg@gmail.com>