mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-28 06:29:39 +00:00
291aa710c6
* Add initial checkbox for RBF * minor progress * minor progress * Minor progress * Debugging RBF * Minor fix * Fix RBF transaction inputs (now it's working) * New versions Fix issues with Monero.com * Add sending for Solana tokens exchanges * Add default keyword for P2WPKH [skip ci] * chore: Switch solana commitment to confirmed to reduced blockhash expiration (#1313) * Modify test workflow to send arm64-v8a build only * Fix workflow build path * Remove unnecessary reverse of txId * Update Replace by fee with the new bitcoin base implementation * btc custom fee priority * add feeRate to btc credential * UI fixes * add check if the change covers the fee * Update settings_store.dart * add check confirmation for rbf * add a check to see if the change is sufficient for the new fee * addressing PR comments * update localization files * addressing PR comments * minor fixes * Update transaction_details_view_model.dart * Minor Fix for building Monero.com [skip ci] * update localization files * add bump fee page * update localisation files * Update cw_bitcoin.dart * fix merge conflict * fix UI issues * Fix Conflicts, Fix RBF flow, some enhancements * prevent default custom fee rate * hide outputs and inputs items * minor fix [skip ci] * addressing PR comments * remove rbf checkbox * default picker value * minor ui change [skip ci] * min fee rate [skip ci] * Minor fix and some minor enhancements --------- Co-authored-by: OmarHatem <omarh.ismail1@gmail.com> Co-authored-by: Adegoke David <64401859+Blazebrain@users.noreply.github.com>
163 lines
4.8 KiB
Dart
163 lines
4.8 KiB
Dart
import 'package:cw_core/transaction_priority.dart';
|
|
|
|
class BitcoinTransactionPriority extends TransactionPriority {
|
|
const BitcoinTransactionPriority({required String title, required int raw})
|
|
: super(title: title, raw: raw);
|
|
|
|
static const List<BitcoinTransactionPriority> all = [fast, medium, slow, custom];
|
|
static const BitcoinTransactionPriority slow =
|
|
BitcoinTransactionPriority(title: 'Slow', raw: 0);
|
|
static const BitcoinTransactionPriority medium =
|
|
BitcoinTransactionPriority(title: 'Medium', raw: 1);
|
|
static const BitcoinTransactionPriority fast =
|
|
BitcoinTransactionPriority(title: 'Fast', raw: 2);
|
|
static const BitcoinTransactionPriority custom =
|
|
BitcoinTransactionPriority(title: 'Custom', raw: 3);
|
|
|
|
static BitcoinTransactionPriority deserialize({required int raw}) {
|
|
switch (raw) {
|
|
case 0:
|
|
return slow;
|
|
case 1:
|
|
return medium;
|
|
case 2:
|
|
return fast;
|
|
case 3:
|
|
return custom;
|
|
default:
|
|
throw Exception('Unexpected token: $raw for BitcoinTransactionPriority deserialize');
|
|
}
|
|
}
|
|
|
|
String get units => 'sat';
|
|
|
|
@override
|
|
String toString() {
|
|
var label = '';
|
|
|
|
switch (this) {
|
|
case BitcoinTransactionPriority.slow:
|
|
label = 'Slow ~24hrs'; // '${S.current.transaction_priority_slow} ~24hrs';
|
|
break;
|
|
case BitcoinTransactionPriority.medium:
|
|
label = 'Medium'; // S.current.transaction_priority_medium;
|
|
break;
|
|
case BitcoinTransactionPriority.fast:
|
|
label = 'Fast';
|
|
break; // S.current.transaction_priority_fast;
|
|
case BitcoinTransactionPriority.custom:
|
|
label = 'Custom';
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return label;
|
|
}
|
|
|
|
String labelWithRate(int rate, int? customRate) {
|
|
final rateValue = this == custom ? customRate ??= 0 : rate;
|
|
return '${toString()} ($rateValue ${units}/byte)';
|
|
}
|
|
}
|
|
|
|
class LitecoinTransactionPriority extends BitcoinTransactionPriority {
|
|
const LitecoinTransactionPriority({required String title, required int raw})
|
|
: super(title: title, raw: raw);
|
|
|
|
static const List<LitecoinTransactionPriority> all = [fast, medium, slow];
|
|
static const LitecoinTransactionPriority slow =
|
|
LitecoinTransactionPriority(title: 'Slow', raw: 0);
|
|
static const LitecoinTransactionPriority medium =
|
|
LitecoinTransactionPriority(title: 'Medium', raw: 1);
|
|
static const LitecoinTransactionPriority fast =
|
|
LitecoinTransactionPriority(title: 'Fast', raw: 2);
|
|
|
|
static LitecoinTransactionPriority deserialize({required int raw}) {
|
|
switch (raw) {
|
|
case 0:
|
|
return slow;
|
|
case 1:
|
|
return medium;
|
|
case 2:
|
|
return fast;
|
|
default:
|
|
throw Exception('Unexpected token: $raw for LitecoinTransactionPriority deserialize');
|
|
}
|
|
}
|
|
|
|
@override
|
|
String get units => 'Latoshi';
|
|
|
|
@override
|
|
String toString() {
|
|
var label = '';
|
|
|
|
switch (this) {
|
|
case LitecoinTransactionPriority.slow:
|
|
label = 'Slow'; // S.current.transaction_priority_slow;
|
|
break;
|
|
case LitecoinTransactionPriority.medium:
|
|
label = 'Medium'; // S.current.transaction_priority_medium;
|
|
break;
|
|
case LitecoinTransactionPriority.fast:
|
|
label = 'Fast'; // S.current.transaction_priority_fast;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return label;
|
|
}
|
|
|
|
}
|
|
class BitcoinCashTransactionPriority extends BitcoinTransactionPriority {
|
|
const BitcoinCashTransactionPriority({required String title, required int raw})
|
|
: super(title: title, raw: raw);
|
|
|
|
static const List<BitcoinCashTransactionPriority> all = [fast, medium, slow];
|
|
static const BitcoinCashTransactionPriority slow =
|
|
BitcoinCashTransactionPriority(title: 'Slow', raw: 0);
|
|
static const BitcoinCashTransactionPriority medium =
|
|
BitcoinCashTransactionPriority(title: 'Medium', raw: 1);
|
|
static const BitcoinCashTransactionPriority fast =
|
|
BitcoinCashTransactionPriority(title: 'Fast', raw: 2);
|
|
|
|
static BitcoinCashTransactionPriority deserialize({required int raw}) {
|
|
switch (raw) {
|
|
case 0:
|
|
return slow;
|
|
case 1:
|
|
return medium;
|
|
case 2:
|
|
return fast;
|
|
default:
|
|
throw Exception('Unexpected token: $raw for BitcoinCashTransactionPriority deserialize');
|
|
}
|
|
}
|
|
|
|
@override
|
|
String get units => 'Satoshi';
|
|
|
|
@override
|
|
String toString() {
|
|
var label = '';
|
|
|
|
switch (this) {
|
|
case BitcoinCashTransactionPriority.slow:
|
|
label = 'Slow'; // S.current.transaction_priority_slow;
|
|
break;
|
|
case BitcoinCashTransactionPriority.medium:
|
|
label = 'Medium'; // S.current.transaction_priority_medium;
|
|
break;
|
|
case BitcoinCashTransactionPriority.fast:
|
|
label = 'Fast'; // S.current.transaction_priority_fast;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return label;
|
|
}
|
|
}
|
|
|