From 30c5690c24ebd1cc191ca2fec2cc19c12fbb99a7 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Thu, 22 Jun 2023 13:20:11 +1000 Subject: [PATCH] main: Custom timeouts --- FireWallet/MainForm.cs | 104 +++++++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 45 deletions(-) diff --git a/FireWallet/MainForm.cs b/FireWallet/MainForm.cs index c36973d..34619ad 100644 --- a/FireWallet/MainForm.cs +++ b/FireWallet/MainForm.cs @@ -43,7 +43,6 @@ namespace FireWallet { InitializeComponent(); panelaccount.Visible = true; - httpClient.Timeout = TimeSpan.FromSeconds(10); } private async void MainForm_Load(object sender, EventArgs e) { @@ -92,7 +91,7 @@ namespace FireWallet toolStripDropDownButtonHelp.DropDown.BackColor = ColorTranslator.FromHtml(Theme["background"]); // Load node - if (await LoadNode() != true) this.Close(); + if (await LoadNode(ss) != true) this.Close(); // If node load caused app to close, exit load function if (this.Disposing || this.IsDisposed) return; @@ -182,15 +181,17 @@ namespace FireWallet } #endregion #region Settings - private async Task LoadNode() + private async Task LoadNode(SplashScreen? ss) { HSD = false; if (!File.Exists(dir + "node.txt")) { + ss.Hide(); NodeForm cf = new NodeForm(); timerNodeStatus.Stop(); cf.ShowDialog(); timerNodeStatus.Start(); + ss.Show(); } if (!File.Exists(dir + "node.txt")) { @@ -199,7 +200,7 @@ namespace FireWallet await Task.Delay(1000); AddLog("Close Failed"); } - + StreamReader sr = new StreamReader(dir + "node.txt"); NodeSettings = new Dictionary(); while (!sr.EndOfStream) @@ -232,6 +233,12 @@ namespace FireWallet break; } + if (NodeSettings.ContainsKey("Timeout")) + { + int timeout = Convert.ToInt32(NodeSettings["Timeout"]); + httpClient.Timeout = TimeSpan.FromSeconds(timeout); + } else httpClient.Timeout = TimeSpan.FromSeconds(10); + if (NodeSettings.ContainsKey("HSD")) { if (NodeSettings["HSD"].ToLower() == "true") @@ -310,6 +317,8 @@ namespace FireWallet if (hideScreen) { HSDProcess.StartInfo.RedirectStandardError = true; + // Send errors to log + HSDProcess.ErrorDataReceived += (sender, e) => AddLog("HSD Error: " + e.Data); } else { @@ -760,14 +769,16 @@ namespace FireWallet toolStripStatusLabelLedger.Text = "Cold Wallet"; toolStripStatusLabelLedger.Visible = true; buttonRevealAll.Visible = false; - + buttonRedeemAll.Visible = false; + buttonSendAll.Visible = false; } else { WatchOnly = false; toolStripStatusLabelLedger.Visible = false; buttonRevealAll.Visible = true; - + buttonRedeemAll.Visible = true; + buttonSendAll.Visible = true; } @@ -853,6 +864,43 @@ namespace FireWallet toolStripStatusLabelaccount.Text = "Account: Not Logged In"; textBoxaccountpassword.Focus(); } + private async void buttonRevealAll_Click(object sender, EventArgs e) + { + buttonRevealAll.Enabled = false; + string content = "{\"method\": \"sendreveal\"}"; + string response = await APIPost("", true, content); + AddLog(response); + if (response == "Error") + { + AddLog("Error sending reveal"); + NotifyForm notifyForm = new NotifyForm("Error sending reveal"); + notifyForm.ShowDialog(); + notifyForm.Dispose(); + buttonRevealAll.Enabled = true; + return; + } + JObject resp = JObject.Parse(response); + if (resp["error"].ToString() != "") + { + AddLog("Error sending reveal"); + AddLog(resp["error"].ToString()); + JObject error = JObject.Parse(resp["error"].ToString()); + NotifyForm notifyForm = new NotifyForm("Error sending reveal\n" + error["message"].ToString()); + notifyForm.ShowDialog(); + notifyForm.Dispose(); + buttonRevealAll.Enabled = true; + return; + } + if (resp.ContainsKey("result")) + { + JObject result = JObject.Parse(resp["result"].ToString()); + string hash = result["hash"].ToString(); + NotifyForm notifyForm = new NotifyForm("Reveal sent\n" + hash, "Explorer", UserSettings["explorer-tx"] + hash); + notifyForm.ShowDialog(); + notifyForm.Dispose(); + } + buttonRevealAll.Enabled = true; + } private async void buttonRedeemAll_Click(object sender, EventArgs e) { buttonRedeemAll.Enabled = false; @@ -1086,6 +1134,7 @@ namespace FireWallet return false; } this.Enabled = false; + this.Visible = false; // Show splash SplashScreen ss = new SplashScreen(false); bool splash = false; @@ -1107,7 +1156,6 @@ namespace FireWallet // Kill node if (HSDProcess != null) { - this.Opacity = 0; HSDProcess.Kill(); AddLog("Killed HSD"); Thread.Sleep(1000); @@ -1134,10 +1182,12 @@ namespace FireWallet try { HSDProcess.StartInfo.CreateNoWindow = hideScreen; - if (hideScreen) { HSDProcess.StartInfo.RedirectStandardError = true; + // Log errors to AddLog + HSDProcess.ErrorDataReceived += (sender, e) => AddLog("HSD Error: " + e.Data); + } else { @@ -1179,10 +1229,6 @@ namespace FireWallet HSDProcess.StartInfo.Arguments = HSDProcess.StartInfo.Arguments + " --prefix " + bobPath; } } - - - - HSDProcess.Start(); // Wait for HSD to start await Task.Delay(2000); @@ -1218,6 +1264,7 @@ namespace FireWallet ss.CloseSplash(); } this.Enabled = true; + this.Visible = true; return true; } private async Task GetAddress() @@ -2337,39 +2384,6 @@ namespace FireWallet AddLog(ex.Message); } } - private async void buttonRevealAll_Click(object sender, EventArgs e) - { - string content = "{\"method\": \"sendreveal\"}"; - string response = await APIPost("", true, content); - AddLog(response); - if (response == "Error") - { - AddLog("Error sending reveal"); - NotifyForm notifyForm = new NotifyForm("Error sending reveal"); - notifyForm.ShowDialog(); - notifyForm.Dispose(); - return; - } - JObject resp = JObject.Parse(response); - if (resp["error"].ToString() != "") - { - AddLog("Error sending reveal"); - AddLog(resp["error"].ToString()); - JObject error = JObject.Parse(resp["error"].ToString()); - NotifyForm notifyForm = new NotifyForm("Error sending reveal\n" + error["message"].ToString()); - notifyForm.ShowDialog(); - notifyForm.Dispose(); - return; - } - if (resp.ContainsKey("result")) - { - JObject result = JObject.Parse(resp["result"].ToString()); - string hash = result["hash"].ToString(); - NotifyForm notifyForm = new NotifyForm("Reveal sent\n" + hash, "Explorer", UserSettings["explorer-tx"] + hash); - notifyForm.ShowDialog(); - notifyForm.Dispose(); - } - } private void textBoxDomainSearch_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 13)