package bitcoin import ( "fmt" "net/http" ) // example: https://api.coinconvert.net/convert/btc/cad?amount=1 const fiatConvertURL = "https://api.coinconvert.net/convert/btc/cad" type FiatConversion struct { Status string `json:"status"` BTC int `json:"BTC"` CAD float64 `json:"CAD"` } // BTC to CAD FIAT conversion - accepts an // amount in satoshi's and returns a CAD amount * 1000 func (c *client) ConvertBTCToCAD(amount int) (int, error) { fiatConversion := &FiatConversion{} req, err := http.NewRequest("GET", fiatConvertURL+"?amount=1", nil) if err != nil { return 0, fmt.Errorf("failed to create new GET request: %v", err) } res, err := c.httpClient.Do(req) if err != nil { return 0, fmt.Errorf("http GET request failed: %v", err) } err = c.processResponse(res, fiatConversion) if err != nil { return 0, fmt.Errorf("failed to process response: %v", err) } if fiatConversion.Status != "success" { return 0, fmt.Errorf("fiat conversion status was '%s' but expected 'success'", fiatConversion.Status) } return (amount * int(fiatConversion.CAD*1000)) / 100000000, nil // one BTC = one hundred million satoshi's }