WIP: CW-665 Implement AirGapped Monero Transactions (#1535)

* replace qr scanner with fast_scanner

* bump java version

* fix qr code scanning

* add flashlight and camera switch

* airgap work

* commitTransactionUR

* bump fast_scanner, fix configure script

* add option to restore wallet from NERO qr format

* fixes to the flow and logic
use gsed or otherwise it fails?

* remove Expanded() to fix URQR on release builds

* cache key to allow app updates

* rename cache key

* [skip ci] cache key.jks in cache_dependencies

* update fast_scanner to work on ios, with light mlkit dependency

* ui fixes

* error handling fix

* update fast_scanner to drop iOS dependency

* changes from review

* Update lib/entities/qr_scanner.dart

* changes from review

* remove useless commit

* don't set state multiple times
remove return Container() for non monero wallets

* return on fail
don't handle empty qr codes

* set node as trusted
display primary address in seed screen

* fix wow and haven

* migrate node to trusted

* - update trusted node for existing users
- update locales
- fix conflicts
- move menu item

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
cyan 2024-11-09 19:59:47 +01:00 committed by GitHub
parent 8e12fb1ad9
commit cea3084bb3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
84 changed files with 1318 additions and 141 deletions

View file

@ -276,6 +276,7 @@ import 'package:cw_core/get_height_by_date.dart';
import 'package:cw_core/monero_amount_format.dart';
import 'package:cw_core/monero_transaction_priority.dart';
import 'package:cw_monero/monero_unspent.dart';
import 'package:cw_monero/api/account_list.dart';
import 'package:cw_monero/monero_wallet_service.dart';
import 'package:cw_monero/api/wallet_manager.dart';
import 'package:cw_monero/monero_wallet.dart';
@ -379,6 +380,12 @@ abstract class Monero {
Future<int> getCurrentHeight();
Future<bool> commitTransactionUR(Object wallet, String ur);
String exportOutputsUR(Object wallet, bool all);
bool importKeyImagesUR(Object wallet, String ur);
WalletCredentials createMoneroRestoreWalletFromKeysCredentials({
required String name,
required String spendKey,
@ -398,6 +405,7 @@ abstract class Monero {
int formatterMoneroParseAmount({required String amount});
Account getCurrentAccount(Object wallet);
void monerocCheck();
bool isViewOnly();
void setCurrentAccount(Object wallet, int id, String label, String? balance);
void onStartup();
int getTransactionInfoAccountId(TransactionInfo tx);