public GetsendMoneyResult sendMoney(string BurstAddress, string amountNQT, string feeNQT, string secretPhrase, string message, bool encrypmf) { GetsendMoneyResult SMR = new GetsendMoneyResult(); BNWalletAPIClasses.ErrorCodes er; HttpResponseMessage resp = new HttpResponseMessage(); string respStr; Dictionary <string, string> fpDict = new Dictionary <string, string>() { { "requestType", "sendMoney" }, { "secretPhrase", secretPhrase }, { "recipient", BurstAddress }, { "amountNQT", amountNQT }, { "feeNQT", "100000000" }, { "deadline", "60" } }; if (encrypmf) { fpDict.Add("messageToEncrypt", message); } else { fpDict.Add("message", message); } fp = new FormUrlEncodedContent(fpDict); try { resp = client.PostAsync("burst", fp).Result; respStr = resp.Content.ReadAsStringAsync().Result; } catch { respStr = null; } if (!string.IsNullOrEmpty(respStr)) { if (respStr.Contains("\"errorCode\":")) { er = JsonConvert.DeserializeObject <BNWalletAPIClasses.ErrorCodes>(respStr); SMR.success = false; SMR.errorMsg = er.errorDescription; //GAIR.errorMsg = fp; } else { BNWalletAPIClasses.sendMoneyResponse smr = JsonConvert.DeserializeObject <BNWalletAPIClasses.sendMoneyResponse>(respStr); SMR.success = true; SMR.signatureHash = smr.signatureHash; SMR.transaction = smr.transaction; } } else { SMR.success = false; SMR.errorMsg = "Receive blank response from API call"; } return(SMR); }
private async void Send_Burst_btn_Click(object sender, RoutedEventArgs e) { try { UARDB = new UserAccountRuntimeDB(); UAR = UARDB.Get(); UserAccountsDB userAccountDB = new UserAccountsDB(); UserAccounts[] userAccount = userAccountDB.GetAccountList(); string SecretPhrase = StringCipher.Decrypt(userAccount[userAccountIndex[WalletName.Text]].PassPhrase); MessageDialog alertDialog = new MessageDialog("Are you sure all the details are correct?"); alertDialog.Title = "Confirmation"; alertDialog.Commands.Add(new UICommand("Yes") { Id = 0 }); alertDialog.Commands.Add(new UICommand("No") { Id = 1 }); alertDialog.DefaultCommandIndex = 0; alertDialog.CancelCommandIndex = 1; var result = await alertDialog.ShowAsync(); if ((int)result.Id == 0) { double amntdbl = Convert.ToDouble(Amount.Text); amntdbl = amntdbl * 100000000; string amount = amntdbl.ToString(); double amntdblconf = Convert.ToDouble(amount); amntdblconf = amntdblconf / 100000000; Amount.Text = amntdblconf.ToString("#,0.00000000"); if (Fee.Text == "") { Fee.Text = "0"; } double feeamnt = Convert.ToDouble(Fee.Text); feeamnt = feeamnt * 100000000; string fee = feeamnt.ToString(); double feeamntconf = Convert.ToDouble(fee); feeamntconf = feeamntconf / 100000000; Fee.Text = feeamntconf.ToString("#,0.00000000"); BNWAPI = new BNWalletAPI(); GetsendMoneyResult gsmr = BNWAPI.sendMoney(Recepient_Address.Text, amount, fee, SecretPhrase, Message.Text, cbEncrypt.IsChecked.HasValue); if (gsmr.success) { GetTransactionResult gtr = BNWAPI.getTransaction(gsmr.transaction); if (gtr.success) { GetMiningInfo gmi = BNWAPI.getMiningInfo(); if (gmi.success) { MessageDialog ConfirmationDetailsDialog = new MessageDialog("Sender Address: " + gtr.senderRS + "\n" + "Amount of Burst sent: " + Amount.Text + "\n" + "Fee: " + Fee.Text + "\n" + "Recipient Address: " + gtr.recipientRS + "\n" + "Signature Hash: " + gsmr.signatureHash + "\n" + "Transaction ID: " + gsmr.transaction + "\n" + "Block Height: " + gmi.height); ConfirmationDetailsDialog.Title = "Confirmation Details"; ConfirmationDetailsDialog.Commands.Add(new UICommand("Ok") { Id = 0 }); var ConfResult = await ConfirmationDetailsDialog.ShowAsync(); if ((int)result.Id == 0) { Recepient_Address.Text = ""; Amount.Text = ""; Fee.Text = ""; Message.Text = ""; PopulateWalletList(); } } } } else { MessageDialog ConfirmationDetailsDialog = new MessageDialog("Received Error: " + gsmr.errorMsg); ConfirmationDetailsDialog.Title = "API Error"; ConfirmationDetailsDialog.Commands.Add(new UICommand("Ok") { Id = 0 }); var ConfResult = await ConfirmationDetailsDialog.ShowAsync(); } } else { } } catch { MessageDialog ConfirmationDetailsDialog = new MessageDialog("Received Error: A valid Burst Wallet needs to be selected before any funds can be sent"); ConfirmationDetailsDialog.Title = "Error"; ConfirmationDetailsDialog.Commands.Add(new UICommand("Ok") { Id = 0 }); var ConfResult = await ConfirmationDetailsDialog.ShowAsync(); } }