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); } }
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); } }
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); } }
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); } } }
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); } } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }