gitlab.com/SiaPrime/SiaPrime@v1.4.1/node/api/stratumminer.go (about) 1 package api 2 3 import ( 4 "net/http" 5 6 "github.com/julienschmidt/httprouter" 7 ) 8 9 type ( 10 // StratumMinerGET contains the information that is returned after a GET request 11 // to /stratumminer. 12 StratumMinerGET struct { 13 Hashrate float64 `json:"hashrate"` 14 Mining bool `json:"mining"` 15 Submissions uint64 `json:"submissions"` 16 } 17 ) 18 19 // stratumminerHandler handles the API call that queries the stratum miner's status. 20 func (api *API) stratumminerHandler(w http.ResponseWriter, req *http.Request, _ httprouter.Params) { 21 smg := StratumMinerGET{ 22 Hashrate: api.stratumminer.Hashrate(), 23 Mining: api.stratumminer.Mining(), 24 Submissions: api.stratumminer.Submissions(), 25 } 26 WriteJSON(w, smg) 27 } 28 29 // stratumminerStartHandler handles the API call that starts the stratum miner. 30 func (api *API) stratumminerStartHandler(w http.ResponseWriter, req *http.Request, _ httprouter.Params) { 31 var server, username string 32 if server = req.FormValue("server"); server == "" { 33 WriteError(w, Error{"need to specify a server"}, http.StatusBadRequest) 34 return 35 } 36 if username = req.FormValue("username"); username == "" { 37 WriteError(w, Error{"need to specify a username"}, http.StatusBadRequest) 38 return 39 } 40 api.stratumminer.StartStratumMining(server, username) 41 WriteSuccess(w) 42 } 43 44 // stratumminerStopHandler handles the API call to stop the stratum miner. 45 func (api *API) stratumminerStopHandler(w http.ResponseWriter, req *http.Request, _ httprouter.Params) { 46 api.stratumminer.StopStratumMining() 47 WriteSuccess(w) 48 }