Home Reference Source

packages/oo7-substrate/src/denominationInfo.js

  1. const { siPrefix } = require('./utils')
  2.  
  3. let denominationInfo = {
  4. denominations: { unit: 0 },
  5. primary: 'unit',
  6. unit: 'unit',
  7. ticker: 'UNIT'
  8. }
  9.  
  10. let denominations = [ 'unit' ]
  11.  
  12. function init (di) {
  13. if (!di.denominations[di.primary]) {
  14. throw new Error(`Denominations must include primary as key`)
  15. }
  16. let name = di.unit
  17. let denom = 0
  18. let ds = []
  19. for (let i = 0; i <= di.denominations[di.primary] + 6; i += 3) {
  20. let n = Object.keys(di.denominations).find(k => di.denominations[k] == i)
  21. if (n) {
  22. name = n
  23. denom = i
  24. }
  25. ds.push(siPrefix(i - denom) + name)
  26. }
  27.  
  28. denominations.length = 0
  29. Object.assign(denominations, ds)
  30. Object.assign(denominationInfo, di)
  31. }
  32.  
  33. module.exports = { init, denominationInfo, denominations }