addAccount method
Future<void>
addAccount(
{ - required String walletId,
- required Future<String?> getPassword(),
- SecureStore? secureStore,
})
Implementation
Future<void> addAccount({
required String walletId,
required Future<String?> Function() getPassword,
SecureStore? secureStore,
}) async {
final wallet = state.wallets[walletId];
if (wallet == null) {
ref.read(walletErrorNotifierProvider.notifier).reportError(
const WalletError.accountError(message: 'Wallet not found'));
return;
}
secureStore = secureStore ??
await getSecureStore(
getPassword: getPassword,
type: wallet.secureStoreType,
);
late final String? seedPhrase;
try {
seedPhrase = await secureStore.getSecret(
key: seedPhraseKey(walletId),
);
} catch (e) {
ref.read(walletErrorNotifierProvider.notifier).reportError(
WalletError.accountError(message: 'Wrong password', exception: e));
return;
}
if (seedPhrase == null) {
ref.read(walletErrorNotifierProvider.notifier).reportError(
const WalletError.accountError(message: 'Secret not found'));
return;
}
final (walletWithAccount, account) = await WalletService.addAccount(
secureStore: secureStore,
wallet: wallet,
seedPhrase: seedPhrase,
);
updateWallet(wallet: walletWithAccount, accountId: account.id);
}