package rpc import "github.com/kaspanet/kaspad/rpc/model" // handleHelp implements the help command. func handleHelp(s *Server, cmd interface{}, closeChan <-chan struct{}) (interface{}, error) { c := cmd.(*model.HelpCmd) // Provide a usage overview of all commands when no specific command // was specified. var command string if c.Command != nil { command = *c.Command } if command == "" { usage, err := s.helpCacher.rpcUsage(false) if err != nil { context := "Failed to generate RPC usage" return nil, internalRPCError(err.Error(), context) } return usage, nil } // Check that the command asked for is supported and implemented. Only // search the main list of handlers since help should not be provided // for commands that are unimplemented or related to wallet // functionality. if _, ok := rpcHandlers[command]; !ok { return nil, &model.RPCError{ Code: model.ErrRPCInvalidParameter, Message: "Unknown command: " + command, } } // Get the help for the command. help, err := s.helpCacher.rpcMethodHelp(command) if err != nil { context := "Failed to generate help" return nil, internalRPCError(err.Error(), context) } return help, nil }