コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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 + "<无私钥>");
                    }
                }
            }
        }
コード例 #3
0
 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));
         }
     }
 }
コード例 #4
0
ファイル: DialogueControl.cs プロジェクト: wangfei0/NeoDun
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 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);
         }
     }
 }
コード例 #7
0
        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();
            //}
        }
コード例 #8
0
        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);
        }