From ee8b8a917972776bd7fef957da29f08e49071271 Mon Sep 17 00:00:00 2001 From: "Bjarte S. Karlsen" Date: Fri, 16 Jun 2023 08:55:39 +0200 Subject: [PATCH] added transaction index (#122) --- transaction.go | 67 ++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/transaction.go b/transaction.go index 96de7a9..9062162 100644 --- a/transaction.go +++ b/transaction.go @@ -31,26 +31,28 @@ type Argument struct { } type OverflowTransaction struct { - Id string - BlockId string - Events []OverflowEvent - Error error - Fee float64 - Status string - Arguments []Argument - Authorizers []string - Stakeholders map[string][]string - Imports []Import - Payer string - ProposalKey flow.ProposalKey - GasLimit uint64 - GasUsed uint64 - ExecutionEffort float64 - Script []byte + Id string + TransactionIndex int + BlockId string + Events []OverflowEvent + Error error + Fee float64 + Status string + Arguments []Argument + Authorizers []string + Stakeholders map[string][]string + Imports []Import + Payer string + ProposalKey flow.ProposalKey + GasLimit uint64 + GasUsed uint64 + ExecutionEffort float64 + Script []byte } func CreateOverflowTransactions(blockId string, transactionResult flow.TransactionResult, transaction flow.Transaction) (*OverflowTransaction, error) { + txIndex := transactionResult.Events[0].TransactionIndex feeAmount := 0.0 events, fee := parseEvents(transactionResult.Events) feeRaw, ok := fee.Fields["amount"] @@ -121,22 +123,23 @@ func CreateOverflowTransactions(blockId string, transactionResult flow.Transacti } return &OverflowTransaction{ - Id: transactionResult.TransactionID.String(), - BlockId: blockId, - Status: transactionResult.Status.String(), - Events: eventList, - Stakeholders: eventsWithoutFees.GetStakeholders(standardStakeholders), - Imports: imports, - Error: transactionResult.Error, - Arguments: args, - Fee: feeAmount, - Script: transaction.Script, - Payer: fmt.Sprintf("0x%s", transaction.Payer.String()), - ProposalKey: transaction.ProposalKey, - GasLimit: transaction.GasLimit, - GasUsed: uint64(gas), - ExecutionEffort: executionEffort, - Authorizers: authorizers, + Id: transactionResult.TransactionID.String(), + TransactionIndex: txIndex, + BlockId: blockId, + Status: transactionResult.Status.String(), + Events: eventList, + Stakeholders: eventsWithoutFees.GetStakeholders(standardStakeholders), + Imports: imports, + Error: transactionResult.Error, + Arguments: args, + Fee: feeAmount, + Script: transaction.Script, + Payer: fmt.Sprintf("0x%s", transaction.Payer.String()), + ProposalKey: transaction.ProposalKey, + GasLimit: transaction.GasLimit, + GasUsed: uint64(gas), + ExecutionEffort: executionEffort, + Authorizers: authorizers, }, nil }