private static async Task TraceBlock(BasicJsonRpcClient localhostClient, int blockNumber, string pathBase) { string response = await localhostClient.Post("debug_traceBlockByNumber", string.Format("0x{0:x}", blockNumber)); var blockTraceItems = _serializer.Deserialize <JsonRpcResponse <BlockTraceItem[]> >(response); if (blockTraceItems == null) { return; } for (int i = 0; i < blockTraceItems.Result.Length; i++) { if (blockTraceItems.Result[i].Result == null) { string nethPath = Path.Combine(pathBase, $"{i}_empty.txt"); File.WriteAllText(nethPath, "empty"); } else { string singleTxJson = _serializer.Serialize(blockTraceItems.Result[i].Result, true); string txPath = Path.Combine(pathBase, $"{i}.txt"); File.WriteAllText(txPath, singleTxJson); } } }
private static async Task TraceBlockByHash(BasicJsonRpcClient localhostClient, string hash, string pathBase) { string response = await localhostClient.Post("debug_traceBlockByHash", hash); var blockTraceItems = _serializer.Deserialize <JsonRpcResponse <GethLikeTxTrace[]> >(response); if (blockTraceItems.Error != null) { return; } for (int i = 0; i < blockTraceItems.Result.Length; i++) { if (blockTraceItems.Result[i].ReturnValue == null) { string nethPath = Path.Combine(pathBase, $"{i}_empty.txt"); File.WriteAllText(nethPath, "empty"); } else { string singleTxJson = _serializer.Serialize(blockTraceItems.Result[i].ReturnValue, true); string txPath = Path.Combine(pathBase, $"{i}.txt"); File.WriteAllText(txPath, singleTxJson); } } }