private void btnSend_Click(object sender, EventArgs e) { var from_address = lbAddress.Text.Trim(); var to_address = txtToAddress.Text.Trim(); if (!(to_address.Length == 42 && to_address.IndexOf("0x") == 0)) { EasyMsg.ShowTips("请输入合法的转入账户地址!"); return; } var to_num = decimal.Parse(txtToNum.Text.Trim()); var money = decimal.Parse(lbMoney.Text.Trim()); if (to_num > money) { EasyMsg.ShowTips("余额不足!"); return; } LogMessage("您发起了一个转赠请求!\r\n接收地址:" + to_address + "\r\n转赠数量:" + to_num); FormSend send = new FormSend(); send.to_num = to_num.ToString(); send.from_address = from_address; send.to_address = to_address; send.ShowDialog(this); }
private void btnSubmit_Click(object sender, EventArgs e) { var password = txtPassword.Text.Trim(); var keyFile = Application.StartupPath + "\\KeyStore\\" + from_address; Account account; try { account = LinkClass.TransactionEx.UnlockAccountFromKeyStoreFile(keyFile, password); } catch (Exception) { account = null; } if (account == null) { EasyMsg.ShowTips("密码错误!"); return; } var nonce = LinkClass.TransactionEx.GetTransactionCount(from_address); var sing = LinkClass.TransactionEx.SignTransaction(account.PrivateKey, to_address, decimal.Parse(to_num), nonce); var msg = LinkClass.TransactionEx.SendRawTransaction(sing); if (msg.IndexOf("0x") == 0) { LogMessage("转赠成功!\r\nhash值:" + msg); } else { LogError("转赠失败:" + msg); } this.Close(); }
private void btnImport_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "钱包文件|*.*"; Stream myStream = null; if (dialog.ShowDialog() == DialogResult.OK) { try { if ((myStream = dialog.OpenFile()) != null) { StreamReader st = new StreamReader(dialog.FileName); string str = st.ReadLine(); var resultJson = JsonConvert.DeserializeObject <dynamic>(str); string address = "0x" + resultJson.address; var targetFile = GlobalVar.keystore_path + "\\" + address; var UTF8NoBom = new UTF8Encoding(false); StreamWriter sw = new StreamWriter(targetFile, false, UTF8NoBom); sw.Write(str); sw.Close(); cboxAccount.Items.Add(address); cboxAccount.SelectedItem = address; LogMessage("导入账户成功:\r\n" + address); } } catch (Exception ex) { EasyMsg.ShowTips("导入账户失败!"); } } }
private void btnImport_Click(object sender, EventArgs e) { string KeyStorePath = Application.StartupPath + @"\KeyStore"; OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "链克口袋文件|*.*"; Stream myStream = null; if (dialog.ShowDialog() == DialogResult.OK) { try { if ((myStream = dialog.OpenFile()) != null) { StreamReader st = new StreamReader(dialog.FileName); string str = st.ReadLine(); var resultJson = JsonConvert.DeserializeObject <dynamic>(str); string address = "0x" + resultJson.address; var targetFile = KeyStorePath + "\\" + address; var UTF8NoBom = new UTF8Encoding(false); StreamWriter sw = new StreamWriter(targetFile, false, UTF8NoBom); sw.Write(str); sw.Close(); BindAccount(); LogMessage("导入账户成功:\r\n" + address); } } catch (Exception ex) { EasyMsg.ShowTips("导入账户失败!"); } } }
private void btnSubmit_Click(object sender, EventArgs e) { var pwd1 = txtPassword1.Text.Trim(); var pwd2 = txtPassword2.Text.Trim(); if (pwd1.Length < 8 || pwd2.Length < 8) { EasyMsg.ShowTips("密码长度不能小于8位!"); return; } if (pwd1 != pwd2) { EasyMsg.ShowTips("两次密码输入不一致!"); return; } this.Close(); }
private void btnDelete_Click(object sender, EventArgs e) { var a = listBoxAccount.SelectedIndex; if (a >= 0) { var address = listBoxAccount.SelectedItem.ToString(); listBoxAccount.Items.RemoveAt(a); var path = Application.StartupPath + "\\KeyStore\\" + address; File.Delete(path); //BindAccount(); LogMessage("删除账户 " + address + " 成功!"); } else { EasyMsg.ShowTips("请选中一个链克口袋!"); } }
private void btnSnedTransaction_Click(object sender, EventArgs e) { var keyPath = GlobalVar.keystore_path + "\\" + cboxAccount.Text; var keyPwd = txtKeyPwd.Text; Account account; try { account = TransactionEx.UnlockAccountFromKeyStoreFile(keyPath, keyPwd); } catch (Exception) { account = null; } if (account == null) { EasyMsg.ShowTips("密码错误!"); return; } var trans = new TransactionEx(cBoxRpc.Text); var nonce = trans.GetTransactionCount(account.Address); var sign = trans.SignTransaction(account.PrivateKey, txtReciveAddress.Text, decimal.Parse(txtAmount.Text), nonce, account.Address); var msg = trans.SendRawTransaction(sign); if (string.IsNullOrEmpty(msg)) { EasyMsg.ShowTips("网络异常,请重新尝试!"); return; } if (msg.IndexOf("0x") == 0) { EasyMsg.ShowTips("转赠成功!\r\nhash值:" + msg); var balance = decimal.Parse(txtBalance.Text); var amount = decimal.Parse(txtAmount.Text); txtBalance.Text = (balance - amount).ToString(); } else { EasyMsg.ShowTips("转赠失败:" + msg); return; } }
private void btnSubmit_Click(object sender, EventArgs e) { var pwd1 = txtPassword1.Text.Trim(); var pwd2 = txtPassword2.Text.Trim(); if (pwd1.Length < 8 || pwd2.Length < 8) { EasyMsg.ShowTips("密码长度不能小于8位!"); return; } if (pwd1 != pwd2) { EasyMsg.ShowTips("两次密码输入不一致!"); return; } string address = KeyStoreEx.GenerateKeyStore(pwd1, Application.StartupPath + "\\KeyStore"); FormMain main = (FormMain)this.Owner; main.AddNewAccount(address); this.Close(); }