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); } } }
static async Task Main(string[] args) { Console.WriteLine("Welcome in Runner Test Client"); IJsonRpcClient jsonRpcClient = new BasicJsonRpcClient(KnownRpcUris.Localhost, new JsonSerializer(NullLogManager.Instance), NullLogManager.Instance); var client = new RunnerTestClientApp(jsonRpcClient); await client.Run(); Console.WriteLine("Exiting Runner Test Client"); }
/// <summary> /// /// </summary> /// <param name="args"></param> /// <returns></returns> async Task RunClient(string[] args) { Console.WriteLine("Welcome in Runner Test Client"); IJsonRpcClient ethStatService = new BasicJsonRpcClient(KnownRpcUris.Localhost, new EthereumJsonSerializer(), NullLogManager.Instance); var client = new RunnerTestClientApp(ethStatService); await client.Run(); //Console.WriteLine("Exiting Runner Test Client"); }
public void SwitchUri(Uri uri) { CurrentUri = uri.ToString(); if (!_clients.ContainsKey(uri)) { _clients[uri] = new BasicJsonRpcClient(uri, _serializer, _logManager); } _currentClient = _clients[uri]; }
public static async Task Main(params string[] args) { // int blockNumber = 6108276; // string hash = "?"; int blockNumber = 316658; string hash = "0x846806c1e1fc530399ad80cec3121b9d90fe24e4665484b995237f7f95e2caa8"; // Console.WriteLine("Block Number:"); // int blockNumber = int.Parse(Console.ReadLine()); string nethPathBase = $"D:\\block_traces\\{blockNumber}\\neth\\"; if (!Directory.Exists(nethPathBase)) { Directory.CreateDirectory(nethPathBase); } string gethPathBase = $"D:\\block_traces\\{blockNumber}\\geth\\"; if (!Directory.Exists(gethPathBase)) { Directory.CreateDirectory(gethPathBase); } BasicJsonRpcClient localhostClient = new BasicJsonRpcClient(KnownRpcUris.Localhost, _serializer, NullLogManager.Instance); // await TraceBlock(localhostClient, blockNumber, nethPathBase); await TraceBlockByHash(localhostClient, hash, nethPathBase); BasicJsonRpcClient gethClient = new BasicJsonRpcClient(KnownRpcUris.Localhost, _serializer, NullLogManager.Instance); // await TraceBlock(gethClient, blockNumber, gethPathBase); await TraceBlockByHash(gethClient, hash, gethPathBase); string nethTx = File.ReadAllText(Path.Combine(nethPathBase, "0.txt")); string gethTx = File.ReadAllText(Path.Combine(gethPathBase, "0.txt")); TransactionTrace gethTrace = _serializer.Deserialize <TransactionTrace>(gethTx); TransactionTrace nethTrace = _serializer.Deserialize <TransactionTrace>(nethTx); _comparer.Compare(gethTrace, nethTrace); // try // { // for (int i = 41; i < 42; i++) await TraceTxByBlockhashAndIndex(KnownRpcUris.Localhost, pathBase, blockNumber, i); // } // catch (Exception e) // { // Console.WriteLine(e); // throw; // } Console.WriteLine("Press any key to exit."); Console.ReadKey(); }