func Tx(ctx context.CLIContext, hash []byte) (store.Transaction, error) {
	queryRoute := fmt.Sprintf("custom/%s/%s/%x",
		store.QuerierRouteName, store.QueryTx, hash)
	data, err := ctx.Query(queryRoute, nil)
	if err != nil {
		return store.Transaction{}, err
	}
	var tx store.Transaction
	if err := json.Unmarshal(data, &tx); err != nil {
		return store.Transaction{}, fmt.Errorf("json: %s", err)
	}
	return tx, nil
}
Tx locates a transaction and given it's hash
@param hash 32-byte hexadecimal string
package client
import (
	"encoding/json"
	"fmt"
	"github.com/FourthState/plasma-mvp-sidechain/plasma"
	"github.com/FourthState/plasma-mvp-sidechain/store"
	"github.com/cosmos/cosmos-sdk/client/context"
	ethcmn "github.com/ethereum/go-ethereum/common"
	"math/big"
)
func TxOutput(ctx context.CLIContext, pos plasma.Position) (store.TxOutput, error) {
	queryRoute := fmt.Sprintf("custom/%s/%s/%s",
		store.QuerierRouteName, store.QueryTxOutput, pos)
	data, err := ctx.Query(queryRoute, nil)
	if err != nil {
		return store.TxOutput{}, err
	}
	var output store.TxOutput
	if err := json.Unmarshal(data, &output); err != nil {
		return store.TxOutput{}, fmt.Errorf("json: %s", err)
	}
	return output, nil
}
func TxInput(ctx context.CLIContext, pos plasma.Position) (store.TxInput, error) {
	queryRoute := fmt.Sprintf("custom/%s/%s/%s",
		store.QuerierRouteName, store.QueryTxInput, pos)
	data, err := ctx.Query(queryRoute, nil)
	if err != nil {
		return store.TxInput{}, err
	}
	var input store.TxInput
	if err := json.Unmarshal(data, &input); err != nil {
		return store.TxInput{}, fmt.Errorf("json: %s", err)
	}
	return input, nil
}