You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.1 KiB

  1. package core
  2. import (
  3. rpc "github.com/tendermint/go-rpc/server"
  4. "github.com/tendermint/go-rpc/types"
  5. ctypes "github.com/tendermint/tendermint/rpc/core/types"
  6. )
  7. // TODO: eliminate redundancy between here and reading code from core/
  8. var Routes = map[string]*rpc.RPCFunc{
  9. "subscribe": rpc.NewWSRPCFunc(SubscribeResult, "event"),
  10. "unsubscribe": rpc.NewWSRPCFunc(UnsubscribeResult, "event"),
  11. "status": rpc.NewRPCFunc(StatusResult, ""),
  12. "net_info": rpc.NewRPCFunc(NetInfoResult, ""),
  13. "blockchain": rpc.NewRPCFunc(BlockchainInfoResult, "minHeight,maxHeight"),
  14. "genesis": rpc.NewRPCFunc(GenesisResult, ""),
  15. "get_block": rpc.NewRPCFunc(GetBlockResult, "height"),
  16. "list_validators": rpc.NewRPCFunc(ListValidatorsResult, ""),
  17. "dump_consensus_state": rpc.NewRPCFunc(DumpConsensusStateResult, ""),
  18. "broadcast_tx": rpc.NewRPCFunc(BroadcastTxResult, "tx"),
  19. "list_unconfirmed_txs": rpc.NewRPCFunc(ListUnconfirmedTxsResult, ""),
  20. // subscribe/unsubscribe are reserved for websocket events.
  21. }
  22. func SubscribeResult(wsCtx rpctypes.WSRPCContext, event string) (*ctypes.TendermintResult, error) {
  23. if r, err := Subscribe(wsCtx, event); err != nil {
  24. return nil, err
  25. } else {
  26. return &ctypes.TendermintResult{r}, nil
  27. }
  28. }
  29. func UnsubscribeResult(wsCtx rpctypes.WSRPCContext, event string) (*ctypes.TendermintResult, error) {
  30. if r, err := Unsubscribe(wsCtx, event); err != nil {
  31. return nil, err
  32. } else {
  33. return &ctypes.TendermintResult{r}, nil
  34. }
  35. }
  36. func StatusResult() (*ctypes.TendermintResult, error) {
  37. if r, err := Status(); err != nil {
  38. return nil, err
  39. } else {
  40. return &ctypes.TendermintResult{r}, nil
  41. }
  42. }
  43. func NetInfoResult() (*ctypes.TendermintResult, error) {
  44. if r, err := NetInfo(); err != nil {
  45. return nil, err
  46. } else {
  47. return &ctypes.TendermintResult{r}, nil
  48. }
  49. }
  50. func BlockchainInfoResult(min, max int) (*ctypes.TendermintResult, error) {
  51. if r, err := BlockchainInfo(min, max); err != nil {
  52. return nil, err
  53. } else {
  54. return &ctypes.TendermintResult{r}, nil
  55. }
  56. }
  57. func GenesisResult() (*ctypes.TendermintResult, error) {
  58. if r, err := Genesis(); err != nil {
  59. return nil, err
  60. } else {
  61. return &ctypes.TendermintResult{r}, nil
  62. }
  63. }
  64. func GetBlockResult(height int) (*ctypes.TendermintResult, error) {
  65. if r, err := GetBlock(height); err != nil {
  66. return nil, err
  67. } else {
  68. return &ctypes.TendermintResult{r}, nil
  69. }
  70. }
  71. func ListValidatorsResult() (*ctypes.TendermintResult, error) {
  72. if r, err := ListValidators(); err != nil {
  73. return nil, err
  74. } else {
  75. return &ctypes.TendermintResult{r}, nil
  76. }
  77. }
  78. func DumpConsensusStateResult() (*ctypes.TendermintResult, error) {
  79. if r, err := DumpConsensusState(); err != nil {
  80. return nil, err
  81. } else {
  82. return &ctypes.TendermintResult{r}, nil
  83. }
  84. }
  85. func ListUnconfirmedTxsResult() (*ctypes.TendermintResult, error) {
  86. if r, err := ListUnconfirmedTxs(); err != nil {
  87. return nil, err
  88. } else {
  89. return &ctypes.TendermintResult{r}, nil
  90. }
  91. }
  92. func BroadcastTxResult(tx []byte) (*ctypes.TendermintResult, error) {
  93. if r, err := BroadcastTx(tx); err != nil {
  94. return nil, err
  95. } else {
  96. return &ctypes.TendermintResult{r}, nil
  97. }
  98. }