コード例 #1
0
        public JArray GetAddrsTxs(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var addr = req.@params[0].ToString();

                string select = "select txid,addr from  address_tx where @addr = addr ";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@addr", addr);


                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["txid"]).ToString();
                    var vdata = (rdr["addr"]).ToString();


                    bk.Add(new JObject {
                        { "txid", adata }, { "addr", vdata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #2
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetBlockHeight(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();

                var    counter = req.@params[0].ToString();
                string select  = "select lastBlockindex from sys_counter where counter = @counter";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@counter", counter);

                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["lastBlockindex"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "lastblockindex", adata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #3
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetBlockCount(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();

                var    id     = req.@params[0].ToString();
                string select = "select height from blockheight where @id = id";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@id", id);

                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["height"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "height", adata }
                        }
                    };

                    res.result = bk;
                }


                return(res.result);
            }
        }
コード例 #4
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetRankByAsset(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();


                {
                    string select = "select id, amount , admin from asset where id='" + req.@params[0] + "'";

                    JsonPRCresponse res = new JsonPRCresponse();
                    MySqlCommand    cmd = new MySqlCommand(select, conn);

                    JArray          bk  = new JArray();
                    MySqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        var adata = (rdr["id"]).ToString();
                        var bl    = (rdr["amount"]).ToString();
                        var ad    = (rdr["admin"]).ToString();

                        bk.Add(new JObject {
                            { "asset", adata }, { "balance", bl }, { "addr", ad }
                        });
                    }

                    return(res.result = bk);
                }
            }
        }
コード例 #5
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetRankByAssetCount(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                //var addr = req.@params[0].ToString();

                {
                    string select = "select count(*) from asset where id='" + req.@params[0].ToString() + "'";

                    JsonPRCresponse res = new JsonPRCresponse();
                    MySqlCommand    cmd = new MySqlCommand(select, conn);


                    MySqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        var adata = (rdr["count(*)"]).ToString();

                        JArray bk = new JArray {
                            new JObject    {
                                { "count", adata }
                            }
                        };

                        res.result = bk;
                    }



                    return(res.result);
                }
            }
        }
