manifest.js
1 'use strict'; 2 const fs = require('fs'); 3 const path = require('path'); 4 const coins = require('coinlist'); 5 const getColors = require('get-svg-colors'); 6 const alphaSort = require('alpha-sort'); 7 const manifest = require('../manifest.json'); 8 9 const overrides = new Map([ 10 ['VRSC', 'VerusCoin'], 11 ['GMR', 'Gimmer'], 12 ['NEXO', 'Nexo'], 13 ['GUSD', 'Gemini dollar'], 14 ['CALL', 'Capital'], 15 ['BOS', 'BOScoin'], 16 ['CIX', 'Cryptonetix'], 17 ['COQUI', 'COQUI Cash'], 18 ['DEEZ', 'DeezNuts'], 19 ['MZC', 'MAZA'], 20 ['CVC', 'Civic'], 21 ['BTM', 'Bitmark'], 22 ['GLXT', 'GLX Token'], 23 ['ONG', 'SoMee.Social'], 24 ['CC', 'CoinCollect'], 25 ['2GIVE', '2Give'], 26 ['BOOTY', 'Booty'], 27 ['PUNGO', 'Pungo Token'], 28 ['X', 'GLX Equity Token'], 29 ['AYWA', 'Aywa'], 30 ['CHAIN', 'Chainmakers'], 31 ['LPT', 'Livepeer Token'], 32 ['AUDR', 'AUDRamp'], 33 ['BAB', 'Bitcoin Cash ABC'], 34 ['BSV', 'BitcoinSV'], 35 ['GOLD', 'Dragonereum Gold'], 36 ['USDC', 'USD Coin'], 37 ['AEUR', 'Augmint Euro Token'], 38 ['BCIO', 'Blockchain.io'], 39 ['BEAM', 'Beam'], 40 ['BTT', 'BitTorrent'], 41 ['GRIN', 'Grin'], 42 ['ILK', 'Inlock Token'], 43 ['BTM', 'Bytom'], 44 ['D', 'Denarius'], 45 ['BTCD', 'BitcoinDark'], 46 ['CMT', 'Comet'], 47 ['CTR', 'Centra'], 48 ['HSR', 'HShare'], 49 ['ICN', 'Iconomi'], 50 ['IOST', 'IOStoken'], 51 ['PRL', 'Oyster'], 52 ['RCN', 'Rcoin'], 53 ['REN', 'Ren'], 54 ['RYO', 'Ryo Currency'], 55 ['SKY', 'Skycoin'], 56 ['XVC', 'Vcash'], 57 ['MATIC', 'Matic Network'] 58 ]); 59 60 const icons = manifest.map(icon => { 61 const id = typeof icon === 'string' ? icon : icon.symbol; 62 const filename = `${id.toLowerCase()}.svg`; 63 const svgPath = path.resolve(__dirname, '../svg/color/', filename); 64 const svg = fs.readFileSync(svgPath, 'utf8'); 65 const fillColor = getColors(svg).fills[0]; 66 67 if (!fillColor) { 68 throw new Error(`Couldn't get color for \`${id}\``); 69 } 70 71 return { 72 symbol: id.toUpperCase(), 73 name: overrides.get(id) || coins.get(id, 'name') || id, 74 color: fillColor.hex().toLowerCase() 75 }; 76 }); 77 78 icons.sort((a, b) => alphaSort.asc(a.symbol, b.symbol)); 79 80 const data = JSON.stringify(icons, null, '\t') + '\n'; 81 82 fs.writeFileSync(path.resolve(__dirname, '../manifest.json'), data);