Skip to content

Commit daac53e

Browse files
committed
Support hash or number
1 parent 55f2c38 commit daac53e

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

eth/api_debug.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -89,21 +89,24 @@ func (api *DebugAPI) DumpBlock(blockNr rpc.BlockNumber) (state.Dump, error) {
8989
return stateDb.RawDump(opts), nil
9090
}
9191

92-
func (api *DebugAPI) ExecutionWitness(blockNr rpc.BlockNumber) (*stateless.Witness, error) {
92+
func (api *DebugAPI) ExecutionWitness(ctx context.Context, blockNrOrHash rpc.BlockNumberOrHash) (*stateless.Witness, error) {
9393
witness := &stateless.Witness{}
9494

95-
block := api.eth.blockchain.GetBlockByNumber(uint64(blockNr))
95+
block, err := api.eth.APIBackend.BlockByNumberOrHash(ctx, blockNrOrHash)
96+
if err != nil {
97+
return nil, fmt.Errorf("failed to retrieve block: %w", err)
98+
}
9699
if block == nil {
97-
return nil, fmt.Errorf("block #%d not found", blockNr)
100+
return nil, fmt.Errorf("block %s not found", blockNrOrHash.String())
98101
}
99102
statedb, err := api.eth.blockchain.StateAt(block.ParentHash())
100103
if err != nil {
101-
return nil, fmt.Errorf("failed to retrieve parent state: %v", err)
104+
return nil, fmt.Errorf("failed to retrieve parent state: %w", err)
102105
}
103106
statedb.StartPrefetcher("debug_execution_witness", witness)
104107

105108
if _, err = api.eth.blockchain.Processor().Process(block, statedb, vm.Config{}); err != nil {
106-
return nil, fmt.Errorf("failed to process block %d: %v", block.Number(), err)
109+
return nil, fmt.Errorf("failed to process block %d: %w", block.Number(), err)
107110
}
108111

109112
return witness, nil

0 commit comments

Comments
 (0)