2015-04-07 11:44:25 -07:00
|
|
|
package core
|
|
|
|
|
|
|
|
import (
|
2017-04-21 18:13:25 -04:00
|
|
|
data "github.com/tendermint/go-wire/data"
|
2017-04-26 19:57:33 -04:00
|
|
|
ctypes "github.com/tendermint/tendermint/rpc/core/types"
|
2017-04-28 14:41:08 +02:00
|
|
|
rpc "github.com/tendermint/tendermint/rpc/lib/server"
|
2017-04-26 19:57:33 -04:00
|
|
|
"github.com/tendermint/tendermint/rpc/lib/types"
|
2017-03-22 20:13:18 +01:00
|
|
|
"github.com/tendermint/tendermint/types"
|
2015-04-07 11:44:25 -07:00
|
|
|
)
|
|
|
|
|
2016-12-12 14:12:13 -05:00
|
|
|
// TODO: better system than "unsafe" prefix
|
2015-04-07 11:44:25 -07:00
|
|
|
var Routes = map[string]*rpc.RPCFunc{
|
2016-03-03 06:18:11 +00:00
|
|
|
// subscribe/unsubscribe are reserved for websocket events.
|
|
|
|
"subscribe": rpc.NewWSRPCFunc(SubscribeResult, "event"),
|
|
|
|
"unsubscribe": rpc.NewWSRPCFunc(UnsubscribeResult, "event"),
|
|
|
|
|
2016-12-12 14:12:13 -05:00
|
|
|
// info API
|
2016-01-12 18:04:06 -05:00
|
|
|
"status": rpc.NewRPCFunc(StatusResult, ""),
|
|
|
|
"net_info": rpc.NewRPCFunc(NetInfoResult, ""),
|
|
|
|
"blockchain": rpc.NewRPCFunc(BlockchainInfoResult, "minHeight,maxHeight"),
|
|
|
|
"genesis": rpc.NewRPCFunc(GenesisResult, ""),
|
2016-02-08 00:48:58 -08:00
|
|
|
"block": rpc.NewRPCFunc(BlockResult, "height"),
|
2017-02-09 22:44:43 -05:00
|
|
|
"commit": rpc.NewRPCFunc(CommitResult, "height"),
|
2017-04-18 19:56:41 -04:00
|
|
|
"tx": rpc.NewRPCFunc(TxResult, "hash,prove"),
|
2016-02-08 00:48:58 -08:00
|
|
|
"validators": rpc.NewRPCFunc(ValidatorsResult, ""),
|
2016-01-12 18:04:06 -05:00
|
|
|
"dump_consensus_state": rpc.NewRPCFunc(DumpConsensusStateResult, ""),
|
2016-02-08 00:48:58 -08:00
|
|
|
"unconfirmed_txs": rpc.NewRPCFunc(UnconfirmedTxsResult, ""),
|
2016-03-05 20:59:51 -05:00
|
|
|
"num_unconfirmed_txs": rpc.NewRPCFunc(NumUnconfirmedTxsResult, ""),
|
2016-03-03 06:18:11 +00:00
|
|
|
|
2016-12-12 14:12:13 -05:00
|
|
|
// broadcast API
|
|
|
|
"broadcast_tx_commit": rpc.NewRPCFunc(BroadcastTxCommitResult, "tx"),
|
|
|
|
"broadcast_tx_sync": rpc.NewRPCFunc(BroadcastTxSyncResult, "tx"),
|
|
|
|
"broadcast_tx_async": rpc.NewRPCFunc(BroadcastTxAsyncResult, "tx"),
|
|
|
|
|
2017-01-12 20:48:10 -05:00
|
|
|
// abci API
|
2017-01-28 08:27:13 -08:00
|
|
|
"abci_query": rpc.NewRPCFunc(ABCIQueryResult, "path,data,prove"),
|
2017-01-12 15:53:32 -05:00
|
|
|
"abci_info": rpc.NewRPCFunc(ABCIInfoResult, ""),
|
2016-08-22 16:00:48 -04:00
|
|
|
|
2016-12-12 14:12:13 -05:00
|
|
|
// control API
|
|
|
|
"dial_seeds": rpc.NewRPCFunc(UnsafeDialSeedsResult, "seeds"),
|
|
|
|
"unsafe_flush_mempool": rpc.NewRPCFunc(UnsafeFlushMempool, ""),
|
2017-04-25 17:58:26 -04:00
|
|
|
|
|
|
|
// config is not in general thread safe. expose specifics if you need em
|
|
|
|
// "unsafe_set_config": rpc.NewRPCFunc(UnsafeSetConfigResult, "type,key,value"),
|
2016-12-12 14:12:13 -05:00
|
|
|
|
|
|
|
// profiler API
|
2016-03-07 18:38:05 -05:00
|
|
|
"unsafe_start_cpu_profiler": rpc.NewRPCFunc(UnsafeStartCPUProfilerResult, "filename"),
|
|
|
|
"unsafe_stop_cpu_profiler": rpc.NewRPCFunc(UnsafeStopCPUProfilerResult, ""),
|
2016-03-11 21:45:19 -05:00
|
|
|
"unsafe_write_heap_profile": rpc.NewRPCFunc(UnsafeWriteHeapProfileResult, "filename"),
|
2015-04-07 11:44:25 -07:00
|
|
|
}
|
2016-01-12 18:04:06 -05:00
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func SubscribeResult(wsCtx rpctypes.WSRPCContext, event string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Subscribe(wsCtx, event)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func UnsubscribeResult(wsCtx rpctypes.WSRPCContext, event string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Unsubscribe(wsCtx, event)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func StatusResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Status()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func NetInfoResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := NetInfo()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-12-12 14:12:13 -05:00
|
|
|
func UnsafeDialSeedsResult(seeds []string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeDialSeeds(seeds)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-20 13:12:42 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func BlockchainInfoResult(min, max int) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := BlockchainInfo(min, max)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func GenesisResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Genesis()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-02-08 00:48:58 -08:00
|
|
|
func BlockResult(height int) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Block(height)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2017-02-09 22:44:43 -05:00
|
|
|
func CommitResult(height int) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Commit(height)
|
|
|
|
return ctypes.TMResult{res}, err
|
2017-02-09 22:44:43 -05:00
|
|
|
}
|
|
|
|
|
2016-02-08 00:48:58 -08:00
|
|
|
func ValidatorsResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Validators()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-01-13 18:38:55 -05:00
|
|
|
func DumpConsensusStateResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := DumpConsensusState()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-02-08 00:48:58 -08:00
|
|
|
func UnconfirmedTxsResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnconfirmedTxs()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
|
|
|
|
2016-03-05 20:59:51 -05:00
|
|
|
func NumUnconfirmedTxsResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := NumUnconfirmedTxs()
|
|
|
|
return ctypes.TMResult{res}, err
|
2017-02-22 14:53:59 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
// 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.
|
2017-04-18 19:56:41 -04:00
|
|
|
func TxResult(hash []byte, prove bool) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := Tx(hash, prove)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-03-05 20:59:51 -05:00
|
|
|
}
|
|
|
|
|
2017-03-22 20:13:18 +01:00
|
|
|
func BroadcastTxCommitResult(tx types.Tx) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := BroadcastTxCommit(tx)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-06-27 20:43:09 -04:00
|
|
|
}
|
|
|
|
|
2017-03-22 20:13:18 +01:00
|
|
|
func BroadcastTxSyncResult(tx types.Tx) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := BroadcastTxSync(tx)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-02-08 00:48:58 -08:00
|
|
|
}
|
|
|
|
|
2017-03-22 20:13:18 +01:00
|
|
|
func BroadcastTxAsyncResult(tx types.Tx) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := BroadcastTxAsync(tx)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-01-12 18:04:06 -05:00
|
|
|
}
|
2016-03-01 16:04:19 -05:00
|
|
|
|
2017-03-22 20:13:18 +01:00
|
|
|
func ABCIQueryResult(path string, data data.Bytes, prove bool) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := ABCIQuery(path, data, prove)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-08-22 16:00:48 -04:00
|
|
|
}
|
|
|
|
|
2017-01-12 15:53:32 -05:00
|
|
|
func ABCIInfoResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := ABCIInfo()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-08-22 16:00:48 -04:00
|
|
|
}
|
|
|
|
|
2016-07-12 14:58:06 -04:00
|
|
|
func UnsafeFlushMempoolResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeFlushMempool()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-07-12 14:58:06 -04:00
|
|
|
}
|
|
|
|
|
2016-05-11 23:33:09 -04:00
|
|
|
func UnsafeSetConfigResult(typ, key, value string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeSetConfig(typ, key, value)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-05-11 23:33:09 -04:00
|
|
|
}
|
|
|
|
|
2016-03-07 18:38:05 -05:00
|
|
|
func UnsafeStartCPUProfilerResult(filename string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeStartCPUProfiler(filename)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-03-07 18:38:05 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
func UnsafeStopCPUProfilerResult() (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeStopCPUProfiler()
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-03-07 18:38:05 -05:00
|
|
|
}
|
2016-03-11 21:45:19 -05:00
|
|
|
|
|
|
|
func UnsafeWriteHeapProfileResult(filename string) (ctypes.TMResult, error) {
|
2017-04-28 14:41:08 +02:00
|
|
|
res, err := UnsafeWriteHeapProfile(filename)
|
|
|
|
return ctypes.TMResult{res}, err
|
2016-03-11 21:45:19 -05:00
|
|
|
}
|