UNPKG

trezor-address-validator

Version:

Multicoin address validator for Bitcoin and other altcoins.

1,237 lines (1,229 loc) 32.2 kB
var XRPValidator = require('./ripple_validator'); var ETHValidator = require('./ethereum_validator'); var BTCValidator = require('./bitcoin_validator'); var ADAValidator = require('./ada_validator'); var XMRValidator = require('./monero_validator'); var LokiValidator = require('./loki_validator'); var NANOValidator = require('./nano_validator'); var SCValidator = require('./siacoin_validator'); var TRXValidator = require('./tron_validator'); var NEMValidator = require('./nem_validator'); var LSKValidator = require('./lisk_validator'); var BCHValidator = require('./bch_validator'); var XLMValidator = require('./stellar_validator'); var BinanceValidator = require('./binance_validator'); var EOSValidator = require('./eos_validator'); var XTZValidator = require('./tezos_validator'); var AEValidator = require('./ae_validator'); var ARDRValidator = require('./ardr_validator'); var ATOMValidator = require('./atom_validator'); var HBARValidator = require('./hbar_validator'); var ICXValidator = require('./icx_validator'); var IOSTValidator = require('./iost_validator'); // var IOTAValidator = require('./iota_validator'); var STEEMValidator = require('./steem_validator'); var SYSValidator = require('./sys_validator'); var ZILValidator = require('./zil_validator'); var NXTValidator = require('./nxt_validator'); var SOLValidator = require('./solana_validator'); // defines P2PKH, P2SH and bech32 address types for standard (prod) and testnet networks var CURRENCIES = [ { name: 'Bitcoin', symbol: 'btc', segwitHrp: { prod: 'bc', testnet: 'tb', regtest: 'bcrt' }, addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4', '3c', '26'], regtest: ['6f', 'c4', '3c', '26'] }, validator: BTCValidator, }, { name: 'BitcoinCash', symbol: 'bch', regexp: '^[qQpP]{1}[0-9a-zA-Z]{41}$', addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] }, validator: BCHValidator, }, { name: 'Bitcoin Diamond', symbol: 'bcd', validator: BTCValidator, addressTypes: { prod: ['00'] } }, { name: 'Bitcoin SV', symbol: 'bsv', regexp: '^[qQ]{1}[0-9a-zA-Z]{41}$', addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] }, validator: BCHValidator, }, { name: 'Fujicoin', symbol: 'fjc', segwitHrp: { prod: 'fc', testnet: 'tf' }, addressTypes: { prod: ['24', '10'], testnet: ['4a', 'c4'] }, validator: BTCValidator, }, { name: 'LiteCoin', symbol: 'ltc', segwitHrp: { prod: 'ltc', testnet: 'tltc' }, addressTypes: { prod: ['30', '32'], testnet: ['6f', 'c4', '3a'] }, validator: BTCValidator, }, { name: 'PeerCoin', symbol: 'ppc', addressTypes: { prod: ['37', '75'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'DogeCoin', symbol: 'doge', addressTypes: { prod: ['1e', '16'], testnet: ['71', 'c4'] }, validator: BTCValidator, }, { name: 'BeaverCoin', symbol: 'bvc', addressTypes: { prod: ['19', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'FreiCoin', symbol: 'frc', addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'ProtoShares', symbol: 'pts', addressTypes: { prod: ['38', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'MegaCoin', symbol: 'mec', addressTypes: { prod: ['32', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'PrimeCoin', symbol: 'xpm', addressTypes: { prod: ['17', '53'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'AuroraCoin', symbol: 'aur', addressTypes: { prod: ['17', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'NameCoin', symbol: 'nmc', addressTypes: { prod: ['34'], testnet: [] }, validator: BTCValidator, }, { name: 'NXT', symbol: 'nxt', validator: NXTValidator, }, { name: 'BioCoin', symbol: 'bio', addressTypes: { prod: ['19', '14'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'GarliCoin', symbol: 'grlc', addressTypes: { prod: ['26', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'VertCoin', symbol: 'vtc', segwitHrp: { prod: 'vtc', testnet: 'tvtc' }, addressTypes: { prod: ['47', '05'], testnet: ['4a', 'c4', '6f'] }, validator: BTCValidator, }, { name: 'VeChain', symbol: 'ven', validator: ETHValidator, }, { name: 'VeChain Mainnet', symbol: 'vet', validator: ETHValidator, }, { name: 'BitcoinGold', symbol: 'btg', segwitHrp: { prod: 'btg', testnet: 'tbtg' }, addressTypes: { prod: ['26', '17'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'Komodo', symbol: 'kmd', addressTypes: { prod: ['3c', '55'], testnet: ['0', '5'] }, validator: BTCValidator, }, { name: 'BitcoinZ', symbol: 'btcz', expectedLength: 26, addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'BitcoinPrivate', symbol: 'btcp', expectedLength: 26, addressTypes: { prod: ['1325', '13af'], testnet: ['1957', '19e0'] }, validator: BTCValidator, }, { name: 'Hush', symbol: 'hush', expectedLength: 26, addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'SnowGem', symbol: 'sng', expectedLength: 26, addressTypes: { prod: ['1c28', '1c2d'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'ZCash', symbol: 'zec', expectedLength: 26, addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'ZClassic', symbol: 'zcl', expectedLength: 26, addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'ZenCash', symbol: 'zen', expectedLength: 26, addressTypes: { prod: ['2089', '2096'], testnet: ['2092', '2098'] }, validator: BTCValidator, }, { name: 'VoteCoin', symbol: 'vot', expectedLength: 26, addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] }, validator: BTCValidator, }, { name: 'Decred', symbol: 'dcr', addressTypes: { prod: ['073f', '071a'], testnet: ['0f21', '0efc'] }, hashFunction: 'blake256', expectedLength: 26, validator: BTCValidator, }, { name: 'GameCredits', symbol: 'game', segwitHrp: { prod: 'game', prod: 'tgame' }, addressTypes: { prod: ['26', '3e'], testnet: ['6f', '3a'] }, validator: BTCValidator, }, { name: 'PIVX', symbol: 'pivx', addressTypes: { prod: ['1e', '0d'], testnet: [] }, validator: BTCValidator, }, { name: 'SolarCoin', symbol: 'slr', addressTypes: { prod: ['12', '05'], testnet: [] }, validator: BTCValidator, }, { name: 'MonaCoin', symbol: 'mona', segwitHrp: { prod: 'mona', prod: 'tmona' }, addressTypes: { prod: ['32', '37'], testnet: ['6f', '75'] }, validator: BTCValidator, }, { name: 'DigiByte', symbol: 'dgb', segwitHrp: { prod: 'dgb' }, addressTypes: { prod: ['1e', '3f'], testnet: [] }, validator: BTCValidator, }, { name: 'Tether', symbol: 'usdt', addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] }, validator: BTCValidator, }, { name: 'Ripple', symbol: 'xrp', validator: XRPValidator, }, { name: 'Dash', symbol: 'dash', addressTypes: { prod: ['4c', '10'], testnet: ['8c', '13'] }, validator: BTCValidator, }, { name: 'Neo', symbol: 'neo', addressTypes: { prod: ['17'], testnet: [] }, validator: BTCValidator, }, { name: 'NeoGas', symbol: 'gas', addressTypes: { prod: ['17'], testnet: [] }, validator: BTCValidator, }, { name: 'Qtum', symbol: 'qtum', segwitHrp: { prod: 'qc', prod: 'tq' }, addressTypes: { prod: ['3a', '32'], testnet: ['78', '6e'] }, validator: BTCValidator, }, { name: 'Waves', symbol: 'waves', addressTypes: { prod: ['0157'], testnet: ['0154'] }, expectedLength: 26, hashFunction: 'blake256keccak256', regex: /^[a-zA-Z0-9]{35}$/, validator: BTCValidator, }, { name: 'Ontology', symbol: 'ont', validator: BTCValidator, addressTypes: { prod: ['17', '41'] } }, { name: 'Ravencoin', symbol: 'rvn', validator: BTCValidator, addressTypes: { prod: ['3c'] } }, { name: 'Groestlcoin', symbol: 'grs', addressTypes: { prod: ['24', '05'], testnet: ['6f', 'c4'] }, segwitHrp: { prod: 'grs', testnet: 'tgrs' }, hashFunction: 'groestl512x2', validator: BTCValidator }, { name: 'Ethereum', symbol: 'eth', validator: ETHValidator, }, { name: 'EtherZero', symbol: 'etz', validator: ETHValidator, }, { name: 'EthereumClassic', symbol: 'etc', validator: ETHValidator, }, { name: 'Callisto', symbol: 'clo', validator: ETHValidator, }, { name: 'Bankex', symbol: 'bkx', validator: ETHValidator, }, { name: 'Cardano', symbol: 'ada', segwitHrp: { prod: 'addr', testnet: 'addr_test' }, validator: ADAValidator, }, { name: 'Monero', symbol: 'xmr', addressTypes: { prod: ['18'], testnet: ['53'] }, subAddressTypes: { prod: ['42'], testnet: ['63'] }, iAddressTypes: { prod: ['19'], testnet: ['54'] }, validator: XMRValidator, }, { name: 'Aragon', symbol: 'ant', validator: ETHValidator, }, { name: 'Ardor', symbol: 'ardr', validator: ARDRValidator, }, { name: 'Basic Attention Token', symbol: 'bat', validator: ETHValidator, }, { name: 'Bancor', symbol: 'bnt', validator: ETHValidator, }, { name: 'Civic', symbol: 'cvc', validator: ETHValidator, }, { name: 'Own', // Rebranded from Chainium symbol: 'chx', validator: ETHValidator, }, { name: 'District0x', symbol: 'dnt', validator: ETHValidator, }, { name: 'Gnosis', symbol: 'gno', validator: ETHValidator, }, { name: 'Golem', symbol: 'gnt', validator: ETHValidator, }, { name: 'Matchpool', symbol: 'gup', validator: ETHValidator, }, { name: 'Melon', symbol: 'mln', validator: ETHValidator, }, { name: 'Numeraire', symbol: 'nmr', validator: ETHValidator, }, { name: 'OmiseGO', symbol: 'omg', validator: ETHValidator, }, { name: 'TenX', symbol: 'pay', validator: ETHValidator, }, { name: 'Ripio Credit Network', symbol: 'rcn', validator: ETHValidator, }, { name: 'Augur', symbol: 'rep', validator: ETHValidator, }, { name: 'iExec RLC', symbol: 'rlc', validator: ETHValidator, }, { name: 'Salt', symbol: 'salt', validator: ETHValidator, }, { name: 'Status', symbol: 'snt', validator: ETHValidator, }, { name: 'Storj', symbol: 'storj', validator: ETHValidator, }, { name: 'STEEM', symbol: 'steem', validator: STEEMValidator }, { name: 'Stratis', symbol: 'strat', validator: BTCValidator, addressTypes: { prod: ['3f'] } }, { name: 'Syscoin', symbol: 'sys', addressTypes: { prod: ['3f'] }, validator: SYSValidator }, { name: 'Swarm City', symbol: 'swt', validator: ETHValidator, }, { name: 'TrueUSD', symbol: 'tusd', validator: ETHValidator, }, { name: 'Wings', symbol: 'wings', validator: ETHValidator, }, { name: '0x', symbol: 'zrx', validator: ETHValidator, }, { name: 'Expanse', symbol: 'exp', validator: ETHValidator, }, { name: 'Viberate', symbol: 'vib', validator: ETHValidator, }, { name: 'Odyssey', symbol: 'ocn', validator: ETHValidator, }, { name: 'Polymath', symbol: 'poly', validator: ETHValidator, }, { name: 'Storm', symbol: 'storm', validator: ETHValidator, }, { name: 'FirstBlood', symbol: '1st', validator: ETHValidator, }, { name: 'Arcblock', symbol: 'abt', validator: ETHValidator, }, { name: 'Abyss Token', symbol: 'abyss', validator: ETHValidator, }, { name: 'adToken', symbol: 'adt', validator: ETHValidator, }, { name: 'AdEx', symbol: 'adx', validator: ETHValidator, }, { name: 'SingularityNET', symbol: 'agi', validator: ETHValidator, }, { name: 'Ambrosus', symbol: 'amb', validator: ETHValidator, }, { name: 'Ankr', symbol: 'ankr', validator: ETHValidator, }, { name: 'AppCoins', symbol: 'appc', validator: ETHValidator, }, { name: 'Cosmos', symbol: 'atom', validator: ATOMValidator, }, { name: 'Aeron', symbol: 'arn', validator: ETHValidator, }, { name: 'Aeternity', symbol: 'ae', validator: AEValidator, }, { name: 'ATLANT', symbol: 'atl', validator: ETHValidator, }, { name: 'aXpire', symbol: 'axpr', validator: ETHValidator, }, { name: 'Band Protocol', symbol: 'band', validator: ETHValidator, }, { name: 'Blockmason Credit Protocol', symbol: 'bcpt', validator: ETHValidator, }, { name: 'BitDegree', symbol: 'bdg', validator: ETHValidator, }, { name: 'BetterBetting', symbol: 'betr', validator: ETHValidator, }, { name: 'Bluzelle', symbol: 'blz', validator: ETHValidator, }, { name: 'Bread', symbol: 'brd', validator: ETHValidator, }, { name: 'Blocktrade Token', symbol: 'btt', validator: ETHValidator, }, { name: 'Binance USD', symbol: 'busd', validator: ETHValidator, }, { name: 'CryptoBossCoin', symbol: 'cbc', validator: ETHValidator, }, { name: 'Blox', symbol: 'cdt', validator: ETHValidator, }, { name: 'Celer Network', symbol: 'celr', validator: ETHValidator, }, { name: 'Chiliz', symbol: 'chz', validator: ETHValidator, }, { name: 'Coinlancer', symbol: 'cl', validator: ETHValidator, }, { name: 'Cindicator', symbol: 'cnd', validator: ETHValidator, }, { name: 'Cocos-BCX', symbol: 'cocos', validator: ETHValidator, }, { name: 'COS', symbol: 'cos', validator: ETHValidator, }, { name: 'Cosmo Coin', symbol: 'cosm', validator: ETHValidator, }, { name: 'Covesting', symbol: 'cov', validator: ETHValidator, }, { name: 'Crypterium', symbol: 'crpt', validator: ETHValidator, }, { name: 'Daneel', symbol: 'dan', validator: ETHValidator, }, { name: 'Streamr DATAcoin', symbol: 'data', validator: ETHValidator, }, { name: 'Dentacoin', symbol: 'dcn', validator: ETHValidator, }, { name: 'Dent', symbol: 'dent', validator: ETHValidator, }, { name: 'DigixDAO', symbol: 'dgd', validator: ETHValidator, }, { name: 'Digitex Futures', symbol: 'dgtx', validator: ETHValidator, }, { name: 'Agrello', symbol: 'dlt', validator: ETHValidator, }, { name: 'Dock', symbol: 'dock', validator: ETHValidator, }, { name: 'DomRaider', symbol: 'drt', validator: ETHValidator, }, { name: 'Dusk Network', symbol: 'dusk', validator: ETHValidator, }, { name: 'Edgeless', symbol: 'edg', validator: ETHValidator, }, { name: 'Eidoo', symbol: 'edo', validator: ETHValidator, }, { name: 'Electrify.Asia', symbol: 'elec', validator: ETHValidator, }, { name: 'aelf', symbol: 'elf', validator: ETHValidator, }, { name: 'Enigma', symbol: 'eng', validator: ETHValidator, }, { name: 'STASIS EURO', symbol: 'eurs', validator: ETHValidator, }, { name: 'Everex', symbol: 'evx', validator: ETHValidator, }, { name: 'FirmaChain', symbol: 'fct', validator: ETHValidator, }, { name: 'Fetch.ai', symbol: 'fet', validator: ETHValidator, }, { name: 'Fortuna', symbol: 'fota', validator: ETHValidator, }, { name: 'Fantom', symbol: 'ftm', validator: ETHValidator, }, { name: 'Etherparty', symbol: 'fuel', validator: ETHValidator, }, { name: 'Gifto', symbol: 'gto', validator: ETHValidator, }, { name: 'Gemini Dollar', symbol: 'gusd', validator: ETHValidator, }, { name: 'Genesis Vision', symbol: 'gvt', validator: ETHValidator, }, { name: 'Humaniq', symbol: 'hmq', validator: ETHValidator, }, { name: 'Holo', symbol: 'hot', validator: ETHValidator, }, { name: 'HOQU', symbol: 'hqx', validator: ETHValidator, }, { name: 'Huobi Token', symbol: 'ht', validator: ETHValidator, }, { name: 'ICON', symbol: 'icx', validator: ICXValidator, }, { name: 'Internet of Services', symbol: 'IOST', validator: IOSTValidator, // disable iota validation for now // }, { // name: 'Iota', // symbol: 'iota', // validator: IOTAValidator, }, { name: 'IHT Real Estate Protocol', symbol: 'iht', validator: ETHValidator, }, { name: 'Insolar', symbol: 'ins', validator: ETHValidator, }, { name: 'IoTeX', symbol: 'iotx', validator: ETHValidator, }, { name: 'BitKan', symbol: 'kan', validator: ETHValidator, }, { name: 'Kcash', symbol: 'kcash', validator: ETHValidator, }, { name: 'KEY', symbol: 'key', validator: ETHValidator, }, { name: 'KickToken', symbol: 'kick', validator: ETHValidator, }, { name: 'Kyber Network', symbol: 'knc', validator: ETHValidator, }, { name: 'Lambda', symbol: 'lamb', validator: ETHValidator, }, { name: 'Aave', symbol: 'lend', validator: ETHValidator, }, { name: 'LinkEye', symbol: 'let', validator: ETHValidator, }, { name: 'LIFE', symbol: 'life', validator: ETHValidator, }, { name: 'LockTrip', symbol: 'loc', validator: ETHValidator, }, { name: 'Loopring', symbol: 'lrc', validator: ETHValidator, }, { name: 'Lunyr', symbol: 'lun', validator: ETHValidator, }, { name: 'Decentraland', symbol: 'mana', validator: ETHValidator, }, { name: 'Matic Network', symbol: 'matic', validator: ETHValidator, }, { name: 'MCO', symbol: 'mco', validator: ETHValidator, }, { name: 'Moeda Loyalty Points', symbol: 'mda', validator: ETHValidator, }, { name: 'Measurable Data Token', symbol: 'mdt', validator: ETHValidator, }, { name: 'Mainframe', symbol: 'mft', validator: ETHValidator, }, { name: 'Mithril', symbol: 'mith', validator: ETHValidator, }, { name: 'Molecular Future', symbol: 'mof', validator: ETHValidator, }, { name: 'Monetha', symbol: 'mth', validator: ETHValidator, }, { name: 'Mysterium', symbol: 'myst', validator: ETHValidator, }, { name: 'Nucleus Vision', symbol: 'ncash', validator: ETHValidator, }, { name: 'Nexo', symbol: 'nexo', validator: ETHValidator, }, { name: 'NAGA', symbol: 'ngc', validator: ETHValidator, }, { name: 'Noah Coin', symbol: 'noah', validator: ETHValidator, }, { name: 'Pundi X', symbol: 'npxs', validator: ETHValidator, }, { name: 'NetKoin', symbol: 'ntk', validator: ETHValidator, }, { name: 'OAX', symbol: 'oax', validator: ETHValidator, }, { name: 'Menlo One', symbol: 'one', validator: ETHValidator, }, { name: 'SoMee.Social', symbol: 'ong', validator: ETHValidator, }, { name: 'ORS Group', symbol: 'ors', validator: ETHValidator, }, { name: 'OST', symbol: 'ost', validator: ETHValidator, }, { name: 'Patron', symbol: 'pat', validator: ETHValidator, }, { name: 'Paxos Standard', symbol: 'pax', validator: ETHValidator, }, { name: 'Peculium', symbol: 'pcl', validator: ETHValidator, }, { name: 'Perlin', symbol: 'perl', validator: ETHValidator, }, { name: 'Pillar', symbol: 'plr', validator: ETHValidator, }, { name: 'PumaPay', symbol: 'pma', validator: ETHValidator, }, { name: 'Po.et', symbol: 'poe', validator: ETHValidator, }, { name: 'Power Ledger', symbol: 'powr', validator: ETHValidator, }, { name: 'Populous', symbol: 'ppt', validator: ETHValidator, }, { name: 'Presearch', symbol: 'pre', validator: ETHValidator, }, { name: 'Patientory', symbol: 'ptoy', validator: ETHValidator, }, { name: 'QuarkChain', symbol: 'qkc', validator: ETHValidator, }, { name: 'Quantstamp', symbol: 'qsp', validator: ETHValidator, }, { name: 'Revain', symbol: 'r', validator: ETHValidator, }, { name: 'Raiden Network Token', symbol: 'rdn', validator: ETHValidator, }, { name: 'Ren', symbol: 'ren', validator: ETHValidator, }, { name: 'Request', symbol: 'req', validator: ETHValidator, }, { name: 'Refereum', symbol: 'rfr', validator: ETHValidator, }, { name: 'SiaCashCoin', symbol: 'scc', validator: ETHValidator, }, { name: 'Sentinel', symbol: 'sent', validator: ETHValidator, }, { name: 'SkinCoin', symbol: 'skin', validator: ETHValidator, }, { name: 'SunContract', symbol: 'snc', validator: ETHValidator, }, { name: 'SingularDTV', symbol: 'sngls', validator: ETHValidator, }, { name: 'SONM', symbol: 'snm', validator: ETHValidator, }, { name: 'All Sports', symbol: 'soc', validator: ETHValidator, }, { name: 'SIRIN LABS Token', symbol: 'srn', validator: ETHValidator, }, { name: 'Stox', symbol: 'stx', validator: ETHValidator, }, { name: 'Substratum', symbol: 'sub', validator: ETHValidator, }, { name: 'SwftCoin', symbol: 'swftc', validator: ETHValidator, }, { name: 'Lamden', symbol: 'tau', validator: ETHValidator, }, { name: 'Telcoin', symbol: 'tel', validator: ETHValidator, }, { name: 'Chronobank', symbol: 'time', validator: ETHValidator, }, { name: 'Monolith', symbol: 'tkn', validator: ETHValidator, }, { name: 'Time New Bank', symbol: 'tnb', validator: ETHValidator, }, { name: 'Tierion', symbol: 'tnt', validator: ETHValidator, }, { name: 'Tripio', symbol: 'trio', validator: ETHValidator, }, { name: 'WeTrust', symbol: 'trst', validator: ETHValidator, }, { name: 'USD Coin', symbol: 'usdc', validator: ETHValidator, }, { name: 'USDT ERC-20', symbol: 'usdt20', validator: ETHValidator, }, { name: 'Utrust', symbol: 'utk', validator: ETHValidator, }, { name: 'BLOCKv', symbol: 'vee', validator: ETHValidator, }, { name: 'VIBE', symbol: 'vibe', validator: ETHValidator, }, { name: 'Tael', symbol: 'wabi', validator: ETHValidator, }, { name: 'WePower', symbol: 'wpr', validator: ETHValidator, }, { name: 'Waltonchain', symbol: 'wtc', validator: ETHValidator, }, { name: 'BlitzPredict', symbol: 'xbp', validator: ETHValidator, }, { name: 'CryptoFranc', symbol: 'xchf', validator: ETHValidator, }, { name: 'Exchange Union', symbol: 'xuc', validator: ETHValidator, }, { name: 'YOU COIN', symbol: 'you', validator: ETHValidator, }, { name: 'Zap', symbol: 'zap', validator: ETHValidator, }, { name: 'Nano', symbol: 'nano', validator: NANOValidator, }, { name: 'RaiBlocks', symbol: 'xrb', validator: NANOValidator, }, { name: 'Siacoin', symbol: 'sc', validator: SCValidator, }, { name: 'HyperSpace', symbol: 'xsc', validator: SCValidator, }, { name: 'Loki', symbol: 'loki', addressTypes: { prod: ['114', '116'], testnet: ['156'] }, subAddressTypes: { prod: ['114', '116'], testnet: ['158'] }, iAddressTypes: { prod: ['115'], testnet: ['157'] }, validator: LokiValidator, }, { name: 'LBRY Credits', symbol: 'lbc', addressTypes: { prod: ['55'], testnet: [] }, validator: BTCValidator, }, { name: 'Tron', symbol: 'trx', addressTypes: { prod: [0x41], testnet: [0xa0] }, validator: TRXValidator, }, { name: 'Nem', symbol: 'xem', validator: NEMValidator, }, { name: 'Lisk', symbol: 'lsk', validator: LSKValidator, }, { name: 'Stellar', symbol: 'xlm', validator: XLMValidator, }, { name: 'Scopuly', symbol: 'sky', validator: XLMValidator, }, { name: 'BTU Protocol', symbol: 'btu', validator: ETHValidator, }, { name: 'Crypto.com Coin', symbol: 'cro', validator: ETHValidator, }, { name: 'Multi-collateral DAI', symbol: 'dai', validator: ETHValidator, }, { name: 'Enjin Coin', symbol: 'enj', validator: ETHValidator, }, { name: 'HedgeTrade', symbol: 'hedg', validator: ETHValidator, }, { name: 'Cred', symbol: 'lba', validator: ETHValidator, }, { name: 'Chainlink', symbol: 'link', validator: ETHValidator, }, { name: 'Loom Network', symbol: 'loom', validator: ETHValidator, }, { name: 'Maker', symbol: 'mkr', validator: ETHValidator, }, { name: 'Metal', symbol: 'mtl', validator: ETHValidator, }, { name: 'Ocean Protocol', symbol: 'ocean', validator: ETHValidator, //}, { // name: 'PitisCoin', // symbol: 'pts', # FIXME: symbol collides with ProtoShares // validator: BTCValidator, }, { name: 'Quant', symbol: 'qnt', validator: ETHValidator, }, { name: 'Synthetix Network', symbol: 'snx', validator: ETHValidator, }, { name: 'SOLVE', symbol: 'solve', validator: ETHValidator, }, { name: 'Solana', symbol: 'sol', validator: SOLValidator, }, { name: 'Spendcoin', symbol: 'spnd', validator: ETHValidator, }, { name: 'TEMCO', symbol: 'temco', validator: ETHValidator, }, { name: 'Luniverse', symbol: 'luniverse', validator: ETHValidator, }, { name: 'Binance Smart Chain', symbol: 'bsc', validator: ETHValidator, }, { name: 'Binance', symbol: 'bnb', validator: BinanceValidator, }, { name: 'EOS', symbol: 'eos', validator: EOSValidator, }, { name: 'Tezos', symbol: 'xtz', validator: XTZValidator, }, { name: 'Hedera Hashgraph', symbol: 'hbar', validator: HBARValidator, }, { name: 'Verge', symbol: 'xvg', addressTypes: { prod: ['1e'], testnet: ['6F'] }, validator: BTCValidator, }, { name: 'Zilliqa', symbol: 'zil', validator: ZILValidator } ]; module.exports = { getByNameOrSymbol: function (currencyNameOrSymbol) { var nameOrSymbol = currencyNameOrSymbol.toLowerCase(); return CURRENCIES.find(function (currency) { return currency.name.toLowerCase() === nameOrSymbol || currency.symbol.toLowerCase() === nameOrSymbol }); }, getAll: function () { return CURRENCIES; } }; // spit out details for readme.md // CURRENCIES // .sort((a, b) => a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1) // .forEach(c => console.log(`* ${c.name}/${c.symbol} \`'${c.name}'\` or \`'${c.symbol}'\` `)); //spit out keywords for package.json // CURRENCIES // .sort((a, b) => a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1) // .forEach(c => console.log(`"${c.name}","${c.symbol}",`));