package core_types import ( "github.com/tendermint/go-crypto" "github.com/tendermint/go-p2p" "github.com/tendermint/go-wire" "github.com/tendermint/tendermint/types" ) type ResultBlockchainInfo struct { LastHeight int `json:"last_height"` BlockMetas []*types.BlockMeta `json:"block_metas"` } type ResultGetBlock struct { BlockMeta *types.BlockMeta `json:"block_meta"` Block *types.Block `json:"block"` } type ResultStatus struct { NodeInfo *p2p.NodeInfo `json:"node_info"` PubKey crypto.PubKey `json:"pub_key"` LatestBlockHash []byte `json:"latest_block_hash"` LatestBlockHeight int `json:"latest_block_height"` LatestBlockTime int64 `json:"latest_block_time"` // nano } type ResultNetInfo struct { Listening bool `json:"listening"` Listeners []string `json:"listeners"` Peers []Peer `json:"peers"` } type Peer struct { p2p.NodeInfo `json:"node_info"` IsOutbound bool `json:"is_outbound"` } type ResultListValidators struct { BlockHeight int `json:"block_height"` Validators []*types.Validator `json:"validators"` } type ResultDumpConsensusState struct { RoundState string `json:"round_state"` PeerRoundStates []string `json:"peer_round_states"` } type ResultBroadcastTx struct { } type ResultListUnconfirmedTxs struct { N int `json:"n_txs"` Txs []types.Tx `json:"txs"` } type ResultGenesis struct { Genesis *types.GenesisDoc `json:"genesis"` } type ResultEvent struct { Event string `json:"event"` Data types.EventData `json:"data"` } //---------------------------------------- // response & result types type Response struct { JSONRPC string `json:"jsonrpc"` ID string `json:"id"` Result Result `json:"result"` Error string `json:"error"` } const ( ResultTypeBlockchainInfo = byte(0x05) ResultTypeGetBlock = byte(0x06) ResultTypeStatus = byte(0x07) ResultTypeNetInfo = byte(0x08) ResultTypeListValidators = byte(0x09) ResultTypeDumpConsensusState = byte(0x0A) ResultTypeBroadcastTx = byte(0x0E) ResultTypeListUnconfirmedTxs = byte(0x0F) ResultTypeGenesis = byte(0x11) ResultTypeEvent = byte(0x13) // so websockets can respond to rpc functions ) type Result interface{} // for wire.readReflect var _ = wire.RegisterInterface( struct{ Result }{}, wire.ConcreteType{&ResultBlockchainInfo{}, ResultTypeBlockchainInfo}, wire.ConcreteType{&ResultGetBlock{}, ResultTypeGetBlock}, wire.ConcreteType{&ResultStatus{}, ResultTypeStatus}, wire.ConcreteType{&ResultNetInfo{}, ResultTypeNetInfo}, wire.ConcreteType{&ResultListValidators{}, ResultTypeListValidators}, wire.ConcreteType{&ResultDumpConsensusState{}, ResultTypeDumpConsensusState}, wire.ConcreteType{&ResultBroadcastTx{}, ResultTypeBroadcastTx}, wire.ConcreteType{&ResultListUnconfirmedTxs{}, ResultTypeListUnconfirmedTxs}, wire.ConcreteType{&ResultGenesis{}, ResultTypeGenesis}, wire.ConcreteType{&ResultEvent{}, ResultTypeEvent}, )