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:
parent
a733633685
commit
5135fd3203
1 changed files with 15 additions and 4 deletions
19
jsonapi.go
19
jsonapi.go
|
@ -933,10 +933,21 @@ func ReadResultCmd(cmd string, message []byte) (Reply, error) {
|
||||||
result.Result = res
|
result.Result = res
|
||||||
}
|
}
|
||||||
case "getwork":
|
case "getwork":
|
||||||
var res GetWorkResult
|
// getwork can either return a JSON object or a boolean
|
||||||
err = json.Unmarshal(objmap["result"], &res)
|
// depending on whether or not data was provided. Choose the
|
||||||
if err == nil {
|
// right form accordingly.
|
||||||
result.Result = res
|
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":
|
case "validateaddress":
|
||||||
var res ValidateAddressResult
|
var res ValidateAddressResult
|
||||||
|
|
Loading…
Reference in a new issue