mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-18 05:51:34 +02:00
* feat: enhance dEuro Savings UI and functionality with fiat support and tooltips * feat: add "Reinvest Interest" feature and improve dEuro Savings functionality - Implemented the "Reinvest Interest" feature for dEuro Savings. - Updated localized strings for multiple languages. - Enhanced error handling for insufficient gas fees. - Incorporated loading state and tooltips in Savings Card and Interest Card. - Improved UI responsiveness and button state management. * feat: localize deuro tooltips * feat: enhance dEuro Savings with reinvestment feature and localized strings - Added "Reinvest Interest" functionality for dEuro Savings. - Updated localized strings across multiple languages. - Improved modal bottom sheet handling for savings add/remove operations. - Enhanced tooltips and UI responsiveness. * feat: improve dEuro Savings page with info chips and localized strings * Update res/values/strings_de.arb * fix: update dEuro action type reset in transaction handling
54 lines
1.7 KiB
Dart
54 lines
1.7 KiB
Dart
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.';
|
|
|
|
EVMChainTransactionCreationException.fromMessage(this.exceptionMessage);
|
|
|
|
@override
|
|
String toString() => exceptionMessage;
|
|
}
|
|
|
|
|
|
class EVMChainTransactionFeesException implements Exception {
|
|
final String exceptionMessage;
|
|
|
|
EVMChainTransactionFeesException(String currency)
|
|
: exceptionMessage = 'Transaction failed due to insufficient $currency balance to cover the fees.';
|
|
|
|
@override
|
|
String toString() => exceptionMessage;
|
|
}
|
|
|
|
class InsufficientGasFeeException implements Exception {
|
|
final String exceptionMessage;
|
|
final BigInt? requiredGasFee;
|
|
final BigInt? currentBalance;
|
|
|
|
InsufficientGasFeeException({
|
|
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;
|
|
}
|