Skip to content

Commit 28ad70f

Browse files
Merge pull request #1145 from cypherstack/factorn
Factorn
2 parents 0fcfdac + c89d6c3 commit 28ad70f

File tree

36 files changed

+1915
-1238
lines changed

36 files changed

+1915
-1238
lines changed
-269 KB
Binary file not shown.
-267 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.

lib/models/isar/models/blockchain_data/address.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ class Address extends CryptoCurrencyAddress {
101101
}
102102

103103
@override
104-
String toString() => "{ "
104+
String toString() =>
105+
"{ "
105106
"id: $id, "
106107
"walletId: $walletId, "
107108
"value: $value, "
@@ -130,10 +131,7 @@ class Address extends CryptoCurrencyAddress {
130131
return jsonEncode(result);
131132
}
132133

133-
static Address fromJsonString(
134-
String jsonString, {
135-
String? overrideWalletId,
136-
}) {
134+
static Address fromJsonString(String jsonString, {String? overrideWalletId}) {
137135
final json = jsonDecode(jsonString);
138136
final derivationPathString = json["derivationPath"] as String?;
139137

@@ -176,7 +174,8 @@ enum AddressType {
176174
p2tr,
177175
solana,
178176
cardanoShelley,
179-
xelis;
177+
xelis,
178+
fact0rn;
180179

181180
String get readableName {
182181
switch (this) {
@@ -216,6 +215,8 @@ enum AddressType {
216215
return "Cardano Shelley";
217216
case AddressType.xelis:
218217
return "Xelis";
218+
case AddressType.fact0rn:
219+
return "FACT0RN";
219220
}
220221
}
221222
}

lib/pages/add_wallet_views/frost_ms/restore/restore_frost_ms_wallet_view.dart

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'dart:async';
22
import 'dart:io';
33

4-
import 'package:barcode_scan2/barcode_scan2.dart';
54
import 'package:flutter/material.dart';
65
import 'package:flutter/services.dart';
76
import 'package:flutter_riverpod/flutter_riverpod.dart';
@@ -14,6 +13,7 @@ import '../../../../providers/providers.dart';
1413
import '../../../../services/frost.dart';
1514
import '../../../../themes/stack_colors.dart';
1615
import '../../../../utilities/assets.dart';
16+
import '../../../../utilities/barcode_scanner_interface.dart';
1717
import '../../../../utilities/constants.dart';
1818
import '../../../../utilities/logger.dart';
1919
import '../../../../utilities/show_loading.dart';
@@ -212,7 +212,7 @@ class _RestoreFrostMsWalletViewState
212212
await Future<void>.delayed(const Duration(milliseconds: 75));
213213
}
214214

215-
final qrResult = await BarcodeScanner.scan();
215+
final qrResult = await ref.read(pBarcodeScanner).scan();
216216

217217
configFieldController.text = qrResult.rawContent;
218218

@@ -238,11 +238,26 @@ class _RestoreFrostMsWalletViewState
238238
}
239239
}
240240
} on PlatformException catch (e, s) {
241-
Logging.instance.w(
242-
"Failed to get camera permissions while trying to scan qr code: ",
243-
error: e,
244-
stackTrace: s,
245-
);
241+
if (mounted) {
242+
try {
243+
await checkCamPermDeniedMobileAndOpenAppSettings(
244+
context,
245+
logging: Logging.instance,
246+
);
247+
} catch (e, s) {
248+
Logging.instance.e(
249+
"Failed to check cam permissions",
250+
error: e,
251+
stackTrace: s,
252+
);
253+
}
254+
} else {
255+
Logging.instance.w(
256+
"Failed to get camera permissions while trying to scan qr code: ",
257+
error: e,
258+
stackTrace: s,
259+
);
260+
}
246261
}
247262
}
248263

lib/pages/add_wallet_views/restore_wallet_view/restore_view_only_wallet_view.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import '../../../providers/global/secure_store_provider.dart';
1515
import '../../../providers/providers.dart';
1616
import '../../../themes/stack_colors.dart';
1717
import '../../../utilities/assets.dart';
18-
import '../../../utilities/barcode_scanner_interface.dart';
1918
import '../../../utilities/clipboard_interface.dart';
2019
import '../../../utilities/constants.dart';
2120
import '../../../utilities/text_styles.dart';
@@ -50,7 +49,7 @@ class RestoreViewOnlyWalletView extends ConsumerStatefulWidget {
5049
required this.coin,
5150
required this.restoreBlockHeight,
5251
this.enableLelantusScanning = false,
53-
this.barcodeScanner = const BarcodeScannerWrapper(),
52+
5453
this.clipboard = const ClipboardWrapper(),
5554
});
5655

