func verifyBtcSig(reqHash []byte, addr string, sig string, conf *util.BitcoindConf) (bool, error) { hb64 := base64.StdEncoding.EncodeToString(reqHash) msg, err := btcjson.NewVerifyMessageCmd(nil, addr, sig, hb64) if err != nil { return false, fmt.Errorf("error while making cmd: %v", err.Error()) } json, err := msg.MarshalJSON() if err != nil { return false, fmt.Errorf("error while marshaling: %v", err.Error()) } resp, err := btcjson.RpcCommand(conf.User, conf.Password, conf.Server, json) if err != nil { return false, fmt.Errorf( "error while making bitcoind JSON-RPC: %v", err.Error()) } if resp.Error != nil { return false, resp.Error } verifyResult, ok := resp.Result.(bool) if !ok { return false, fmt.Errorf("error during bitcoind JSON-RPC: %v", err.Error()) } return verifyResult, nil }
func makeVerifyMessage(args []interface{}) (btcjson.Cmd, error) { return btcjson.NewVerifyMessageCmd("btcctl", args[0].(string), args[1].(string), args[2].(string)) }