diff --git a/ethclient/gethclient/gethclient.go b/ethclient/gethclient/gethclient.go index 35c0953dc5..6ddffbcd07 100644 --- a/ethclient/gethclient/gethclient.go +++ b/ethclient/gethclient/gethclient.go @@ -234,8 +234,8 @@ func (ec *Client) TraceTransaction(ctx context.Context, hash common.Hash, config return result, err } -// TraceChain TraceChaiin subscribes to chain, receiving results from channel BlockTraceResult -func (ec *Client) TraceChain(ctx context.Context, ch chan<- BlockTraceResult, start, end rpc.BlockNumber, config *tracers.TraceConfig) (*rpc.ClientSubscription, error) { +// TraceChain subscribes to chain, receiving results from channel BlockTraceResult +func (ec *Client) TraceChain(ctx context.Context, ch chan<- *BlockTraceResult, start, end rpc.BlockNumber, config *tracers.TraceConfig) (*rpc.ClientSubscription, error) { return ec.c.Subscribe(ctx, "debug", ch, "traceChain", start, end, config) } diff --git a/ethclient/gethclient/gethclient_test.go b/ethclient/gethclient/gethclient_test.go index 3e404327f3..31dcf53aac 100644 --- a/ethclient/gethclient/gethclient_test.go +++ b/ethclient/gethclient/gethclient_test.go @@ -598,6 +598,19 @@ func testTraceTransaction(t *testing.T, client *rpc.Client) { "structLogs": nil, }, }, + { + txHash: testTransactionHash, + config: &tracers.TraceConfig{ + TracerConfig: json.RawMessage(`{"tracer":"callTracer"}`), + }, + expectErr: nil, + expect: map[string]interface{}{ + "gas": 21000, + "failed": false, + "returnValue": "", + "structLogs": nil, + }, + }, } for i, testspec := range testSuite { result, err := ec.TraceTransaction(context.Background(), testspec.txHash, testspec.config) @@ -691,7 +704,7 @@ func testTraceCall(t *testing.T, client *rpc.Client) { func testTraceChain(t *testing.T, client *rpc.Client) { ec := New(client) - ch := make(chan BlockTraceResult) + ch := make(chan *BlockTraceResult) _, err := ec.TraceChain(context.Background(), ch, 0, 1, nil) if err != nil { t.Fatalf("testTraceChain error: %v", err)