Skip to content

Commit

Permalink
Fix trace pending txns
Browse files Browse the repository at this point in the history
  • Loading branch information
wojciechos committed Jan 15, 2025
1 parent 27b6968 commit b28c2a5
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions rpc/trace.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,24 +141,37 @@ func (h *Handler) traceTransaction(ctx context.Context, hash *felt.Felt) (*vm.Tr
httpHeader := http.Header{}
httpHeader.Set(ExecutionStepsHeader, "0")

var block *core.Block
if err != nil {
return nil, httpHeader, ErrTxnHashNotFound
pendingB := h.syncReader.PendingBlock()
if pendingB == nil {
return nil, httpHeader, ErrTxnHashNotFound
}

txIndex := slices.IndexFunc(pendingB.Transactions, func(tx core.Transaction) bool {
return tx.Hash().Equal(hash)
})
if txIndex == -1 {
return nil, httpHeader, ErrTxnHashNotFound
}

traceResults, header, traceBlockErr := h.traceBlockTransactions(ctx, pendingB)
if traceBlockErr != nil {
return nil, header, traceBlockErr
}
return traceResults[txIndex].TraceRoot, header, nil
}

var block *core.Block
isPendingBlock := blockHash == nil
if isPendingBlock {
if blockHash == nil {
var pending *sync.Pending
pending, err = h.syncReader.Pending()
if err != nil {
// for traceTransaction handlers there is no block not found error
return nil, httpHeader, ErrTxnHashNotFound
}
block = pending.Block
} else {
block, err = h.bcReader.BlockByHash(blockHash)
if err != nil {
// for traceTransaction handlers there is no block not found error
return nil, httpHeader, ErrTxnHashNotFound
}
}
Expand Down

0 comments on commit b28c2a5

Please sign in to comment.