watcher-ts/packages/tracing-client/src/cli/get-tx-trace.ts
2021-06-18 17:04:02 +05:30

50 lines
1.1 KiB
TypeScript

import fs from 'fs';
import yargs from 'yargs';
import { TracingClient } from '../tracing';
(async () => {
const argv = await yargs.parserConfiguration({
'parse-numbers': false
}).options({
providerUrl: {
type: 'string',
require: true,
demandOption: true,
default: 'http://localhost:8545',
describe: 'ETH JSON-RPC provider URL'
},
txHash: {
type: 'string',
require: true,
demandOption: true,
describe: 'Transaction hash'
},
tracer: {
type: 'string',
describe: 'The tracer to use'
},
tracerFile: {
type: 'string',
describe: 'File with custom tracing JS code'
},
timeout: {
type: 'string',
default: "10s",
describe: 'Trace execution timeout'
}
}).argv;
let tracer = argv.tracer;
const tracerFile = argv.tracerFile;
if (tracerFile) {
tracer = fs.readFileSync(tracerFile).toString("utf-8");
}
const tracingClient = new TracingClient(argv.providerUrl);
const result = await tracingClient.getTxTrace(argv.txHash, tracer, argv.timeout);
console.log(JSON.stringify(result, null, 2));
})();