main.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package main
  2. import (
  3. "fmt"
  4. logging "github.com/ipfs/go-log/v2"
  5. "github.com/urfave/cli/v2"
  6. "google.golang.org/grpc"
  7. "net"
  8. "os"
  9. "wallet-server/conf"
  10. "wallet-server/dao"
  11. "wallet-server/service"
  12. )
  13. var log = logging.Logger("main")
  14. func main() {
  15. _ = logging.SetLogLevel("*", "INFO")
  16. app := cli.App{
  17. Name: "wallet-server",
  18. Usage: "eth and tron wallet service",
  19. Commands: []*cli.Command{
  20. runCmd,
  21. },
  22. EnableBashCompletion: true,
  23. }
  24. if err := app.Run(os.Args); err != nil {
  25. fmt.Fprintf(os.Stderr, "ERROR: %s\n\n", err)
  26. os.Exit(1)
  27. }
  28. }
  29. var runCmd = &cli.Command{
  30. Name: "run",
  31. Usage: "run wallet server process",
  32. Flags: []cli.Flag{
  33. &cli.StringFlag{
  34. Name: "listen",
  35. Usage: "The host address and port on which the key manager will listen",
  36. Value: "127.0.0.1:6667",
  37. },
  38. &cli.StringFlag{
  39. Name: "config",
  40. Usage: "config file path",
  41. },
  42. },
  43. Action: func(cctx *cli.Context) error {
  44. err := conf.InitConfig(cctx.String("config"))
  45. if err != nil {
  46. return err
  47. }
  48. db, err := dao.InitMysqlDB()
  49. if err != nil {
  50. return err
  51. }
  52. listen := cctx.String("listen")
  53. listener, err := net.Listen("tcp", listen)
  54. if err != nil {
  55. return err
  56. }
  57. log.Infof("grpc server Listing on: %s", listen)
  58. grpcServer := grpc.NewServer()
  59. server, err := service.NewWalletServer(db)
  60. if err != nil {
  61. return err
  62. }
  63. service.RegisterWalletServerServer(grpcServer, server)
  64. if err = grpcServer.Serve(listener); err != nil {
  65. log.Error(err)
  66. return err
  67. }
  68. return nil
  69. },
  70. }