fiat conversion for electrum SPV provider
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-09-30 22:54:23 -06:00
parent dedf4f17db
commit 5f11b45dd4
2 changed files with 13 additions and 3 deletions

View File

@@ -18,7 +18,7 @@ type coinGeckoResponse struct {
} `json:"market_data"`
}
func convertBTCToCAD(amount int, coinGeckoApiKey string) (int, error) {
func convertBTCToCAD(amount int64, coinGeckoApiKey string) (int64, error) {
coinGeckoData := &coinGeckoResponse{}
req, err := http.NewRequest("GET", fmt.Sprintf("%s&x-cg-demo-api-key=%s", fiatConvertURL, coinGeckoApiKey), nil)
@@ -37,7 +37,7 @@ func convertBTCToCAD(amount int, coinGeckoApiKey string) (int, error) {
return 0, fmt.Errorf("failed to process response: %v", err)
}
return (amount * int(coinGeckoData.MarketData.CurrentPrice.CAD*1000)) / 100000000, nil // one BTC = one hundred million satoshi's
return (amount * int64(coinGeckoData.MarketData.CurrentPrice.CAD*1000)) / 100000000, nil // one BTC = one hundred million satoshi's
}
// processResponse takes the body of an HTTP response, and either returns

View File

@@ -58,5 +58,15 @@ func (p *Provider) GetBalances() ([]int, []string, error) {
wg.Wait()
return nil, nil, nil
cad, err := convertBTCToCAD(totalSats, p.coinGeckoApiKey)
if err != nil {
return nil, nil, fmt.Errorf("failed to convert sats to CAD: %v", err)
}
balances := make([]int, 0)
accounts := make([]string, 0)
balances = append(balances, int(cad))
accounts = append(accounts, p.ynabAccountID)
return balances, accounts, nil
}