private void Button_Click_2(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "*.json|*.json"; if (ofd.ShowDialog() == true) { try { this.listAccount.Items.Clear(); nep6wallet = new ThinNeo.NEP6.NEP6Wallet(ofd.FileName); foreach (var v in nep6wallet.accounts) { if (v.Value.nep2key != null) { this.listAccount.Items.Add(v.Value); } } if (this.listAccount.Items.Count > 0) { this.listAccount.SelectedIndex = 0; } } catch (Exception err) { MessageBox.Show(err.Message); } } }
private void Button_Click(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "*.json|*.json"; if (ofd.ShowDialog() == true) { listAddr.Items.Clear(); nep6wallet = new ThinNeo.NEP6.NEP6Wallet(ofd.FileName); Dialog_Input_password pass = new Dialog_Input_password(); if (pass.ShowDialog() == true) { password = pass.password; foreach (var w in nep6wallet.accounts) { try { var pkey = w.Value.GetPrivate(pass.password); var pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(pkey); var phash = ThinNeo.Helper.GetScriptHashFromPublicKey(pubkey); string hex = ThinNeo.Helper.Bytes2HexString(phash); var add1 = ThinNeo.Helper.GetAddressFromScriptHash(ThinNeo.Helper.HexString2Bytes(w.Key)); var add2 = ThinNeo.Helper.GetAddressFromScriptHash(phash); var nep2 = ThinNeo.Helper.GetNep2FromPrivateKey(pkey, pass.password); var pkey2 = ThinNeo.Helper.GetPrivateKeyFromNEP2(nep2, pass.password); var pkey3 = ThinNeo.Helper.GetPublicKeyFromPrivateKey(pkey2); var phash3 = ThinNeo.Helper.GetScriptHashFromPublicKey(pkey3); var add32 = ThinNeo.Helper.GetAddressFromScriptHash(phash3); if (hex != w.Key) { throw new Exception("密码错"); } mapprikey[w.Key] = pkey; } catch { MessageBox.Show("密码错误"); password = null; break; } } } foreach (var w in nep6wallet.accounts) { var add1 = ThinNeo.Helper.GetAddressFromScriptHash(ThinNeo.Helper.HexString2Bytes(w.Key)); if (mapprikey.ContainsKey(w.Key)) { listAddr.Items.Add(add1 + "<含私钥>"); } else { listAddr.Items.Add(add1 + "<无私钥>"); } } } }
private void Button_Click_6(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "*.json|*.json"; if (ofd.ShowDialog() == true) { ThinNeo.NEP6.NEP6Wallet wallet = new ThinNeo.NEP6.NEP6Wallet(ofd.FileName); foreach (var w in wallet.accounts) { listInfo.Items.Add(w.Key); var prikey = w.Value.GetPrivate("我不会告诉你我的密码"); listInfo.Items.Add("pkey:" + ThinNeo.Helper.Bytes2HexString(prikey)); } } }
public static void ShowImportAddressListDialogue(ThinNeo.NEP6.NEP6Wallet nep6wallet, string password, Window window) { if (!window.IsActive) { return; } ImportAddressListDialogue importAddressListDialogue = new ImportAddressListDialogue(); list.Add(importAddressListDialogue); importAddressListDialogue.WindowStartupLocation = WindowStartupLocation.CenterOwner; importAddressListDialogue.Owner = window; importAddressListDialogue.ShowAddressInfo(nep6wallet, password); importAddressListDialogue.ShowDialog(); list.Remove(importAddressListDialogue); }
public void ShowAddressInfo(ThinNeo.NEP6.NEP6Wallet nep6wallet, string password) { var wifs = new List <string>(); var demoItem = this.listboxDemo.Items[0] as ListBoxItem; for (var i = 0; i < nep6wallet.accounts.Count; i++) { var v = nep6wallet.accounts.ToList()[i]; ThinNeo.NEP6.NEP6Account acc = v.Value as ThinNeo.NEP6.NEP6Account; if (acc == null) { return; } if (acc.nep2key == null) { return; } string xaml = System.Windows.Markup.XamlWriter.Save(demoItem); ListBoxItem item = System.Windows.Markup.XamlReader.Parse(xaml) as ListBoxItem; var label_address = item.FindName("address") as Label; var label_index = item.FindName("index") as Label; var img_state = item.FindName("img_state") as Image; var label_state = item.FindName("label_state") as Label; try { var prikey = acc.GetPrivate(nep6wallet.scrypt, password); var wif = NeoDun.SignTool.GetWifFromPrivateKey(prikey); wifs.Add(wif); label_address.Content = ThinNeo.Helper.GetAddressFromScriptHash(acc.ScriptHash); label_index.Content = (i + 1).ToString("00"); label_state.Content = "等待中"; label_state.Foreground = new SolidColorBrush(Color.FromRgb(191, 191, 191)); img_state.Visibility = Visibility.Hidden; this.listbox.Items.Add(item); } catch { label_address.Content = "密码和地址不匹配,数据错误"; label_index.Content = (i + 1).ToString("00"); label_state.Visibility = Visibility.Hidden; img_state.Visibility = Visibility.Hidden; this.listbox.Items.Add(item); } } AddAddress(wifs); }
private void Btn_OpenFile(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "*.json|*.json"; if (ofd.ShowDialog() == true) { try { this.label_path.Text = ofd.FileName; nep6wallet = new ThinNeo.NEP6.NEP6Wallet(this.label_path.Text); } catch (Exception err) { DialogueControl.ShowMessageDialogue(err.ToString(), 2, this); } } }
private void Button_Click(object sender, RoutedEventArgs e) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "*.json|*.json"; if (ofd.ShowDialog() == true) { this.nep6_listOut.Items.Clear(); nep6wallet = new ThinNeo.NEP6.NEP6Wallet(ofd.FileName); foreach (var v in nep6wallet.accounts) { this.nep6_listOut.Items.Add(v.Value); } } // Dialog_Input_password dlg = new Dialog_Input_password(); //if(dlg.ShowDialog()==true) //{ // string pass = dlg.password; // ThinNeo.NEP6.NEP6Wallet wallet = new ThinNeo.NEP6.NEP6Wallet(); //} }
public object getRes(JsonRPCrequest req, string reqAddr) { JArray result = new JArray(); string resultStr = string.Empty; string findFliter = string.Empty; string sortStr = string.Empty; try { switch (req.method) { case "signup": { string password = (string)req.@params[0]; ThinNeo.NEP6.NEP6Wallet nep6wallet = new ThinNeo.NEP6.NEP6Wallet(); nep6wallet.CreateAccount(password); result = new JArray() { JObject.Parse(nep6wallet.GetWallet().ToString()) }; } break; case "signin": { string wif = (string)req.@params[0]; string str_wallet = (string)req.@params[1]; if (!string.IsNullOrEmpty(wif)) { byte[] bytes_prikey = ThinNeo.Helper.GetPrivateKeyFromWIF(wif); string prikey = ThinNeo.Helper.Bytes2HexString(bytes_prikey); byte[] bytes_pubkey = ThinNeo.Helper.GetPublicKeyFromPrivateKey(bytes_prikey); string pubkey = ThinNeo.Helper.Bytes2HexString(bytes_pubkey); string address = ThinNeo.Helper.GetAddressFromPublicKey(bytes_pubkey); JObject Jo = new JObject(); Jo[address] = prikey; result = new JArray() { Jo }; } else if (!string.IsNullOrEmpty(str_wallet)) { MyJson.JsonNode_Object wallet = MyJson.Parse(str_wallet.Replace("\r\n", "")).AsDict(); ThinNeo.NEP6.NEP6Wallet nep6wallet = new ThinNeo.NEP6.NEP6Wallet(wallet); JArray Ja = new JArray(); foreach (var account in nep6wallet.accounts) { JObject jObject = new JObject(); jObject[ThinNeo.Helper.GetAddressFromPublicKey(account.Value.ScriptHash)] = account.Value.nep2key; Ja.Add(jObject); } result = Ja; } } break; case "getassets": //获取资产余额 { string prikey = (string)req.@params[0]; JArray jArray = new JArray(); JObject jObject = new JObject(); jObject["id"] = "neo"; jObject["name"] = "小蚁股"; jObject["value"] = 123; jArray.Add(jObject); jObject = new JObject(); jObject["id"] = "gas"; jObject["name"] = "小蚁币"; jObject["value"] = 321; jArray.Add(jObject); result = jArray; } break; case "chargemoney": //充钱 { string prikey = (string)req.@params[0]; Int64 value = (Int64)req.@params[1]; result = getJAbyKV("result", "success"); } break; case "getbackmoney": //退钱 { string prikey = (string)req.@params[0]; Int64 value = (Int64)req.@params[1]; result = getJAbyKV("result", "success"); } break; case "bet": //下注 { string prikey = (string)req.@params[0]; string seasonid = (string)req.@params[1]; string gameid = (string)req.@params[2]; Int64 value = (Int64)req.@params[3]; result = getJAbyKV("result", "success"); } break; case "take": //领奖 { string prikey = (string)req.@params[0]; string seasonid = (string)req.@params[1]; string gameid = (string)req.@params[2]; result = getJAbyKV("result", "success"); } break; case "getseasoninfo": //获得赛季信息 { string seasonid = (string)req.@params[0]; if (string.IsNullOrEmpty(seasonid)) { } else { } JObject jObject = new JObject(); jObject["seasonid"] = "1"; JArray jArray = new JArray(); for (var i = 1; i < 16; i++) { JObject jObject2 = new JObject(); jObject2["gameid"] = i.ToString(); jObject2["team1"] = i; jObject2["team2"] = i + 1; jObject2["winner"] = i; jArray.Add(jObject2); } jObject["info"] = jArray; result = new JArray() { jObject }; } break; case "getgamestate": //获取比赛状态 { Random rd = new Random(); var i = rd.Next(0, 17); result = getJAbyKV("result", i); } break; } if (result.Count == 0) { JsonPRCresponse_Error resE = new JsonPRCresponse_Error(req.id, -1, "No Data", "Data does not exist"); return(resE); } } catch (Exception e) { JsonPRCresponse_Error resE = new JsonPRCresponse_Error(req.id, -100, "Parameter Error", e.Message); return(resE); } JsonPRCresponse res = new JsonPRCresponse(); res.jsonrpc = req.jsonrpc; res.id = req.id; res.result = result; return(res); }