コード例 #6
0
        public JArray GetAddrCount(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();


                string select = "select count(*) from address";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);



                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["count(*)"]).ToString();



                    JArray bk = new JArray {
                        new JObject    {
                            { "addrcount", adata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #7
0
        public JArray GetNep5TransferByTxid(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var txid = req.@params[0].ToString();

                string select = "select  id , asset , from , to , value from nep5transfer where txid = @txid";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@txid", txid);


                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var idata = (rdr["id"]).ToString();
                    var adata = (rdr["asset"]).ToString();
                    var fdata = (rdr["from"]).ToString();
                    var tdata = (rdr["to"]).ToString();
                    var vdata = (rdr["value"]).ToString();


                    bk.Add(new JObject {
                        { "id", idata }, { "asset ", adata }, { "from", fdata }, { "to", tdata }, { "value", vdata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #8
0
        public JArray GetNep5Asset(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var assetid = req.@params[0].ToString();

                string select = "select totalsupply , name , symbol , decimals from nep5asset where assetid = @assetid";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@assetid", assetid);


                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["totalsupply"]).ToString();
                    var ndata = (rdr["name"]).ToString();
                    var sdata = (rdr["symbol"]).ToString();
                    var ddata = (rdr["decimals"]).ToString();



                    bk.Add(new JObject {
                        { "totalsupply", adata }, { "name", ndata }, { "symbol", sdata }, { "decimals", ddata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #9
0
        public JArray GetAllNep5Assets(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();

                string select = "select assetid from nep5asset ";

                MySqlCommand cmd = new MySqlCommand(select, conn);

                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["assetid"]).ToString();



                    bk.Add(new JObject {
                        { "assetid", adata }
                    });
                }
                return(res.result = bk);
            }
        }
コード例 #10
0
        public JArray GetAddrs(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();


                string select = "select addr , firstdate , lastdate , firstuse , lastuse , txcount from address ";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);


                MySqlDataReader rdr = cmd.ExecuteReader();

                JArray bk = new JArray();
                while (rdr.Read())
                {
                    var adata   = (rdr["addr"]).ToString();
                    var fdata   = (rdr["firstdate"]).ToString();
                    var ldata   = (rdr["lastdate"]).ToString();
                    var f       = (rdr["firstuse"]).ToString();
                    var l       = (rdr["lastuse"]).ToString();
                    var txcount = (rdr["txcount"]).ToString();

                    bk.Add(new JObject {
                        { "addr", adata }, { "firstdate", fdata }, { "lastdate", ldata }, { "firstuse", f }, { "lastuse", l }, { "txcount", txcount }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #11
0
        public JArray GetRawTransactions(JsonRPCrequest req)          // needs a sorting by txtype miner , reg or issue
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();

                string select = "select txid , type , blockindex , size from tx limit 20";

                MySqlCommand cmd = new MySqlCommand(select, conn);


                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();

                JArray bk = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["txid"]).ToString();
                    var vdata = (rdr["type"]).ToString();
                    var bdata = (rdr["blockindex"]).ToString();
                    var sdata = (rdr["size"]).ToString();

                    bk.Add(new JObject {
                        { "txid ", adata }, { "type ", vdata }, { "height ", bdata }, { "size ", sdata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #12
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetAsset(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var available = req.@params[0].ToString();

                string select = "select id from  asset where available = @available";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@available", available);

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    var adata = (rdr["id"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "id", adata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #13
0
        public JArray GetUTXO(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                JsonPRCresponse res = new JsonPRCresponse();
                conn.Open();

                var    txid   = req.@params[0].ToString();
                string select = "select asset , value from utxo where txid = @txid";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@txid", txid);


                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();

                while (rdr.Read())
                {
                    var adata = (rdr["asset"]).ToString();

                    var vdata = (rdr["value"]).ToString();


                    bk.Add(new JObject {
                        { "asset ", adata }, { "value ", vdata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #14
0
        public JArray GetAllAsset(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();


                string select = "select id , type , available , issuer from asset";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);


                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["id"]).ToString();
                    var tdata = (rdr["type"]).ToString();
                    var xdata = (rdr["available"]).ToString();
                    var pdata = (rdr["issuer"]).ToString();



                    bk.Add(new JObject {
                        { "id", adata }, { "type", tdata }, { "available", xdata }, { "precision", pdata }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #15
0
        public JArray GetBalance(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var address = req.@params[0].ToString();

                string select = "select address , balance from balance where address = @address";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@address", address);

                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["address"]).ToString();
                    var ldata = (rdr["balance"]).ToString();


                    JArray bk = new JArray {
                        new JObject    {
                            { "address", adata }
                        },
                        new JObject    {
                            { "addresss", ldata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #16
0
        public JArray GetAddress(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var addr = req.@params[0].ToString();

                string select = "select firstuse , lastuse , txcount from  address where addr = @addr";

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@addr", addr);

                JArray          bk  = new JArray();
                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["firstuse"]).ToString();
                    var ldata = (rdr["lastuse"]).ToString();
                    var tdata = (rdr["txcount"]).ToString();

                    bk.Add(new JObject {
                        { "firstuse", adata }, { "lastuse", ldata }, { "txcount", tdata }
                    });
                }



                return(res.result = bk);
            }
        }
コード例 #17
0
        public JArray GetNotify(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var txid = req.@params[0].ToString();

                string select = "select gasconsumed from notify where txid = @txid";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@txid", txid);

                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["gasconsumed"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "gasconsumed", adata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #18
0
        public JArray GetBlockCount(JsonRPCrequest req)           // gets the last 1 in desc
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();


                string select = "select height from blockheight limit 1";

                MySqlCommand cmd = new MySqlCommand(select, conn);


                JsonPRCresponse res = new JsonPRCresponse();

                MySqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    var adata = (rdr["height"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "height", adata }
                        }
                    };

                    res.result = bk;
                }


                return(res.result);
            }
        }
コード例 #19
0
        public JArray GetBlockTime(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                JsonPRCresponse res = new JsonPRCresponse();
                conn.Open();

                var    hash   = req.@params[0].ToString();
                string select = "select size , version , previousblockhash , merkleroot , time , nonce , nextconsensus , script  from block where hash = @hash";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@hash", hash);


                MySqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    var sdata = (rdr["size"]).ToString();
                    var adata = (rdr["version"]).ToString();
                    var pdata = (rdr["previousblockhash"]).ToString();
                    var mdata = (rdr["merkleroot"]).ToString();
                    var tdata = (rdr["time"]).ToString();
                    var ndata = (rdr["nonce"]).ToString();
                    var nc    = (rdr["nextconsensus"]).ToString();

                    JArray bk = new JArray {
                        new JObject    {
                            { "size", sdata }
                        },
                        new JObject    {
                            { "version", adata }
                        },
                        new JObject    {
                            { "previoushash", pdata }
                        },
                        new JObject    {
                            { "merkleroot", mdata }
                        },
                        new JObject    {
                            { "time", tdata }
                        },
                        new JObject    {
                            { "nonce", ndata }
                        },
                        new JObject    {
                            { "nextconsensus", nc }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }
コード例 #20
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetAddressTx(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var addr = req.@params[0].ToString();

                string select = "select a.txid,a.addr,a.blocktime,a.blockindex,b.type,b.vout,b.vin from  address_tx as a , tx as b where @addr = addr and a.txid = b.txid limit " + req.@params[1];

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlCommand    cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@addr", addr);


                MySqlDataReader rdr = cmd.ExecuteReader();
                JArray          bk  = new JArray();
                while (rdr.Read())
                {
                    var adata = (rdr["txid"]).ToString();
                    var vdata = (rdr["addr"]).ToString();
                    var bt    = (rdr["blocktime"]).ToString();
                    var bi    = (rdr["blockindex"]).ToString();
                    var type  = (rdr["type"]).ToString();
                    var vout  = (rdr["vout"]).ToString();
                    var vin   = (rdr["vin"]).ToString();

                    JObject t = new JObject()
                    {
                        { "$date", bt }
                    };
                    JObject vo = new JObject()
                    {
                        { "$date", bt }
                    };
                    bk.Add(new JObject {
                        { "addr", vdata }, { "txid", adata }, { "blockindex", bi }, { "blocktime", t }, { "type", type }, { "vout", JArray.Parse(vout) }, { "vin", JArray.Parse(vin) }
                    });
                }
                JArray c = new JArray()
                {
                };
                c.Add(new JObject {
                    { "count", JToken.Parse("10") }, { "list", bk }
                });
                return(res.result = c);
            }
        }
コード例 #21
0
        public JArray GetAllNep5Transfers(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                string           select  = "select * from  nep5transfer";
                MySqlDataAdapter adapter = new MySqlDataAdapter(select, conf);
                DataSet          ds      = new DataSet();
                adapter.Fill(ds);
                var             data    = ds.ToString();
                var             alldata = Newtonsoft.Json.Linq.JArray.Parse(data);
                JsonPRCresponse res     = new JsonPRCresponse();
                res.jsonrpc = req.jsonrpc;
                res.id      = req.id;
                res.result  = alldata;

                return(alldata);
            }
        }
コード例 #22
0
        public JArray GetBlocks(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                JsonPRCresponse res = new JsonPRCresponse();
                conn.Open();


                string select = "select  size ,  version , previousblockhash , merkleroot , time , nonce , nextconsensus , script  from block  limit 10";

                MySqlCommand cmd = new MySqlCommand(select, conn);


                MySqlDataReader rdr = cmd.ExecuteReader();

                JArray bk = new JArray();

                while (rdr.Read())
                {
                    var sdata = (rdr["size"]).ToString();
                    var adata = (rdr["version"]).ToString();
                    var pdata = (rdr["previousblockhash"]).ToString();
                    var mdata = (rdr["merkleroot"]).ToString();
                    var tdata = (rdr["time"]).ToString();
                    var ndata = (rdr["nonce"]).ToString();
                    var nc    = (rdr["nextconsensus"]).ToString();
                    var s     = (rdr["script"]).ToString();



                    bk.Add(new JObject {
                        { "size", sdata }, { "version", adata }, { "previousblockhash", pdata }, { "merkleroot", mdata }, { "time", tdata }, { "nonce", ndata }, { "nextconsensus", nc }, { "script", s }
                    });
                }

                return(res.result = bk);
            }
        }
コード例 #23
0
ファイル: mySqlHelper.cs プロジェクト: robomac77/scan-server
        public JArray GetBlockTime(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var index = req.@params[0].ToString();

                string select = "select time from  block where index = @index";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@index", index);

                MySqlDataReader rdr = cmd.ExecuteReader();
                rdr.Read();

                Object data = (rdr["time"]);
                JArray bk   = new JArray(data);

                JsonPRCresponse res = new JsonPRCresponse();
                res.result = bk;
                return(res.result);
            }
        }
コード例 #24
0
        public object getRes(JsonRPCrequest req, string reqAddr)
        {
            JArray result = new JArray();

            try
            {
                point(req.method);
                result = ProcessRes(req);
                if (result != null && result.Count > 0 && result[0]["errorCode"] != null)
                {
                    JsonPRCresponse_Error resE = new JsonPRCresponse_Error(req.id, (int)result[0]["errorCode"], (string)result[0]["errorMsg"], (string)result[0]["errorData"]);

                    return(resE);
                }
                //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);
        }
コード例 #25
0
ファイル: Api.cs プロジェクト: tssqzr/NEO_Block_API
        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 "getnodetype":
                    JArray JA = new JArray
                    {
                        new JObject {
                            { "nodeType", netnode }
                        }
                    };
                    result = JA;
                    break;

                case "getdatablockheight":
                    result = mh.Getdatablockheight(mongodbConnStr, mongodbDatabase);
                    break;

                case "getblockcount":
                    //resultStr = "[{blockcount:" + mh.GetDataCount(mongodbConnStr, mongodbDatabase, "block") + "}]";
                    result = getJAbyKV("blockcount", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "block"));
                    break;

                case "getcliblockcount":
                    var resp = hh.Post(neoCliJsonRPCUrl, "{'jsonrpc':'2.0','method':'getblockcount','params':[],'id':1}", System.Text.Encoding.UTF8, 1);

                    string cliResultStr = (string)JObject.Parse(resp)["result"];
                    result = getJAbyKV("cliblockcount", cliResultStr);
                    break;

                case "gettxcount":
                    //resultStr = "[{txcount:" + mh.GetDataCount(mongodbConnStr, mongodbDatabase, "tx") + "}]";
                    //result = getJAbyKV("txcount", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "tx"));
                    findFliter = "{}";
                    if ([email protected]() > 0)
                    {
                        string type = req.@params[0].ToString();
                        if (type != null && type != string.Empty)
                        {
                            findFliter = "{type:\"" + type + "\"}";
                        }
                    }
                    result = getJAbyKV("txcount", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "tx", findFliter));
                    break;

                case "getaddrcount":
                    //resultStr = "[{addrcount:" + mh.GetDataCount(mongodbConnStr, mongodbDatabase, "address") + "}]";
                    result = getJAbyKV("addrcount", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "address"));
                    break;

                case "getblock":
                    findFliter = "{index:" + req.@params[0] + "}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "block", findFliter);
                    break;

                case "getblocktime":
                    findFliter = "{index:" + req.@params[0] + "}";
                    var time = (Int32)mh.GetData(mongodbConnStr, mongodbDatabase, "block", findFliter)[0]["time"];
                    result = getJAbyKV("time", time);
                    break;

                case "getblocks":
                    sortStr = "{index:-1}";
                    result  = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "block", sortStr, int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                case "getrawtransaction":
                    findFliter = "{txid:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "tx", findFliter);
                    break;

                case "getrawtransactions":
                    sortStr    = "{blockindex:-1,txid:-1}";
                    findFliter = "{}";
                    if ([email protected]() > 2)
                    {
                        string txType = req.@params[2].ToString();

                        if (txType != null && txType != string.Empty)
                        {
                            findFliter = "{type:'" + txType + "'}";
                        }
                    }
                    result = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "tx", sortStr, int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()), findFliter);
                    break;

                case "getaddrs":
                    sortStr = "{'lastuse.blockindex' : -1,'lastuse.txid' : -1}";
                    result  = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "address", sortStr, int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                case "getaddr":
                    string addr = req.@params[0].ToString();
                    findFliter = "{addr:'" + addr + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "address", findFliter);
                    break;

                case "getaddresstxs":
                    string findBson = "{'addr':'" + req.@params[0].ToString() + "'}";
                    sortStr = "{'blockindex' : -1}";
                    result  = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "address_tx", sortStr, int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), findBson);
                    break;

                case "getasset":
                    findFliter = "{id:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "asset", findFliter);
                    break;

                case "getallasset":
                    findFliter = "{}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "asset", findFliter);
                    break;

                case "getfulllog":
                    findFliter = "{txid:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "fulllog", findFliter);
                    break;

                case "getnotify":
                    findFliter = "{txid:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "notify", findFliter);
                    break;

                case "getutxo":
                    if ([email protected]() == 1)
                    {
                        findFliter = "{addr:'" + req.@params[0] + "',used:''}";
                        result     = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);
                    }
                    else if ([email protected]() == 2)
                    {
                        if ((Int64)req.@params[1] == 1)
                        {
                            findFliter = "{addr:'" + req.@params[0] + "'}";
                        }
                        result = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);
                    }
                    else if ([email protected]() == 3)
                    {
                        findFliter = "{addr:'" + req.@params[0] + "',used:''}";
                        sortStr    = "{'createHeight':1,'txid':1,'n':1}";
                        result     = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "utxo", sortStr, int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), findFliter);
                    }
                    else if ([email protected]() == 4)
                    {
                        if ((Int64)req.@params[1] == 1)
                        {
                            findFliter = "{addr:'" + req.@params[0] + "'}";
                        }
                        sortStr = "{'createHeight':1,'txid':1,'n':1}";
                        result  = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "utxo", sortStr, int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()), findFliter);
                    }
                    break;

                case "getutxocount":
                    addr = req.@params[0].ToString();
                    if (addr != null && addr != string.Empty)
                    {
                        findFliter = "{addr:\"" + addr + "\"}";
                    }
                    result = getJAbyKV("utxocount", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "utxo", findFliter));
                    break;

                case "getutxostopay":
                    string  address    = (string)req.@params[0];
                    string  assetID    = ((string)req.@params[1]).formatHexStr();
                    decimal amount     = decimal.Parse(req.@params[2].ToString());
                    bool    isBigFirst = false;  //默认先用小的。

                    if ([email protected]() == 4)
                    {
                        if ((Int64)req.@params[3] == 1)
                        {
                            isBigFirst = true;    //加可选参数可以先用大的。
                        }
                    }

                    findFliter = "{addr:'" + address + "',used:''}";
                    JArray utxoJA = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);

                    result = tx.getUtxo2Pay(utxoJA, address, assetID, amount, isBigFirst);
                    break;

                case "getclaimgas":
                    JObject claimsJ = new JObject();
                    if ([email protected]() == 1)
                    {
                        claimsJ = claim.getClaimGas(mongodbConnStr, mongodbDatabase, req.@params[0].ToString());
                    }
                    ;
                    if ([email protected]() == 2)
                    {
                        if ((Int64)req.@params[1] == 1)
                        {
                            claimsJ = claim.getClaimGas(mongodbConnStr, mongodbDatabase, req.@params[0].ToString(), false);
                        }
                    }
                    result = getJAbyJ(claimsJ);
                    break;

                case "getclaimtxhex":
                    string addrClaim = (string)req.@params[0];

                    result = getJAbyKV("claimtxhex", tx.getClaimTxHex(addrClaim, claim.getClaimGas(mongodbConnStr, mongodbDatabase, addrClaim)));
                    break;

                case "getbalance":
                    findFliter = "{addr:'" + req.@params[0] + "',used:''}";
                    JArray utxos = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);
                    Dictionary <string, decimal> balance = new Dictionary <string, decimal>();
                    foreach (JObject j in utxos)
                    {
                        if (!balance.ContainsKey((string)j["asset"]))
                        {
                            balance.Add((string)j["asset"], (decimal)j["value"]);
                        }
                        else
                        {
                            balance[(string)j["asset"]] += (decimal)j["value"];
                        }
                    }
                    JArray balanceJA = new JArray();
                    foreach (KeyValuePair <string, decimal> kv in balance)
                    {
                        JObject j = new JObject();
                        j.Add("asset", kv.Key);
                        j.Add("balance", kv.Value);
                        JObject asset = (JObject)mh.GetData(mongodbConnStr, mongodbDatabase, "asset", "{id:'" + kv.Key + "'}")[0];
                        JArray  name  = (JArray)asset["name"];
                        j.Add("name", name);
                        balanceJA.Add(j);
                    }
                    result = balanceJA;
                    break;

                case "getcontractscript":
                    findFliter = "{hash:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mh.mongodbConnStr_NeonOnline, mh.mongodbDatabase_NeonOnline, "contractWarehouse", findFliter);
                    break;

                case "gettransfertxhex":
                    string addrOut = (string)req.@params[0];
                    findFliter = "{addr:'" + addrOut + "',used:''}";
                    JArray outputJA = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);

                    result = getJAbyKV("transfertxhex", tx.getTransferTxHex(outputJA, (string)req.@params[0], (string)req.@params[1], (string)req.@params[2], decimal.Parse(req.@params[3].ToString())));

                    //result = new JArray
                    //{
                    //    new JObject
                    //    {
                    //        {
                    //            "transfertxhex",
                    //            tx.getTransferTxHex(outputJA,(string)req.@params[0], (string)req.@params[1], (string)req.@params[2], decimal.Parse(req.@params[3].ToString()))
                    //        }
                    //    }
                    //};
                    break;

                case "sendtxplussign":
                    result = getJAbyJ(tx.sendTxPlusSign(neoCliJsonRPCUrl, (string)req.@params[0], (string)req.@params[1], (string)req.@params[2]));
                    break;

                case "verifytxsign":
                    result = getJAbyKV("sign", tx.verifyTxSign((string)req.@params[0], (string)req.@params[1]));
                    break;

                case "sendrawtransaction":
                    result = getJAbyJ(tx.sendrawtransaction(neoCliJsonRPCUrl, (string)req.@params[0]));

                    //result = new JArray
                    //{
                    //    new JObject
                    //    {
                    //        {
                    //            "sendrawtransactionresult",
                    //            tx.sendrawtransaction(neoCliJsonRPCUrl,(string)req.@params[0])
                    //        }
                    //    }
                    //};
                    break;

                case "getcontractstate":
                    result = getJAbyJ(ct.getContractState(neoCliJsonRPCUrl, (string)req.@params[0]));

                    break;

                case "invokescript":
                    result = getJAbyJ(ct.invokeScript(neoCliJsonRPCUrl, (string)req.@params[0]));

                    break;

                case "callcontractfortest":
                    result = getJAbyJ(ct.callContractForTest(neoCliJsonRPCUrl, new List <string> {
                        (string)req.@params[0]
                    }, new JArray()
                    {
                        (JArray)req.@params[1]
                    }));

                    break;

                case "publishcontractfortest":
                    result = getJAbyJ(ct.publishContractForTest(neoCliJsonRPCUrl, (string)req.@params[0], (JObject)req.@params[1]));
                    break;

                case "getinvoketxhex":
                    string addrPayFee = (string)req.@params[0];
                    findFliter = "{addr:'" + addrPayFee + "',used:''}";
                    JArray outputJAPayFee = mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter);

                    string  invokeScript    = (string)req.@params[1];
                    decimal invokeScriptFee = decimal.Parse(req.@params[2].ToString());

                    result = getJAbyKV("invoketxhex", tx.getInvokeTxHex(outputJAPayFee, addrPayFee, invokeScript, invokeScriptFee));
                    break;

                case "getstorage":
                    result = getJAbyJ(ct.getStorage(neoCliJsonRPCUrl, (string)req.@params[0], (string)req.@params[1]));

                    break;

                case "setcontractscript":
                    JObject J    = JObject.Parse((string)req.@params[0]);
                    string  hash = (string)J["hash"];
                    //string hash = (string)req.@params[0];
                    //J.Add("hash", hash);
                    //J.Add("avm", (string)req.@params[1]);
                    //J.Add("cs", (string)req.@params[2]);

                    //string mapStr = (string)req.@params[3];
                    //string abiStr = (string)req.@params[4];

                    //if (mapStr != null && mapStr != string.Empty)
                    //{
                    //    J.Add("map", JArray.Parse((string)req.@params[3]));
                    //}
                    //else
                    //{
                    //    J.Add("map", string.Empty);
                    //}

                    //if (abiStr != null && abiStr != string.Empty)
                    //{
                    //    J.Add("abi", JObject.Parse((string)req.@params[4]));
                    //}
                    //else
                    //{
                    //    J.Add("abi", string.Empty);
                    //}

                    J.Add("requestIP", reqAddr);

                    mh.InsertOneDataByCheckKey(mh.mongodbConnStr_NeonOnline, mh.mongodbDatabase_NeonOnline, "contractWarehouse", J, "hash", hash);
                    result = getJAbyKV("isSetSuccess", true);

                    //result = new JArray
                    //{
                    //    new JObject{
                    //        { "isSetSuccess",true }
                    //    }
                    //};

                    break;

                case "getnep5balanceofaddress":
                    string  NEP5scripthash  = (string)req.@params[0];
                    string  NEP5address     = (string)req.@params[1];
                    byte[]  NEP5addrHash    = ThinNeo.Helper.GetPublicKeyHashFromAddress(NEP5address);
                    string  NEP5addrHashHex = ThinNeo.Helper.Bytes2HexString(NEP5addrHash.Reverse().ToArray());
                    JObject NEP5balanceOfJ  = ct.callContractForTest(neoCliJsonRPCUrl, new List <string> {
                        NEP5scripthash
                    }, new JArray()
                    {
                        JArray.Parse("['(str)balanceOf',['(hex)" + NEP5addrHashHex + "']]")
                    });
                    string balanceStr  = (string)((JArray)NEP5balanceOfJ["stack"])[0]["value"];
                    string balanceType = (string)((JArray)NEP5balanceOfJ["stack"])[0]["type"];

                    string balanceBigint = "0";

                    if (balanceStr != string.Empty)
                    {
                        //获取NEP5资产信息,获取精度
                        NEP5.Asset NEP5asset = new NEP5.Asset(mongodbConnStr, mongodbDatabase, NEP5scripthash);

                        balanceBigint = NEP5.getNumStrFromStr(balanceType, balanceStr, NEP5asset.decimals);
                    }

                    result = getJAbyKV("nep5balance", balanceBigint);
                    break;

                case "getallnep5assetofaddress":
                    string NEP5addr      = (string)req.@params[0];
                    bool   isNeedBalance = false;
                    if ([email protected]() > 1)
                    {
                        isNeedBalance = ((Int64)req.@params[1] == 1) ? true : false;
                    }

                    //按资产汇集收到的钱(仅资产ID)
                    string findTransferTo     = "{ to:'" + NEP5addr + "'}";
                    JArray transferToJA       = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5transfer", findTransferTo);
                    List <NEP5.Transfer> tfts = new List <NEP5.Transfer>();
                    foreach (JObject tfJ in transferToJA)
                    {
                        tfts.Add(new NEP5.Transfer(tfJ));
                    }
                    var queryTo = from tft in tfts
                                  group tft by tft.asset into tftG
                                  select new { assetid = tftG.Key };
                    var assetAdds = queryTo.ToList();

                    //如果需要余额,则通过cli RPC批量获取余额
                    List <NEP5.AssetBalanceOfAddr> addrAssetBalances = new List <NEP5.AssetBalanceOfAddr>();
                    if (isNeedBalance)
                    {
                        List <NEP5.AssetBalanceOfAddr> addrAssetBalancesTemp = new List <NEP5.AssetBalanceOfAddr>();
                        foreach (var assetAdd in assetAdds)
                        {
                            string findNep5Asset = "{assetid:'" + assetAdd.assetid + "'}";
                            JArray Nep5AssetJA   = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5asset", findNep5Asset);
                            string Symbol        = (string)Nep5AssetJA[0]["symbol"];

                            addrAssetBalancesTemp.Add(new NEP5.AssetBalanceOfAddr(assetAdd.assetid, Symbol, string.Empty));
                        }

                        List <string> nep5Hashs                 = new List <string>();
                        JArray        queryParams               = new JArray();
                        byte[]        NEP5allAssetOfAddrHash    = ThinNeo.Helper.GetPublicKeyHashFromAddress(NEP5addr);
                        string        NEP5allAssetOfAddrHashHex = ThinNeo.Helper.Bytes2HexString(NEP5allAssetOfAddrHash.Reverse().ToArray());
                        foreach (var abt in addrAssetBalancesTemp)
                        {
                            nep5Hashs.Add(abt.assetid);
                            queryParams.Add(JArray.Parse("['(str)balanceOf',['(hex)" + NEP5allAssetOfAddrHashHex + "']]"));
                        }
                        JArray NEP5allAssetBalanceJA = (JArray)ct.callContractForTest(neoCliJsonRPCUrl, nep5Hashs, queryParams)["stack"];
                        var    a = Newtonsoft.Json.JsonConvert.SerializeObject(NEP5allAssetBalanceJA);
                        foreach (var abt in addrAssetBalancesTemp)
                        {
                            string allBalanceStr  = (string)NEP5allAssetBalanceJA[addrAssetBalancesTemp.IndexOf(abt)]["value"];
                            string allBalanceType = (string)NEP5allAssetBalanceJA[addrAssetBalancesTemp.IndexOf(abt)]["type"];
                            //获取NEP5资产信息,获取精度
                            NEP5.Asset NEP5asset = new NEP5.Asset(mongodbConnStr, mongodbDatabase, abt.assetid);

                            abt.balance = NEP5.getNumStrFromStr(allBalanceType, allBalanceStr, NEP5asset.decimals);
                        }

                        //去除余额为0的资产
                        foreach (var abt in addrAssetBalancesTemp)
                        {
                            if (abt.balance != string.Empty && abt.balance != "0")
                            {
                                addrAssetBalances.Add(abt);
                            }
                        }
                    }

                    ////按资产汇集支出的钱
                    //string findTransferFrom = "{ from:'" + NEP5addr + "'}";
                    //JArray transferFromJA = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5transfer", findTransferFrom);
                    //List<NEP5.Transfer> tffs = new List<NEP5.Transfer>();
                    //foreach (JObject tfJ in transferFromJA)
                    //{
                    //    tffs.Add(new NEP5.Transfer(tfJ));
                    //}
                    //var queryFrom = from tff in tffs
                    //                group tff by tff.asset into tffG
                    //            select new { assetid = tffG.Key, sumOfValue = tffG.Sum(m => m.value) };
                    //var assetRemoves = queryFrom.ToList();

                    ////以支出的钱扣减收到的钱得到余额
                    //JArray JAadds = JArray.FromObject(assetAdds);
                    //foreach (JObject Jadd in JAadds) {
                    //    foreach (var assetRemove in assetRemoves)
                    //    {
                    //        if ((string)Jadd["assetid"] == assetRemove.assetid)
                    //        {
                    //            Jadd["sumOfValue"] = (decimal)Jadd["sumOfValue"] - assetRemove.sumOfValue;
                    //            break;
                    //        }
                    //    }
                    //}
                    //var a = Newtonsoft.Json.JsonConvert.SerializeObject(JAadds);

                    //***********
                    //经简单测试,仅看transfer记录,所有to减去所有from并不一定等于合约查询得到的地址余额(可能有其他非标方法消耗了余额,尤其是测试网),废弃这种方法,还是采用调用NEP5合约获取地址余额方法的方式
                    //这里给出所有该地址收到过的资产hash,可以配合其他接口获取资产信息和余额
                    //***********
                    if (!isNeedBalance)
                    {
                        result = JArray.FromObject(assetAdds);
                    }
                    else
                    {
                        result = JArray.FromObject(addrAssetBalances);
                    }

                    break;

                case "getnep5asset":
                    findFliter = "{assetid:'" + ((string)req.@params[0]).formatHexStr() + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5asset", findFliter);
                    break;

                case "getallnep5asset":
                    findFliter = "{}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5asset", findFliter);
                    break;

                case "getnep5transferbytxid":
                    string txid = ((string)req.@params[0]).formatHexStr();
                    findFliter = "{txid:'" + txid + "'}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5transfer", findFliter);
                    break;

                case "getnep5transferbyaddress":
                    sortStr = "{'blockindex':1,'txid':1,'n':1}";
                    string NEP5transferAddress     = (string)req.@params[0];
                    string NEP5transferAddressType = (string)req.@params[1];
                    findFliter = "{'" + NEP5transferAddressType + "':'" + NEP5transferAddress + "'}";
                    result     = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "NEP5transfer", sortStr, int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()), findFliter);
                    break;

                case "getnep5transfers":
                    sortStr = "{'blockindex':1,'txid':1,'n':1}";
                    result  = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "NEP5transfer", sortStr, int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                case "getnep5transfersbyasset":
                    string str_asset = ((string)req.@params[0]).formatHexStr();
                    findFliter = "{asset:'" + str_asset + "'}";
                    sortStr    = "{'blockindex':1,'txid':1,'n':1}";
                    if ([email protected]() == 3)
                    {
                        result = mh.GetDataPages(mongodbConnStr, mongodbDatabase, "NEP5transfer", sortStr, int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), findFliter);
                    }
                    else
                    {
                        result = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5transfer", findFliter);
                    }
                    break;

                case "getnep5count":
                    findFliter = "{}";
                    if ([email protected]() == 2)
                    {
                        string key   = (string)req.@params[0];
                        string value = (string)req.@params[1];
                        findFliter = "{\"" + key + "\":\"" + value + "\"}";
                    }
                    result = getJAbyKV("nep5count", mh.GetDataCount(mongodbConnStr, mongodbDatabase, "NEP5transfer", findFliter));
                    break;

                case "getnep5transferbyblockindex":
                    Int64 blockindex = (Int64)req.@params[0];
                    findFliter = "{blockindex:" + blockindex + "}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "NEP5transfer", findFliter);
                    break;

                case "getaddresstxbyblockindex":
                    blockindex = (Int64)req.@params[0];
                    findFliter = "{blockindex:" + blockindex + "}";
                    result     = mh.GetData(mongodbConnStr, mongodbDatabase, "address_tx", findFliter);
                    break;

                case "gettxinfo":
                    txid       = ((string)req.@params[0]).formatHexStr();
                    findFliter = "{txid:'" + (txid).formatHexStr() + "'}";
                    JArray  JATx           = mh.GetData(mongodbConnStr, mongodbDatabase, "tx", findFliter);
                    JObject JOTx           = (JObject)JATx[0];
                    var     heightforblock = (int)JOTx["blockindex"];
                    var     indexforblock  = -1;
                    findFliter = "{index:" + heightforblock + "}";
                    result     = (JArray)mh.GetData(mongodbConnStr, mongodbDatabase, "block", findFliter)[0]["tx"];
                    for (var i = 0; i < result.Count; i++)
                    {
                        JObject Jo = (JObject)result[i];
                        if (txid == (string)Jo["txid"])
                        {
                            indexforblock = i;
                        }
                    }
                    JObject JOresult = new JObject();
                    JOresult["heightforblock"] = heightforblock;
                    JOresult["indexforblock"]  = indexforblock;
                    result = new JArray()
                    {
                        JOresult
                    };
                    break;

                case "uxtoinfo":
                    var starttxid = ((string)req.@params[0]).formatHexStr();
                    var voutN     = (Int64)req.@params[1];

                    findFliter = "{txid:'" + (starttxid).formatHexStr() + "'}";
                    JATx       = mh.GetData(mongodbConnStr, mongodbDatabase, "tx", findFliter);
                    JOTx       = (JObject)JATx[0];
                    int starttxblockheight = (int)JOTx["blockindex"];
                    int starttxblockindex  = -1;
                    findFliter = "{index:" + starttxblockheight + "}";
                    result     = (JArray)mh.GetData(mongodbConnStr, mongodbDatabase, "block", findFliter)[0]["tx"];
                    for (var i = 0; i < result.Count; i++)
                    {
                        JObject Jo = (JObject)result[i];
                        if (starttxid == (string)Jo["txid"])
                        {
                            starttxblockindex = i;
                        }
                    }
                    //根据txid和n获取utxo信息
                    findFliter = "{txid:\"" + starttxid + "\",n:" + voutN + "}";
                    var endtxid          = (string)mh.GetData(mongodbConnStr, mongodbDatabase, "utxo", findFliter)[0]["used"];
                    int endtxblockheight = -1;
                    int endtxblockindex  = -1;
                    int vinputN          = -1;
                    if (!string.IsNullOrEmpty(endtxid))
                    {
                        findFliter       = "{txid:'" + (endtxid).formatHexStr() + "'}";
                        JATx             = mh.GetData(mongodbConnStr, mongodbDatabase, "tx", findFliter);
                        JOTx             = (JObject)JATx[0];
                        endtxblockheight = (int)JOTx["blockindex"];
                        JArray JAvin = (JArray)JOTx["vin"];
                        findFliter = "{index:" + endtxblockheight + "}";
                        result     = (JArray)mh.GetData(mongodbConnStr, mongodbDatabase, "block", findFliter)[0]["tx"];
                        for (var i = 0; i < result.Count; i++)
                        {
                            JObject Jo = (JObject)result[i];
                            if (endtxid == (string)Jo["txid"])
                            {
                                endtxblockindex = i;
                            }
                        }
                        for (var i = 0; i < JAvin.Count; i++)
                        {
                            JObject Jo = (JObject)JAvin[i];
                            if ((string)Jo["txid"] == starttxid && voutN == i)
                            {
                                vinputN = i;
                            }
                        }
                    }
                    else
                    {
                    }

                    JOresult = new JObject();
                    JOresult["starttxid"]          = starttxid;
                    JOresult["starttxblockheight"] = starttxblockheight;
                    JOresult["starttxblockindex"]  = starttxblockindex;
                    JOresult["voutN"]            = voutN;
                    JOresult["endtxid"]          = endtxid;
                    JOresult["endtxblockheight"] = endtxblockheight;
                    JOresult["endtxblockindex"]  = endtxblockindex;
                    JOresult["vinputN"]          = vinputN;
                    result = new JArray()
                    {
                        JOresult
                    };

                    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);
        }
