diff --git a/app/components/budget-balances/template.hbs b/app/components/budget-balances/template.hbs
index d8a7de3..745ad63 100644
--- a/app/components/budget-balances/template.hbs
+++ b/app/components/budget-balances/template.hbs
@@ -10,8 +10,8 @@
{{#each this.balances as |balance|}}
| {{balance.token.symbol}} |
- {{fmt-crypto-currency balance.balance balance.token.symbol}} |
- ~{{balance.balanceUsd}} USD |
+ {{balance.confirmed_balance}} |
+ ~{{balance.balanceUSD}} USD |
{{/each}}
diff --git a/app/services/community-funds.js b/app/services/community-funds.js
index c7998b7..e431149 100644
--- a/app/services/community-funds.js
+++ b/app/services/community-funds.js
@@ -1,44 +1,38 @@
-import Service from '@ember/service';
+import Service, { inject as service } from '@ember/service';
import { tracked } from '@glimmer/tracking';
import { A } from '@ember/array';
import { task } from 'ember-concurrency-decorators';
import config from 'kredits-web/config/environment';
-const txServiceBaseUrl = `${config.gnosisSafe.txServiceHost}/api/v1/safes/${config.gnosisSafe.address}`;
-
export default class CommunityFundsService extends Service {
+ @service exchangeRates;
+
@tracked balancesLoaded = false;
@tracked balances = A([]);
@task
*fetchBalances () {
- const uri = `${txServiceBaseUrl}/balances/usd/`;
-
- yield fetch(uri).then(res => res.json())
- .then(res => this.processBalances(res))
+ yield fetch(config.btcBalanceAPI).then(res => res.json())
+ .then(res => {
+ return this.processBalances(res);
+ })
.catch(err => {
console.log(`[community-funds] Fetching balances failed:`);
console.error(err);
});
}
- processBalances (res) {
- for (const balance of res) {
- // Format and round the approximate USD value
- const lang = navigator.language || navigator.userLanguage;
- balance.balanceUsd = Math.round(balance.balanceUsd).toLocaleString(lang);
+ async processBalances (res) {
+ await this.exchangeRates.fetchRates();
+ // Format and round the approximate USD value
+ const lang = navigator.language || navigator.userLanguage;
+ const balanceUSD = res.confirmed_balance * this.exchangeRates.btcusd;
+ res.balanceUSD = Math.round(balanceUSD).toLocaleString(lang);
- if (balance.token) {
- // ERC20 token, has all meta data
- this.balances.pushObject(balance);
- } else {
- // RBTC, missing meta data
- this.balances.pushObject({
- ...balance,
- ...{ token: { name: 'RBTC', symbol: 'RBTC'} }
- });
- }
- }
+ this.balances.pushObject({
+ ...res,
+ ...{ token: { name: 'BTC', symbol: 'BTC'} }
+ });
this.balancesLoaded = true;
}
diff --git a/app/services/exchange-rates.js b/app/services/exchange-rates.js
index 82dbd46..f56547f 100644
--- a/app/services/exchange-rates.js
+++ b/app/services/exchange-rates.js
@@ -8,7 +8,7 @@ const bitstampBaseUrl = `${config.corsProxy}https://www.bitstamp.net/api/v2`;
async function fetchFromBitstamp(currencyPair) {
try {
const res = await fetch(`${bitstampBaseUrl}/ticker/${currencyPair}/`).then(r => r.json());
- return res.vwap; // Last 24 hours volume weighted average price
+ return parseFloat(res.vwap); // Last 24 hours volume weighted average price
} catch(e) {
console.error('Could not fetch exchange rate from Bitstamp:', e);
return 0;
diff --git a/app/styles/components/_budget-balances.scss b/app/styles/components/_budget-balances.scss
index e6923b9..3a8263d 100644
--- a/app/styles/components/_budget-balances.scss
+++ b/app/styles/components/_budget-balances.scss
@@ -21,15 +21,16 @@ section#funds {
}
th {
+ font-size: 1.5rem;
text-align: left;
- padding-right: 1.2rem;
+ padding-right: 1rem;
}
td {
text-align: right;
&.amount {
- font-size: 1.5rem;
+ font-size: 2rem;
padding-right: 1.2rem;
}
diff --git a/config/environment.js b/config/environment.js
index 9de0b54..6ff174b 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -44,10 +44,7 @@ module.exports = function(environment) {
'BTC': '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599'
},
- gnosisSafe: {
- txServiceHost: 'https://safe-transaction.mainnet.gnosis.io',
- address: '0x9CC29b8373FF92B01C1f09F31B5DD862350c167E'
- },
+ btcBalanceAPI: 'https://api.kosmos.org/kredits/onchain_btc_balance',
corsProxy: 'https://cors.5apps.com/?uri='
};