addWallet method
Add a new wallet to the system
Implementation
Future<void> addWallet(Wallet wallet) async {
// Initialize before persisting so failed setup (for example, an
// unreachable LNURL endpoint) cannot leave a partially added wallet.
final provider = _providers[wallet.type];
var walletToStore = wallet;
if (provider != null) {
final updatedWallet = await provider.initialize(wallet);
if (updatedWallet != null) {
walletToStore = updatedWallet;
}
}
await _repository.storeWallet(walletToStore);
await _addWalletToMemory(walletToStore);
if (walletToStore.canReceive &&
_repository.getDefaultWalletIdForReceiving() == null) {
_repository.setDefaultWalletForReceiving(walletToStore.id);
}
if (walletToStore.canSend &&
_repository.getDefaultWalletIdForSending() == null) {
_repository.setDefaultWalletForSending(walletToStore.id);
}
_updateCombinedStreams();
}