github.com/okex/exchain@v1.8.0/libs/tendermint/rpc/jsonrpc/test/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net/http" 6 "os" 7 8 amino "github.com/tendermint/go-amino" 9 10 "github.com/okex/exchain/libs/tendermint/libs/log" 11 tmos "github.com/okex/exchain/libs/tendermint/libs/os" 12 rpcserver "github.com/okex/exchain/libs/tendermint/rpc/jsonrpc/server" 13 rpctypes "github.com/okex/exchain/libs/tendermint/rpc/jsonrpc/types" 14 ) 15 16 var routes = map[string]*rpcserver.RPCFunc{ 17 "hello_world": rpcserver.NewRPCFunc(HelloWorld, "name,num"), 18 } 19 20 func HelloWorld(ctx *rpctypes.Context, name string, num int) (Result, error) { 21 return Result{fmt.Sprintf("hi %s %d", name, num)}, nil 22 } 23 24 type Result struct { 25 Result string 26 } 27 28 func main() { 29 var ( 30 mux = http.NewServeMux() 31 cdc = amino.NewCodec() 32 logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) 33 ) 34 35 // Stop upon receiving SIGTERM or CTRL-C. 36 tmos.TrapSignal(logger, func() {}) 37 38 rpcserver.RegisterRPCFuncs(mux, routes, cdc, logger) 39 config := rpcserver.DefaultConfig() 40 listener, err := rpcserver.Listen("tcp://127.0.0.1:8008", config) 41 if err != nil { 42 tmos.Exit(err.Error()) 43 } 44 rpcserver.Serve(listener, mux, logger, config) 45 }