CW-551-Refactor-EVM-Chains (#1256)
* 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>
2024-01-30 19:01:48 +01:00
|
|
|
import 'package:cw_core/crypto_currency.dart';
|
|
|
|
|
|
|
|
class EVMChainTransactionCreationException implements Exception {
|
|
|
|
final String exceptionMessage;
|
|
|
|
|
|
|
|
EVMChainTransactionCreationException(CryptoCurrency currency)
|
|
|
|
: exceptionMessage = 'Wrong balance. Not enough ${currency.title} on your balance.';
|
|
|
|
|
2024-05-04 20:44:50 -05:00
|
|
|
EVMChainTransactionCreationException.fromMessage(this.exceptionMessage);
|
|
|
|
|
CW-551-Refactor-EVM-Chains (#1256)
* 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>
2024-01-30 19:01:48 +01:00
|
|
|
@override
|
|
|
|
String toString() => exceptionMessage;
|
|
|
|
}
|
2024-03-29 19:55:29 +01:00
|
|
|
|
|
|
|
|
|
|
|
class EVMChainTransactionFeesException implements Exception {
|
|
|
|
final String exceptionMessage;
|
|
|
|
|
2025-03-02 17:29:53 +02:00
|
|
|
EVMChainTransactionFeesException(String currency)
|
|
|
|
: exceptionMessage = 'Transaction failed due to insufficient $currency balance to cover the fees.';
|
2024-03-29 19:55:29 +01:00
|
|
|
|
|
|
|
@override
|
|
|
|
String toString() => exceptionMessage;
|
|
|
|
}
|
2025-06-27 15:53:46 +01:00
|
|
|
|
|
|
|
class DeuroGasFeeException implements Exception {
|
|
|
|
final String exceptionMessage;
|
|
|
|
final BigInt? requiredGasFee;
|
|
|
|
final BigInt? currentBalance;
|
|
|
|
|
|
|
|
DeuroGasFeeException({
|
|
|
|
this.requiredGasFee,
|
|
|
|
this.currentBalance,
|
|
|
|
}) : exceptionMessage = _buildMessage(requiredGasFee, currentBalance);
|
|
|
|
|
|
|
|
static String _buildMessage(BigInt? requiredGasFee, BigInt? currentBalance) {
|
|
|
|
const baseMessage = 'Insufficient ETH for gas fees.';
|
|
|
|
const addEthMessage = ' Please add ETH to your wallet to cover transaction fees.';
|
|
|
|
|
|
|
|
if (requiredGasFee != null) {
|
|
|
|
final requiredEth = (requiredGasFee / BigInt.from(10).pow(18)).toStringAsFixed(8);
|
|
|
|
final balanceInfo = currentBalance != null
|
|
|
|
? ', Available: ${(currentBalance / BigInt.from(10).pow(18)).toStringAsFixed(8)} ETH'
|
|
|
|
: '';
|
|
|
|
return '$baseMessage Required: ~$requiredEth ETH$balanceInfo.$addEthMessage';
|
|
|
|
}
|
|
|
|
|
|
|
|
return '$baseMessage$addEthMessage';
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
String toString() => exceptionMessage;
|
|
|
|
}
|