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  }