Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        public JsonResult Get(string @jsonrpc, string @method, string @params, long @id)
        {
            JsonRPCrequest req   = null;
            DateTime       start = DateTime.Now;

            try
            {
                req = new JsonRPCrequest
                {
                    jsonrpc = @jsonrpc,
                    method  = @method,
                    @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(JArray.Parse(@params))),
                    id      = @id
                };

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();

                var result = Json(api.getRes(req, ipAddr));
                if (DateTime.Now.Subtract(start).TotalSeconds > logExeTimeMax)
                {
                    log.Info(logHelper.logInfoFormat(req, result, start));
                }
                return(result);
            }
            catch (Exception e)
            {
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);

                var result = Json(resE);
                log.Error(logHelper.logInfoFormat(req, result, start));
                return(Json(result));
            }
        }
Beispiel #6
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);
            }
        }
Beispiel #7
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);
            }
        }
Beispiel #8
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);
            }
        }
Beispiel #9
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);
            }
        }
Beispiel #10
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);
            }
        }
Beispiel #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);
            }
        }
Beispiel #12
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);
            }
        }
Beispiel #13
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);
            }
        }
Beispiel #14
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);
            }
        }
Beispiel #15
0
        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);
            }
        }
Beispiel #16
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);
            }
        }
Beispiel #17
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);
            }
        }
Beispiel #18
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);
            }
        }
Beispiel #19
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);
            }
        }
Beispiel #20
0
        public async Task <JsonResult> Post()
        {
            DateTime       start = DateTime.Now;
            JsonResult     res   = null;
            JsonRPCrequest req   = null;

            try
            {
                var ctype = HttpContext.Request.ContentType;
                LitServer.FormData form = null;
                if (ctype == "application/x-www-form-urlencoded" ||
                    (ctype.IndexOf("multipart/form-data;") == 0))
                {
                    form = await LitServer.FormData.FromRequest(HttpContext.Request);

                    var _jsonrpc   = form.mapParams["jsonrpc"];
                    var _id        = long.Parse(form.mapParams["id"]);
                    var _method    = form.mapParams["method"];
                    var _strparams = form.mapParams["params"];
                    var _params    = JArray.Parse(_strparams);
                    req = new JsonRPCrequest
                    {
                        jsonrpc = _jsonrpc,
                        method  = _method,
                        @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(_params)),
                        id      = _id
                    };
                }
                else// if (ctype == "application/json") 其他所有请求方式都这样取好了
                {
                    var text = await LitServer.FormData.GetStringFromRequest(HttpContext.Request);

                    req = JsonConvert.DeserializeObject <JsonRPCrequest>(text);
                }

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                res = Json(api.getRes(req, ipAddr, this));

                // 超时记录
                if (DateTime.Now.Subtract(start).TotalSeconds > logExeTimeMax)
                {
                    log.Info(LogHelper.logInfoFormat(req, res, start));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("errMsg:{0},errStack:{1}", e.Message, e.StackTrace);
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);
                res = Json(resE);

                // 错误记录
                log.Info(LogHelper.logInfoFormat(req, res, start));
            }

            return(res);
        }
Beispiel #21
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);
            }
        }
Beispiel #22
0
        public async Task <JsonResult> Post()
        {
            JsonRPCrequest req   = null;
            DateTime       start = DateTime.Now;

            try
            {
                var      ctype = HttpContext.Request.ContentType;
                FormData form  = null;
                if (ctype == "application/x-www-form-urlencoded" ||
                    (ctype.IndexOf("multipart/form-data;", StringComparison.CurrentCulture) == 0))
                {
                    form = await FormData.FromRequest(HttpContext.Request);

                    var _jsonrpc   = form.mapParams["jsonrpc"];
                    var _id        = long.Parse(form.mapParams["id"]);
                    var _method    = form.mapParams["method"];
                    var _strparams = form.mapParams["params"];
                    var _params    = JArray.Parse(_strparams);
                    req = new JsonRPCrequest
                    {
                        jsonrpc = _jsonrpc,
                        method  = _method,
                        @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(_params)),
                        id      = _id
                    };
                }
                else
                {
                    var text = await FormData.GetStringFromRequest(HttpContext.Request);

                    req = JsonConvert.DeserializeObject <JsonRPCrequest>(text);
                }

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();

                var result = Json(api.getRes(req, ipAddr));
                if (DateTime.Now.Subtract(start).TotalSeconds > logExeTimeMax)
                {
                    log.Info(LogHelper.logInfoFormat(req, result, start));
                }
                return(result);
            }
            catch (Exception e)
            {
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);

                var result = Json(resE);
                log.Error(LogHelper.logInfoFormat(req, result, start));
                return(Json(result));
            }
        }
