@@ -370,6 +370,7 @@ export class EdrProviderWrapper
370
370
371
371
const needsTraces =
372
372
this . _node . _vm . evm . events . eventNames ( ) . length > 0 ||
373
+ this . _node . _vm . events . eventNames ( ) . length > 0 ||
373
374
this . _rawTraceCallbacks . onStep !== undefined ||
374
375
this . _rawTraceCallbacks . onAfterMessage !== undefined ||
375
376
this . _rawTraceCallbacks . onBeforeMessage !== undefined ;
@@ -378,7 +379,14 @@ export class EdrProviderWrapper
378
379
const rawTraces = responseObject . traces ;
379
380
for ( const rawTrace of rawTraces ) {
380
381
const trace = rawTrace . trace ( ) ;
382
+
383
+ // beforeTx event
384
+ if ( this . _node . _vm . events . listenerCount ( "beforeTx" ) > 0 ) {
385
+ this . _node . _vm . events . emit ( "beforeTx" ) ;
386
+ }
387
+
381
388
for ( const traceItem of trace ) {
389
+ // step event
382
390
if ( "pc" in traceItem ) {
383
391
if ( this . _node . _vm . evm . events . listenerCount ( "step" ) > 0 ) {
384
392
this . _node . _vm . evm . events . emit (
@@ -389,7 +397,9 @@ export class EdrProviderWrapper
389
397
if ( this . _rawTraceCallbacks . onStep !== undefined ) {
390
398
await this . _rawTraceCallbacks . onStep ( traceItem ) ;
391
399
}
392
- } else if ( "executionResult" in traceItem ) {
400
+ }
401
+ // afterMessage event
402
+ else if ( "executionResult" in traceItem ) {
393
403
if ( this . _node . _vm . evm . events . listenerCount ( "afterMessage" ) > 0 ) {
394
404
this . _node . _vm . evm . events . emit (
395
405
"afterMessage" ,
@@ -401,7 +411,9 @@ export class EdrProviderWrapper
401
411
traceItem . executionResult
402
412
) ;
403
413
}
404
- } else {
414
+ }
415
+ // beforeMessage event
416
+ else {
405
417
if ( this . _node . _vm . evm . events . listenerCount ( "beforeMessage" ) > 0 ) {
406
418
this . _node . _vm . evm . events . emit (
407
419
"beforeMessage" ,
@@ -413,6 +425,11 @@ export class EdrProviderWrapper
413
425
}
414
426
}
415
427
}
428
+
429
+ // afterTx event
430
+ if ( this . _node . _vm . events . listenerCount ( "afterTx" ) > 0 ) {
431
+ this . _node . _vm . events . emit ( "afterTx" ) ;
432
+ }
416
433
}
417
434
}
418
435
@@ -478,6 +495,10 @@ export class EdrProviderWrapper
478
495
) ;
479
496
}
480
497
498
+ private _setVerboseTracing ( enabled : boolean ) {
499
+ this . _provider . setVerboseTracing ( enabled ) ;
500
+ }
501
+
481
502
private _ethEventListener ( event : SubscriptionEvent ) {
482
503
const subscription = `0x${ event . filterId . toString ( 16 ) } ` ;
483
504
const results = Array . isArray ( event . result ) ? event . result : [ event . result ] ;
0 commit comments