Remove polyseed seed workaround and fix properly by just storing the wallet (#1215)

This commit is contained in:
Konstantin Ullrich 2023-12-04 12:52:43 +01:00 committed by GitHub
parent b3d579c24a
commit 3c28e25259
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 29 deletions

View file

@ -1,14 +1,16 @@
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import 'package:flutter/foundation.dart';
import 'package:cw_monero/api/convert_utf8_to_string.dart';
import 'package:cw_monero/api/signatures.dart';
import 'package:cw_monero/api/types.dart';
import 'package:cw_monero/api/monero_api.dart';
import 'package:cw_monero/api/exceptions/wallet_opening_exception.dart';
import 'package:cw_monero/api/exceptions/wallet_creation_exception.dart';
import 'package:cw_monero/api/exceptions/wallet_opening_exception.dart';
import 'package:cw_monero/api/exceptions/wallet_restore_from_keys_exception.dart';
import 'package:cw_monero/api/exceptions/wallet_restore_from_seed_exception.dart';
import 'package:cw_monero/api/monero_api.dart';
import 'package:cw_monero/api/signatures.dart';
import 'package:cw_monero/api/types.dart';
import 'package:cw_monero/api/wallet.dart';
import 'package:ffi/ffi.dart';
import 'package:flutter/foundation.dart';
final createWalletNative = moneroApi
.lookup<NativeFunction<create_wallet>>('create_wallet')
@ -175,6 +177,8 @@ void restoreWalletFromSpendKeySync(
calloc.free(languagePointer);
calloc.free(spendKeyPointer);
storeSync();
if (!isWalletRestored) {
throw WalletRestoreFromKeysException(
message: convertUTF8ToString(pointer: errorMessagePointer));

View file

@ -97,8 +97,7 @@ abstract class MoneroWalletBase
ObservableMap<CryptoCurrency, MoneroBalance> balance;
@override
String get seed => _seed;
String _seed = monero_wallet.getSeed();
String get seed => monero_wallet.getSeed();
@override
MoneroWalletKeys get keys => MoneroWalletKeys(
@ -114,11 +113,7 @@ abstract class MoneroWalletBase
Timer? _autoSaveTimer;
List<MoneroUnspent> unspentCoins;
Future<void> init({String seedFallback = ""}) async {
if (_seed.isEmpty) {
_seed = seedFallback;
}
Future<void> init() async {
await walletAddresses.init();
balance = ObservableMap<CryptoCurrency, MoneroBalance>.of(<CryptoCurrency, MoneroBalance>{
currency: MoneroBalance(

View file

@ -2,7 +2,6 @@ import 'dart:io';
import 'package:cw_core/monero_wallet_utils.dart';
import 'package:cw_core/pathForWallet.dart';
import 'package:cw_core/unspent_coins_info.dart';
import 'package:cw_core/utils/file.dart';
import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/wallet_credentials.dart';
import 'package:cw_core/wallet_info.dart';
@ -134,12 +133,7 @@ class MoneroWalletService extends WalletService<
return openWallet(name, password);
}
if (wallet.seed.isEmpty) {
final seedFallback = await _getSeedBackup(path, password);
await wallet.init(seedFallback: seedFallback);
} else {
await wallet.init();
}
return wallet;
} catch (e) {
@ -295,8 +289,6 @@ class MoneroWalletService extends WalletService<
restoreHeight: height,
spendKey: spendKey);
await writeData(path: "$path.seed", password: password, data: seed);
final wallet = MoneroWallet(
walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource);
await wallet.init();
@ -304,13 +296,6 @@ class MoneroWalletService extends WalletService<
return wallet;
}
Future<String> _getSeedBackup(String path, String password) async {
final seedFilePath = "$path.seed";
final seedFile = File(seedFilePath);
if (!seedFile.existsSync()) return "";
return read(path: seedFilePath, password: password);
}
Future<void> repairOldAndroidWallet(String name) async {
try {
if (!Platform.isAndroid) {