@@ -21,6 +21,7 @@ package adapters
2121import (
2222 "context"
2323 "fmt"
24+ "github.com/onflow/flow/protobuf/go/flow/entities"
2425
2526 jsoncdc "github.com/onflow/cadence/encoding/json"
2627 "github.com/onflow/flow-emulator/emulator"
@@ -188,6 +189,7 @@ func (a *AccessAdapter) GetTransactionResult(
188189 id flowgo.Identifier ,
189190 _ flowgo.Identifier ,
190191 _ flowgo.Identifier ,
192+ requiredEventEncodingVersion entities.EventEncodingVersion ,
191193) (
192194 * access.TransactionResult ,
193195 error ,
@@ -197,11 +199,13 @@ func (a *AccessAdapter) GetTransactionResult(
197199 return nil , convertError (err )
198200 }
199201
200- result .Events , err = ConvertCCFEventsToJsonEvents (result .Events )
201- if err != nil {
202- return nil , convertError (err )
202+ // Convert CCF events to JSON events, else return CCF encoded version
203+ if requiredEventEncodingVersion == entities .EventEncodingVersion_JSON_CDC_V0 {
204+ result .Events , err = ConvertCCFEventsToJsonEvents (result .Events )
205+ if err != nil {
206+ return nil , convertError (err )
207+ }
203208 }
204-
205209 a .logger .Debug ().
206210 Str ("txID" , id .String ()).
207211 Msg ("📝 GetTransactionResult called" )
@@ -323,6 +327,7 @@ func (a *AccessAdapter) GetEventsForHeightRange(
323327 _ context.Context ,
324328 eventType string ,
325329 startHeight , endHeight uint64 ,
330+ requiredEventEncodingVersion entities.EventEncodingVersion ,
326331) ([]flowgo.BlockEvents , error ) {
327332 events , err := a .emulator .GetEventsForHeightRange (eventType , startHeight , endHeight )
328333 if err != nil {
@@ -331,12 +336,14 @@ func (a *AccessAdapter) GetEventsForHeightRange(
331336
332337 eventCount := 0
333338
334- // Convert CCF events to JSON events
335- for i := range events {
336- events [i ].Events , err = ConvertCCFEventsToJsonEvents (events [i ].Events )
337- eventCount = eventCount + len (events [i ].Events )
338- if err != nil {
339- return nil , convertError (err )
339+ // Convert CCF events to JSON events, else return CCF encoded version
340+ if requiredEventEncodingVersion == entities .EventEncodingVersion_JSON_CDC_V0 {
341+ for i := range events {
342+ events [i ].Events , err = ConvertCCFEventsToJsonEvents (events [i ].Events )
343+ eventCount = eventCount + len (events [i ].Events )
344+ if err != nil {
345+ return nil , convertError (err )
346+ }
340347 }
341348 }
342349
@@ -354,6 +361,7 @@ func (a *AccessAdapter) GetEventsForBlockIDs(
354361 _ context.Context ,
355362 eventType string ,
356363 blockIDs []flowgo.Identifier ,
364+ requiredEventEncodingVersion entities.EventEncodingVersion ,
357365) ([]flowgo.BlockEvents , error ) {
358366 events , err := a .emulator .GetEventsForBlockIDs (eventType , blockIDs )
359367 if err != nil {
@@ -362,12 +370,14 @@ func (a *AccessAdapter) GetEventsForBlockIDs(
362370
363371 eventCount := 0
364372
365- // Convert CCF events to JSON events
366- for i := range events {
367- events [i ].Events , err = ConvertCCFEventsToJsonEvents (events [i ].Events )
368- eventCount = eventCount + len (events [i ].Events )
369- if err != nil {
370- return nil , convertError (err )
373+ // Convert CCF events to JSON events, else return CCF encoded version
374+ if requiredEventEncodingVersion == entities .EventEncodingVersion_JSON_CDC_V0 {
375+ for i := range events {
376+ events [i ].Events , err = ConvertCCFEventsToJsonEvents (events [i ].Events )
377+ eventCount = eventCount + len (events [i ].Events )
378+ if err != nil {
379+ return nil , convertError (err )
380+ }
371381 }
372382 }
373383
@@ -391,7 +401,12 @@ func (a *AccessAdapter) GetExecutionResultByID(_ context.Context, _ flowgo.Ident
391401 return nil , nil
392402}
393403
394- func (a * AccessAdapter ) GetTransactionResultByIndex (_ context.Context , blockID flowgo.Identifier , index uint32 ) (* access.TransactionResult , error ) {
404+ func (a * AccessAdapter ) GetTransactionResultByIndex (
405+ _ context.Context ,
406+ blockID flowgo.Identifier ,
407+ index uint32 ,
408+ requiredEventEncodingVersion entities.EventEncodingVersion ,
409+ ) (* access.TransactionResult , error ) {
395410 results , err := a .emulator .GetTransactionResultsByBlockID (blockID )
396411 if err != nil {
397412 return nil , convertError (err )
@@ -400,11 +415,13 @@ func (a *AccessAdapter) GetTransactionResultByIndex(_ context.Context, blockID f
400415 return nil , convertError (& types.TransactionNotFoundError {ID : flowgo.Identifier {}})
401416 }
402417
403- // Convert CCF events to JSON events
404- for i := range results {
405- results [i ].Events , err = ConvertCCFEventsToJsonEvents (results [i ].Events )
406- if err != nil {
407- return nil , convertError (err )
418+ // Convert CCF events to JSON events, else return CCF encoded version
419+ if requiredEventEncodingVersion == entities .EventEncodingVersion_JSON_CDC_V0 {
420+ for i := range results {
421+ results [i ].Events , err = ConvertCCFEventsToJsonEvents (results [i ].Events )
422+ if err != nil {
423+ return nil , convertError (err )
424+ }
408425 }
409426 }
410427
@@ -419,17 +436,23 @@ func (a *AccessAdapter) GetTransactionsByBlockID(_ context.Context, blockID flow
419436 return result , nil
420437}
421438
422- func (a * AccessAdapter ) GetTransactionResultsByBlockID (_ context.Context , blockID flowgo.Identifier ) ([]* access.TransactionResult , error ) {
439+ func (a * AccessAdapter ) GetTransactionResultsByBlockID (
440+ _ context.Context ,
441+ blockID flowgo.Identifier ,
442+ requiredEventEncodingVersion entities.EventEncodingVersion ,
443+ ) ([]* access.TransactionResult , error ) {
423444 result , err := a .emulator .GetTransactionResultsByBlockID (blockID )
424445 if err != nil {
425446 return nil , convertError (err )
426447 }
427448
428- // Convert CCF events to JSON events
429- for i := range result {
430- result [i ].Events , err = ConvertCCFEventsToJsonEvents (result [i ].Events )
431- if err != nil {
432- return nil , convertError (err )
449+ // Convert CCF events to JSON events, else return CCF encoded version
450+ if requiredEventEncodingVersion == entities .EventEncodingVersion_JSON_CDC_V0 {
451+ for i := range result {
452+ result [i ].Events , err = ConvertCCFEventsToJsonEvents (result [i ].Events )
453+ if err != nil {
454+ return nil , convertError (err )
455+ }
433456 }
434457 }
435458
0 commit comments