Add adapters for some of bitcoin, litecoin and monero transactions priorities. Replace direct calls of transaction priorities for exchange_view_model. (#593)

mkyq committed Nov 3, 2022 at 19:13 UTC 3ec414ae666c6a78f5219e967b5596c3d2b91335
4 files changed +37 -8
lib/bitcoin/cw_bitcoin.dart
+16
@@ -140,4 +140,20 @@ class CWBitcoin extends Bitcoin {
140 WalletService createLitecoinWalletService(Box<WalletInfo> walletInfoSource, Box<UnspentCoinsInfo> unspentCoinSource) {
141 return LitecoinWalletService(walletInfoSource, unspentCoinSource);
142 }
143 +
144 + @override
145 + TransactionPriority getBitcoinTransactionPriorityMedium()
146 + => BitcoinTransactionPriority.medium;
147 +
148 + @override
149 + TransactionPriority getLitecoinTransactionPriorityMedium()
150 + => LitecoinTransactionPriority.medium;
151 +
152 + @override
153 + TransactionPriority getBitcoinTransactionPrioritySlow()
154 + => BitcoinTransactionPriority.slow;
155 +
156 + @override
157 + TransactionPriority getLitecoinTransactionPrioritySlow()
158 + => LitecoinTransactionPriority.slow;
159 }
\ No newline at end of file
lib/monero/cw_monero.dart
+8
@@ -170,6 +170,14 @@ class CWMonero extends Monero {
170 return MoneroTransactionPriority.automatic;
171 }
172
173 + @override
174 + TransactionPriority getMoneroTransactionPrioritySlow()
175 + => MoneroTransactionPriority.slow;
176 +
177 + @override
178 + TransactionPriority getMoneroTransactionPriorityAutomatic()
179 + => MoneroTransactionPriority.automatic;
180 +
181 @override
182 TransactionPriority deserializeMoneroTransactionPriority({required int raw}) {
183 return MoneroTransactionPriority.deserialize(raw: raw);
lib/view_model/exchange/exchange_view_model.dart
+7 -8
@@ -7,8 +7,6 @@ import 'package:cake_wallet/exchange/sideshift/sideshift_exchange_provider.dart'
7 import 'package:cake_wallet/exchange/sideshift/sideshift_request.dart';
8 import 'package:cake_wallet/exchange/simpleswap/simpleswap_exchange_provider.dart';
9 import 'package:cake_wallet/view_model/settings/settings_view_model.dart';
10 -import 'package:cw_bitcoin/bitcoin_transaction_priority.dart';
11 -import 'package:cw_core/monero_transaction_priority.dart';
10 import 'package:cw_core/transaction_priority.dart';
11 import 'package:cake_wallet/exchange/simpleswap/simpleswap_request.dart';
12 import 'package:cw_core/wallet_base.dart';
@@ -16,6 +14,7 @@ import 'package:cw_core/crypto_currency.dart';
14 import 'package:cw_core/sync_status.dart';
15 import 'package:cw_core/wallet_type.dart';
16 import 'package:cake_wallet/bitcoin/bitcoin.dart';
17 +import 'package:cake_wallet/monero/monero.dart';
18 import 'package:cake_wallet/exchange/exchange_provider.dart';
19 import 'package:cake_wallet/exchange/limits.dart';
20 import 'package:cake_wallet/exchange/trade.dart';
@@ -200,11 +199,11 @@ abstract class ExchangeViewModelBase with Store {
199 switch (wallet.type) {
200 case WalletType.monero:
201 case WalletType.haven:
203 - return _settingsViewModel.transactionPriority == MoneroTransactionPriority.slow;
202 + return _settingsViewModel.transactionPriority == monero!.getMoneroTransactionPrioritySlow();
203 case WalletType.bitcoin:
205 - return _settingsViewModel.transactionPriority == BitcoinTransactionPriority.slow;
204 + return _settingsViewModel.transactionPriority == bitcoin!.getBitcoinTransactionPrioritySlow();
205 case WalletType.litecoin:
207 - return _settingsViewModel.transactionPriority == LitecoinTransactionPriority.slow;
206 + return _settingsViewModel.transactionPriority == bitcoin!.getLitecoinTransactionPrioritySlow();
207 default:
208 return false;
209 }
@@ -637,13 +636,13 @@ abstract class ExchangeViewModelBase with Store {
636 switch (wallet.type) {
637 case WalletType.monero:
638 case WalletType.haven:
640 - _settingsStore.priority[wallet.type] = MoneroTransactionPriority.automatic;
639 + _settingsStore.priority[wallet.type] = monero!.getMoneroTransactionPriorityAutomatic();
640 break;
641 case WalletType.bitcoin:
643 - _settingsStore.priority[wallet.type] = BitcoinTransactionPriority.medium;
642 + _settingsStore.priority[wallet.type] = bitcoin!.getBitcoinTransactionPriorityMedium();
643 break;
644 case WalletType.litecoin:
646 - _settingsStore.priority[wallet.type] = LitecoinTransactionPriority.medium;
645 + _settingsStore.priority[wallet.type] = bitcoin!.getLitecoinTransactionPriorityMedium();
646 break;
647 default:
648 break;
tool/configure.dart
+6
@@ -92,6 +92,10 @@ abstract class Bitcoin {
92 void updateUnspents(Object wallet);
93 WalletService createBitcoinWalletService(Box<WalletInfo> walletInfoSource, Box<UnspentCoinsInfo> unspentCoinSource);
94 WalletService createLitecoinWalletService(Box<WalletInfo> walletInfoSource, Box<UnspentCoinsInfo> unspentCoinSource);
95 + TransactionPriority getBitcoinTransactionPriorityMedium();
96 + TransactionPriority getLitecoinTransactionPriorityMedium();
97 + TransactionPriority getBitcoinTransactionPrioritySlow();
98 + TransactionPriority getLitecoinTransactionPrioritySlow();
99 }
100 """;
101
@@ -218,6 +222,8 @@ abstract class Monero {
222
223 int getHeigthByDate({required DateTime date});
224 TransactionPriority getDefaultTransactionPriority();
225 + TransactionPriority getMoneroTransactionPrioritySlow();
226 + TransactionPriority getMoneroTransactionPriorityAutomatic();
227 TransactionPriority deserializeMoneroTransactionPriority({required int raw});
228 List<TransactionPriority> getTransactionPriorities();
229 List<String> getMoneroWordList(String language);