mirror of
https://github.com/Nathanwoodburn/FireWallet.git
synced 2025-12-06 08:33:00 +11:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
843f824b2f
|
|||
|
71a04edc02
|
|||
|
30c5690c24
|
|||
|
af9327a1fa
|
|||
|
07345d7f33
|
|||
|
d41c72faff
|
|||
|
a4a35ad62e
|
|||
|
9f0f7214e2
|
|||
|
742cd9bafd
|
|||
|
9f33c74bb0
|
|||
|
8f241fc90a
|
|||
|
dc09194759
|
|||
|
638a367029
|
|||
|
026849575d
|
|||
|
d1a150114e
|
|||
|
5d59bdee64
|
|||
|
74548a22e2
|
|||
|
ac2aa06888
|
|||
|
429cf0d67b
|
|||
|
38838096d6
|
|||
|
fae4bff32b
|
|||
|
df8c675588
|
|||
|
de7109eddc
|
|||
|
1a98a6a1c6
|
|||
|
859562ac22
|
|||
|
0a5412478c
|
|||
|
90cc614ebf
|
|||
|
a024ce7afc
|
|||
|
88ee50f4a6
|
|||
|
23cbace1ea
|
|||
|
6894e9c079
|
|||
|
95d0498672
|
@@ -1,12 +1,11 @@
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
using Microsoft.VisualBasic;
|
||||
using System.Windows.Forms.VisualStyles;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using ContentAlignment = System.Drawing.ContentAlignment;
|
||||
using Point = System.Drawing.Point;
|
||||
|
||||
namespace FireWallet
|
||||
@@ -60,7 +59,7 @@ namespace FireWallet
|
||||
List<Batch> temp = new List<Batch>();
|
||||
foreach (Batch batch in batches)
|
||||
{
|
||||
if (batch.domain != domain && batch.method != operation)
|
||||
if (batch.domain != domain || batch.method != operation)
|
||||
{
|
||||
temp.Add(batch);
|
||||
}
|
||||
@@ -124,7 +123,7 @@ namespace FireWallet
|
||||
List<Batch> temp = new List<Batch>();
|
||||
foreach (Batch batch in batches)
|
||||
{
|
||||
if (batch.domain != domain && batch.method != operation)
|
||||
if (batch.domain != domain || batch.method != operation)
|
||||
{
|
||||
temp.Add(batch);
|
||||
}
|
||||
@@ -184,7 +183,7 @@ namespace FireWallet
|
||||
List<Batch> temp = new List<Batch>();
|
||||
foreach (Batch batch in batches)
|
||||
{
|
||||
if (batch.domain != domain && batch.method != operation)
|
||||
if (batch.domain != domain || batch.method != operation)
|
||||
{
|
||||
temp.Add(batch);
|
||||
}
|
||||
@@ -240,7 +239,7 @@ namespace FireWallet
|
||||
List<Batch> temp = new List<Batch>();
|
||||
foreach (Batch batch in batches)
|
||||
{
|
||||
if (batch.domain != domain && batch.method != operation)
|
||||
if (batch.domain != domain || batch.method != operation)
|
||||
{
|
||||
temp.Add(batch);
|
||||
}
|
||||
@@ -465,7 +464,7 @@ namespace FireWallet
|
||||
HttpClient httpClient = new HttpClient();
|
||||
private async void buttonSend_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!mainForm.watchOnly)
|
||||
if (!mainForm.WatchOnly)
|
||||
{
|
||||
string batchTX = "[" + string.Join(", ", batches.Select(batch => batch.ToString())) + "]";
|
||||
string content = "{\"method\": \"sendbatch\",\"params\":[ " + batchTX + "]}";
|
||||
@@ -508,7 +507,7 @@ namespace FireWallet
|
||||
JObject result = JObject.Parse(jObject["result"].ToString());
|
||||
string hash = result["hash"].ToString();
|
||||
AddLog("Batch sent with hash: " + hash);
|
||||
NotifyForm notifyForm2 = new NotifyForm("Batch sent\nThis might take a while to mine.", "Explorer", mainForm.userSettings["explorer-tx"] + hash);
|
||||
NotifyForm notifyForm2 = new NotifyForm("Batch sent\nThis might take a while to mine.", "Explorer", mainForm.UserSettings["explorer-tx"] + hash);
|
||||
notifyForm2.ShowDialog();
|
||||
notifyForm2.Dispose();
|
||||
this.Close();
|
||||
@@ -552,7 +551,7 @@ namespace FireWallet
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.StartInfo.FileName = "node.exe";
|
||||
proc.StartInfo.WorkingDirectory = dir + "hsd-ledger/bin/";
|
||||
string args = "hsd-ledger/bin/hsd-ledger sendraw \"\"" + response.Replace("\"","\\\"") + "\"\" [" + domainslist + "] --api-key " + mainForm.nodeSettings["Key"] + " -w " + mainForm.account;
|
||||
string args = "hsd-ledger/bin/hsd-ledger sendraw \"\"" + response.Replace("\"","\\\"") + "\"\" [" + domainslist + "] --api-key " + mainForm.NodeSettings["Key"] + " -w " + mainForm.Account;
|
||||
|
||||
proc.StartInfo.Arguments = dir + args;
|
||||
var outputBuilder = new StringBuilder();
|
||||
@@ -578,7 +577,7 @@ namespace FireWallet
|
||||
if (output.Contains("Submitted TXID"))
|
||||
{
|
||||
string hash = output.Substring(output.IndexOf("Submitted TXID") + 16, 64);
|
||||
string link = mainForm.userSettings["explorer-tx"] + hash;
|
||||
string link = mainForm.UserSettings["explorer-tx"] + hash;
|
||||
NotifyForm notifySuccess = new NotifyForm("Transaction Sent\nThis transaction could take up to 20 minutes to mine",
|
||||
"Explorer", link);
|
||||
notifySuccess.ShowDialog();
|
||||
@@ -620,7 +619,7 @@ namespace FireWallet
|
||||
}
|
||||
else if (b.method == "UPDATE")
|
||||
{
|
||||
sw.WriteLine(b.domain + "," + b.method + ",[" + string.Join(", ", b.update.Select(record => record.ToString())) + "]");
|
||||
sw.WriteLine(b.domain + "," + b.method + ",[" + string.Join(";", b.update.Select(record => record.ToString())) + "]");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -652,14 +651,54 @@ namespace FireWallet
|
||||
{
|
||||
if (split[1] == "UPDATE")
|
||||
{
|
||||
// Select operation and import domains
|
||||
string[] newDomains = new string[domains.Length + 1];
|
||||
for (int i = 0; i < domains.Length; i++)
|
||||
// Join the rest of the line
|
||||
string[] updateArray = new string[split.Length - 2];
|
||||
for (int i = 0; i < updateArray.Length; i++)
|
||||
{
|
||||
newDomains[i] = domains[i];
|
||||
updateArray[i] = split[i + 2];
|
||||
}
|
||||
newDomains[domains.Length] = split[0];
|
||||
domains = newDomains;
|
||||
string updateString = string.Join(",", updateArray);
|
||||
updateString.TrimStart('[');
|
||||
updateString.TrimEnd(']');
|
||||
|
||||
string[] updateSplit = updateString.Split(';');
|
||||
DNS[] UpdateRecords = new DNS[updateSplit.Length];
|
||||
int r = 0;
|
||||
foreach (string update in updateSplit)
|
||||
{
|
||||
string[] updateRecord = update.Split(',');
|
||||
string type = updateRecord[0];
|
||||
type = type.Split(':')[1].Replace("\"","").Trim();
|
||||
switch (type)
|
||||
{
|
||||
case "NS":
|
||||
string ns = updateRecord[1].Split(':')[1].Replace("\"","").Replace("}","").Trim();
|
||||
UpdateRecords[r] = new DNS(type, ns);
|
||||
break;
|
||||
case "DS":
|
||||
int keyTag = int.Parse(updateRecord[1].Split(':')[1]);
|
||||
int algorithm = int.Parse(updateRecord[2].Split(':')[1]);
|
||||
int digestType = int.Parse(updateRecord[3].Split(':')[1]);
|
||||
string digest = updateRecord[4].Split(':')[1].Replace("\"", "").Replace("}", "");
|
||||
|
||||
UpdateRecords[r] = new DNS(type, keyTag, algorithm, digestType, digest);
|
||||
break;
|
||||
case "TXT":
|
||||
string txt = updateRecord[1].Split(':')[1].Replace("\"", "").Replace("}", "");
|
||||
txt = txt.Replace("[", "");
|
||||
txt = txt.Replace("]", "");
|
||||
UpdateRecords[r] = new DNS(type, new string[] { txt.Trim() });
|
||||
break;
|
||||
case "GLUE4":
|
||||
case "GLUE6":
|
||||
string nsGlue = updateRecord[1].Split(':')[1].Replace("\"", "").Trim();
|
||||
string address = updateRecord[2].Split(':')[1].Replace("\"", "").Replace("}", "").Trim();
|
||||
UpdateRecords[r] = new DNS(type, nsGlue, address);
|
||||
break;
|
||||
}
|
||||
r++;
|
||||
}
|
||||
AddBatch(split[0], split[1], UpdateRecords);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -712,6 +751,10 @@ namespace FireWallet
|
||||
{
|
||||
AddBatch(b.domain, b.method, b.toAddress);
|
||||
}
|
||||
else if (b.method == "UPDATE")
|
||||
{
|
||||
AddBatch(b.domain, b.method, b.update);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddBatch(b.domain, b.method);
|
||||
@@ -739,10 +782,10 @@ namespace FireWallet
|
||||
/// <returns></returns>
|
||||
private async Task<string> APIPost(string path, bool wallet, string content)
|
||||
{
|
||||
string key = mainForm.nodeSettings["Key"];
|
||||
string ip = mainForm.nodeSettings["IP"];
|
||||
string key = mainForm.NodeSettings["Key"];
|
||||
string ip = mainForm.NodeSettings["IP"];
|
||||
string port = "1203";
|
||||
if (mainForm.network == 1)
|
||||
if (mainForm.HSDNetwork == 1)
|
||||
{
|
||||
port = "1303";
|
||||
}
|
||||
@@ -754,21 +797,26 @@ namespace FireWallet
|
||||
req.Content = new StringContent(content);
|
||||
|
||||
// Send request
|
||||
HttpResponseMessage resp = await httpClient.SendAsync(req);
|
||||
|
||||
try
|
||||
{
|
||||
resp.EnsureSuccessStatusCode();
|
||||
HttpResponseMessage resp = await httpClient.SendAsync(req);
|
||||
if (resp.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
AddLog("Post Error: " + resp.StatusCode.ToString());
|
||||
AddLog(await resp.Content.ReadAsStringAsync());
|
||||
AddLog(content);
|
||||
return "Error";
|
||||
}
|
||||
return await resp.Content.ReadAsStringAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
AddLog("Post Error: " + ex.Message);
|
||||
AddLog(await resp.Content.ReadAsStringAsync());
|
||||
AddLog(content);
|
||||
return "Error";
|
||||
}
|
||||
|
||||
return await resp.Content.ReadAsStringAsync();
|
||||
|
||||
}
|
||||
}
|
||||
public class Batch
|
||||
@@ -830,6 +878,10 @@ namespace FireWallet
|
||||
return "[\"UPDATE\", \"" + domain + "\", " + records + "]";
|
||||
|
||||
}
|
||||
else if (method == "UPDATE")
|
||||
{
|
||||
return "[\"UPDATE\", \"" + domain + "\", {\"records\":[]}]";
|
||||
}
|
||||
return "[\"" + method + "\", \"" + domain + "\"]";
|
||||
}
|
||||
}
|
||||
|
||||
2
FireWallet/BatchImportForm.Designer.cs
generated
2
FireWallet/BatchImportForm.Designer.cs
generated
@@ -72,7 +72,7 @@
|
||||
comboBoxMode.FlatStyle = FlatStyle.Flat;
|
||||
comboBoxMode.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
comboBoxMode.FormattingEnabled = true;
|
||||
comboBoxMode.Items.AddRange(new object[] { "OPEN", "BID", "REVEAL", "REDEEM", "RENEW", "TRANSFER", "FINALIZE", "CANCEL" });
|
||||
comboBoxMode.Items.AddRange(new object[] { "OPEN", "BID", "REVEAL", "REDEEM", "REGISTER", "RENEW", "TRANSFER", "FINALIZE", "CANCEL" });
|
||||
comboBoxMode.Location = new Point(346, 42);
|
||||
comboBoxMode.Name = "comboBoxMode";
|
||||
comboBoxMode.Size = new Size(226, 29);
|
||||
|
||||
@@ -263,6 +263,21 @@ namespace FireWallet
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
else if (comboBoxMode.Text == "REGISTER")
|
||||
{
|
||||
batches = new Batch[0];
|
||||
foreach (string domain in listBoxDomains.Items)
|
||||
{
|
||||
if (domain != "")
|
||||
{
|
||||
Batch[] newBatch = new Batch[batches.Length + 1];
|
||||
Array.Copy(batches, newBatch, batches.Length);
|
||||
newBatch[newBatch.Length - 1] = new Batch(domain,"UPDATE",new DNS[0]);
|
||||
batches = newBatch;
|
||||
}
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
else if (comboBoxMode.Text == "TRANSFER")
|
||||
{
|
||||
batches = new Batch[0];
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace FireWallet
|
||||
InitializeComponent();
|
||||
this.domain = domain;
|
||||
this.mainForm = mainForm;
|
||||
nodeSettings = mainForm.nodeSettings;
|
||||
nodeSettings = mainForm.NodeSettings;
|
||||
|
||||
cancel = true;
|
||||
this.Text = domain + "/ DNS | FireWallet";
|
||||
@@ -363,6 +363,12 @@ namespace FireWallet
|
||||
string contentDNS = "{\"method\": \"getnameresource\", \"params\": [\"" + domain + "\"]}";
|
||||
string responseDNS = await APIPost("", false, contentDNS);
|
||||
JObject jObjectDNS = JObject.Parse(responseDNS);
|
||||
|
||||
if (jObjectDNS["result"].ToString() == "")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
JObject result = (JObject)jObjectDNS["result"];
|
||||
JArray records = (JArray)result["records"];
|
||||
// For each record
|
||||
@@ -439,7 +445,7 @@ namespace FireWallet
|
||||
string key = nodeSettings["Key"];
|
||||
string ip = nodeSettings["IP"];
|
||||
string port = "1203";
|
||||
if (mainForm.network == 1)
|
||||
if (mainForm.HSDNetwork == 1)
|
||||
{
|
||||
port = "1303";
|
||||
}
|
||||
@@ -478,7 +484,7 @@ namespace FireWallet
|
||||
string ip = nodeSettings["IP"];
|
||||
|
||||
string port = "1203";
|
||||
if (mainForm.network == 1)
|
||||
if (mainForm.HSDNetwork == 1)
|
||||
{
|
||||
port = "1303";
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace FireWallet
|
||||
this.explorerTX = explorerTX;
|
||||
this.explorerName = explorerName;
|
||||
this.mainForm = mainForm;
|
||||
this.theme = mainForm.theme;
|
||||
this.theme = mainForm.Theme;
|
||||
|
||||
// Apply theme
|
||||
this.BackColor = ColorTranslator.FromHtml(theme["background"]);
|
||||
@@ -47,7 +47,7 @@ namespace FireWallet
|
||||
mainForm.ThemeControl(c);
|
||||
}
|
||||
|
||||
applyTransparency(mainForm.theme);
|
||||
applyTransparency(mainForm.Theme);
|
||||
}
|
||||
#region Theme
|
||||
private void applyTransparency(Dictionary<string, string> theme)
|
||||
@@ -157,7 +157,7 @@ namespace FireWallet
|
||||
network = Convert.ToInt32(nodeSettings["Network"]);
|
||||
GetName();
|
||||
|
||||
if (mainForm.watchOnly)
|
||||
if (mainForm.WatchOnly)
|
||||
{
|
||||
buttonActionMain.Enabled = false; // Only allow sending in batches for ledger
|
||||
}
|
||||
@@ -279,6 +279,14 @@ namespace FireWallet
|
||||
string contentDNS = "{\"method\": \"getnameresource\", \"params\": [\"" + domain + "\"]}";
|
||||
string responseDNS = await APIPost("", false, contentDNS);
|
||||
JObject jObjectDNS = JObject.Parse(responseDNS);
|
||||
|
||||
if (jObjectDNS["result"].ToString() == "")
|
||||
{
|
||||
// Not registered
|
||||
groupBoxDNS.Visible = false;
|
||||
return;
|
||||
}
|
||||
|
||||
JObject result = (JObject)jObjectDNS["result"];
|
||||
JArray records = (JArray)result["records"];
|
||||
// For each record
|
||||
@@ -814,7 +822,14 @@ namespace FireWallet
|
||||
|
||||
if (!DNSEdit.cancel)
|
||||
{
|
||||
string records = string.Join(", ", DNSEdit.DNSrecords.Select(record => record.ToString()));
|
||||
string records = "";
|
||||
if (DNSEdit.DNSrecords != null)
|
||||
{
|
||||
if (DNSEdit.DNSrecords.Count() > 0)
|
||||
{
|
||||
records = string.Join(", ", DNSEdit.DNSrecords.Select(record => record.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
string content = "{\"method\": \"sendupdate\", \"params\": [\"" + domain + "\", {\"records\": [" + records + "]}]}";
|
||||
string response = await APIPost("", true, content);
|
||||
|
||||
BIN
FireWallet/FW.ico
Normal file
BIN
FireWallet/FW.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
@@ -6,17 +6,17 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<ApplicationIcon>FW2.ico</ApplicationIcon>
|
||||
<ApplicationIcon>FW.ico</ApplicationIcon>
|
||||
<Title>FireWallet</Title>
|
||||
<PackageProjectUrl>https://l.woodburn.au</PackageProjectUrl>
|
||||
<PackageIcon>HSDBatcher.png</PackageIcon>
|
||||
<RepositoryUrl>https://github.com/Nathanwoodburn/FireWallet</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<Version>3.0</Version>
|
||||
<Version>3.4</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="FW2.ico" />
|
||||
<Content Include="FW.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -30,7 +30,6 @@
|
||||
<PackageReference Include="DnsClient" Version="1.7.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="QRCoder" Version="1.4.3" />
|
||||
<PackageReference Include="Yubico.YubiKey" Version="1.7.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
79
FireWallet/MainForm.Designer.cs
generated
79
FireWallet/MainForm.Designer.cs
generated
@@ -45,6 +45,8 @@ namespace FireWallet
|
||||
githubToolStripMenuItem = new ToolStripMenuItem();
|
||||
websiteToolStripMenuItem = new ToolStripMenuItem();
|
||||
supportDiscordServerToolStripMenuItem = new ToolStripMenuItem();
|
||||
toolStripSeparator1 = new ToolStripSeparator();
|
||||
otherProjectsToolStripMenuItem = new ToolStripMenuItem();
|
||||
timerNodeStatus = new System.Windows.Forms.Timer(components);
|
||||
panelaccount = new Panel();
|
||||
groupBoxaccount = new GroupBox();
|
||||
@@ -63,6 +65,7 @@ namespace FireWallet
|
||||
buttonNavSend = new Button();
|
||||
buttonNavPortfolio = new Button();
|
||||
panelPortfolio = new Panel();
|
||||
buttonRedeemAll = new Button();
|
||||
buttonRevealAll = new Button();
|
||||
groupBoxTransactions = new GroupBox();
|
||||
groupBoxinfo = new GroupBox();
|
||||
@@ -104,7 +107,6 @@ namespace FireWallet
|
||||
textBoxDomainSearch = new TextBox();
|
||||
panelSettings = new Panel();
|
||||
groupBoxSettingsWallet = new GroupBox();
|
||||
buttonSettingsYubikey = new Button();
|
||||
buttonSettingsRescan = new Button();
|
||||
buttonSeed = new Button();
|
||||
groupBoxSettingsMisc = new GroupBox();
|
||||
@@ -125,6 +127,7 @@ namespace FireWallet
|
||||
textBoxExAddr = new TextBox();
|
||||
labelSettings4 = new Label();
|
||||
textBoxExTX = new TextBox();
|
||||
buttonSendAll = new Button();
|
||||
statusStripmain.SuspendLayout();
|
||||
panelaccount.SuspendLayout();
|
||||
groupBoxaccount.SuspendLayout();
|
||||
@@ -202,7 +205,7 @@ namespace FireWallet
|
||||
// toolStripDropDownButtonHelp
|
||||
//
|
||||
toolStripDropDownButtonHelp.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
toolStripDropDownButtonHelp.DropDownItems.AddRange(new ToolStripItem[] { githubToolStripMenuItem, websiteToolStripMenuItem, supportDiscordServerToolStripMenuItem });
|
||||
toolStripDropDownButtonHelp.DropDownItems.AddRange(new ToolStripItem[] { githubToolStripMenuItem, websiteToolStripMenuItem, supportDiscordServerToolStripMenuItem, toolStripSeparator1, otherProjectsToolStripMenuItem });
|
||||
toolStripDropDownButtonHelp.Image = (Image)resources.GetObject("toolStripDropDownButtonHelp.Image");
|
||||
toolStripDropDownButtonHelp.ImageTransparentColor = Color.Magenta;
|
||||
toolStripDropDownButtonHelp.Margin = new Padding(20, 2, 0, 0);
|
||||
@@ -232,6 +235,18 @@ namespace FireWallet
|
||||
supportDiscordServerToolStripMenuItem.Text = "Support Discord Server";
|
||||
supportDiscordServerToolStripMenuItem.Click += supportDiscordServerToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
toolStripSeparator1.Size = new Size(191, 6);
|
||||
//
|
||||
// otherProjectsToolStripMenuItem
|
||||
//
|
||||
otherProjectsToolStripMenuItem.Name = "otherProjectsToolStripMenuItem";
|
||||
otherProjectsToolStripMenuItem.Size = new Size(194, 22);
|
||||
otherProjectsToolStripMenuItem.Text = "Other Projects";
|
||||
otherProjectsToolStripMenuItem.Click += otherProjectsToolStripMenuItem_Click;
|
||||
//
|
||||
// timerNodeStatus
|
||||
//
|
||||
timerNodeStatus.Enabled = true;
|
||||
@@ -242,7 +257,7 @@ namespace FireWallet
|
||||
//
|
||||
panelaccount.BackColor = Color.Transparent;
|
||||
panelaccount.Controls.Add(groupBoxaccount);
|
||||
panelaccount.Location = new Point(132, 30);
|
||||
panelaccount.Location = new Point(1082, 211);
|
||||
panelaccount.Name = "panelaccount";
|
||||
panelaccount.Size = new Size(1074, 642);
|
||||
panelaccount.TabIndex = 1;
|
||||
@@ -432,23 +447,37 @@ namespace FireWallet
|
||||
//
|
||||
// panelPortfolio
|
||||
//
|
||||
panelPortfolio.Controls.Add(buttonSendAll);
|
||||
panelPortfolio.Controls.Add(buttonRedeemAll);
|
||||
panelPortfolio.Controls.Add(buttonRevealAll);
|
||||
panelPortfolio.Controls.Add(groupBoxTransactions);
|
||||
panelPortfolio.Controls.Add(groupBoxinfo);
|
||||
panelPortfolio.Controls.Add(groupBoxbalance);
|
||||
panelPortfolio.Location = new Point(1065, 80);
|
||||
panelPortfolio.Location = new Point(140, 35);
|
||||
panelPortfolio.Name = "panelPortfolio";
|
||||
panelPortfolio.Size = new Size(956, 538);
|
||||
panelPortfolio.TabIndex = 7;
|
||||
panelPortfolio.Visible = false;
|
||||
//
|
||||
// buttonRedeemAll
|
||||
//
|
||||
buttonRedeemAll.FlatStyle = FlatStyle.Flat;
|
||||
buttonRedeemAll.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
buttonRedeemAll.Location = new Point(649, 12);
|
||||
buttonRedeemAll.Name = "buttonRedeemAll";
|
||||
buttonRedeemAll.Size = new Size(106, 44);
|
||||
buttonRedeemAll.TabIndex = 9;
|
||||
buttonRedeemAll.Text = "Redeem All";
|
||||
buttonRedeemAll.UseVisualStyleBackColor = true;
|
||||
buttonRedeemAll.Click += buttonRedeemAll_Click;
|
||||
//
|
||||
// buttonRevealAll
|
||||
//
|
||||
buttonRevealAll.FlatStyle = FlatStyle.Flat;
|
||||
buttonRevealAll.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
buttonRevealAll.Location = new Point(537, 12);
|
||||
buttonRevealAll.Name = "buttonRevealAll";
|
||||
buttonRevealAll.Size = new Size(89, 44);
|
||||
buttonRevealAll.Size = new Size(106, 44);
|
||||
buttonRevealAll.TabIndex = 9;
|
||||
buttonRevealAll.Text = "Reveal All";
|
||||
buttonRevealAll.UseVisualStyleBackColor = true;
|
||||
@@ -575,7 +604,7 @@ namespace FireWallet
|
||||
panelSend.Controls.Add(labelSendingTo);
|
||||
panelSend.Controls.Add(labelSendPrompt);
|
||||
panelSend.Controls.Add(labelHIPArrow);
|
||||
panelSend.Location = new Point(880, 441);
|
||||
panelSend.Location = new Point(1041, 235);
|
||||
panelSend.Name = "panelSend";
|
||||
panelSend.Size = new Size(974, 521);
|
||||
panelSend.TabIndex = 2;
|
||||
@@ -793,7 +822,7 @@ namespace FireWallet
|
||||
panelDomains.Controls.Add(groupBoxDomains);
|
||||
panelDomains.Controls.Add(labelDomainSearch);
|
||||
panelDomains.Controls.Add(textBoxDomainSearch);
|
||||
panelDomains.Location = new Point(861, 364);
|
||||
panelDomains.Location = new Point(1122, 35);
|
||||
panelDomains.Name = "panelDomains";
|
||||
panelDomains.Size = new Size(920, 536);
|
||||
panelDomains.TabIndex = 18;
|
||||
@@ -882,7 +911,7 @@ namespace FireWallet
|
||||
panelSettings.Controls.Add(buttonSettingsSave);
|
||||
panelSettings.Controls.Add(groupBoxSettingsExplorer);
|
||||
panelSettings.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
panelSettings.Location = new Point(848, 306);
|
||||
panelSettings.Location = new Point(1065, 51);
|
||||
panelSettings.Name = "panelSettings";
|
||||
panelSettings.Size = new Size(930, 550);
|
||||
panelSettings.TabIndex = 19;
|
||||
@@ -890,7 +919,6 @@ namespace FireWallet
|
||||
//
|
||||
// groupBoxSettingsWallet
|
||||
//
|
||||
groupBoxSettingsWallet.Controls.Add(buttonSettingsYubikey);
|
||||
groupBoxSettingsWallet.Controls.Add(buttonSettingsRescan);
|
||||
groupBoxSettingsWallet.Controls.Add(buttonSeed);
|
||||
groupBoxSettingsWallet.Location = new Point(507, 16);
|
||||
@@ -900,17 +928,6 @@ namespace FireWallet
|
||||
groupBoxSettingsWallet.TabStop = false;
|
||||
groupBoxSettingsWallet.Text = "Wallet Controls";
|
||||
//
|
||||
// buttonSettingsYubikey
|
||||
//
|
||||
buttonSettingsYubikey.FlatStyle = FlatStyle.Flat;
|
||||
buttonSettingsYubikey.Location = new Point(6, 133);
|
||||
buttonSettingsYubikey.Name = "buttonSettingsYubikey";
|
||||
buttonSettingsYubikey.Size = new Size(98, 50);
|
||||
buttonSettingsYubikey.TabIndex = 9;
|
||||
buttonSettingsYubikey.Text = "YubiKey";
|
||||
buttonSettingsYubikey.UseVisualStyleBackColor = true;
|
||||
buttonSettingsYubikey.Click += buttonSettingsYubikey_Click;
|
||||
//
|
||||
// buttonSettingsRescan
|
||||
//
|
||||
buttonSettingsRescan.FlatStyle = FlatStyle.Flat;
|
||||
@@ -1104,15 +1121,27 @@ namespace FireWallet
|
||||
textBoxExTX.Size = new Size(307, 29);
|
||||
textBoxExTX.TabIndex = 1;
|
||||
//
|
||||
// buttonSendAll
|
||||
//
|
||||
buttonSendAll.FlatStyle = FlatStyle.Flat;
|
||||
buttonSendAll.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
buttonSendAll.Location = new Point(761, 12);
|
||||
buttonSendAll.Name = "buttonSendAll";
|
||||
buttonSendAll.Size = new Size(106, 44);
|
||||
buttonSendAll.TabIndex = 9;
|
||||
buttonSendAll.Text = "Send All TXs";
|
||||
buttonSendAll.UseVisualStyleBackColor = true;
|
||||
buttonSendAll.Click += buttonSendAll_Click;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(1152, 575);
|
||||
Controls.Add(panelaccount);
|
||||
Controls.Add(panelSettings);
|
||||
Controls.Add(panelDomains);
|
||||
Controls.Add(panelSend);
|
||||
Controls.Add(panelSettings);
|
||||
Controls.Add(panelaccount);
|
||||
Controls.Add(panelPortfolio);
|
||||
Controls.Add(panelRecieve);
|
||||
Controls.Add(panelNav);
|
||||
@@ -1123,6 +1152,7 @@ namespace FireWallet
|
||||
Text = "FireWallet";
|
||||
FormClosing += MainForm_Closing;
|
||||
Load += MainForm_Load;
|
||||
ResizeEnd += MainForm_ResizeEnd;
|
||||
Resize += Form1_Resize;
|
||||
statusStripmain.ResumeLayout(false);
|
||||
statusStripmain.PerformLayout();
|
||||
@@ -1247,6 +1277,9 @@ namespace FireWallet
|
||||
private Label labelSendingHIPAddress;
|
||||
private ComboBox comboBoxDomainSort;
|
||||
private Label labelDomainSort;
|
||||
private Button buttonSettingsYubikey;
|
||||
private ToolStripSeparator toolStripSeparator1;
|
||||
private ToolStripMenuItem otherProjectsToolStripMenuItem;
|
||||
private Button buttonRedeemAll;
|
||||
private Button buttonSendAll;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -27,7 +27,7 @@ namespace FireWallet
|
||||
private void NewAccountForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
page = 0;
|
||||
Dictionary<string, string> theme = mainForm.theme;
|
||||
Dictionary<string, string> theme = mainForm.Theme;
|
||||
this.BackColor = ColorTranslator.FromHtml(theme["background"]);
|
||||
this.ForeColor = ColorTranslator.FromHtml(theme["foreground"]);
|
||||
foreach (Control c in Controls)
|
||||
@@ -208,7 +208,7 @@ namespace FireWallet
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.StartInfo.FileName = "node.exe";
|
||||
proc.StartInfo.Arguments = mainForm.dir + "hsd-ledger/bin/hsd-ledger createwallet " + textBoxNewPass1.Text + " --api-key " + mainForm.nodeSettings["Key"];
|
||||
proc.StartInfo.Arguments = mainForm.dir + "hsd-ledger/bin/hsd-ledger createwallet " + textBoxNewPass1.Text + " --api-key " + mainForm.NodeSettings["Key"];
|
||||
var outputBuilder = new StringBuilder();
|
||||
|
||||
// Event handler for capturing output data
|
||||
@@ -243,10 +243,10 @@ namespace FireWallet
|
||||
HttpClient httpClient = new HttpClient();
|
||||
private async Task<string> APIPut(string path, bool wallet, string content)
|
||||
{
|
||||
string key = mainForm.nodeSettings["Key"];
|
||||
string ip = mainForm.nodeSettings["IP"];
|
||||
string key = mainForm.NodeSettings["Key"];
|
||||
string ip = mainForm.NodeSettings["IP"];
|
||||
string port = "1203";
|
||||
if (mainForm.network == 1)
|
||||
if (mainForm.HSDNetwork == 1)
|
||||
{
|
||||
port = "1303";
|
||||
}
|
||||
|
||||
10
FireWallet/Properties/Resources.Designer.cs
generated
10
FireWallet/Properties/Resources.Designer.cs
generated
@@ -59,5 +59,15 @@ namespace FireWallet.Properties {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap FWSplash {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("FWSplash", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,4 +117,8 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="FWSplash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\FWSplash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
FireWallet/Resources/FWSplash.png
Normal file
BIN
FireWallet/Resources/FWSplash.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
57
FireWallet/SplashScreen.Designer.cs
generated
57
FireWallet/SplashScreen.Designer.cs
generated
@@ -30,19 +30,18 @@
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SplashScreen));
|
||||
timerSplashDelay = new System.Windows.Forms.Timer(components);
|
||||
label1 = new Label();
|
||||
pictureBox1 = new PictureBox();
|
||||
label2 = new Label();
|
||||
panelNew = new Panel();
|
||||
pictureBoxNew = new PictureBox();
|
||||
timerIn = new System.Windows.Forms.Timer(components);
|
||||
timerOut = new System.Windows.Forms.Timer(components);
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||
panelNew.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxNew).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// timerSplashDelay
|
||||
//
|
||||
timerSplashDelay.Enabled = true;
|
||||
timerSplashDelay.Interval = 3000;
|
||||
timerSplashDelay.Tick += timerSplashDelay_Tick;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
@@ -75,12 +74,45 @@
|
||||
label2.Text = "Nathan.Woodburn/";
|
||||
label2.Click += label2_Click;
|
||||
//
|
||||
// panelNew
|
||||
//
|
||||
panelNew.Controls.Add(pictureBoxNew);
|
||||
panelNew.Dock = DockStyle.Fill;
|
||||
panelNew.Location = new Point(0, 0);
|
||||
panelNew.Name = "panelNew";
|
||||
panelNew.Size = new Size(450, 450);
|
||||
panelNew.TabIndex = 3;
|
||||
//
|
||||
// pictureBoxNew
|
||||
//
|
||||
pictureBoxNew.BackColor = Color.Black;
|
||||
pictureBoxNew.Dock = DockStyle.Fill;
|
||||
pictureBoxNew.Image = Properties.Resources.FWSplash;
|
||||
pictureBoxNew.InitialImage = null;
|
||||
pictureBoxNew.Location = new Point(0, 0);
|
||||
pictureBoxNew.Name = "pictureBoxNew";
|
||||
pictureBoxNew.Size = new Size(450, 450);
|
||||
pictureBoxNew.SizeMode = PictureBoxSizeMode.Zoom;
|
||||
pictureBoxNew.TabIndex = 0;
|
||||
pictureBoxNew.TabStop = false;
|
||||
pictureBoxNew.Visible = false;
|
||||
//
|
||||
// timerIn
|
||||
//
|
||||
timerIn.Enabled = true;
|
||||
timerIn.Tick += timerIn_Tick;
|
||||
//
|
||||
// timerOut
|
||||
//
|
||||
timerOut.Tick += timerOut_Tick;
|
||||
//
|
||||
// SplashScreen
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = Color.Black;
|
||||
ClientSize = new Size(444, 435);
|
||||
ClientSize = new Size(450, 450);
|
||||
Controls.Add(panelNew);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(pictureBox1);
|
||||
Controls.Add(label1);
|
||||
@@ -93,16 +125,21 @@
|
||||
Text = "FireWallet";
|
||||
TopMost = true;
|
||||
FormClosing += SplashScreen_FormClosing;
|
||||
Load += SplashScreen_Load;
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||
panelNew.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxNew).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Timer timerSplashDelay;
|
||||
private Label label1;
|
||||
private PictureBox pictureBox1;
|
||||
private Label label2;
|
||||
private Panel panelNew;
|
||||
private PictureBox pictureBoxNew;
|
||||
private System.Windows.Forms.Timer timerIn;
|
||||
private System.Windows.Forms.Timer timerOut;
|
||||
}
|
||||
}
|
||||
@@ -1,35 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
|
||||
namespace FireWallet
|
||||
{
|
||||
public partial class SplashScreen : Form
|
||||
{
|
||||
public SplashScreen()
|
||||
public SplashScreen(bool timer)
|
||||
{
|
||||
InitializeComponent();
|
||||
close = false;
|
||||
IsClosed = false;
|
||||
}
|
||||
bool close;
|
||||
private void timerSplashDelay_Tick(object sender, EventArgs e)
|
||||
{
|
||||
close = true;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
float opacity = 0.0f;
|
||||
private void SplashScreen_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
|
||||
if (!close)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
public bool IsClosed { get; set; }
|
||||
public void CloseSplash()
|
||||
{
|
||||
close = true;
|
||||
|
||||
// Fade out
|
||||
timerIn.Stop();
|
||||
timerOut.Start();
|
||||
}
|
||||
private void label2_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProcessStartInfo psi = new ProcessStartInfo
|
||||
@@ -39,5 +39,56 @@ namespace FireWallet
|
||||
};
|
||||
Process.Start(psi);
|
||||
}
|
||||
Bitmap splash = new Bitmap(Properties.Resources.FWSplash);
|
||||
private void SplashScreen_Load(object sender, EventArgs e)
|
||||
{
|
||||
pictureBoxNew.Visible = true;
|
||||
this.TransparencyKey = Color.FromArgb(0, 0, 0);
|
||||
pictureBoxNew.Invalidate();
|
||||
}
|
||||
public Image SetImageOpacity(Image image, float opacity)
|
||||
{
|
||||
try
|
||||
{
|
||||
Bitmap bmp = new Bitmap(image.Width, image.Height);
|
||||
using (Graphics gfx = Graphics.FromImage(bmp))
|
||||
{
|
||||
ColorMatrix matrix = new ColorMatrix();
|
||||
matrix.Matrix33 = opacity;
|
||||
ImageAttributes attributes = new ImageAttributes();
|
||||
attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
|
||||
gfx.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attributes);
|
||||
}
|
||||
return bmp;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
private void timerIn_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (opacity >= 1)
|
||||
{
|
||||
timerIn.Stop();
|
||||
return;
|
||||
}
|
||||
opacity += 0.05f;
|
||||
pictureBoxNew.Image = SetImageOpacity(splash, opacity);
|
||||
pictureBoxNew.Invalidate();
|
||||
}
|
||||
private void timerOut_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (opacity <= 0)
|
||||
{
|
||||
timerOut.Stop();
|
||||
IsClosed = true;
|
||||
this.Close();
|
||||
return;
|
||||
}
|
||||
opacity -= 0.05f;
|
||||
pictureBoxNew.Image = SetImageOpacity(splash, opacity);
|
||||
pictureBoxNew.Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,9 +117,6 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="timerSplashDelay.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@@ -901,6 +898,12 @@
|
||||
AAAAAAAAAAAAAADQwWbM+D8RAPjBClJL0gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="timerIn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="timerOut.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>104, 17</value>
|
||||
</metadata>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAAAAAAAEAIAB2pAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAOEAAADAAgGAAAAfG+p9QAAIABJ
|
||||
|
||||
@@ -22,8 +22,8 @@ namespace FireWallet
|
||||
{
|
||||
InitializeComponent();
|
||||
// Theme
|
||||
this.BackColor = ColorTranslator.FromHtml(mainForm.theme["background"]);
|
||||
this.ForeColor = ColorTranslator.FromHtml(mainForm.theme["foreground"]);
|
||||
this.BackColor = ColorTranslator.FromHtml(mainForm.Theme["background"]);
|
||||
this.ForeColor = ColorTranslator.FromHtml(mainForm.Theme["foreground"]);
|
||||
foreach (Control c in Controls)
|
||||
{
|
||||
mainForm.ThemeControl(c);
|
||||
@@ -35,7 +35,7 @@ namespace FireWallet
|
||||
|
||||
private async void TXForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
tx = JObject.Parse(await mainForm.APIGet("wallet/"+mainForm.account+"/tx/" + txid,true));
|
||||
tx = JObject.Parse(await mainForm.APIGet("wallet/"+mainForm.Account+"/tx/" + txid,true));
|
||||
|
||||
this.Text = "TX: " + tx["hash"].ToString();
|
||||
labelHash.Text = "Hash: " + tx["hash"].ToString();
|
||||
@@ -142,7 +142,7 @@ namespace FireWallet
|
||||
private void Explorer_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Open the transaction in a browser
|
||||
string url = mainForm.userSettings["explorer-tx"] + tx["hash"].ToString();
|
||||
string url = mainForm.UserSettings["explorer-tx"] + tx["hash"].ToString();
|
||||
ProcessStartInfo psi = new ProcessStartInfo
|
||||
{
|
||||
FileName = url,
|
||||
|
||||
@@ -25,18 +25,18 @@ namespace FireWallet
|
||||
Domain = domain;
|
||||
this.Text = "Transfer " + Domain + " | FireWallet";
|
||||
label1.Text = "Transfer " + Domain;
|
||||
if (MainForm.theme.ContainsKey("error"))
|
||||
if (MainForm.Theme.ContainsKey("error"))
|
||||
{
|
||||
labelError.ForeColor = ColorTranslator.FromHtml(MainForm.theme["error"]);
|
||||
labelError.ForeColor = ColorTranslator.FromHtml(MainForm.Theme["error"]);
|
||||
}
|
||||
if (MainForm.watchOnly)
|
||||
if (MainForm.WatchOnly)
|
||||
{
|
||||
buttonTransfer.Enabled = false; // watch only wallet only batch
|
||||
}
|
||||
|
||||
// Theme
|
||||
this.BackColor = ColorTranslator.FromHtml(MainForm.theme["background"]);
|
||||
this.ForeColor = ColorTranslator.FromHtml(MainForm.theme["foreground"]);
|
||||
this.BackColor = ColorTranslator.FromHtml(MainForm.Theme["background"]);
|
||||
this.ForeColor = ColorTranslator.FromHtml(MainForm.Theme["foreground"]);
|
||||
foreach (Control c in Controls)
|
||||
{
|
||||
MainForm.ThemeControl(c);
|
||||
@@ -73,7 +73,7 @@ namespace FireWallet
|
||||
}
|
||||
JObject result = JObject.Parse(APIresp["result"].ToString());
|
||||
string hash = result["hash"].ToString();
|
||||
string link = MainForm.userSettings["explorer-tx"] + hash;
|
||||
string link = MainForm.UserSettings["explorer-tx"] + hash;
|
||||
NotifyForm notifySuccess = new NotifyForm("Transaction Sent\nThis transaction could take up to 20 minutes to mine",
|
||||
"Explorer", link);
|
||||
notifySuccess.ShowDialog();
|
||||
|
||||
BIN
FireWallet/favicon.ico
Normal file
BIN
FireWallet/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
@@ -224,15 +224,15 @@
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:FireWallet"
|
||||
"ProductCode" = "8:{007B0A5E-57B9-4DB7-AABE-5A3631A89BEB}"
|
||||
"PackageCode" = "8:{546D4209-3E58-4144-A9DC-E659A2482DD4}"
|
||||
"ProductCode" = "8:{E636567F-DDA4-4C6E-89B0-38DC64FD5528}"
|
||||
"PackageCode" = "8:{AEAF1ABA-01E0-4A71-A8CC-0D6DDA44E907}"
|
||||
"UpgradeCode" = "8:{0C86F725-6B01-4173-AA05-3F0EDF481362}"
|
||||
"AspNetVersion" = "8:"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:3.0"
|
||||
"ProductVersion" = "8:3.4"
|
||||
"Manufacturer" = "8:Nathan.Woodburn/"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:https://l.woodburn.au/discord"
|
||||
|
||||
24
README.md
24
README.md
@@ -2,6 +2,14 @@
|
||||
Experimental wallet for Handshake chain
|
||||
|
||||
## Installation
|
||||
### Dependencies
|
||||
You will need .net desktop installed. You can download it from [here](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-desktop-6.0.18-windows-x64-installer).
|
||||
|
||||
You will also need Node, NPM, and git installed if you want to use the internal HSD or Ledger wallets.
|
||||
[Git](https://git-scm.com/downloads)
|
||||
[Node](https://nodejs.org/en/download/)
|
||||
[NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
|
||||
|
||||
### From Releases
|
||||
You can install the latest release from [here](https://github.com/Nathanwoodburn/FireWallet/releases/).
|
||||
|
||||
@@ -105,9 +113,6 @@ You can add transactions to the batch from the domain window or the DNS editor.
|
||||
You can also import a list of domains to the batch window.
|
||||
The "CANCEL" transaction type is used to cancel an transfer.
|
||||
|
||||
At the momemt "UPDATE" or coin only transactions are not supported.
|
||||
|
||||
|
||||
Please not that the import syntax for BIDs is BID,LOCKUP where LOCKUP is (BID+BLIND)
|
||||

|
||||
|
||||
@@ -133,6 +138,12 @@ They are stored in `%appdata%\FireWallet\` (`C:\Users\{username}\AppData\Roaming
|
||||
|
||||
## settings.txt
|
||||
This file stores the user settings for the application.
|
||||
If you want to change the default HIP-02 resolver you can add these settings
|
||||
```yaml
|
||||
hip-02-ip: 127.0.0.1
|
||||
hip-02-port: 5350
|
||||
```
|
||||
|
||||
|
||||
## node.txt
|
||||
This file stores the node (HSD/Bob connection) settings.
|
||||
@@ -148,6 +159,12 @@ The `{default-dir}` will be replaced with the HSD directory `%appdata%\FireWalle
|
||||
The `{key}` will be replaced with the API key from the node.txt file.
|
||||
The `{Bob}` will be replaced with the Bob wallet HSD data directory `%appdata%\Bob\hsd_data\` this is used to sync FireWallet with Bob's accounts and also stops you needing to sync the chain twice.
|
||||
|
||||
Other settings are here. These are the default and if they are not in the file they revert to these values.
|
||||
```yaml
|
||||
HideScreen: True # Hide the HSD terminal screen (Set to False for higher reliability)
|
||||
Timeout: 10 # The time in seconds to wait for any API request
|
||||
```
|
||||
|
||||
## theme.txt
|
||||
This file stores the theme settings.
|
||||
The theme is the color scheme of the application.
|
||||
@@ -163,3 +180,4 @@ You should check this file if you have any issues with the application.
|
||||
If you have any issues with the application you can open an issue on GitHub or contact me on Discord (NathanWoodburn on most Handshake servers).
|
||||
|
||||
If you would like to support this project you can find out how at https://nathan.woodburn.au/#donate or you can help by contributing to the project on GitHub.
|
||||
Also you can send HNS directly to `@firewallet`
|
||||
@@ -6,4 +6,4 @@ woodburn4,BID,1,3
|
||||
woodburn5,BID,1,3
|
||||
woodburn6,BID,1,4
|
||||
woodburn8,TRANSFER,hs1qlmlgnx0g3ynk4ylxkkdh9c9nernclnfq4lw6s9
|
||||
exampledomainnathan118,UPDATE,[{"type": "DS","keyTag": 20167,"algorithm": 13,"digestType": 2,"digest":"4a2ab3224727a4754a6c3d77621a5b04241a3d9c7ae7e5fa17f73121b9ff0e06"}, {"type": "NS","ns": "ns1.woodburn."}, {"type": "NS","ns": "ns2.woodburn."}, {"type": "TXT","txt": ["TEST"]}]
|
||||
exampledomainnathan90,UPDATE,[{"type": "NS","ns": "ns1.woodburn."};{"type": "NS","ns": "ns2.woodburn."};{"type": "DS","keyTag": 30273,"algorithm": 13,"digestType": 2,"digest":"9a3a8fb3d625d2a2073d740f10da6056ebed0e97f550aa7f3891ed450c7e60c9"};{"type": "GLUE4","ns": "ns1.exampledomainnathan90.","address": "1.2.3.4"};{"type": "TXT","txt": ["Test TXT record"]}]
|
||||
Reference in New Issue
Block a user