/// <summary> /// Sends BTC to the receipient address, as long as the following conditions are met: /// 1. Entered amount is Valid /// 2. There are sufficient funds /// 3. Receipient address is valid /// 4. Password is correct /// </summary> private async void ExecuteSendBtc() { if (AddressValid() && AmountBtcOK() && EnoughFunds() && PasswordCorrect()) { Money AmountToSend = Money.Parse(AmountBtc); var readyTx = _wallet.BuildTransaction(ReceipientAddress, AmountToSend, AmountFee); var networkChoice = Network.GetNetworkFromBase58Data(ReceipientAddress); string titleConfirm; string messageConfirm; //PROMPT USER FOR CONFIRMATION if (networkChoice.Equals(Network.TestNet)) { titleConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Title"); messageConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Message_Testnet") .Replace("*btc_amount*", AmountBtc) .Replace("*btc_symbol*", Global.VML.UiSettings.Symbol) .Replace("*address*", ReceipientAddress); } else { titleConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Title"); messageConfirm = TextTools.RetrieveStringFromResource("Send_Dialog_Confirm_Message_Mainnet") .Replace("*btc_amount*", AmountBtc) .Replace("*btc_symbol*", Global.VML.UiSettings.Symbol) .Replace("*symbol*", Global.VML.Currency.ActiveSymbol) .Replace("*curr_amount*", AmountCurr) .Replace("*curr*", Global.VML.Currency.ActiveCurrency) .Replace("*address*", ReceipientAddress); } var result = await _sview.ShowMessageAsync(titleConfirm, messageConfirm, MessageDialogStyle.AffirmativeAndNegative); if (result.Equals(MessageDialogResult.Affirmative)) { var sendAttempt = await _wallet.SendBitcoin(readyTx); if (sendAttempt.Equals(true)) { string titleSuccess = TextTools.RetrieveStringFromResource("Send_Dialog_Success_Title"); string messageSuccess = TextTools.RetrieveStringFromResource("Send_Dialog_Success_Message"); await _sview.ShowMessageAsync(titleSuccess, messageSuccess, MessageDialogStyle.Affirmative); _sview.Close(); } else { string titleFailed = TextTools.RetrieveStringFromResource("Send_Dialog_Unsuccess_Title"); string messageFailed = TextTools.RetrieveStringFromResource("Send_Dialog_Unsuccess_Message"); await _sview.ShowMessageAsync(titleFailed, messageFailed, MessageDialogStyle.Affirmative); } } } }