public async void AddNewAddressToSeed() { var seed = Settings.Default.Seed; try { AddIsEnabled = false; var ticker = SelectedTicker; if (SelectedTicker.CoinSymbol == "Auto Detect") { try { var resultAuto = await _walletService.DetectAddress(Address); if (string.IsNullOrEmpty(resultAuto.CoinSymbol)) { throw new Exception(); } ticker.CoinSymbol = resultAuto.CoinSymbol; } catch { MessageBox.Show("Could not detect wallet ticker."); AddIsEnabled = true; return; } } var result = await _walletService.AddNewAddress(seed, Address, ticker.CoinSymbol); if (string.IsNullOrEmpty(result.Address)) { MessageBox.Show("Could not add wallet"); } else { Application.Current.Dispatcher.Invoke(() => { App.Kernel.Get <MainViewModel>().WalletList.Add(new Wallet() { Address = result.Address, CoinName = result.CoinName, ExplorerURL = result.ExplorerURL, CoinSymbol = result.CoinSymbol }); }); _poolingService.AddAddress(new WalletDTO() { Seed = Settings.Default.Seed, Address = result.Address }); _poolingService.ForceUpdate(); TryClose(); } } catch (Exception e) { MessageBox.Show(e.Message); } AddIsEnabled = true; }