mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-03-23 23:58:48 +00:00
fix: add monero rename related fixes into main (#1002)
This commit is contained in:
parent
e34ba6cfbc
commit
8996a46784
2 changed files with 59 additions and 18 deletions
|
@ -269,26 +269,59 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> renameWalletFiles(String newWalletName) async {
|
Future<void> renameWalletFiles(String newWalletName) async {
|
||||||
final currentWalletPath = await pathForWallet(name: name, type: type);
|
final currentWalletDirPath = await pathForWalletDir(name: name, type: type);
|
||||||
final currentCacheFile = File(currentWalletPath);
|
|
||||||
final currentKeysFile = File('$currentWalletPath.keys');
|
|
||||||
final currentAddressListFile = File('$currentWalletPath.address.txt');
|
|
||||||
|
|
||||||
final newWalletPath = await pathForWallet(name: newWalletName, type: type);
|
try {
|
||||||
|
// -- rename the waller folder --
|
||||||
|
final currentWalletDir =
|
||||||
|
Directory(await pathForWalletDir(name: name, type: type));
|
||||||
|
final newWalletDirPath =
|
||||||
|
await pathForWalletDir(name: newWalletName, type: type);
|
||||||
|
await currentWalletDir.rename(newWalletDirPath);
|
||||||
|
|
||||||
// Copies current wallet files into new wallet name's dir and files
|
// -- use new waller folder to rename files with old names still --
|
||||||
if (currentCacheFile.existsSync()) {
|
final renamedWalletPath = newWalletDirPath + '/$name';
|
||||||
await currentCacheFile.copy(newWalletPath);
|
|
||||||
}
|
|
||||||
if (currentKeysFile.existsSync()) {
|
|
||||||
await currentKeysFile.copy('$newWalletPath.keys');
|
|
||||||
}
|
|
||||||
if (currentAddressListFile.existsSync()) {
|
|
||||||
await currentAddressListFile.copy('$newWalletPath.address.txt');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete old name's dir and files
|
final currentCacheFile = File(renamedWalletPath);
|
||||||
await Directory(currentWalletPath).delete(recursive: true);
|
final currentKeysFile = File('$renamedWalletPath.keys');
|
||||||
|
final currentAddressListFile = File('$renamedWalletPath.address.txt');
|
||||||
|
|
||||||
|
final newWalletPath =
|
||||||
|
await pathForWallet(name: newWalletName, type: type);
|
||||||
|
|
||||||
|
if (currentCacheFile.existsSync()) {
|
||||||
|
await currentCacheFile.rename(newWalletPath);
|
||||||
|
}
|
||||||
|
if (currentKeysFile.existsSync()) {
|
||||||
|
await currentKeysFile.rename('$newWalletPath.keys');
|
||||||
|
}
|
||||||
|
if (currentAddressListFile.existsSync()) {
|
||||||
|
await currentAddressListFile.rename('$newWalletPath.address.txt');
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
final currentWalletPath = await pathForWallet(name: name, type: type);
|
||||||
|
|
||||||
|
final currentCacheFile = File(currentWalletPath);
|
||||||
|
final currentKeysFile = File('$currentWalletPath.keys');
|
||||||
|
final currentAddressListFile = File('$currentWalletPath.address.txt');
|
||||||
|
|
||||||
|
final newWalletPath =
|
||||||
|
await pathForWallet(name: newWalletName, type: type);
|
||||||
|
|
||||||
|
// Copies current wallet files into new wallet name's dir and files
|
||||||
|
if (currentCacheFile.existsSync()) {
|
||||||
|
await currentCacheFile.copy(newWalletPath);
|
||||||
|
}
|
||||||
|
if (currentKeysFile.existsSync()) {
|
||||||
|
await currentKeysFile.copy('$newWalletPath.keys');
|
||||||
|
}
|
||||||
|
if (currentAddressListFile.existsSync()) {
|
||||||
|
await currentAddressListFile.copy('$newWalletPath.address.txt');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete old name's dir and files
|
||||||
|
await Directory(currentWalletDirPath).delete(recursive: true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -27,6 +27,14 @@ class WalletLoadingService {
|
||||||
await keyService.deleteWalletPassword(walletName: name);
|
await keyService.deleteWalletPassword(walletName: name);
|
||||||
|
|
||||||
await walletService.rename(name, password, newName);
|
await walletService.rename(name, password, newName);
|
||||||
|
|
||||||
|
// set shared preferences flag based on previous wallet name
|
||||||
|
if (type == WalletType.monero) {
|
||||||
|
final oldNameKey = PreferencesKey.moneroWalletUpdateV1Key(name);
|
||||||
|
final isPasswordUpdated = sharedPreferences.getBool(oldNameKey) ?? false;
|
||||||
|
final newNameKey = PreferencesKey.moneroWalletUpdateV1Key(newName);
|
||||||
|
await sharedPreferences.setBool(newNameKey, isPasswordUpdated);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<WalletBase> load(WalletType type, String name) async {
|
Future<WalletBase> load(WalletType type, String name) async {
|
||||||
|
@ -61,4 +69,4 @@ class WalletLoadingService {
|
||||||
isPasswordUpdated = true;
|
isPasswordUpdated = true;
|
||||||
await sharedPreferences.setBool(key, isPasswordUpdated);
|
await sharedPreferences.setBool(key, isPasswordUpdated);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue