Validate bitcoin's saved transaction priority
OmarHatem committed
Dec 15, 2022 at 02:00 UTC
710de57847d617b6c4b3d508f61d32809100b81e
4 files changed
+20
-20
cw_bitcoin/lib/bitcoin_transaction_priority.dart
+4
-2
@@ -13,6 +13,8 @@ class BitcoinTransactionPriority extends TransactionPriority {
13
static const BitcoinTransactionPriority fast =
14
BitcoinTransactionPriority(title: 'Fast', raw: 2);
15
16
+ static const BitcoinTransactionPriority defaultPriority = medium;
17
+
18
static BitcoinTransactionPriority deserialize({required int raw}) {
19
switch (raw) {
20
case 0:
@@ -22,7 +24,7 @@ class BitcoinTransactionPriority extends TransactionPriority {
24
case 2:
25
return fast;
26
default:
25
- return medium;
27
+ throw Exception('Unexpected token: $raw for BitcoinTransactionPriority deserialize');
28
}
29
}
30
@@ -73,7 +75,7 @@ class LitecoinTransactionPriority extends BitcoinTransactionPriority {
75
case 2:
76
return fast;
77
default:
76
- return medium;
78
+ throw Exception('Unexpected token: $raw for LitecoinTransactionPriority deserialize');
79
}
80
}
81
cw_core/lib/monero_transaction_priority.dart
+1
-17
@@ -21,22 +21,6 @@ class MoneroTransactionPriority extends TransactionPriority {
21
static const fastest = MoneroTransactionPriority(title: 'Fastest', raw: 4);
22
static const standard = slow;
23
24
-
25
- static List<MoneroTransactionPriority> forWalletType(WalletType type) {
26
- switch (type) {
27
- case WalletType.monero:
28
- return MoneroTransactionPriority.all;
29
- case WalletType.bitcoin:
30
- return [
31
- MoneroTransactionPriority.slow,
32
- MoneroTransactionPriority.automatic,
33
- MoneroTransactionPriority.fast
34
- ];
35
- default:
36
- return [];
37
- }
38
- }
39
-
24
static MoneroTransactionPriority deserialize({required int raw}) {
25
switch (raw) {
26
case 0:
@@ -50,7 +34,7 @@ class MoneroTransactionPriority extends TransactionPriority {
34
case 4:
35
return fastest;
36
default:
53
- return automatic;
37
+ throw Exception('Unexpected token: $raw for MoneroTransactionPriority deserialize');
38
}
39
}
40
lib/entities/default_settings_migration.dart
+14
@@ -1,10 +1,12 @@
1
import 'dart:io' show File, Platform;
2
import 'package:cake_wallet/bitcoin/bitcoin.dart';
3
+import 'package:cw_bitcoin/bitcoin_transaction_priority.dart';
4
import 'package:cw_core/pathForWallet.dart';
5
import 'package:cake_wallet/entities/secret_store_key.dart';
6
import 'package:flutter/foundation.dart';
7
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
8
import 'package:hive/hive.dart';
9
+import 'package:share_plus/share_plus.dart';
10
import 'package:shared_preferences/shared_preferences.dart';
11
import 'package:cake_wallet/entities/preferences_key.dart';
12
import 'package:cw_core/wallet_type.dart';
@@ -139,6 +141,10 @@ Future defaultSettingsMigration(
141
await addOnionNode(nodes);
142
break;
143
144
+ case 19:
145
+ await validateBitcoinSavedTransactionPriority(sharedPreferences);
146
+ break;
147
+
148
default:
149
break;
150
}
@@ -154,6 +160,14 @@ Future defaultSettingsMigration(
160
PreferencesKey.currentDefaultSettingsMigrationVersion, version);
161
}
162
163
+Future<void> validateBitcoinSavedTransactionPriority(SharedPreferences sharedPreferences) async {
164
+ int? savedBitcoinPriority = sharedPreferences.getInt(PreferencesKey.bitcoinTransactionPriority);
165
+ if (!BitcoinTransactionPriority.all.any((element) => element.raw == savedBitcoinPriority)) {
166
+ await sharedPreferences.setInt(
167
+ PreferencesKey.bitcoinTransactionPriority, BitcoinTransactionPriority.defaultPriority.raw);
168
+ }
169
+}
170
+
171
Future<void> addOnionNode(Box<Node> nodes) async {
172
final onionNodeUri = "cakexmrl7bonq7ovjka5kuwuyd3f7qnkz6z6s6dmsy3uckwra7bvggyd.onion:18081";
173
lib/main.dart
+1
-1
@@ -129,7 +129,7 @@ Future<void> main() async {
129
exchangeTemplates: exchangeTemplates,
130
transactionDescriptions: transactionDescriptions,
131
secureStorage: secureStorage,
132
- initialMigrationVersion: 18);
132
+ initialMigrationVersion: 19);
133
runApp(App());
134
} catch (e, stacktrace) {
135
runApp(MaterialApp(