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  }