- package core
-
- import (
- "fmt"
-
- ctypes "github.com/tendermint/tendermint/rpc/core/types"
- "github.com/tendermint/tendermint/state/txindex/null"
- "github.com/tendermint/tendermint/types"
- )
-
- // Tx allow user to query the transaction results. `nil` could mean the
- // transaction is in the mempool, invalidated, or was not send in the first
- // place.
- func Tx(hash []byte, prove bool) (*ctypes.ResultTx, error) {
-
- // if index is disabled, return error
- if _, ok := txIndexer.(*null.TxIndex); ok {
- return nil, fmt.Errorf("Transaction indexing is disabled.")
- }
-
- r, err := txIndexer.Get(hash)
- if err != nil {
- return nil, err
- }
-
- if r == nil {
- return nil, fmt.Errorf("Tx (%X) not found", hash)
- }
-
- height := int(r.Height) // XXX
- index := int(r.Index)
-
- var proof types.TxProof
- if prove {
- block := blockStore.LoadBlock(height)
- proof = block.Data.Txs.Proof(index)
- }
-
- return &ctypes.ResultTx{
- Height: height,
- Index: index,
- TxResult: r.Result.Result(),
- Tx: r.Tx,
- Proof: proof,
- }, nil
- }
|