* feat(evm): add ChainConfig model and related classes
- Add ChainConfig class for immutable EVM chain configuration
- Add ChainCapabilities class for chain feature flags
- Add FeeType enum and FeeModel class for fee configuration
* feat(evm): add EvmChainRegistry for centralized chain management
- Add singleton EvmChainRegistry class with chain configuration storage
- Initialize with Ethereum, Polygon, Base, and Arbitrum chains
- Add mappings for WalletType, tag, and CAIP-2 to chainId lookups
- Provide lookup methods for chain configurations by various identifiers
- Support for querying available chains and registered chain IDs
* feat(evm): add EVMChainClientFactory and consolidate chain clients
- Create EVMChainClientFactory for creating chain-specific clients based on chainId
- Move all chain clients (EthereumClient, PolygonClient, BaseClient, ArbitrumClient) into cw_evm/lib/clients/ folder
- Refactor EVMChainClient from abstract to concrete class with default implementations
- Add default implementations for fetchTransactions, fetchInternalTransactions, and prepareSignedTransactionForSending
- Update all client classes to use super(chainId: X) constructor pattern
- Factory returns EVMChainClient directly for unregistered chains instead of throwing
- Remove dependencies on cw_ethereum, cw_polygon, cw_base, cw_arbitrum packages from pubspec.yaml
- Consolidate all EVM chain client implementations in one location for easier maintenance
* add ui for evm switcher on eth
* add inputs for evm network list edit switches
* refactor(evm): Make EVMChainWallet concrete and unify transaction classes
- Make EVMChainWallet and EVMChainWalletBase concrete classes (removed abstract)
- Implement all previously abstract methods in EVMChainWallet
- Make EVMChainTransactionInfo and EVMChainTransactionHistory concrete
- Reorganize default tokens into tokens/ folder:
- Refactor EVMChainDefaultTokens to import and use token classes from tokens/ folder
- Move clients to clients/ folder:
- Move evm_chain_formatter.dart to utils
- Update chain-specific transaction history classes to pass walletType to fromJson
- Update old wallet classes (EthereumWallet, PolygonWallet, etc.) to pass walletType
- Maintain compatibility with existing per-chain wallet classes
This refactoring enables the unified EVMChainWallet architecture while maintaining
full backward compatibility with existing per-chain wallet implementations.
* feat(evm): Add chain selection capability to EVMChainWallet
- Add selectedChainId observable field to track currently selected chain
- Add selectChain(chainId) action method to switch between EVM chains
- Add selectedChainConfig computed getter for accessing chain configuration
- Initialize selectedChainId from client.chainId in constructor
- Add _getClientForCurrentChain() helper method for future use
This enables chain switching functionality while maintaining full backward compatibility. The selectedChainId is initialized from the existing client, and all existing methods continue to work unchanged. Future increments will update methods to use selectedChainId internally.
* refactor(evm): Update client immediately on chain selection
- Update selectChain() to immediately create new client for selected chain
- Remove _getClientForCurrentChain() helper method
- Simplify all methods to use _client directly instead of helper calls
- Client is now always in sync with selectedChainId
This improves code simplicity and performance by eliminating repeated
client checks. The client is updated synchronously when selectChain()
is called, ensuring state consistency.
* featr(evm): Add unified evm proxy setup and fix chain initialization
- Add unified Evm proxy
- Add evm.dart to .gitignore for generated proxy
- Add generateEVM() to configure.dart for proxy generation
- Fix selectedChainId to initialize from registry based on walletInfo.type
Ensures selectedChainId always matches wallet type on initialization
and adds unified proxy infrastructure.
* refactor(evm): Update backward compat helpers to use registry via proxy
- Add registry helper methods to unified EVM proxy
- Update all lib/ files to use proxy instead of direct cw_evm imports
- Enforce proxy pattern: no direct imports from cw_evm in main app
- Update configure.dart to include registry methods in generated proxy
Maintains backward compatibility while centralizing chain data access
through the unified proxy pattern.
* feat(evm): Add chain selection UI to dashboard
- Add chain selection methods to DashboardViewModel (isEVMWallet,
availableChains, currentChain, selectChain)
- Add chain dropdown widget to balance page for EVM wallets
- Dropdown shows current chain and allows switching between all
registered EVM chains
- Only visible for EVM-compatible wallets
- Add chain selection methods to EVM proxy (getAllChains,
getCurrentChain, selectChain)
Users can now switch between EVM chains (Ethereum, Polygon, Base,
Arbitrum) directly from the dashboard without creating separate wallets. All chain-related code follows the established proxy pattern.
* feat(evm): Add persistence for selected chain ID
- Add initialChainId parameter to EVMChainWallet constructor
- Save selectedChainId to wallet JSON in toJSON() method
- Load selectedChainId from JSON in open() method
- Handle backward compatibility: wallets without saved chain ID use
wallet type's default chain ID
- Client is created with saved chain ID when opening wallet
Selected chain preference is now persisted across app sessions. Users will see their previously selected chain when reopening wallets.
* chore: Minor cleanup
* refactor(evm): Remove old per-chain packages, consolidate to unified cw_evm
- Delete cw_ethereum, cw_polygon, cw_base, cw_arbitrum packages
- Remove old proxy files (lib/ethereum/, lib/polygon/, lib/base/, lib/arbitrum/)
- Update all view models to use unified evm! proxy
- Move DEuro functionality to cw_evm/lib/deuro/
- Remove dependencies from pubspec.yaml and configure.dart
- Remove walletType parameter from EVM proxy methods
All EVM chains now use unified cw_evm package through single proxy interface. lib/ only depends on cw_evm, simplifying architecture and enabling easy addition of new L2 chains.
BREAKING CHANGE: Old per-chain packages removed
* refactor(evm): Update wallet handling to use unified EVM proxy
- Replace individual chain imports (Ethereum, Polygon, Base, Arbitrum) with a single EVM proxy import.
- Refactor wallet-related methods across various view models to utilize the new evm proxy for various usecases.
This change enhances code maintainability and prepares the codebase for the addition of new EVM chains.
* refactor(evm): Update model generator and enhance EVM classes
- Modify model_generator.sh to remove previous chain folders from the loop.
- Change EVMChainTransactionHistoryBase and EVMChainWalletBase classes to be abstract.
- Update import paths in configure.dart to reflect the new structure of the cw_evm package.
* add evm switcher icons to pubspec_base
* change evm switcher to sliding animation
* formatting fix
* dpi agnostic width
* feat(evm): Enhance chain handling and transaction history management
- Introduce getCurrentChainId function to EVMChainTransactionHistoryBase for dynamic transaction history file naming based on the current chain ID.
- Update EVMChainTransactionInfo to include chainId, ensuring accurate transaction data representation.
- Refactor EVMChainWalletBase to support automatic node connection and transaction history loading upon chain selection.
- Implement saveBackup and restoreWalletFilesFromBackup methods in EVMChainWalletService to manage wallet backups based on wallet type.
- Update various methods across the codebase to accommodate the new chain handling logic, improving overall functionality and user experience.
* chore: Cleanups and updates
* feat: add WalletType.evm and deprecate individual EVM chain types
Add unified WalletType.evm enum value for all EVM-compatible chains.
Deprecate old individual EVM types (ethereum, polygon, base, arbitrum)
with guidance to use WalletType.evm for new code.
Update serialization/deserialization functions to support WalletType.evm:
- serializeToInt() returns 18 for WalletType.evm
- deserializeFromInt() handles case 18
- walletTypeToString() and walletTypeToDisplayName() return 'EVM'
- cryptoCurrencyToWalletType() maps all EVM currencies to WalletType.evm
Old EVM types remain functional for backward compatibility with existing
wallets. This is the foundation for unifying EVM chain management.
* feat: update EVM detection functions to support WalletType.evm
Update all EVM detection and chain helper functions to support the unified WalletType.evm while maintaining backward compatibility with old EVM types.
All functions require chainId parameter when used with WalletType.evm, ensuring proper chain-specific behavior. Old EVM types continue to work without changes for backward compatibility.
* feat: add currency mapping support for unified EVM wallet type
- Update currency mapping to support WalletType.evm with chainId-based currency resolution.
- Override EVMChainWallet.currency getter to use selectedChainId from registry.
- Replace walletTypeToCryptoCurrency calls with wallet.currency in view models.
- Add WalletType.evm cases to switch statements and consolidate EVM transaction list item methods.
- Add explorer URL method to EVM interface
* feat: Update wallet operations with unified WalletType.evm
- Update wallet service to always create new wallets and restores with WalletType.evm, defaulting to Ethereum.
- Preserve old wallet types when opening existing wallets. Update wallet instance creation and opening logic to handle unified EVM type with chainId-based config lookup.
* Add WalletType.evm support across all switch statements
- Update all switch statements and conditionals to include WalletType.evm alongside existing EVM types.
- Add chainId-based node selection support for unified EVM wallets. - Fix redundant code in exchange view model.
- Ensure backward compatibility with old EVM wallet types.
* feat(evm): Implement chainId-based node management for WalletType.evm
- Add chainId-based node storage for unified EVM wallets, enabling separate node preferences per chain.
- Replace unsafe dynamic casts with type-safe getSelectedChainId method. Update all node retrieval and switching logic to support chainId-based selection.
* feat: Update UI components to show unified EVM wallet option
- Filter out old EVM wallet types (ethereum, polygon, base, arbitrum) from wallet creation and restore UI, showing only unified WalletType.evm option.
- Update wallet type generation to include WalletType.evm instead of individual
chain types.
- Update configure.dart to generate WalletType.evm in availableWalletTypes
- Add filtering checks to prevent old EVM types from appearing
* fix: Fix WalletType.evm support and complete remaining edge cases
Add missing WalletType.evm cases to switch statements to resolve compilation
errors. Complete remaining unification items:
- Add WalletType.evm support to node, wallet utils, and view models
- Update EVMChainDefaultTokens and EVMChainUtils to support chainId
- Fix token initialization and priority fee calculations for WalletType.evm
- Update payment view model to handle WalletType.evm with chainId
All identified edge cases from the unification plan are now complete.
* fix: Fix network switching issues for EVM wallets
- Fix null check errors when creating and restoring an EVM wallet
- Fix null check errors for balance getter when switching networks
- Fix fiat amount display for native currencies in transaction history
* refactor: Simplify EVM wallet chain selection in CryptoBalanceWidget
- Removed the old dropdown for chain selection and replaced it with a more integrated EvmSwitcher dialog.
- Updated EvmSwitcher to accept a list of available chains and handle chain selection more efficiently.
- Enhanced EvmSwitcherDataItem to include chainId for better identification of chains.
- Improved the overall UI flow for EVM wallet interactions.
* refactor: Enhance EVM wallet handling and chainId integration
- Simplified chainId checks across various components to ensure consistent handling for WalletType.evm.
- Updated EVMChainDefaultTokens and EVMChainUtils checks to allow all EVM wallets for chainId operations
- Handled backward compatibility for older wallet types in transaction info
* refactor: More enhancement and backward compatibility fixes for EVM Wallet
- Introduced a new method to retrieve cryptocurrency by chainId, improving the handling of WalletType.evm.
- Updated transaction history management to filter transactions based on the current chainId
- Refactored EVMChainTransactionInfo to accept chainId directly
- Modified utility functions in EVMChainUtils and TokenUtilities for better chainId handling
* refactor: Streamline EVM token retrieval and enhance chainId handling
* feat: Introduce comprehensive guide for adding new EVM L2 networks
- Added a detailed documentation file outlining the steps to integrate new EVM-compatible L2 networks into Cake Wallet.
- Included prerequisites, architecture overview, and a step-by-step guide covering chain configuration, native currency addition, default tokens, and node setup.
- Emphasized the unified architecture for EVM chains and backward compatibility considerations.
- Removed the outdated guide on adding new L2 networks to streamline documentation.
* feat: Reposition EVM switcher button on dashboard page
* just adding reminders for the refactoring [skip ci]
* more todos [skip ci]
* feat: enhance wallet functionality with chainId support
- Added chainId to `WalletBase` and updated currency method to use it.
- Modified EvmChainRegistry to initialize registry on call.
- Updated various components to pass chainId where necessary for currency conversions.
- Improved handling of chain IDs in wallet-related view models and UI components for better compatibility with EVM networks.
* fix: remove default chainId fallback in payment confirmation widget
* feat: Adapt anypay to new unified flow WIP
* fix: Issues with handling non evm swaps for anypay
* fixes to flow structure
* Add persistence to hidden chains on switcher
* refactor: simplify equality operator in Erc20Token class
* feat: add excluded arbutrum tokens for chainflip
* chore: Remove print statement [skip ci]
* refactor: dispaly QR image display for evm based on selected chain ID
* feat: enhance EVM wallet compatibility check for raw address input
* chore: Update doc to reflect changes [skip ci]
* feat: Integrate Blink for EVM wallets for anti-sandwich attacks.
- Add toggle in privacy settings to enable/disable
- When enabled, route all evm broadcast rpc calls via Blink
* feat: Integrate Blink for EVM wallets for anti-sandwich attacks.
- Add toggle in privacy settings to enable/disable
- When enabled, route all evm broadcast rpc calls via Blink
* feat: Integrate Blink for EVM wallets for anti-sandwich attacks.
- Add toggle in privacy settings to enable/disable
- When enabled, route all evm broadcast rpc calls via Blink
* feat: Handle same chainId scenario for pasted evm addresses
* feat: Add Blink Setting to Advanced Settings Page
* fix: Handle Blink supported chains
* fix: Fixes to evm swap
* fix: Add fallback for currency fetch
* fix: Add evm to supported list
* fix: Better handle balance errors
* fix: Update token check to use contract address comparison, resolves the usdt/usdt0 issue
* refactor: Simplify checks by cearing all tokens on chain switch, removing unnecessary currency checks
* fix: Simplify checks based from feedback on review
* fix: Exclude arbitrum from tx priority using chainId
* refactor: Handle chains not having transaction priority within refactor
* fix: Unified evm wallet fixes
- Handle switching networks while on tx history page
- Update NFTs when network is switching on listing page
- Fix arbitrum tx priority error on swap screen
- Switch check to display deuro from wallet type to chainId
- Add fallback check for getting token info for evm
- Better error message for max fee per gas less than block base fee error
* refactor: Update wallet checks from type to chainId for EVM compatibility checks
* refactor: Update eth chain utils and remove verified contract criteria in scam detection checks
* refactor: Enhance validation for deuro calls
* fix : Remove unneeded validation check for savings edit
* feat: Hide EVM chain switcher behind feature flag
* refactor: Remove EVM wallet type references and update related logic
* chore: Clean up wallet type references and remove repeated imports
* feat: Add fallback for derivation path and add arbitrum support to app scripts
* fix: NFT popup error
* fix: Transaction details fee regression
* fix: Fixes and improvements
- Add nonce parameter to transaction methods in EVM clients
- Remove brackets for create swaps
- Display contacts for selected wallettype alone
- Remove tx priorty switching for arb
* feat: Enhance Arbitrum support across swap providers
* fix: Add missing secret keys
* fix: display sending currency icon in send from external page
* refactor: Handle arbitrum edgecase for wallet list display image
* fix: Handle more cases of arbitrum image display for contact book
* exploring possible issues with tx history
* chore: switch to printV
* fix: Add an extra check for keys
* fix: Filter out eth spam transaction and modify parsing format
* fix: Handle contract decimals for sending tokens
* fix: Display proper balance error
* Update cw_evm/lib/utils/evm_chain_formatter.dart [skip ci]
---------
Co-authored-by: Robert Malikowski <malikowskirobert@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
- Created strings_pt_BR.arb with complete Brazilian Portuguese translation
- Added pt_BR to language_service.dart (supportedLocales and localeCountryCode)
- Added pt_BR to translation_constants.dart
- All 1172 strings translated to Brazilian Portuguese
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
- Add res/values/strings_zh_TW.arb with Traditional Chinese translations
- Update lib/entities/language_service.dart to include zh_TW locale
- Update tool/utils/translation/translation_constants.dart to include zh-tw
This adds full Traditional Chinese (Taiwan) language support with proper
Taiwan-specific terminology (e.g., 啟用, 新增, 進階設定, 簽帳金融卡, etc.)
All simplified Chinese characters have been converted to traditional Chinese.
* 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>
* spanish: some necessary, minor rewording for new background sync strings
* en: fix unmetered network typo
* languages: add guarani
Adds strings_gn.arb file.
* fix: remove `,` from beginning and end of file
* tl_constant: add `gn` value
* flags: add guarani (PY) flag
Adds _gn.png_ file.
* languages: add guarani
* localeCountryCode: fix guarani value to 3 letters (grn); making it cohesive with all others
* res/values: replace strings_gn.arb file for appropriate one
* guarani: remove unnecessary `,` at the beginning and end of file
* guarani: fix a lot of syntax errors...
* guarani: remove all remaining trails of Spanish translation; fix all wrongly translated `${}` values back to English
* fix: gn translation
* ci: add ci check for translations
* Update .github/workflows/are_translations_sane.yml
* res/values: adds fixed `strings_gn.arb` file
* res/values: undoes wrong GN=>ES translations on file
* res/values: fix missing `}` for `strings_gn.arb`
* res/values: adds revised `strings_gn.arb` file
* res/values: adds revised `strings_gn.arb` file
* res/values: adds revised `strings_gn.arb` file
---------
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* chore: Create Base package template
* chore: Update configuration scripts and dependencies to include 'base' coin support
* chore: Update pubspec.yaml, adjust SDK constraints, and add new dependencies
* feat: Add support for base wallet type and cryptocurrency in related configurations
* feat: Implement BaseWallet and DefaultBaseTokens classes for managing base cryptocurrency transactions
* feat: Add BaseTransactionHistory and BaseTransactionInfo classes for handling base cryptocurrency transaction data
* feat: Implement BaseClient, BaseWalletService, and BaseMnemonicIsIncorrectException
* feat: Setup base proxy for main package and adjust token class name
* feat: Setup initial base node configuration
* feat: Integrate support for base wallet type across various functions and services
* feat: Add base support to exchange and outputs
* feat: Add base wallet type integration to wallet creation and node management
* feat: Add base support to transaction details and transaction list item
* feat: Implement BaseURI class and add base support across wallet creation and keys view models
* feat: Add support for BaseScan preference in settings store
* feat: Integrate Base support into various workflows and documentation
* feat: Addingbase config to windows and secret key support
* feat: Add base support to settings and address handling
* chore: Move walletTypeToCurrency to another file and adjust across codebase
* feat: Add 'basescan_history' string localization
* feat: Remove Cryptocurrency.base, it doesn't have a base currency
* feat: Set eth as native currency
* feat: Enhance Base support across various sending, exchange, transaction details, fees, dashboard and balance
* feat: Integrate Base wallet support in advanced privacy settings and home settings view models
* feat: Add Base wallet support with icon and integration across providers, default settings migration, preferences, wallet connect, settings and token utilities
* feat: Update currency handling to use baseEth for Base wallet integration across various components
* fix: Update default token symbol to ETH in Base wallet transaction model
* refactor: Change default currency references from BASE to ETH across client, transaction info, and wallet components
* feat: Introduce normalizedIconPath for CryptoCurrency to standardize icon retrieval across wallet components
* fix: Include baseEth as a native token in EVMChainClient for currency handling
* chore: Update base_icon.png
* feat: Add more nodes to base_node_list.yml
* refactor: Update wallet icon retrieval to use normalizedIconPath
* chore: Remove unused cases and cleanup impl.
* feat: Add base proxy generation to configure
* refactor: Update base proxy and generation code in configure.dart
* feat: Add missing wallet and mono images
* fix: Wrong image path for pr and add missing base qr image
* feat: Enhance EVMTransactionErrorFeesHandler to parse new insufficient funds error format and calculate transaction fees in ETH and USD
* feat: Add gas price safety buffer for Base chain transactions to improve fee estimation accuracy, also fixes send all not calculating correctly
* Update model_generator.sh [skip ci]
* Update assets/base_node_list.yml [skip ci]
* Update cw_base/lib/default_base_erc20_tokens.dart [skip ci]
* Review fixes
* fixes
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* feat: Enhance Wallet Groups Implementation by using hashedIdentifiers instead of parentAddresses
* fix: Call updateWalletGroups even if group has an hash identifier
* feat: Add secrets to workflow
* feat: Enhance Wallet Groups Implementation by using hashedIdentifiers instead of parentAddresses
* Handle wallet grouping edgecase where wallet is restored via non seed medium
* fix: Valid wallet/wallet groups not showing up when choosing wallet/groups for creating new wallets
* fix: Ethereum enhancements around fees and computations relating to signing and sending transactions
* feat: Add nownodes key for evm to workflow
* feat: Reactivate send all on both eth and polygon wallet types
* fix: Add generic function for updating the node for a wallet type, move ethereum transaction error fees handler to a new file
* fix: Revert podfile.lock
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Integration tests setup and tests for Disclaimer, Welcome and Setup Pin Code pages
* feat: Integration test flow from start to restoring a wallet successfully done
* test: Dashboard view test and linking to flow
* feat: Testing the Exchange flow section, selecting sending and receiving currencies
* test: Successfully create an exchange section
* feat: Implement flow up to sending section
* test: Complete Exchange flow
* fix dependency issue
* test: Final cleanups
* feat: Add CI to run automated integration tests withan android emulator
* feat: Adjust Automated integration test CI to run on ubuntu 20.04-a
* fix: Move integration test CI into PR test build CI
* ci: Add automated test ci which is a streamlined replica of pr test build ci
* ci: Re-add step to access branch name
* ci: Add KVM
* ci: Add filepath to trigger the test run from
* ci: Add required key
* ci: Add required key
* ci: Add missing secret key
* ci: Add missing secret key
* ci: Add nano secrets to workflow
* ci: Switch step to free space on runner
* ci: Remove timeout from workflow
* ci: Confirm impact that removing copy_monero_deps would have on entire workflow time
* ci: Update CI and temporarily remove cache related to emulator
* ci: Remove dynamic java version
* ci: Temporarily switch CI
* ci: Switch to 11.x jdk
* ci: Temporarily switch CI
* ci: Revert ubuntu version
* ci: Add more api levels
* ci: Add more target options
* ci: Settled on stable emulator matrix options
* ci: Add more target options
* ci: Modify flow
* ci: Streamline api levels to 28 and 29
* ci: One more trial
* ci: Switch to flutter drive
* ci: Reduce options
* ci: Remove haven from test
* ci: Check for solana in list
* ci: Adjust amounts and currencies for exchange flow
* ci: Set write response on failure to true
* ci: Split ci to funds and non funds related tests
* test: Test for Send flow scenario and minor restructuring for test folders and files
* chore: cleanup
* ci: Pause CI for now
* ci: Pause CI for now
* ci: Pause CI for now
* test: Restore wallets integration automated tests
* Fix: Add keys back to currency amount textfield widget
* fix: Switch variable name
* fix: remove automation for now
* tests: Automated tests for Create wallets flow
* tests: Further optimize common flows
* tests: Add missing await for call
* tests: Confirm Seeds Display Properly WIP
* tests: Confirm Seeds Display Correctly Automated Tests
* fix: Add missing pubspec params for bitcoin and bitcoin_cash
* feat: Automated Tests for Transaction History Flow
* fix: Add missing pubspec parameter
* feat: Automated Integration Tests for Transaction History flow
* test: Updating send page robot and also syncing branch with main
* test: Modifying tests to flow with wallet grouping implementation
* fix: Issue with transaction history test
* fix: Modifications to the PR and add automated confirmation for checking that all wallet types are restored or created correctly
* test: Attempting automation for testing
* fix: Issue from merge conflicts
* test: Remove automation of test in this PR
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* add confirm passphrase field and show/hide passphrase feature
* change error message
allow force appending translation to overwrite
* minor fix for showing frozen balance correctly [skip ci]
* remove debug prints [skip ci]
* feat: Integration tests setup and tests for Disclaimer, Welcome and Setup Pin Code pages
* feat: Integration test flow from start to restoring a wallet successfully done
* test: Dashboard view test and linking to flow
* feat: Testing the Exchange flow section, selecting sending and receiving currencies
* test: Successfully create an exchange section
* feat: Implement flow up to sending section
* test: Complete Exchange flow
* fix dependency issue
* test: Final cleanups
* feat: Add CI to run automated integration tests withan android emulator
* feat: Adjust Automated integration test CI to run on ubuntu 20.04-a
* fix: Move integration test CI into PR test build CI
* ci: Add automated test ci which is a streamlined replica of pr test build ci
* ci: Re-add step to access branch name
* ci: Add KVM
* ci: Add filepath to trigger the test run from
* ci: Add required key
* ci: Add required key
* ci: Add missing secret key
* ci: Add missing secret key
* ci: Add nano secrets to workflow
* ci: Switch step to free space on runner
* ci: Remove timeout from workflow
* ci: Confirm impact that removing copy_monero_deps would have on entire workflow time
* ci: Update CI and temporarily remove cache related to emulator
* ci: Remove dynamic java version
* ci: Temporarily switch CI
* ci: Switch to 11.x jdk
* ci: Temporarily switch CI
* ci: Revert ubuntu version
* ci: Add more api levels
* ci: Add more target options
* ci: Settled on stable emulator matrix options
* ci: Add more target options
* ci: Modify flow
* ci: Streamline api levels to 28 and 29
* ci: One more trial
* ci: Switch to flutter drive
* ci: Reduce options
* ci: Remove haven from test
* ci: Check for solana in list
* ci: Adjust amounts and currencies for exchange flow
* ci: Set write response on failure to true
* ci: Split ci to funds and non funds related tests
* test: Test for Send flow scenario and minor restructuring for test folders and files
* chore: cleanup
* ci: Pause CI for now
* ci: Pause CI for now
* ci: Pause CI for now
* Fix: Add keys back to currency amount textfield widget
* fix: Switch variable name
* fix: remove automation for now
* test: Updating send page robot and also syncing branch with main
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* chore: Setup
* feat: Add NowNodes for Tron Wallet and switch it to be the default node for Tron
* feat: Add NowNodes for Solana Wallet and switch it to be the default node for Solana
* fix: Add nownodes entry to secrets
* fix: Remove pubspec.lock in shared external
* fix conflicts with main
* change secrets names
* feat: Remove Solana NowNodes config
* feat: Remove Solana NowNodes config
* feat: Revert commented out code
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* save progress
* [skip ci]
* forgot to add [skip ci]
* not sure what exactly I changed but it just works now! ¯\_(ツ)_/¯
* status updates
* minor cleanup
* minor fix (toUppercase needed)
* remove unnecessary apikey + keep original raw values
* fix track url for quantex
* only increment raw values
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* chore: Initial setup for Tron Wallet
* feat: Create Tron Wallet base flow implemented, keys, address, receive, restore and proxy classes all setup
* feat: Display seed and key within the app
* feat: Activate restore from key and seed for Tron wallet
* feat: Add icon for tron wallet in wallet listing page
* feat: Activate display of receive address for tron
* feat: Fetch and display tron balance, sending transaction flow setup, fee limit calculation setup
* feat: Implement sending of native tron, setup sending of trc20 tokens
* chore: Rename function
* Delete lib/tron/tron.dart
* feat: Activate exchange for tron and its tokens, implement balance display for trc20 tokens and setup secrets configuration for tron
* feat: Implement tron token management, add, remove, delete, and get tokens in home settings view, also minor cleanup
* feat: Activate buy and sell for tron
* feat: Implement restore from QR, transactions history listing for both native transactions and trc20 transactions
* feat: Activate send all and do some minor cleanups
* chore: Fix some lint infos and warnings
* chore: Adjust configurations
* ci: Modify CI to create and add secrets for node
* fix: Fixes made while self reviewing the PR for this feature
* feat: Add guide for adding new wallet types, and add fixes to requested changes
* fix: Handle exceptions gracefully
* fix: Alternative for trc20 estimated fee
* fix: Fixes to display of amount and fee, removing clashes
* fix: Fee calculation WIP
* fix: Fix issue with handling of send all flow and display of amount and fee values before broadcasting transaction
* fix: PR review fixes and fix merge conflicts
* fix: Modify fetching assetOfTransaction [skip ci]
* fix: Move tron settings migration to 33
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
* fix: Still trying to figure out what's wrong
* Sync with remote
* feat: First run for walletconnect for solana
* chore: Add ankr api key to secrets
* remove duplicate transaction [skip ci]
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Fetch and save icons of SPL tokens when adding them
* feat: Implement fetch and save icons for ERC20 tokens when adding them
* fix: Add moralisApiKey to evm secrets
* Add check to ensure decimals cannot be zero
* - Fallback to adding erc20 token from web3dart
- Wrap fetching spl token icon in a try/catch block
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* Remove moonpay secret use exchange-helper instead
* Update lib/buy/moonpay/moonpay_provider.dart
* remove web3dart dep from cw_solana
* Apply new api for moonpay exchange helper
* Add Robinhood as Polygon buy-provider
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Create central package for EVM chains
* chore: Cleanup pubspec and add core evm dependencies
* feat: Replicated core evm chain files, time to start fixing the issues
* feat: Setup evm central package to handle all evm chains
* feat: Link up Polygon and Ethereum wallets to the centra evm package, fix bugs and issues, and optimze for better performance
* feat: Setup and adjust configs to reflect new evm configurations
* Remove unneeded file
* fix: Changes done while re-reviewing entire structure and refactor
* fix: Add evm chain wallet path to imports in configure file
* feat: Adjust implementation of parent class, remove unneeded files, remove windows, linux and mac directories, restructure the evm child classes
* fix: Make EVMChainWallet a central abstract class and adjust accordingly
* fix: Adjust transaction info, restructure EVMWalletChain to be an abstract, adjust external facing interfaces for polygon and ethereum, adjust configuration for ethereum and polygon in configure file
* fix: Testing issues
* fix: Add localization for nft tile and details page texts and add dashes for null responses
* fix: merge conflicts
* Minor fixes for building Monero.com
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* New versions
* update the new version text after macos [skip ci]
* add cake-wallet headers
* add nano/banano to getAddressFromStringPattern
* Revert "Exolix integration (#1080)"
This reverts commit 9eb6867ab9.
* fix: Bug in conditions check and clean up of repeated code in switch cases (#1117)
* update build numbers [skip ci]
---------
Co-authored-by: fosse <matt.cfosse@gmail.com>
Co-authored-by: Adegoke David <64401859+Blazebrain@users.noreply.github.com>