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..f4aa90d 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 Promise.resolve(formatKredits(total)); + }) }), loadInitialData() { diff --git a/app/utils/cps/kredits.js b/app/utils/cps/kredits.js new file mode 100644 index 0000000..0df3532 --- /dev/null +++ b/app/utils/cps/kredits.js @@ -0,0 +1,25 @@ +import { computed } from '@ember/object'; +import ethers from 'npm:ethers'; +//import formatKredits from 'kredits-web/utils/format-kredits.js'; + +function formatKredits(value, options) { + let etherValue = ethers.utils.formatEther(value); + if (!options.decimals) { + etherValue = parseInt(etherValue).toString(); + } + return etherValue; +} + +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; +}