This commit is contained in:
1 parent
64f7eed9fd
commit
4c01dc4ea2
19 files changed
+4
-4
No files matched your search
@@ -0,0 +1,41 @@
|
||||
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
|
||||
}
|
||||
Reference in new issue
Block a user