Skip to content

Commit

Permalink
Simplify CredentialsManager
Browse files Browse the repository at this point in the history
  • Loading branch information
erdemyerebasmaz committed Jul 10, 2023
1 parent 6a49de5 commit a61aefd
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 34 deletions.
4 changes: 2 additions & 2 deletions lib/background/breez_service_initializer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Future<BreezBridge> initializeBreezServices() async {
print("Is Breez Services initialized: $isBreezInitialized");
if (!isBreezInitialized) {
final credentialsManager = CredentialsManager(keyChain: injector.keychain);
final credentials = await credentialsManager.restoreCredentials();
final seed = bip39.mnemonicToSeed(credentials.mnemonic);
final mnemonic = await credentialsManager.restoreMnemonic();
final seed = bip39.mnemonicToSeed(mnemonic);
print("Retrieved credentials");
await breezLib.connect(config: (await Config.instance()).sdkConfig, seed: seed);
print("Initialized Services");
Expand Down
6 changes: 3 additions & 3 deletions lib/bloc/account/account_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class AccountBloc extends Cubit<AccountState> with HydratedMixin {
String? mnemonic,
}) async {
if (mnemonic != null) {
await _credentialsManager.storeCredentials(mnemonic: mnemonic);
await _credentialsManager.storeMnemonic(mnemonic: mnemonic);
emit(state.copyWith(
initial: false,
verificationStatus: VerificationStatus.VERIFIED,
Expand Down Expand Up @@ -107,8 +107,8 @@ class AccountBloc extends Cubit<AccountState> with HydratedMixin {
_log.v("starting sdk once");
try {
emit(state.copyWith(connectionStatus: ConnectionStatus.CONNECTING));
final credentials = await _credentialsManager.restoreCredentials();
final seed = bip39.mnemonicToSeed(credentials.mnemonic);
final mnemonic = await _credentialsManager.restoreMnemonic();
final seed = bip39.mnemonicToSeed(mnemonic);
await _breezLib.connect(config: (await Config.instance()).sdkConfig, seed: seed);
emit(state.copyWith(connectionStatus: ConnectionStatus.CONNECTED));
} catch (e) {
Expand Down
36 changes: 7 additions & 29 deletions lib/bloc/account/credential_manager.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import 'dart:convert';
import 'dart:io';

import 'package:c_breez/services/keychain.dart';
Expand All @@ -13,7 +12,7 @@ class CredentialsManager {

CredentialsManager({required this.keyChain});

Future storeCredentials({
Future storeMnemonic({
required String mnemonic,
}) async {
try {
Expand All @@ -24,11 +23,11 @@ class CredentialsManager {
}
}

Future<Credentials> restoreCredentials() async {
Future<String> restoreMnemonic() async {
try {
String mnemonic = await _restoreMnemonic();
String? mnemonicStr = await keyChain.read(accountMnemonic);
_log.i("Restored credentials successfully");
return Credentials(mnemonic: mnemonic);
return mnemonicStr!;
} catch (err) {
throw Exception(err.toString());
}
Expand All @@ -39,37 +38,16 @@ class CredentialsManager {
await keyChain.write(accountMnemonic, mnemonic);
}

Future<String> _restoreMnemonic() async {
String? mnemonicStr = await keyChain.read(accountMnemonic);
return mnemonicStr!;
}

Future<List<File>> exportCredentials() async {
try {
final Directory tempDir = await getTemporaryDirectory();
var keysDir = tempDir.createTempSync("keys");
final File credentialsFile = await File('${keysDir.path}/creds').create(recursive: true);
Credentials credentials = await restoreCredentials();
credentialsFile.writeAsString(jsonEncode(credentials));
final File mnemonicFile = await File('${keysDir.path}/phrase').create(recursive: true);
mnemonicFile.writeAsString(credentials.mnemonic);
return [credentialsFile, mnemonicFile];
String mnemonic = await restoreMnemonic();
mnemonicFile.writeAsString(mnemonic);
return [mnemonicFile];
} catch (e) {
throw e.toString();
}
}
}

class Credentials {
final String mnemonic;

Credentials({required this.mnemonic});

Credentials.fromJson(
Map<String, dynamic> json,
) : mnemonic = json['mnemonic'];

Map<String, dynamic> toJson() => {
'mnemonic': mnemonic,
};
}

0 comments on commit a61aefd

Please sign in to comment.