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 bool OnGetBlockByLatestNum(JToken id, string method, JArray parameters, out JToken result) { result = new JObject(); if (parameters == null || parameters.Count != 0) { result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, "Invalid parameters"); return(false); } try { List <BlockCapsule> blocks = Manager.Instance.DBManager.Block.GetBlockByLatestNum(1); if (blocks == null || blocks.Count == 0) { result = RpcMessage.CreateErrorResult(id, RpcMessage.INTERNAL_ERROR, "Can not load latest block."); } BlockExtention block_extention = RpcApiService.CreateBlockExtention(blocks[0]); result = JToken.FromObject(block_extention.ToByteArray()); } catch (InvalidCastException e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, e.Message); return(false); } catch (System.Exception e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message); return(false); } return(true); }
public static bool OnGetBlockById(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 { SHA256Hash hash = SHA256Hash.Wrap(parameters[0].ToString().HexToBytes()); BlockCapsule block = Manager.Instance.DBManager.GetBlockById(hash); BlockExtention block_extention = RpcApiService.CreateBlockExtention(block); result = JToken.FromObject(block_extention.ToByteArray()); } catch (System.Exception e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message); return(false); } return(true); }
public static bool OnGetBlock(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 { BlockCapsule block = Manager.Instance.DBManager.GetBlockByNum(parameters[0].Value <long>()); result = JToken.FromObject(RpcApiService.CreateBlockExtention(block).ToByteArray()); } catch (InvalidCastException e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.INVALID_PARAMS, e.Message); return(false); } catch (System.Exception e) { result = RpcMessage.CreateErrorResult(id, RpcMessage.UNKNOWN_ERROR, e.Message); return(false); } return(true); }