```shell $ go get -u -v github.com/tendermint/basecoin/cmd/baseserver $ baseserver init $ baseserver serve ``` A server that can be ran by default on port 8998 otherwise one can specify the port using flag `--port` like this: ```shell $ baseserver serve --port 9999 ``` to serve it on port 9999, accessible at http://localhost:9999 Implemented: - [X] /keys POST -- generate a new key - [X] /keys GET -- list all keys - [X] /keys/{name} DELETE-- delete a named key - [X] /keys/{name} GET -- get a named key - [X] /keys/{name} POST, PUT -- update a named key - [X] /sign POST -- sign a transaction - [X] /build/send POST -- send money from one actor to another. However, still needs testing and verification of output - [X] /tx POST -- post a transaction to the blockchain. However, still needs testing and verification of output This base code to get the handlers starters was adapted from: * https://github.com/tendermint/go-crypto/blob/master/keys/server * https://github.com/tendermint/basecoin/blob/unstable/client/commands/proxy/root.go Updates #186
36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package rest
|
|
|
|
import (
|
|
"github.com/tendermint/tendermint/rpc/client"
|
|
"github.com/tendermint/tendermint/rpc/core"
|
|
rpc "github.com/tendermint/tendermint/rpc/lib/server"
|
|
)
|
|
|
|
func Routes(c client.Client) map[string]*rpc.RPCFunc {
|
|
return map[string]*rpc.RPCFunc{
|
|
// subscribe/unsubscribe are reserved for websocket events.
|
|
// We can just the core Tendermint implementation, which uses
|
|
// the EventSwitch that we registered in NewWebsocketManager above.
|
|
"subscribe": rpc.NewWSRPCFunc(core.Subscribe, "event"),
|
|
"unsubscribe": rpc.NewWSRPCFunc(core.Unsubscribe, "event"),
|
|
|
|
// info API
|
|
"status": rpc.NewRPCFunc(c.Status, ""),
|
|
"blockchain": rpc.NewRPCFunc(c.BlockchainInfo, "minHeight,maxHeight"),
|
|
"genesis": rpc.NewRPCFunc(c.Genesis, ""),
|
|
"block": rpc.NewRPCFunc(c.Block, "height"),
|
|
"commit": rpc.NewRPCFunc(c.Commit, "height"),
|
|
"tx": rpc.NewRPCFunc(c.Tx, "hash.prove"),
|
|
"validators": rpc.NewRPCFunc(c.Validators, ""),
|
|
|
|
// broadcast API
|
|
"broadcast_tx_commit": rpc.NewRPCFunc(c.BroadcastTxCommit, "tx"),
|
|
"broadcast_tx_sync": rpc.NewRPCFunc(c.BroadcastTxSync, "tx"),
|
|
"broadcast_tx_async": rpc.NewRPCFunc(c.BroadcastTxAsync, "tx"),
|
|
|
|
// abci API
|
|
"abci_query": rpc.NewRPCFunc(c.ABCIQuery, "path,data,prove"),
|
|
"abci_info": rpc.NewRPCFunc(c.ABCIInfo, ""),
|
|
}
|
|
}
|