public static bool OnGetBlockByLimitNext(JToken id, string method, JArray parameters, out JToken result) { result = new JObject(); if (parameters == null || parameters.Count != 1) { result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, "Invalid parameters"); return(false); } try { BlockLimit limit = BlockLimit.Parser.ParseFrom(parameters[0].ToObject <byte[]>()); BlockListExtention blocks = new BlockListExtention(); Manager.Instance.DBManager.Block.GetLimitNumber(limit.StartNum, limit.EndNum - limit.StartNum).ForEach(block => { blocks.Block.Add(RpcApiService.CreateBlockExtention(block)); }); result = JToken.FromObject(blocks.ToByteArray()); } catch (System.Exception e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message); return(false); } return(true); }
public static RpcApiResult GetBlockByLimitNext(long start, long end, out BlockListExtention blocks) { blocks = null; BlockLimit limit = new BlockLimit(); limit.StartNum = start; limit.EndNum = end; JObject receive = SendCommand(RpcCommand.Block.GetBlockByLimitNext, new JArray() { limit.ToByteArray() }); if (receive.TryGetValue("error", out JToken value)) { return(new RpcApiResult(false, value["code"].ToObject <int>(), value["message"].ToObject <string>())); } blocks = BlockListExtention.Parser.ParseFrom(receive["result"].ToObject <byte[]>()); return(RpcApiResult.Success); }