Beispiel #23
0
        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);
            }
        }
Beispiel #24
0
        protected virtual JArray ProcessRes(JsonRPCrequest req)
        {
            JArray result = new JArray();

            switch (req.method)
            {
            case "getnodetype":
                JArray JA = new JArray
                {
                    new JObject {
                        { "nodeType", netnode }
                    }
                };
                result = JA;
                break;
            }
            return(result);
        }
Beispiel #25
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);
            }
        }
Beispiel #26
0
        public async Task <JsonResult> Post()
        {
            try
            {
                var ctype = HttpContext.Request.ContentType;
                LitServer.FormData form = null;
                JsonRPCrequest     req  = null;
                if (ctype == "application/x-www-form-urlencoded" ||
                    (ctype.IndexOf("multipart/form-data;") == 0))
                {
                    form = await LitServer.FormData.FromRequest(HttpContext.Request);

                    var _jsonrpc   = form.mapParams["jsonrpc"];
                    var _id        = long.Parse(form.mapParams["id"]);
                    var _method    = form.mapParams["method"];
                    var _strparams = form.mapParams["params"];
                    var _params    = JArray.Parse(_strparams);
                    req = new JsonRPCrequest
                    {
                        jsonrpc = _jsonrpc,
                        method  = _method,
                        @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(_params)),
                        id      = _id
                    };
                }
                else    // if (ctype == "application/json") 其他所有请求方式都这样取好了
                {
                    var text = await LitServer.FormData.GetStringFromRequest(HttpContext.Request);

                    req = JsonConvert.DeserializeObject <JsonRPCrequest>(text);
                }

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                return(Json(api.getRes(req, ipAddr)));
            }
            catch (Exception e)
            {
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);

                return(Json(resE));
            }
        }
        public async Task <JsonResult> GetAsync(string @jsonrpc, string @method, string @params, long @id)
        {
            JsonRPCrequest req   = null;
            DateTime       start = DateTime.Now;

            try
            {
                req = new JsonRPCrequest
                {
                    jsonrpc = @jsonrpc,
                    method  = @method,
                    @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(JArray.Parse(@params))),
                    id      = @id
                };

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();

                //Console.WriteLine("start....");
                //foreach (var aa in Request.Headers)
                //{
                //    Console.WriteLine("test:" + aa.Key + ":" + aa.Value);
                //}

                var json = await api.getResAsync(req, ipAddr);

                var result = Json(json);
                if (DateTime.Now.Subtract(start).TotalSeconds > logExeTimeMax)
                {
                    log.Info(logHelper.logInfoFormat(req, result, start));
                }
                return(result);
            }
            catch (Exception e)
            {
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);

                var result = Json(resE);
                log.Error(logHelper.logInfoFormat(req, result, start));
                return(Json(result));
            }
        }
Beispiel #28
0
        public JsonResult Get(string @jsonrpc, string @method, string @params, long @id)
        {
            try
            {
                JsonRPCrequest req = new JsonRPCrequest
                {
                    jsonrpc = @jsonrpc,
                    method  = @method,
                    @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(JArray.Parse(@params))),
                    id      = @id
                };

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                return(Json(api.getRes(req, ipAddr)));
            }
            catch (Exception e)
            {
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);

                return(Json(resE));
            }
        }
Beispiel #29
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);
            }
        }
Beispiel #30
0
        public JsonResult Get(string @jsonrpc, string @method, string @params, long @id)
        {
            DateTime       start = DateTime.Now;
            JsonResult     res   = null;
            JsonRPCrequest req   = null;

            try
            {
                req = new JsonRPCrequest
                {
                    jsonrpc = @jsonrpc,
                    method  = @method,
                    @params = JsonConvert.DeserializeObject <object[]>(JsonConvert.SerializeObject(JArray.Parse(@params))),
                    id      = @id
                };

                string ipAddr = Request.HttpContext.Connection.RemoteIpAddress.ToString();
                res = Json(api.getRes(req, ipAddr, this));

                // 超时记录
                if (DateTime.Now.Subtract(start).TotalSeconds > logExeTimeMax)
                {
                    log.Info(LogHelper.logInfoFormat(req, res, start));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("errMsg:{0},errStack:{1}", e.Message, e.StackTrace);
                JsonPRCresponse_Error resE = new JsonPRCresponse_Error(0, -100, "Parameter Error", e.Message);
                res = Json(resE);

                // 错误记录
                log.Info(LogHelper.logInfoFormat(req, res, start));
            }


            return(res);
        }