tendermint/rpc/core/tx.go

36 lines
663 B
Go
Raw Normal View History

package core
import (
2017-04-12 15:18:17 -07:00
"fmt"
ctypes "github.com/tendermint/tendermint/rpc/core/types"
2017-04-12 15:55:00 -07:00
"github.com/tendermint/tendermint/types"
)
2017-04-12 15:55:00 -07:00
func Tx(hash []byte, prove bool) (*ctypes.ResultTx, error) {
r, err := txIndexer.Tx(hash)
if err != nil {
return nil, err
}
2017-04-12 15:18:17 -07:00
if r == nil {
return &ctypes.ResultTx{}, fmt.Errorf("Tx (%X) not found", hash)
}
block := blockStore.LoadBlock(int(r.Height))
tx := block.Data.Txs[int(r.Index)]
2017-04-12 15:55:00 -07:00
var proof types.TxProof
if prove {
proof = block.Data.Txs.Proof(int(r.Index))
}
2017-04-12 15:18:17 -07:00
return &ctypes.ResultTx{
Height: r.Height,
Index: r.Index,
DeliverTx: r.DeliverTx,
Tx: tx,
2017-04-12 15:55:00 -07:00
Proof: proof,
2017-04-12 15:18:17 -07:00
}, nil
}