diff --git a/app/controllers/index.js b/app/controllers/index.js index a6246a1..82e24e1 100644 --- a/app/controllers/index.js +++ b/app/controllers/index.js @@ -9,7 +9,7 @@ export default Controller.extend({ contributors: alias('kredits.contributors'), contributorsWithKredits: filter('contributors', function(contributor) { - return contributor.get('balance') !== 0; + return contributor.get('balanceRaw').gt(0); }), contributorsSorting: Object.freeze(['balance:desc']), contributorsSorted: sort('contributorsWithKredits', 'contributorsSorting'), diff --git a/app/models/contributor.js b/app/models/contributor.js index 3464aee..6bf771e 100644 --- a/app/models/contributor.js +++ b/app/models/contributor.js @@ -1,12 +1,13 @@ import { computed } from '@ember/object'; import EmberObject from '@ember/object'; import bignumber from 'kredits-web/utils/cps/bignumber'; +import kreditsValue from 'kredits-web/utils/cps/kredits'; export default EmberObject.extend({ // Contract id: bignumber('idRaw', 'toString'), account: null, - balance: bignumber('balanceRaw', 'toNumber'), + balance: kreditsValue('balanceRaw'), isCore: false, ipfsHash: null, diff --git a/app/services/kredits.js b/app/services/kredits.js index 841b27c..5e4f3fc 100644 --- a/app/services/kredits.js +++ b/app/services/kredits.js @@ -7,6 +7,8 @@ import { computed } from '@ember/object'; import { alias, notEmpty } from '@ember/object/computed'; import { isEmpty } from '@ember/utils'; +import formatKredits from 'kredits-web/utils/format-kredits'; + import config from 'kredits-web/config/environment'; import Contributor from 'kredits-web/models/contributor' import Proposal from 'kredits-web/models/proposal' @@ -109,7 +111,9 @@ export default Service.extend({ }, totalSupply: computed(function() { - return this.kredits.Token.functions.totalSupply(); + return this.kredits.Token.functions.totalSupply().then(total => { + return formatKredits(total); + }) }), loadInitialData() { diff --git a/app/utils/cps/kredits.js b/app/utils/cps/kredits.js new file mode 100644 index 0000000..923fd3d --- /dev/null +++ b/app/utils/cps/kredits.js @@ -0,0 +1,17 @@ +import { computed } from '@ember/object'; +import ethers from 'npm:ethers'; +import formatKredits from 'kredits-web/utils/format-kredits'; + +export default function(dependentKey, options = {}) { + return computed(dependentKey, { + get () { + const value = this.get(dependentKey); + return formatKredits(value, options); + }, + set (key, value) { + const bnValue = ethers.utils.bigNumberify(value); + this.set(dependentKey, bnValue); + return formatKredits(bnValue, options); + } + }); +} diff --git a/app/utils/format-kredits.js b/app/utils/format-kredits.js new file mode 100644 index 0000000..fd060b7 --- /dev/null +++ b/app/utils/format-kredits.js @@ -0,0 +1,9 @@ +import ethers from 'npm:ethers'; + +export default function(value, options = {}) { + let etherValue = ethers.utils.formatEther(value); + if (!options.decimals) { + etherValue = parseInt(etherValue).toString(); + } + return etherValue; +}