@@ -60,7 +59,6 @@ class RestoreViewOnlyWalletView extends ConsumerStatefulWidget {
6059
final CryptoCurrency coin;
6160
final int restoreBlockHeight;
6261
final bool enableLelantusScanning;
63-
final BarcodeScannerInterface barcodeScanner;
6462
final ClipboardInterface clipboard;
6563

6664
@override

lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class RestoreWalletView extends ConsumerStatefulWidget {
7878
required this.mnemonicPassphrase,
7979
required this.restoreBlockHeight,
8080
this.enableLelantusScanning = false,
81-
this.barcodeScanner = const BarcodeScannerWrapper(),
81+
8282
this.clipboard = const ClipboardWrapper(),
8383
});
8484

@@ -91,7 +91,6 @@ class RestoreWalletView extends ConsumerStatefulWidget {
9191
final int restoreBlockHeight;
9292
final bool enableLelantusScanning;
9393

94-
final BarcodeScannerInterface barcodeScanner;
9594
final ClipboardInterface clipboard;
9695

9796
@override
@@ -111,8 +110,6 @@ class _RestoreWalletViewState extends ConsumerState<RestoreWalletView> {
111110
final List<FormInputStatus> _inputStatuses = [];
112111
// final List<FocusNode> _focusNodes = [];
113112

114-
late final BarcodeScannerInterface scanner;
115-
116113
late final TextSelectionControls textSelectionControls;
117114

118115
bool _hideSeedWords = false;
@@ -162,7 +159,6 @@ class _RestoreWalletViewState extends ConsumerState<RestoreWalletView> {
162159
? CustomCupertinoTextSelectionControls(onPaste: onControlsPaste)
163160
: CustomMaterialTextSelectionControls(onPaste: onControlsPaste);
164161

165-
scanner = widget.barcodeScanner;
166162
for (int i = 0; i < _seedWordCount; i++) {
167163
_controllers.add(TextEditingController());
168164
_inputStatuses.add(FormInputStatus.empty);
@@ -608,7 +604,7 @@ class _RestoreWalletViewState extends ConsumerState<RestoreWalletView> {
608604

609605
Future<void> scanMnemonicQr() async {
610606
try {
611-
final qrResult = await scanner.scan();
607+
final qrResult = await ref.read(pBarcodeScanner).scan();
612608

613609
final results = AddressUtils.decodeQRSeedData(qrResult.rawContent);
614610

@@ -625,11 +621,26 @@ class _RestoreWalletViewState extends ConsumerState<RestoreWalletView> {
625621
}
626622
} on PlatformException catch (e, s) {
627623
// likely failed to get camera permissions
628-
Logging.instance.e(
629-
"Restore wallet qr scan failed: $e",
630-
error: e,
631-
stackTrace: s,
632-
);
624+
if (mounted) {
625+
try {
626+
await checkCamPermDeniedMobileAndOpenAppSettings(
627+
context,
628+
logging: Logging.instance,
629+
);
630+
} catch (e, s) {
631+
Logging.instance.e(
632+
"Failed to check cam permissions",
633+
error: e,
634+
stackTrace: s,
635+
);
636+
}
637+
} else {
638+
Logging.instance.e(
639+
"Restore wallet qr scan failed: $e",
640+
error: e,
641+
stackTrace: s,
642+
);
643+
}
633644
}
634645
}
635646

lib/pages/address_book_views/subviews/add_address_book_entry_view.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import '../../../providers/ui/address_book_providers/contact_name_is_not_empty_s
2121
import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart';
2222
import '../../../themes/stack_colors.dart';
2323
import '../../../utilities/assets.dart';
24-
import '../../../utilities/barcode_scanner_interface.dart';
2524
import '../../../utilities/clipboard_interface.dart';
2625
import '../../../utilities/constants.dart';
2726
import '../../../utilities/text_styles.dart';
@@ -43,13 +42,11 @@ import 'new_contact_address_entry_form.dart';
4342
class AddAddressBookEntryView extends ConsumerStatefulWidget {
4443
const AddAddressBookEntryView({
4544
super.key,
46-
this.barcodeScanner = const BarcodeScannerWrapper(),
4745
this.clipboard = const ClipboardWrapper(),
4846
});
4947

5048
static const String routeName = "/addAddressBookEntry";
5149

52-
final BarcodeScannerInterface barcodeScanner;
5350
final ClipboardInterface clipboard;
5451

5552
@override
@@ -63,7 +60,6 @@ class _AddAddressBookEntryViewState
6360
late final FocusNode nameFocusNode;
6461
late final ScrollController scrollController;
6562

66-
late final BarcodeScannerInterface scanner;
6763
late final ClipboardInterface clipboard;
6864

6965
Emoji? _selectedEmoji;
@@ -72,7 +68,7 @@ class _AddAddressBookEntryViewState
7268
@override
7369
initState() {
7470
ref.refresh(addressEntryDataProviderFamilyRefresher);
75-
scanner = widget.barcodeScanner;
71+
7672
clipboard = widget.clipboard;
7773

7874
nameController = TextEditingController();
@@ -114,7 +110,6 @@ class _AddAddressBookEntryViewState
114110
key: Key("contactAddressEntryForm_$id"),
115111
id: ref.read(addressEntryDataProvider(id)).id,
116112
clipboard: clipboard,
117-
barcodeScanner: scanner,
118113
),
119114
);
120115
setState(() {});

lib/pages/address_book_views/subviews/add_new_contact_address_view.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import '../../../providers/ui/address_book_providers/address_entry_data_provider
1818
import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart';
1919
import '../../../themes/stack_colors.dart';
2020
import '../../../utilities/assets.dart';
21-
import '../../../utilities/barcode_scanner_interface.dart';
2221
import '../../../utilities/clipboard_interface.dart';
2322
import '../../../utilities/text_styles.dart';
2423
import '../../../utilities/util.dart';
@@ -33,15 +32,13 @@ class AddNewContactAddressView extends ConsumerStatefulWidget {
3332
const AddNewContactAddressView({
3433
super.key,
3534
required this.contactId,
36-
this.barcodeScanner = const BarcodeScannerWrapper(),
3735
this.clipboard = const ClipboardWrapper(),
3836
});
3937

4038
static const String routeName = "/addNewContactAddress";
4139

4240
final String contactId;
4341

44-
final BarcodeScannerInterface barcodeScanner;
4542
final ClipboardInterface clipboard;
4643

4744
@override
@@ -53,13 +50,12 @@ class _AddNewContactAddressViewState
5350
extends ConsumerState<AddNewContactAddressView> {
5451
late final String contactId;
5552

56-
late final BarcodeScannerInterface barcodeScanner;
5753
late final ClipboardInterface clipboard;
5854

5955
@override
6056
void initState() {
6157
contactId = widget.contactId;
62-
barcodeScanner = widget.barcodeScanner;
58+
6359
clipboard = widget.clipboard;
6460

6561
super.initState();
@@ -173,11 +169,7 @@ class _AddNewContactAddressViewState
173169
],
174170
),
175171
const SizedBox(height: 16),
176-
NewContactAddressEntryForm(
177-
id: 0,
178-
barcodeScanner: barcodeScanner,
179-
clipboard: clipboard,
180-
),
172+
NewContactAddressEntryForm(id: 0, clipboard: clipboard),
181173
const SizedBox(height: 16),
182174
const Spacer(),
183175
Row(

lib/pages/address_book_views/subviews/edit_contact_address_view.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import '../../../providers/ui/address_book_providers/address_entry_data_provider
1818
import '../../../providers/ui/address_book_providers/valid_contact_state_provider.dart';
1919
import '../../../themes/stack_colors.dart';
2020
import '../../../utilities/assets.dart';
21-
import '../../../utilities/barcode_scanner_interface.dart';
2221
import '../../../utilities/clipboard_interface.dart';
2322
import '../../../utilities/text_styles.dart';
2423
import '../../../utilities/util.dart';
@@ -34,7 +33,7 @@ class EditContactAddressView extends ConsumerStatefulWidget {
3433
super.key,
3534
required this.contactId,
3635
required this.addressEntry,
37-
this.barcodeScanner = const BarcodeScannerWrapper(),
36+
3837
this.clipboard = const ClipboardWrapper(),
3938
});
4039

@@ -43,7 +42,6 @@ class EditContactAddressView extends ConsumerStatefulWidget {
4342
final String contactId;
4443
final ContactAddressEntry addressEntry;
4544

46-
final BarcodeScannerInterface barcodeScanner;
4745
final ClipboardInterface clipboard;
4846

4947
@override
@@ -56,7 +54,6 @@ class _EditContactAddressViewState
5654
late final String contactId;
5755
late final ContactAddressEntry addressEntry;
5856

59-
late final BarcodeScannerInterface barcodeScanner;
6057
late final ClipboardInterface clipboard;
6158

6259
Future<void> save(ContactEntry contact) async {
@@ -97,7 +94,6 @@ class _EditContactAddressViewState
9794
void initState() {
9895
contactId = widget.contactId;
9996
addressEntry = widget.addressEntry;
100-
barcodeScanner = widget.barcodeScanner;
10197
clipboard = widget.clipboard;
10298

10399
super.initState();
@@ -211,11 +207,7 @@ class _EditContactAddressViewState
211207
],
212208
),
213209
const SizedBox(height: 16),
214-
NewContactAddressEntryForm(
215-
id: 0,
216-
barcodeScanner: barcodeScanner,
217-
clipboard: clipboard,
218-
),
210+
NewContactAddressEntryForm(id: 0, clipboard: clipboard),
219211
const SizedBox(height: 24),
220212
ConditionalParent(
221213
condition: isDesktop,

0 commit comments

Comments
 (0)