Allow getwork result to be a bool or JSON object.

The getwork command alters the output depending on whether or not the
optional data parameter was specified.  It is a JSON object when no data
was provided, and a boolean indicating whether a solution was found
when data was provided.
This commit is contained in:
Dave Collins 2014-02-11 17:44:48 -06:00
parent a733633685
commit 5135fd3203

View file

@ -933,10 +933,21 @@ func ReadResultCmd(cmd string, message []byte) (Reply, error) {
result.Result = res
}
case "getwork":
var res GetWorkResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
// getwork can either return a JSON object or a boolean
// depending on whether or not data was provided. Choose the
// right form accordingly.
if strings.Contains(string(objmap["result"]), "{") {
var res GetWorkResult
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
} else {
var res bool
err = json.Unmarshal(objmap["result"], &res)
if err == nil {
result.Result = res
}
}
case "validateaddress":
var res ValidateAddressResult