mirror of
https://github.com/Nathanwoodburn/FireWallet.git
synced 2025-12-06 00:23:00 +11:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
e93ce03d50
|
|||
|
520fe20051
|
|||
|
1b41b72193
|
|||
|
1d2597e1e7
|
|||
|
8aaf871bdf
|
|||
|
2e6f38d832
|
|||
|
10662f5910
|
|||
|
7388710704
|
|||
|
92bef9ef5d
|
|||
|
03a6b4d6da
|
|||
|
1a71329e6a
|
|||
|
c2990afed3
|
@@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.6.33723.286
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FireWallet", "FireWallet\FireWallet.csproj", "{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FireWallet", "FireWallet\FireWallet.csproj", "{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FireWalletSetup", "FireWalletSetup\FireWalletSetup.vdproj", "{D1751AFE-92C3-4C7E-B5E1-D1D6420A30EA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -15,6 +17,8 @@ Global
|
||||
{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D1751AFE-92C3-4C7E-B5E1-D1D6420A30EA}.Debug|Any CPU.ActiveCfg = Debug
|
||||
{D1751AFE-92C3-4C7E-B5E1-D1D6420A30EA}.Release|Any CPU.ActiveCfg = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
39
FireWallet/MainForm.Designer.cs
generated
39
FireWallet/MainForm.Designer.cs
generated
@@ -39,6 +39,7 @@ namespace FireWallet
|
||||
toolStripStatusLabelNetwork = new ToolStripStatusLabel();
|
||||
toolStripStatusLabelstatus = new ToolStripStatusLabel();
|
||||
toolStripStatusLabelaccount = new ToolStripStatusLabel();
|
||||
toolStripStatusLabelLedger = new ToolStripStatusLabel();
|
||||
toolStripSplitButtonlogout = new ToolStripSplitButton();
|
||||
timerNodeStatus = new System.Windows.Forms.Timer(components);
|
||||
panelaccount = new Panel();
|
||||
@@ -80,6 +81,7 @@ namespace FireWallet
|
||||
labelSendingTo = new Label();
|
||||
labelSendPrompt = new Label();
|
||||
panelRecieve = new Panel();
|
||||
buttonAddressVerify = new Button();
|
||||
pictureBoxReceiveQR = new PictureBox();
|
||||
labelReceive2 = new Label();
|
||||
textBoxReceiveAddress = new TextBox();
|
||||
@@ -111,7 +113,6 @@ namespace FireWallet
|
||||
textBoxExAddr = new TextBox();
|
||||
labelSettings4 = new Label();
|
||||
textBoxExTX = new TextBox();
|
||||
toolStripStatusLabelLedger = new ToolStripStatusLabel();
|
||||
statusStripmain.SuspendLayout();
|
||||
panelaccount.SuspendLayout();
|
||||
groupBoxaccount.SuspendLayout();
|
||||
@@ -167,6 +168,13 @@ namespace FireWallet
|
||||
toolStripStatusLabelaccount.Size = new Size(55, 17);
|
||||
toolStripStatusLabelaccount.Text = "Account:";
|
||||
//
|
||||
// toolStripStatusLabelLedger
|
||||
//
|
||||
toolStripStatusLabelLedger.Margin = new Padding(50, 3, 50, 2);
|
||||
toolStripStatusLabelLedger.Name = "toolStripStatusLabelLedger";
|
||||
toolStripStatusLabelLedger.Size = new Size(71, 17);
|
||||
toolStripStatusLabelLedger.Text = "Cold Wallet:";
|
||||
//
|
||||
// toolStripSplitButtonlogout
|
||||
//
|
||||
toolStripSplitButtonlogout.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
@@ -619,16 +627,30 @@ namespace FireWallet
|
||||
//
|
||||
// panelRecieve
|
||||
//
|
||||
panelRecieve.Controls.Add(buttonAddressVerify);
|
||||
panelRecieve.Controls.Add(pictureBoxReceiveQR);
|
||||
panelRecieve.Controls.Add(labelReceive2);
|
||||
panelRecieve.Controls.Add(textBoxReceiveAddress);
|
||||
panelRecieve.Controls.Add(labelReceive1);
|
||||
panelRecieve.Location = new Point(1057, 62);
|
||||
panelRecieve.Location = new Point(117, 34);
|
||||
panelRecieve.Name = "panelRecieve";
|
||||
panelRecieve.Size = new Size(995, 523);
|
||||
panelRecieve.TabIndex = 17;
|
||||
panelRecieve.Visible = false;
|
||||
//
|
||||
// buttonAddressVerify
|
||||
//
|
||||
buttonAddressVerify.FlatStyle = FlatStyle.Flat;
|
||||
buttonAddressVerify.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
buttonAddressVerify.Location = new Point(769, 110);
|
||||
buttonAddressVerify.Name = "buttonAddressVerify";
|
||||
buttonAddressVerify.Size = new Size(126, 32);
|
||||
buttonAddressVerify.TabIndex = 21;
|
||||
buttonAddressVerify.Text = "Create && Verify";
|
||||
buttonAddressVerify.UseVisualStyleBackColor = true;
|
||||
buttonAddressVerify.Visible = false;
|
||||
buttonAddressVerify.Click += buttonAddressVerify_Click;
|
||||
//
|
||||
// pictureBoxReceiveQR
|
||||
//
|
||||
pictureBoxReceiveQR.Location = new Point(391, 190);
|
||||
@@ -937,28 +959,22 @@ namespace FireWallet
|
||||
textBoxExTX.Size = new Size(307, 29);
|
||||
textBoxExTX.TabIndex = 1;
|
||||
//
|
||||
// toolStripStatusLabelLedger
|
||||
//
|
||||
toolStripStatusLabelLedger.Margin = new Padding(50, 3, 50, 2);
|
||||
toolStripStatusLabelLedger.Name = "toolStripStatusLabelLedger";
|
||||
toolStripStatusLabelLedger.Size = new Size(71, 17);
|
||||
toolStripStatusLabelLedger.Text = "Cold Wallet:";
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(1152, 575);
|
||||
Controls.Add(panelaccount);
|
||||
Controls.Add(panelRecieve);
|
||||
Controls.Add(panelSettings);
|
||||
Controls.Add(panelDomains);
|
||||
Controls.Add(panelRecieve);
|
||||
Controls.Add(panelSend);
|
||||
Controls.Add(panelPortfolio);
|
||||
Controls.Add(panelNav);
|
||||
Controls.Add(panelaccount);
|
||||
Controls.Add(statusStripmain);
|
||||
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||
Name = "MainForm";
|
||||
Opacity = 0D;
|
||||
Text = "FireWallet";
|
||||
FormClosing += MainForm_Closing;
|
||||
Load += MainForm_Load;
|
||||
@@ -1074,5 +1090,6 @@ namespace FireWallet
|
||||
private GroupBox groupBoxSettingsWallet;
|
||||
private Button buttonSettingsRescan;
|
||||
private ToolStripStatusLabel toolStripStatusLabelLedger;
|
||||
private Button buttonAddressVerify;
|
||||
}
|
||||
}
|
||||
@@ -31,19 +31,24 @@ namespace FireWallet
|
||||
public bool batchMode { get; set; }
|
||||
public BatchForm batchForm { get; set; }
|
||||
public bool watchOnly { get; set; }
|
||||
public bool HSD { get; set; }
|
||||
|
||||
public Process hsdProcess { get; set; }
|
||||
#endregion
|
||||
#region Application
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
panelaccount.Visible = true;
|
||||
}
|
||||
private void MainForm_Load(object sender, EventArgs e)
|
||||
private async void MainForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
watchOnly = false;
|
||||
account = "";
|
||||
timerNodeStatus.Stop();
|
||||
LoadSettings();
|
||||
UpdateTheme();
|
||||
if (await LoadNode() != true) this.Close();
|
||||
|
||||
if (userSettings.ContainsKey("hide-splash"))
|
||||
{
|
||||
@@ -55,9 +60,14 @@ namespace FireWallet
|
||||
ss.Dispose();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show splash screen
|
||||
SplashScreen ss = new SplashScreen();
|
||||
ss.ShowDialog();
|
||||
ss.Dispose();
|
||||
}
|
||||
|
||||
UpdateTheme();
|
||||
LoadNode();
|
||||
|
||||
|
||||
// Edit the theme of the navigation panel
|
||||
@@ -77,13 +87,29 @@ namespace FireWallet
|
||||
GetAccounts();
|
||||
|
||||
AddLog("Loaded");
|
||||
Opacity = 1;
|
||||
batchMode = false;
|
||||
textBoxaccountpassword.Focus();
|
||||
timerNodeStatus.Start();
|
||||
}
|
||||
private void MainForm_Closing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
AddLog("Closing");
|
||||
if (hsdProcess != null)
|
||||
{
|
||||
this.Opacity = 0;
|
||||
hsdProcess.Kill();
|
||||
AddLog("HSD Closed");
|
||||
Thread.Sleep(1000);
|
||||
|
||||
try
|
||||
{
|
||||
hsdProcess.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
AddLog("Dispose failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -91,8 +117,9 @@ namespace FireWallet
|
||||
|
||||
|
||||
#region Settings
|
||||
private void LoadNode()
|
||||
private async Task<bool> LoadNode()
|
||||
{
|
||||
HSD = false;
|
||||
if (!File.Exists(dir + "node.txt"))
|
||||
{
|
||||
NodeForm cf = new NodeForm();
|
||||
@@ -104,7 +131,8 @@ namespace FireWallet
|
||||
{
|
||||
AddLog("Node setup failed");
|
||||
this.Close();
|
||||
return;
|
||||
await Task.Delay(1000);
|
||||
AddLog("Close Failed");
|
||||
}
|
||||
|
||||
StreamReader sr = new StreamReader(dir + "node.txt");
|
||||
@@ -122,7 +150,8 @@ namespace FireWallet
|
||||
{
|
||||
AddLog("Node Settings file is missing key");
|
||||
this.Close();
|
||||
return;
|
||||
await Task.Delay(1000);
|
||||
AddLog("Close Failed");
|
||||
}
|
||||
network = Convert.ToInt32(nodeSettings["Network"]);
|
||||
switch (network)
|
||||
@@ -137,12 +166,77 @@ namespace FireWallet
|
||||
toolStripStatusLabelNetwork.Text = "Network: Testnet";
|
||||
break;
|
||||
}
|
||||
NodeStatus();
|
||||
|
||||
if (nodeSettings.ContainsKey("HSD"))
|
||||
{
|
||||
if (nodeSettings["HSD"].ToLower() == "true")
|
||||
{
|
||||
HSD = true;
|
||||
AddLog("Starting HSD");
|
||||
toolStripStatusLabelstatus.Text = "Status: HSD Starting";
|
||||
|
||||
if (!Directory.Exists(dir + "hsd"))
|
||||
{
|
||||
NotifyForm Notifyinstall = new NotifyForm("Installing hsd\nThis may take a few minutes\nDo not close FireWallet", false);
|
||||
Notifyinstall.Show();
|
||||
// Wait for the notification to show
|
||||
await Task.Delay(1000);
|
||||
|
||||
string repositoryUrl = "https://github.com/handshake-org/hsd.git";
|
||||
string destinationPath = dir + "hsd";
|
||||
CloneRepository(repositoryUrl, destinationPath);
|
||||
|
||||
Notifyinstall.CloseNotification();
|
||||
Notifyinstall.Dispose();
|
||||
}
|
||||
hsdProcess = new Process();
|
||||
|
||||
bool hideScreen = true;
|
||||
if (nodeSettings.ContainsKey("HideScreen"))
|
||||
{
|
||||
if (nodeSettings["HideScreen"].ToLower() == "false")
|
||||
{
|
||||
hideScreen = false;
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
hsdProcess.StartInfo.CreateNoWindow = hideScreen;
|
||||
|
||||
hsdProcess.StartInfo.RedirectStandardInput = true;
|
||||
hsdProcess.StartInfo.RedirectStandardOutput = false;
|
||||
hsdProcess.StartInfo.UseShellExecute = false;
|
||||
hsdProcess.StartInfo.RedirectStandardError = false;
|
||||
hsdProcess.StartInfo.FileName = "node.exe";
|
||||
hsdProcess.StartInfo.Arguments = dir + "hsd/bin/hsd --index-tx --index-address --api-key " + nodeSettings["Key"];
|
||||
|
||||
string bobPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Bob\\hsd_data";
|
||||
if (Directory.Exists(bobPath))
|
||||
{
|
||||
hsdProcess.StartInfo.Arguments = hsdProcess.StartInfo.Arguments + " --prefix " + bobPath;
|
||||
}
|
||||
hsdProcess.Start();
|
||||
// Wait for HSD to start
|
||||
await Task.Delay(2000);
|
||||
} catch (Exception ex)
|
||||
{
|
||||
AddLog("HSD Failed to start");
|
||||
AddLog(ex.Message);
|
||||
this.Close();
|
||||
await Task.Delay(1000);
|
||||
AddLog("Close Failed");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
timerNodeStatus.Start();
|
||||
NodeStatus();
|
||||
return true;
|
||||
|
||||
}
|
||||
private void LoadSettings()
|
||||
{
|
||||
if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
|
||||
if (!File.Exists(dir + "settings.txt"))
|
||||
{
|
||||
AddLog("Creating settings file");
|
||||
@@ -390,19 +484,27 @@ namespace FireWallet
|
||||
}
|
||||
private async void GetAccounts()
|
||||
{
|
||||
string APIresponse = await APIGet("wallet", true);
|
||||
comboBoxaccount.Items.Clear();
|
||||
if (APIresponse != "Error")
|
||||
try
|
||||
{
|
||||
comboBoxaccount.Enabled = true;
|
||||
JArray jArray = JArray.Parse(APIresponse);
|
||||
foreach (string account in jArray)
|
||||
string APIresponse = await APIGet("wallet", true);
|
||||
comboBoxaccount.Items.Clear();
|
||||
if (APIresponse != "Error")
|
||||
{
|
||||
comboBoxaccount.Items.Add(account);
|
||||
}
|
||||
if (comboBoxaccount.Items.Count > 0)
|
||||
{
|
||||
comboBoxaccount.SelectedIndex = 0;
|
||||
comboBoxaccount.Enabled = true;
|
||||
JArray jArray = JArray.Parse(APIresponse);
|
||||
foreach (string account in jArray)
|
||||
{
|
||||
comboBoxaccount.Items.Add(account);
|
||||
}
|
||||
if (comboBoxaccount.Items.Count > 0)
|
||||
{
|
||||
comboBoxaccount.SelectedIndex = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
comboBoxaccount.Items.Add("No accounts found");
|
||||
comboBoxaccount.Enabled = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -410,10 +512,9 @@ namespace FireWallet
|
||||
comboBoxaccount.Enabled = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
catch
|
||||
{
|
||||
comboBoxaccount.Items.Add("No accounts found");
|
||||
comboBoxaccount.Enabled = false;
|
||||
AddLog("Error getting accounts");
|
||||
}
|
||||
}
|
||||
private async Task<bool> Login()
|
||||
@@ -458,6 +559,15 @@ namespace FireWallet
|
||||
if (jObject["watchOnly"].ToString() == "True") watchOnly = true;
|
||||
else watchOnly = false;
|
||||
toolStripStatusLabelLedger.Text = "Cold Wallet: " + watchOnly.ToString();
|
||||
|
||||
if (watchOnly)
|
||||
{
|
||||
buttonAddressVerify.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
buttonAddressVerify.Visible = false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -602,6 +712,8 @@ namespace FireWallet
|
||||
/// <returns></returns>
|
||||
public async Task<string> APIGet(string path, bool wallet)
|
||||
{
|
||||
if (nodeSettings == null) return "Error";
|
||||
if (!nodeSettings.ContainsKey("Key") || !nodeSettings.ContainsKey("IP")) return "Error";
|
||||
string key = nodeSettings["Key"];
|
||||
string ip = nodeSettings["IP"];
|
||||
|
||||
@@ -1053,7 +1165,8 @@ namespace FireWallet
|
||||
labelSendingError.Hide();
|
||||
labelSendingError.Text = "";
|
||||
buttonNavPortfolio.PerformClick();
|
||||
} else // Cold wallet signing
|
||||
}
|
||||
else // Cold wallet signing
|
||||
{
|
||||
AddLog("Sending CW " + amount.ToString() + " HNS to " + address);
|
||||
|
||||
@@ -1072,14 +1185,14 @@ namespace FireWallet
|
||||
// Try to install hsd-ledger
|
||||
try
|
||||
{
|
||||
NotifyForm Notifyinstall = new NotifyForm("Installing hsd-ledger\nThis may take a few minutes\nDo not close FireWallet",false);
|
||||
NotifyForm Notifyinstall = new NotifyForm("Installing hsd-ledger\nThis may take a few minutes\nDo not close FireWallet", false);
|
||||
Notifyinstall.Show();
|
||||
// Wait for the notification to show
|
||||
await Task.Delay(1000);
|
||||
|
||||
string repositoryUrl = "https://github.com/handshake-org/hsd-ledger.git";
|
||||
string destinationPath = dir + "hsd-ledger";
|
||||
CloneRepository(repositoryUrl,destinationPath);
|
||||
CloneRepository(repositoryUrl, destinationPath);
|
||||
|
||||
Notifyinstall.CloseNotification();
|
||||
Notifyinstall.Dispose();
|
||||
@@ -1092,10 +1205,10 @@ namespace FireWallet
|
||||
notifyError.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
NotifyForm notify = new NotifyForm("Please confirm the transaction on your Ledger device",false);
|
||||
NotifyForm notify = new NotifyForm("Please confirm the transaction on your Ledger device", false);
|
||||
notify.Show();
|
||||
|
||||
var proc = new Process();
|
||||
@@ -1137,7 +1250,8 @@ namespace FireWallet
|
||||
textBoxSendingTo.Text = "";
|
||||
textBoxSendingAmount.Text = "";
|
||||
buttonNavPortfolio.PerformClick();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
NotifyForm notifyError = new NotifyForm("Error Transaction Failed\nCheck logs for more details");
|
||||
notifyError.ShowDialog();
|
||||
@@ -1154,16 +1268,25 @@ namespace FireWallet
|
||||
labelSendingError.Text = ex.Message;
|
||||
}
|
||||
}
|
||||
private void CloneRepository(string repositoryUrl, string destinationPath)
|
||||
public void CloneRepository(string repositoryUrl, string destinationPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
bool hideScreen = true;
|
||||
if (nodeSettings.ContainsKey("HideScreen"))
|
||||
{
|
||||
if (nodeSettings["HideScreen"].ToLower() == "false")
|
||||
{
|
||||
hideScreen = false;
|
||||
}
|
||||
}
|
||||
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||
startInfo.FileName = "git";
|
||||
startInfo.Arguments = $"clone {repositoryUrl} {destinationPath}";
|
||||
startInfo.RedirectStandardOutput = true;
|
||||
startInfo.UseShellExecute = false;
|
||||
startInfo.CreateNoWindow = true;
|
||||
startInfo.CreateNoWindow = hideScreen;
|
||||
|
||||
Process process = new Process();
|
||||
process.StartInfo = startInfo;
|
||||
@@ -1181,27 +1304,25 @@ namespace FireWallet
|
||||
FileName = "cmd",
|
||||
RedirectStandardInput = true,
|
||||
WorkingDirectory = destinationPath,
|
||||
CreateNoWindow = true
|
||||
CreateNoWindow = hideScreen
|
||||
};
|
||||
var pNpmRunDist = Process.Start(psiNpmRunDist);
|
||||
pNpmRunDist.StandardInput.WriteLine("npm install & exit");
|
||||
pNpmRunDist.WaitForExit();
|
||||
|
||||
if (repositoryUrl == "https://github.com/handshake-org/hsd-ledger.git")
|
||||
{
|
||||
// Replace /bin/hsd-ledger with /bin/hsd-ledger from
|
||||
// https://raw.githubusercontent.com/Nathanwoodburn/FireWallet/master/hsd-ledger
|
||||
// This version of hsd-ledger has the sendraw transaction function added which is needed for batching
|
||||
|
||||
// Replace /bin/hsd-ledger with /bin/hsd-ledger from
|
||||
// https://raw.githubusercontent.com/Nathanwoodburn/FireWallet/master/hsd-ledger
|
||||
// This version of hsd-ledger has the sendraw transaction function added which is needed for batching
|
||||
|
||||
string sourcePath = destinationPath + "\\bin\\hsd-ledger";
|
||||
File.Delete(sourcePath);
|
||||
|
||||
// Download the new hsd-ledger
|
||||
WebClient downloader = new WebClient();
|
||||
downloader.DownloadFile("https://raw.githubusercontent.com/Nathanwoodburn/FireWallet/master/hsd-ledger", sourcePath);
|
||||
|
||||
|
||||
|
||||
string sourcePath = destinationPath + "\\bin\\hsd-ledger";
|
||||
File.Delete(sourcePath);
|
||||
|
||||
// Download the new hsd-ledger
|
||||
WebClient downloader = new WebClient();
|
||||
downloader.DownloadFile("https://raw.githubusercontent.com/Nathanwoodburn/FireWallet/master/hsd-ledger", sourcePath);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -1209,7 +1330,7 @@ namespace FireWallet
|
||||
AddLog(ex.Message);
|
||||
}
|
||||
}
|
||||
static bool CheckNodeInstalled()
|
||||
public bool CheckNodeInstalled()
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -1245,6 +1366,52 @@ namespace FireWallet
|
||||
labelReceive2.Text = "Copied to clipboard";
|
||||
labelReceive2.Left = (panelRecieve.Width - labelReceive2.Width) / 2;
|
||||
}
|
||||
private async void buttonAddressVerify_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var proc = new Process();
|
||||
proc.StartInfo.CreateNoWindow = true;
|
||||
proc.StartInfo.RedirectStandardInput = true;
|
||||
proc.StartInfo.RedirectStandardOutput = true;
|
||||
proc.StartInfo.UseShellExecute = false;
|
||||
proc.StartInfo.RedirectStandardError = true;
|
||||
proc.StartInfo.FileName = "node.exe";
|
||||
proc.StartInfo.Arguments = dir + "hsd-ledger/bin/hsd-ledger createaddress --api-key " + nodeSettings["Key"] + " -w " + account;
|
||||
proc.Start();
|
||||
|
||||
// Wait 1 sec
|
||||
await Task.Delay(1000);
|
||||
|
||||
// Get the output into a string
|
||||
string result = proc.StandardOutput.ReadLine();
|
||||
try
|
||||
{
|
||||
result = result.Replace("Verify address on Ledger device: ", "");
|
||||
}
|
||||
catch { }
|
||||
AddLog(result);
|
||||
textBoxReceiveAddress.Text = result;
|
||||
Size size = TextRenderer.MeasureText(textBoxReceiveAddress.Text, textBoxReceiveAddress.Font);
|
||||
textBoxReceiveAddress.Width = size.Width + 10;
|
||||
textBoxReceiveAddress.Left = (panelRecieve.Width - textBoxReceiveAddress.Width) / 2;
|
||||
|
||||
|
||||
NotifyForm notify = new NotifyForm("Please confirm the address on your Ledger device", false);
|
||||
notify.Show();
|
||||
|
||||
// Handle events until process exits
|
||||
while (!proc.HasExited)
|
||||
{
|
||||
// Check for cancellation
|
||||
if (proc.WaitForExit(100))
|
||||
break;
|
||||
Application.DoEvents();
|
||||
}
|
||||
|
||||
notify.CloseNotification();
|
||||
notify.Dispose();
|
||||
|
||||
}
|
||||
#endregion
|
||||
#region Domains
|
||||
public string[] Domains { get; set; }
|
||||
@@ -1457,10 +1624,12 @@ namespace FireWallet
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
1
FireWallet/NewAccountForm.Designer.cs
generated
1
FireWallet/NewAccountForm.Designer.cs
generated
@@ -104,7 +104,6 @@
|
||||
//
|
||||
// buttonCold
|
||||
//
|
||||
buttonCold.Enabled = false;
|
||||
buttonCold.FlatStyle = FlatStyle.Flat;
|
||||
buttonCold.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
buttonCold.Location = new Point(147, 239);
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Security.Principal;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
@@ -59,9 +61,50 @@ namespace FireWallet
|
||||
groupBoxNew.Text = "Import Wallet";
|
||||
}
|
||||
|
||||
private void buttonCold_Click(object sender, EventArgs e)
|
||||
private async void buttonCold_Click(object sender, EventArgs e)
|
||||
{
|
||||
// TODO - Cold wallet
|
||||
if (!Directory.Exists(mainForm.dir + "hsd-ledger"))
|
||||
{
|
||||
if (mainForm.CheckNodeInstalled() == false)
|
||||
{
|
||||
mainForm.AddLog("Node not installed");
|
||||
NotifyForm notify1 = new NotifyForm("Node not installed\nPlease install it to use Ledger");
|
||||
notify1.ShowDialog();
|
||||
notify1.Dispose();
|
||||
return;
|
||||
}
|
||||
mainForm.AddLog("Installing hsd-ledger");
|
||||
|
||||
// Try to install hsd-ledger
|
||||
try
|
||||
{
|
||||
NotifyForm Notifyinstall = new NotifyForm("Installing hsd-ledger\nThis may take a few minutes\nDo not close FireWallet", false);
|
||||
Notifyinstall.Show();
|
||||
// Wait for the notification to show
|
||||
await Task.Delay(1000);
|
||||
|
||||
string repositoryUrl = "https://github.com/handshake-org/hsd-ledger.git";
|
||||
string destinationPath = mainForm.dir + "hsd-ledger";
|
||||
mainForm.CloneRepository(repositoryUrl, destinationPath);
|
||||
|
||||
Notifyinstall.CloseNotification();
|
||||
Notifyinstall.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
NotifyForm notifyError = new NotifyForm("Error installing hsd-ledger\n" + ex.Message);
|
||||
mainForm.AddLog(ex.Message);
|
||||
notifyError.ShowDialog();
|
||||
notifyError.Dispose();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Import HSD Wallet
|
||||
groupBoxNew.Show();
|
||||
groupBoxNew.Text = "Import Ledger";
|
||||
buttonNext.Show();
|
||||
page = 4;
|
||||
}
|
||||
|
||||
private void textBoxNewName_TextChanged(object sender, EventArgs e)
|
||||
@@ -136,7 +179,7 @@ namespace FireWallet
|
||||
// Create new wallet
|
||||
buttonNext.Enabled = false;
|
||||
string path = "wallet/" + textBoxNewName.Text;
|
||||
string content = "{\"passphrase\":\"" + textBoxNewPass1.Text + "\",\"mnemonic\":\"" + textBoxSeedPhrase.Text +"\"}";
|
||||
string content = "{\"passphrase\":\"" + textBoxNewPass1.Text + "\",\"mnemonic\":\"" + textBoxSeedPhrase.Text + "\"}";
|
||||
string response = await APIPut(path, true, content);
|
||||
if (response == "Error")
|
||||
{
|
||||
@@ -152,6 +195,49 @@ namespace FireWallet
|
||||
notify2.Dispose();
|
||||
this.Close();
|
||||
}
|
||||
else if (page == 4)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Import Ledger
|
||||
buttonNext.Enabled = false;
|
||||
var proc = new Process();
|
||||
proc.StartInfo.CreateNoWindow = true;
|
||||
proc.StartInfo.RedirectStandardInput = true;
|
||||
proc.StartInfo.RedirectStandardOutput = true;
|
||||
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"];
|
||||
var outputBuilder = new StringBuilder();
|
||||
|
||||
// Event handler for capturing output data
|
||||
proc.OutputDataReceived += (sender, args) =>
|
||||
{
|
||||
if (!string.IsNullOrEmpty(args.Data))
|
||||
{
|
||||
outputBuilder.AppendLine(args.Data);
|
||||
}
|
||||
};
|
||||
|
||||
proc.Start();
|
||||
proc.BeginOutputReadLine();
|
||||
proc.WaitForExit();
|
||||
|
||||
mainForm.AddLog(outputBuilder.ToString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
mainForm.AddLog(ex.Message);
|
||||
NotifyForm notify = new NotifyForm("Error importing wallet\n" + ex.Message);
|
||||
notify.ShowDialog();
|
||||
notify.Dispose();
|
||||
this.Close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
HttpClient httpClient = new HttpClient();
|
||||
@@ -170,22 +256,28 @@ namespace FireWallet
|
||||
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Put, "http://" + ip + ":" + port + "/" + path);
|
||||
req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("x:" + key)));
|
||||
req.Content = new StringContent(content);
|
||||
|
||||
// Send request
|
||||
HttpResponseMessage resp = await httpClient.SendAsync(req);
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
resp.EnsureSuccessStatusCode();
|
||||
// Send request
|
||||
HttpResponseMessage resp = await httpClient.SendAsync(req);
|
||||
|
||||
if (resp.IsSuccessStatusCode)
|
||||
{
|
||||
return await resp.Content.ReadAsStringAsync();
|
||||
} else
|
||||
{
|
||||
mainForm.AddLog("Put Error: " + await resp.Content.ReadAsStringAsync());
|
||||
return "Error";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
mainForm.AddLog("Put Error: " + ex.Message);
|
||||
mainForm.AddLog(await resp.Content.ReadAsStringAsync());
|
||||
return "Error";
|
||||
}
|
||||
|
||||
return await resp.Content.ReadAsStringAsync();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
13
FireWallet/NodeForm.Designer.cs
generated
13
FireWallet/NodeForm.Designer.cs
generated
@@ -36,6 +36,7 @@ namespace FireWallet
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(NodeForm));
|
||||
labelWelcome = new Label();
|
||||
groupBoxNode = new GroupBox();
|
||||
checkBoxRunHSD = new CheckBox();
|
||||
labelNodeStatus = new Label();
|
||||
comboBoxNodeNetwork = new ComboBox();
|
||||
buttonSave = new Button();
|
||||
@@ -61,6 +62,7 @@ namespace FireWallet
|
||||
//
|
||||
// groupBoxNode
|
||||
//
|
||||
groupBoxNode.Controls.Add(checkBoxRunHSD);
|
||||
groupBoxNode.Controls.Add(labelNodeStatus);
|
||||
groupBoxNode.Controls.Add(comboBoxNodeNetwork);
|
||||
groupBoxNode.Controls.Add(buttonSave);
|
||||
@@ -77,6 +79,16 @@ namespace FireWallet
|
||||
groupBoxNode.TabStop = false;
|
||||
groupBoxNode.Text = "Node";
|
||||
//
|
||||
// checkBoxRunHSD
|
||||
//
|
||||
checkBoxRunHSD.AutoSize = true;
|
||||
checkBoxRunHSD.Location = new Point(62, 100);
|
||||
checkBoxRunHSD.Name = "checkBoxRunHSD";
|
||||
checkBoxRunHSD.Size = new Size(304, 19);
|
||||
checkBoxRunHSD.TabIndex = 10;
|
||||
checkBoxRunHSD.Text = "Run HSD (use this if you don't want to run Bob/HSD)";
|
||||
checkBoxRunHSD.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// labelNodeStatus
|
||||
//
|
||||
labelNodeStatus.AutoSize = true;
|
||||
@@ -193,5 +205,6 @@ namespace FireWallet
|
||||
private Button buttonSave;
|
||||
private ComboBox comboBoxNodeNetwork;
|
||||
private Label labelNodeStatus;
|
||||
private CheckBox checkBoxRunHSD;
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Linq;
|
||||
@@ -278,18 +279,47 @@ namespace FireWallet
|
||||
|
||||
private void SaveSettings(object sender, EventArgs e)
|
||||
{
|
||||
buttonNodeTest.PerformClick();
|
||||
|
||||
if (labelNodeStatus.Text != "Node Connected")
|
||||
if (textBoxNodeKey.Text == "")
|
||||
{
|
||||
NotifyForm notifyForm = new NotifyForm("Please enter a key");
|
||||
notifyForm.ShowDialog();
|
||||
notifyForm.Dispose();
|
||||
return;
|
||||
}
|
||||
StreamWriter sw = new StreamWriter(dir + "node.txt");
|
||||
sw.WriteLine("IP: " + textBoxNodeIP.Text);
|
||||
sw.WriteLine("Network: " + comboBoxNodeNetwork.SelectedIndex);
|
||||
sw.WriteLine("Key: " + textBoxNodeKey.Text);
|
||||
sw.Dispose();
|
||||
this.Close();
|
||||
if (checkBoxRunHSD.Checked)
|
||||
{
|
||||
if (!Regex.IsMatch(textBoxNodeKey.Text, @"^[a-zA-Z0-9]+$"))
|
||||
{
|
||||
NotifyForm notifyForm = new NotifyForm("Please enter valid API key\nDo not use spaces or weird stuff");
|
||||
notifyForm.ShowDialog();
|
||||
notifyForm.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
StreamWriter sw = new StreamWriter(dir + "node.txt");
|
||||
sw.WriteLine("IP: " + textBoxNodeIP.Text);
|
||||
sw.WriteLine("Network: " + comboBoxNodeNetwork.SelectedIndex);
|
||||
sw.WriteLine("Key: " + textBoxNodeKey.Text);
|
||||
sw.WriteLine("HSD: True");
|
||||
sw.Dispose();
|
||||
this.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
buttonNodeTest.PerformClick();
|
||||
|
||||
if (labelNodeStatus.Text != "Node Connected")
|
||||
{
|
||||
return;
|
||||
}
|
||||
StreamWriter sw = new StreamWriter(dir + "node.txt");
|
||||
sw.WriteLine("IP: " + textBoxNodeIP.Text);
|
||||
sw.WriteLine("Network: " + comboBoxNodeNetwork.SelectedIndex);
|
||||
sw.WriteLine("Key: " + textBoxNodeKey.Text);
|
||||
sw.Dispose();
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,7 @@ namespace FireWallet
|
||||
|
||||
private void SplashScreen_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (!close)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void label2_Click(object sender, EventArgs e)
|
||||
|
||||
765
FireWalletSetup/FireWalletSetup.vdproj
Normal file
765
FireWalletSetup/FireWalletSetup.vdproj
Normal file
@@ -0,0 +1,765 @@
|
||||
"DeployProject"
|
||||
{
|
||||
"VSVersion" = "3:800"
|
||||
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:FireWalletSetup"
|
||||
"LanguageId" = "3:1033"
|
||||
"CodePage" = "3:1252"
|
||||
"UILanguageId" = "3:1033"
|
||||
"SccProjectName" = "8:"
|
||||
"SccLocalPath" = "8:"
|
||||
"SccAuxPath" = "8:"
|
||||
"SccProvider" = "8:"
|
||||
"Hierarchy"
|
||||
{
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_04F4559CA8D64ECF91FCC8C907FEA44E"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_24448DEFADA9423B92D588F3CCFCE0BE"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
"Debug"
|
||||
{
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:Debug\\FireWalletSetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
}
|
||||
"Release"
|
||||
{
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:Release\\FireWalletSetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
}
|
||||
}
|
||||
"Deployable"
|
||||
{
|
||||
"CustomAction"
|
||||
{
|
||||
}
|
||||
"DefaultFeature"
|
||||
{
|
||||
"Name" = "8:DefaultFeature"
|
||||
"Title" = "8:"
|
||||
"Description" = "8:"
|
||||
}
|
||||
"ExternalPersistence"
|
||||
{
|
||||
"LaunchCondition"
|
||||
{
|
||||
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_EFBFB4D93D6D4A0FBAC69F265F0E04DB"
|
||||
{
|
||||
"Name" = "8:.NET Core"
|
||||
"Message" = "8:[VSDNETCOREMSG]"
|
||||
"AllowLaterVersions" = "11:FALSE"
|
||||
"InstallUrl" = "8:https://dotnet.microsoft.com/download/dotnet-core/[NetCoreVerMajorDotMinor]"
|
||||
"IsNETCore" = "11:TRUE"
|
||||
"Architecture" = "2:0"
|
||||
"Runtime" = "2:0"
|
||||
}
|
||||
}
|
||||
}
|
||||
"File"
|
||||
{
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04F4559CA8D64ECF91FCC8C907FEA44E"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\Downloads\\FW.ico"
|
||||
"TargetName" = "8:FW.ico"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_5E5E37B331014B2BBEB73878A5BF354B"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_57B16B55588E41459D70F9475B14B4BB"
|
||||
{
|
||||
"SourcePath" = "8:..\\..\\..\\..\\Downloads\\FWBanner.bmp"
|
||||
"TargetName" = "8:FWBanner.bmp"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_5E5E37B331014B2BBEB73878A5BF354B"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
}
|
||||
"Folder"
|
||||
{
|
||||
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_5E5E37B331014B2BBEB73878A5BF354B"
|
||||
{
|
||||
"DefaultLocation" = "8:[ProgramFilesFolder]\\FireWallet"
|
||||
"Name" = "8:#1925"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:TARGETDIR"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_BCC2277C7F2A49D9859AB85BE80771EC"
|
||||
{
|
||||
"Name" = "8:#1916"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:DesktopFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_C825708961074F0AB407ADD664E1DFA7"
|
||||
{
|
||||
"Name" = "8:#1919"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:ProgramMenuFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"LaunchCondition"
|
||||
{
|
||||
}
|
||||
"Locator"
|
||||
{
|
||||
}
|
||||
"MsiBootstrapper"
|
||||
{
|
||||
"LangId" = "3:1033"
|
||||
"RequiresElevation" = "11:FALSE"
|
||||
}
|
||||
"Product"
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:FireWallet"
|
||||
"ProductCode" = "8:{F0940C69-189F-4613-8D7C-C3C6EA9CDDA4}"
|
||||
"PackageCode" = "8:{B433A157-C12E-41BA-B25E-D42F91F186DC}"
|
||||
"UpgradeCode" = "8:{0C86F725-6B01-4173-AA05-3F0EDF481362}"
|
||||
"AspNetVersion" = "8:"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:2.0"
|
||||
"Manufacturer" = "8:Nathan.Woodburn/"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:https://l.woodburn.au/discord"
|
||||
"Title" = "8:FireWallet"
|
||||
"Subject" = "8:"
|
||||
"ARPCONTACT" = "8:Nathan.Woodburn/"
|
||||
"Keywords" = "8:"
|
||||
"ARPCOMMENTS" = "8:The Handshake wallet that is just Fire"
|
||||
"ARPURLINFOABOUT" = "8:https://github.com/Nathanwoodburn/FireWallet"
|
||||
"ARPPRODUCTICON" = "8:_04F4559CA8D64ECF91FCC8C907FEA44E"
|
||||
"ARPIconIndex" = "3:0"
|
||||
"SearchPath" = "8:"
|
||||
"UseSystemSearchPath" = "11:TRUE"
|
||||
"TargetPlatform" = "3:0"
|
||||
"PreBuildEvent" = "8:"
|
||||
"PostBuildEvent" = "8:"
|
||||
"RunPostBuildEvent" = "3:0"
|
||||
}
|
||||
"Registry"
|
||||
{
|
||||
"HKLM"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_5CDEC48EDB6148E1938060F809CCE1AA"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_01E845438BDD488C9229BED4A07565D8"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_E241C5D914C447D98BB058FEDA6FB2E0"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9056723452D74EEDA92F2BFD694C9C09"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCR"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKPU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Sequences"
|
||||
{
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
"{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_77F1CD9C54DE4F0294C9C2C3DAD59446"
|
||||
{
|
||||
"Name" = "8:FireWallet"
|
||||
"Arguments" = "8:"
|
||||
"Description" = "8:The Handshake wallet that is just Fire"
|
||||
"ShowCmd" = "3:1"
|
||||
"IconIndex" = "3:0"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Target" = "8:_24448DEFADA9423B92D588F3CCFCE0BE"
|
||||
"Folder" = "8:_C825708961074F0AB407ADD664E1DFA7"
|
||||
"WorkingFolder" = "8:_5E5E37B331014B2BBEB73878A5BF354B"
|
||||
"Icon" = "8:_04F4559CA8D64ECF91FCC8C907FEA44E"
|
||||
"Feature" = "8:"
|
||||
}
|
||||
}
|
||||
"UserInterface"
|
||||
{
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_324353D76F3C40A7AC383ECFFB7AD313"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9E8FABACA40B4AF19AC7837F6199E349"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_32996AB03B5A4723B065CE209D7CB353"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_5F8B496BAA7C4A4A83CC46CE05F0536A"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A09B666A12A14C99B65048178A482B56"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B3830A4823DE445B8A66D38BC4EA17AD"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F1DC457477AE4898BBA3BE9EADB3A338"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:WARNING: This computer program is experimental and is not guaranteed to be free of bugs. Please report any bugs to the Nathan or open an issue on the GitHub repository."
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_815C979C89AA4703BA731134B3DF354D"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D48757B8F9644017B6E349A2ADFC4926"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:0"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_8F9198D340754DEE9FFB73D19BBC990E"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_1B933693E12C4BD5B3C54B519C9B1F44"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Finished"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"UpdateText"
|
||||
{
|
||||
"Name" = "8:UpdateText"
|
||||
"DisplayName" = "8:#1058"
|
||||
"Description" = "8:#1158"
|
||||
"Type" = "3:15"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1258"
|
||||
"DefaultValue" = "8:#1258"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_B6C7BA0AF8C2424AABEAFBFD45FF0FE5"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_52696058E87E4D62B45AABE61847F970"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Progress"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_DAC87040C23F42E5A149D5258B972E5E"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_E63D340D36A543A8BBF49B7BC9395B62"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0315D52EA80A47BC987BE0887D3DBDEA"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:Welcome"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:WARNING: This computer program is experimental and is not guaranteed to be free of bugs. Please report any bugs to the Nathan or open an issue on the GitHub repository."
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7674CF69E98F4233B169B0E10CB27009"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:Installation Folder"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"InstallAllUsersVisible"
|
||||
{
|
||||
"Name" = "8:InstallAllUsersVisible"
|
||||
"DisplayName" = "8:#1059"
|
||||
"Description" = "8:#1159"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:0"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E94A31E39D684EC09F27D5431F16531B"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:Confirm Installation"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:2"
|
||||
"Value" = "8:_57B16B55588E41459D70F9475B14B4BB"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"MergeModule"
|
||||
{
|
||||
}
|
||||
"ProjectOutput"
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_24448DEFADA9423B92D588F3CCFCE0BE"
|
||||
{
|
||||
"SourcePath" = "8:..\\FireWallet\\obj\\Debug\\net6.0-windows\\apphost.exe"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_5E5E37B331014B2BBEB73878A5BF354B"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:PublishItems"
|
||||
"OutputProjectGuid" = "8:{14F28C5A-34CC-4FE0-8C8B-35C9A60704BC}"
|
||||
"ShowKeyOutput" = "11:TRUE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
27
README.md
27
README.md
@@ -21,6 +21,10 @@ This password will be used to encrypt your wallet and to login to your wallet.
|
||||
## First time setup
|
||||
When you first open the wallet you will be prompted to set your node settings.
|
||||
|
||||
You can either connect to an existing HSD (or Bob) node or you can run your own node.
|
||||
If you want to run your own node you should select the `Run HSD` option.
|
||||
This will take a few minutes to download and install HSD.
|
||||
|
||||
You can get the API key from the HSD launch command or
|
||||
in Bob wallet under settings > Wallet > API key.
|
||||
If you change this key in HSD or Bob you will need to update it in FireWallet.
|
||||
@@ -111,3 +115,26 @@ You can use a Ledger device to sign transactions.
|
||||
You need to have Node, NPM, and git installed to use Ledger.
|
||||
The Ledger components are not included in the app.
|
||||
These will install when you first send HNS (not domains) from a Ledger.
|
||||
|
||||
|
||||
# Settings
|
||||
FireWallet uses a few different settings files.
|
||||
They are stored in `%appdata%\FireWallet\` (`C:\Users\{username}\AppData\Roaming\FireWallet\`)
|
||||
|
||||
## settings.txt
|
||||
This file stores the user settings for the application.
|
||||
|
||||
## node.txt
|
||||
This file stores the node (HSD/Bob connection) settings.
|
||||
The Network is the network you want to connect to (default is `0` for Mainnet).
|
||||
If you delete this file, FireWallet will show the node setup screen on next startup.
|
||||
|
||||
## theme.txt
|
||||
This file stores the theme settings.
|
||||
The theme is the color scheme of the application.
|
||||
The `transparent-mode` key is used to enable or disable transparent modes.
|
||||
There are 4 modes: `off` is disabled, `mica` is windows app style, `key` is to make 1 colour transparent, and `percent` is to set the opacity of the window.
|
||||
|
||||
## log.txt
|
||||
This file stores the logs for the application.
|
||||
You should check this file if you have any issues with the application.
|
||||
19
debugging.md
Normal file
19
debugging.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Debugging Info
|
||||
|
||||
## App startup errors
|
||||
|
||||
|
||||
## Node (HSD) errors
|
||||
If you have selected to run the internal node you can check these steps to see if you can fix the issue.
|
||||
|
||||
1. Check the HSD directory in `%appdata%\FireWallet\` (`C:\Users\{username}\AppData\Roaming\FireWallet\HSD`)
|
||||
2. Try running `npm install` in the HSD directory (could have failed in the install process)
|
||||
3. Look in the HSD logs for errors in `C:\Users\{username}\.hsd\debug.log`
|
||||
|
||||
|
||||
## Ledger errors
|
||||
If you are having issues with Ledger you can check these steps to see if you can fix the issue.
|
||||
|
||||
1. Check the Ledger directory in `%appdata%\FireWallet\` (`C:\Users\{username}\AppData\Roaming\FireWallet\hsd-ledger`)
|
||||
2. Try running `npm install` in the Ledger directory (could have failed in the install process)
|
||||
3. Try running `node bin\hsd-ledger createaddress --api-key {api-key} -w {cold wallet name}` in the Ledger directory. This will get you to verify your address on the ledger device. If this fails you have some bigger issue.
|
||||
Reference in New Issue
Block a user