public GetRawMemPoolResponse GetRawMemPool(bool verbose)
{
var getRawMemPoolResponse = new GetRawMemPoolResponse
{
IsVerbose = verbose
};
var rpcResponse = _rpcConnector.MakeRequest<object>(RpcMethods.getrawmempool, verbose);
if (!verbose)
{
var rpcResponseAsArray = (JArray) rpcResponse;
foreach (string txId in rpcResponseAsArray)
{
getRawMemPoolResponse.TxIds.Add(txId);
}
return getRawMemPoolResponse;
}
IList<KeyValuePair<string, JToken>> rpcResponseAsKvp = (new EnumerableQuery<KeyValuePair<string, JToken>>(((JObject) (rpcResponse)))).ToList();
IList<JToken> children = JObject.Parse(rpcResponse.ToString()).Children().ToList();
for (var i = 0; i < children.Count(); i++)
{
var getRawMemPoolVerboseResponse = new GetRawMemPoolVerboseResponse
{
TxId = rpcResponseAsKvp[i].Key
};
getRawMemPoolResponse.TxIds.Add(getRawMemPoolVerboseResponse.TxId);
foreach (var property in children[i].SelectMany(grandChild => grandChild.OfType<JProperty>()))
{
switch (property.Name)
{
case "currentpriority":
double currentPriority;
if (double.TryParse(property.Value.ToString(), out currentPriority))
{
getRawMemPoolVerboseResponse.CurrentPriority = currentPriority;
}
break;
case "depends":
foreach (var jToken in property.Value)
{
getRawMemPoolVerboseResponse.Depends.Add(jToken.Value<string>());
}
break;
case "fee":
decimal fee;
if (decimal.TryParse(property.Value.ToString(), out fee))
{
getRawMemPoolVerboseResponse.Fee = fee;
}
break;
case "height":
int height;
if (int.TryParse(property.Value.ToString(), out height))
{
getRawMemPoolVerboseResponse.Height = height;
}
break;
case "size":
int size;
if (int.TryParse(property.Value.ToString(), out size))
{
getRawMemPoolVerboseResponse.Size = size;
}
break;
case "startingpriority":
double startingPriority;
if (double.TryParse(property.Value.ToString(), out startingPriority))
{
getRawMemPoolVerboseResponse.StartingPriority = startingPriority;
}
break;
case "time":
int time;
if (int.TryParse(property.Value.ToString(), out time))
{
getRawMemPoolVerboseResponse.Time = time;
}
break;
default:
throw new Exception("Unkown property: " + property.Name + " in GetRawMemPool()");
}
}
getRawMemPoolResponse.VerboseResponses.Add(getRawMemPoolVerboseResponse);
}
return getRawMemPoolResponse;
}