@@ -9,7 +9,7 @@ import { MirrorNodeClient } from './clients';
9
9
import { IOpcode } from './clients/models/IOpcode' ;
10
10
import { IOpcodesResponse } from './clients/models/IOpcodesResponse' ;
11
11
import constants , { CallType , TracerType } from './constants' ;
12
- import { rpcMethod , rpcParamValidationRules } from './decorators' ;
12
+ import { RPC_LAYOUT , rpcMethod , rpcParamLayoutConfig , rpcParamValidationRules } from './decorators' ;
13
13
import { predefined } from './errors/JsonRpcError' ;
14
14
import { CommonService } from './services' ;
15
15
import { CacheService } from './services/cacheService/cacheService' ;
@@ -148,6 +148,7 @@ export class DebugImpl implements Debug {
148
148
0 : { type : ParamType . BLOCK_NUMBER , required : true } ,
149
149
1 : { type : ParamType . TRACER_CONFIG_WRAPPER , required : false } ,
150
150
} )
151
+ @rpcParamLayoutConfig ( RPC_LAYOUT . custom ( ( params ) => [ Number ( params [ 0 ] ) , params [ 1 ] ] ) )
151
152
async traceBlockByNumber (
152
153
blockNumber : string ,
153
154
tracerObject : IBlockTracerConfig ,
@@ -194,8 +195,13 @@ export class DebugImpl implements Debug {
194
195
return [ ] ;
195
196
}
196
197
197
- const { tracer, tracerConfig, onlyTopCall } = tracerObject ;
198
- const onlyTopCallOption = tracerConfig ?. onlyTopCall || onlyTopCall ;
198
+ let tracer = TracerType . CallTracer ;
199
+ let onlyTopCall ;
200
+
201
+ if ( tracerObject ) {
202
+ tracer = tracerObject . tracer ;
203
+ onlyTopCall = tracerObject . tracerConfig ?. onlyTopCall ;
204
+ }
199
205
200
206
if ( tracer === TracerType . CallTracer ) {
201
207
const result = await Promise . all (
@@ -207,7 +213,7 @@ export class DebugImpl implements Debug {
207
213
txHash : contractResult . hash ,
208
214
result : await this . callTracer (
209
215
contractResult . hash ,
210
- { onlyTopCallOption } as ICallTracerConfig ,
216
+ { onlyTopCall } as ICallTracerConfig ,
211
217
requestDetails ,
212
218
) ,
213
219
} ;
@@ -226,7 +232,7 @@ export class DebugImpl implements Debug {
226
232
. map ( async ( contractResult ) => {
227
233
return {
228
234
txHash : contractResult . hash ,
229
- result : await this . prestateTracer ( contractResult . hash , onlyTopCallOption , requestDetails ) ,
235
+ result : await this . prestateTracer ( contractResult . hash , onlyTopCall , requestDetails ) ,
230
236
} ;
231
237
} ) ,
232
238
) ;
0 commit comments