コード例 #26
0
ファイル: Api.cs プロジェクト: NewEconoLab/NEL_Scan_API
        public object getRes(JsonRPCrequest req, string reqAddr)
        {
            JArray result = null;

            try
            {
                point(req.method);
                switch (req.method)
                {
                //
                case "getContractList":
                    result = blockService.getContractList(
                        int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                //
                case "getScanTxCountHist":
                    result = blockService.getScanTxCountHist();
                    break;

                case "getScanStatistic":
                    result = blockService.getScanStatistic();
                    break;

                //
                case "getInnerTxAtContractDetail":
                    result = innerTxService.getInnerTxAtContractDetail(
                        req.@params[0].ToString(),
                        int.Parse(req.@params[1].ToString()),
                        int.Parse(req.@params[2].ToString())
                        );
                    break;

                case "getInnerTxAtAddrDetail":
                    result = innerTxService.getInnerTxAtAddrDetail(
                        req.@params[0].ToString(),
                        int.Parse(req.@params[1].ToString()),
                        int.Parse(req.@params[2].ToString())
                        );
                    break;

                case "getInnerTxAtTxDetail":
                    result = innerTxService.getInnerTxAtTxDetail(
                        req.@params[0].ToString()
                        );
                    break;

                case "getInnerTxAtTxList":
                    result = innerTxService.getInnerTxAtTxList(
                        int.Parse(req.@params[0].ToString()),
                        int.Parse(req.@params[1].ToString())
                        );
                    break;

                // 获取合约信息
                case "getContractNep5Tx":
                    result = contractService.getContractNep5Tx(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取合约信息
                case "getContractCallTx":
                    result = contractService.getContractCallTx(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取合约信息
                case "getContractInfo":
                    result = contractService.getContractInfo(req.@params[0].ToString());
                    break;

                // 获取服务列表
                case "getServiceList":
                    result = daoService.getServiceList(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                case "getUserInfo":
                    result = daoService.getUserInfo(req.@params[0].ToString());
                    break;

                case "getHashInfoByVoteHash":
                    result = daoService.getHashInfoByVoteHash(req.@params[0].ToString());
                    break;

                // 获取治理信息列表(治理)
                case "getVoteTxHistList":
                    result = daoService.getVoteTxHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取治理信息(治理)
                case "getVoteInfo":
                    result = daoService.getVoteInfo(req.@params[0].ToString());
                    break;

                // 获取项目交易历史列表(众筹)
                case "getProjTxHistList":
                    if ([email protected] > 3)
                    {
                        result = daoService.getProjTxHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), req.@params[3].ToString());
                        break;
                    }
                    result = daoService.getProjTxHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取项目信息(众筹)
                case "getProjInfo":
                    result = daoService.getProjInfo(req.@params[0].ToString());
                    break;

                // 存储治理信息(治理)
                case "storeVoteInfo":
                    result = daoService.storeVoteInfo(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString(), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString(), req.@params[6].ToString(), req.@params[7].ToString());
                    break;

                // 存储项目信息(众筹)
                case "storeProjInfo":
                    result = daoService.storeProjInfo(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString(), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString(), req.@params[5].ToString());
                    break;

                // .....
                case "getNep5TxlistByAddress":
                    if ([email protected] < 3)
                    {
                        result = blockService.getNep5TxlistByAddress(req.@params[0].ToString());
                    }
                    else
                    {
                        result = blockService.getNep5TxlistByAddress(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    }
                    break;

                case "getNep5Txlist":
                    if ([email protected] < 2)
                    {
                        result = blockService.getNep5Txlist();
                    }
                    else
                    {
                        result = blockService.getNep5Txlist(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    }
                    break;

                //
                case "getMappingDomain":
                    result = nnsDomainCrediteService.getMappingDomain(req.@params[0].ToString());
                    break;

                //
                case "getNNSFixedSellingList":
                    if ([email protected] < 1)
                    {
                        result = nnsService.getNNSFixedSellingList();
                    }
                    else if ([email protected] < 3)
                    {
                        result = nnsService.getNNSFixedSellingList(req.@params[0].ToString(), req.@params[1].ToString());
                    }
                    else if ([email protected] < 5)
                    {
                        result = nnsService.getNNSFixedSellingList(req.@params[0].ToString(), req.@params[1].ToString(), int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()));
                    }
                    else
                    {
                        result = nnsService.getNNSFixedSellingList(req.@params[0].ToString(), req.@params[1].ToString(), int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()), req.@params[4].ToString());
                    }
                    break;

                // 获取域名流转历史
                case "getDomainTransferHist":
                    if ([email protected] < 3)
                    {
                        result = domainService.getDomainTransferAndSellingInfo(req.@params[0].ToString());
                    }
                    else
                    {
                        result = domainService.getDomainTransferAndSellingInfo(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    }
                    break;

                case "getutxolistbyaddress":
                    if ([email protected] < 3)
                    {
                        result = blockService.getutxolistbyaddress(req.@params[0].ToString());
                    }
                    else
                    {
                        result = blockService.getutxolistbyaddress(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    }
                    break;

                case "gettransactionlist":
                    if ([email protected] < 2)
                    {
                        result = blockService.gettransactionlist();
                    }
                    else if ([email protected] < 3)
                    {
                        result = blockService.gettransactionlist(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    }
                    else
                    {
                        result = blockService.gettransactionlist(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()), req.@params[2].ToString());
                    }
                    break;

                case "getutxoinfo":
                    result = blockService.getutxoinfo(req.@params[0].ToString());
                    break;

                case "getnep5transferinfo":
                    break;

                case "getdomaininfo":
                    result = domainService.getDomainInfo(req.@params[0].ToString());
                    break;

                case "getauctioninfoTx":
                    if ([email protected] < 3)
                    {
                        result = domainService.getAuctionInfoTx(req.@params[0].ToString());
                    }
                    else
                    {
                        result = domainService.getAuctionInfoTx(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    }

                    break;

                case "getauctioninfoRank":
                    if ([email protected] < 3)
                    {
                        result = domainService.getAuctionInfoRank(req.@params[0].ToString());
                    }
                    else
                    {
                        result = domainService.getAuctionInfoRank(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    }
                    break;

                case "getauctioninfo":
                    result = domainService.getAuctionInfo(req.@params[0].ToString());
                    break;

                case "getauctionres":
                    result = domainService.getAuctionRes(req.@params[0].ToString());
                    break;

                case "searchbydomain":
                    result = domainService.searchByDomain(req.@params[0].ToString());
                    break;

                // 最具价值域名
                case "getaucteddomain":
                    if ([email protected] < 2)
                    {
                        result = nnsService.getUsedDomainList();
                    }
                    else
                    {
                        result = nnsService.getUsedDomainList(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    }
                    break;

                // 正在竞拍域名
                case "getauctingdomainbymaxprice":
                    if ([email protected] < 2)
                    {
                        result = nnsService.getAuctingDomainListByMaxPrice();
                    }
                    else
                    {
                        result = nnsService.getAuctingDomainListByMaxPrice(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    }
                    break;

                case "getauctingdomain":
                    if ([email protected] < 2)
                    {
                        result = nnsService.getAuctingDomainList();
                    }
                    else
                    {
                        result = nnsService.getAuctingDomainList(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    }
                    break;

                // statistics(奖金池+已领分红+已使用域名数量+正在竞拍域名数量)
                case "getstatistics":
                    result = nnsService.getStatistic();
                    break;

                // 资产名称模糊查询
                case "fuzzysearchasset":
                    if ([email protected] >= 3)
                    {
                        result = assetService.fuzzySearchAsset(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                        break;
                    }
                    result = assetService.fuzzySearchAsset(req.@params[0].ToString());
                    break;

                //
                case "getaddresstxs":
                    result = analyService.getAddressTxsNew(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                case "getrankbyasset":
                    result = analyService.getRankByAsset(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), netnode);
                    break;

                case "getrankbyassetcount":
                    result = analyService.getRankByAssetCount(req.@params[0].ToString(), netnode);
                    break;

                // test
                case "getnodetype":
                    result = new JArray {
                        new JObject {
                            { "nodeType", netnode }
                        }
                    };
                    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)
            {
                Console.WriteLine("errMsg:{0},errStack:{1}", e.Message, e.StackTrace);
                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);
        }
コード例 #27
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);
        }
コード例 #28
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
            {
                point(req.method);
                switch (req.method)
                {
                // 获取服务列表
                case "getServiceList":
                    result = daoService.getServiceList(int.Parse(req.@params[0].ToString()), int.Parse(req.@params[1].ToString()));
                    break;

                case "getUserInfo":
                    result = daoService.getUserInfo(req.@params[0].ToString());
                    break;

                case "getHashInfoByVoteHash":
                    result = daoService.getHashInfoByVoteHash(req.@params[0].ToString());
                    break;

                // 获取治理信息列表(治理)
                case "getVoteTxHistList":
                    result = daoService.getVoteTxHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取治理信息(治理)
                case "getVoteInfo":
                    result = daoService.getVoteInfo(req.@params[0].ToString());
                    break;

                // 获取项目交易历史列表(众筹)
                case "getProjTxHistList":
                    result = daoService.getProjTxHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                // 获取项目信息(众筹)
                case "getProjInfo":
                    result = daoService.getProjInfo(req.@params[0].ToString());
                    break;

                // 存储治理信息(治理)
                case "storeVoteInfo":
                    result = daoService.storeVoteInfo(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString(), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString(), req.@params[6].ToString(), req.@params[7].ToString());
                    break;

                // 存储项目信息(众筹)
                case "storeProjInfo":
                    result = daoService.storeProjInfo(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString(), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString(), req.@params[5].ToString());
                    break;

                // test
                case "getnodetype":
                    result = new JArray {
                        new JObject {
                            { "nodeType", netnode }
                        }
                    };
                    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)
            {
                Console.WriteLine("errMsg:{0},errStack:{1}", e.Message, e.StackTrace);
                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);
        }
コード例 #29
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
            {
                point(req.method);
                switch (req.method)
                {
                // dex
                case "verifyEmail":
                    result = dexService.verifyEmail(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString());
                    break;

                case "clearEmail":
                    result = dexService.clearEmail(req.@params[0].ToString(), req.@params[1].ToString());
                    break;

                case "bindEmail":
                    result = dexService.bindEmail(req.@params[0].ToString(), req.@params[1].ToString());
                    break;

                case "getEmailState":
                    result = dexService.getEmailState(req.@params[0].ToString());
                    break;

                case "hasStarDomain":
                    result = dexService.hasStarDomain(req.@params[0].ToString(), req.@params[1].ToString());
                    break;

                case "getStarDomainList":
                    result = dexService.getStarDomainList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()));
                    break;

                case "getStarDomainCount":
                    result = dexService.getStarDomainCount(req.@params[0].ToString());
                    break;

                case "starDexDomain":
                    //result = dexService.starDexDomain(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString());
                    result = dexService.starDexDomain(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), req.@params[2].ToString(), req.@params[3].ToString());
                    break;

                case "searchDexDomainLikeInfo":
                    result = dexService.searchDexDomainLikeInfo(req.@params[0].ToString(), req.@params[1].ToString(), int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()));
                    break;

                case "searchDexDomainInfo":
                    result = dexService.searchDexDomainInfo(req.@params[0].ToString());
                    break;

                case "getOrderRange":
                    result = dexService.getOrderRange(decimal.Parse(req.@params[0].ToString()));
                    break;

                case "getDexDomainList":
                    result = dexService.getDexDomainList(req.@params[0].ToString(), req.@params[1].ToString(), req.@params[2].ToString(), req.@params[3].ToString(), int.Parse(req.@params[4].ToString()), int.Parse(req.@params[5].ToString()));
                    break;

                case "getDexDomainCanUseList":
                    result = dexService.getDexDomainCanUseList(req.@params[0].ToString(), req.@params[1].ToString(), int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()));
                    break;

                case "getDexDomainInfo":
                    result = dexService.getDexDomainInfo(req.@params[0].ToString(), req.@params[1].ToString());
                    break;

                case "getDexDomainOrder":
                    result = dexService.getDexDomainOrder(req.@params[0].ToString(), req.@params[1].ToString(), int.Parse(req.@params[2].ToString()), int.Parse(req.@params[3].ToString()));
                    break;

                case "getDexDomainBuyOther":
                    result = dexService.getDexDomainBuyOther(req.@params[0].ToString(), req.@params[1].ToString());
                    break;

                case "getDexDomainBuyDetail":
                    result = dexService.getDexDomainBuyDetail(req.@params[0].ToString());
                    break;

                case "getDexDomainSellOther":
                    result = dexService.getDexDomainSellOther(req.@params[0].ToString());
                    break;

                case "getDexDomainSellDetail":
                    result = dexService.getDexDomainSellDetail(req.@params[0].ToString());
                    break;

                case "getDexDomainDealHistList":
                    result = dexService.getDexDomainDealHistList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), req.@params[3].ToString(), req.@params[4].ToString());
                    break;

                case "getDexDomainBuyList":
                    result = dexService.getDexDomainBuyList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString());
                    break;

                case "getDexDomainSellList":
                    result = dexService.getDexDomainSellList(req.@params[0].ToString(), int.Parse(req.@params[1].ToString()), int.Parse(req.@params[2].ToString()), req.@params[3].ToString(), req.@params[4].ToString(), req.@params[5].ToString());
                    break;

                case "getBalanceFromDex":
                    result = dexService.getBalanceFromDex(req.@params[0].ToString());
                    break;

                // test
                case "getnodetype":
                    result = new JArray {
                        new JObject {
                            { "nodeType", netnode }
                        }
                    };
                    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)
            {
                Console.WriteLine("errMsg:{0},errStack:{1}", e.Message, e.StackTrace);
                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);
        }
コード例 #30
0
        public JArray GetAsset(JsonRPCrequest req)
        {
            using (MySqlConnection conn = new MySqlConnection(conf))
            {
                conn.Open();
                var id = req.@params[0].ToString();

                string select = "select version , id , type , name , amount , available , precision , owner , admin, issuer , expiration , frozen  from  asset where id = @id";

                MySqlCommand cmd = new MySqlCommand(select, conn);
                cmd.Parameters.AddWithValue("@id", id);

                JsonPRCresponse res = new JsonPRCresponse();
                MySqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    var adata = (rdr["version"]).ToString();
                    var idata = (rdr["id"]).ToString();
                    var tdata = (rdr["type"]).ToString();
                    var ndata = (rdr["name"]).ToString();
                    var xdata = (rdr["amount"]).ToString();
                    var mdata = (rdr["available"]).ToString();
                    var pdata = (rdr["precision"]).ToString();
                    var odata = (rdr["owner"]).ToString();
                    var fdata = (rdr["admin"]).ToString();
                    var qdata = (rdr["issuer"]).ToString();
                    var rdata = (rdr["expiration"]).ToString();
                    var wdata = (rdr["frozen"]).ToString();


                    JArray bk = new JArray {
                        new JObject    {
                            { "version", adata }
                        },
                        new JObject    {
                            { "id", idata }
                        },
                        new JObject    {
                            { "type", tdata }
                        },
                        new JObject    {
                            { "name", ndata }
                        },
                        new JObject    {
                            { "amount", xdata }
                        },
                        new JObject    {
                            { "available", mdata }
                        },
                        new JObject    {
                            { "precision", pdata }
                        },
                        new JObject    {
                            { "owner", odata }
                        },
                        new JObject    {
                            { "admin", fdata }
                        },
                        new JObject    {
                            { "issuer", qdata }
                        },
                        new JObject    {
                            { "expiration", rdata }
                        },
                        new JObject    {
                            { "frozen", wdata }
                        }
                    };

                    res.result = bk;
                }

                return(res.result);
            }
        }