debug_traceCall and debug_traceBlock #261

Open
i-norden wants to merge 16 commits from ian/tracing into v5
Showing only changes of commit 0fe38eafba - Show all commits

View File

@ -161,9 +161,8 @@ var (
) )
var _ = Describe("eth state reading tests", func() { var _ = Describe("eth state reading tests", func() {
Describe("debug_traceCall", func() { Describe("debug_traceCall", func() {
It("", func() { It("Works", func() {
var testSuite = []struct { var testSuite = []struct {
blockNumber rpc.BlockNumber blockNumber rpc.BlockNumber
call eth.TransactionArgs call eth.TransactionArgs
@ -263,6 +262,55 @@ var _ = Describe("eth state reading tests", func() {
} }
}) })
}) })
Describe("debug_traceBlock", func() {
It("Works", func() {
var testSuite = []struct {
blockNumber rpc.BlockNumber
config *eth.TraceConfig
want string
expectErr error
}{
// Trace genesis block, expect error
{
blockNumber: rpc.BlockNumber(0),
expectErr: errors.New("genesis is not traceable"),
},
// Trace head block
{
blockNumber: rpc.BlockNumber(genBlocks),
want: `[{"result":{"gas":21000,"failed":false,"returnValue":"","structLogs":[]}}]`,
},
// Trace non-existent block
{
blockNumber: rpc.BlockNumber(genBlocks + 1),
expectErr: fmt.Errorf("block #%d not found", genBlocks+1),
},
// Trace latest block
{
blockNumber: rpc.LatestBlockNumber,
want: `[{"result":{"gas":21000,"failed":false,"returnValue":"","structLogs":[]}}]`,
},
// Trace pending block
{
blockNumber: rpc.PendingBlockNumber,
want: `[{"result":{"gas":21000,"failed":false,"returnValue":"","structLogs":[]}}]`,
},
}
for _, tc := range testSuite {
result, err := tracingAPI.TraceBlockByNumber(context.Background(), tc.blockNumber, tc.config)
if tc.expectErr != nil {
Expect(err).To(HaveOccurred())
Expect(err).To(Equal(tc.expectErr))
} else {
Expect(err).ToNot(HaveOccurred())
have, _ := json.Marshal(result)
want := tc.want
Expect(have).To(Equal(want))
}
}
})
})
}) })
type testBackend struct { type testBackend struct {