UNPKG

@getdelta/wallet-address-validator

Version:

Wallet address validator for Bitcoin and other Altcoins.

1,504 lines (1,499 loc) 33 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 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 NEOValidator = require("./neo_validator"); var SOLValidator = require("./sol_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" }, addressTypes: { prod: ["00", "05"], testnet: ["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: "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: NEOValidator, }, { name: "NeoGas", symbol: "gas", addressTypes: { prod: ["17"], testnet: [] }, validator: NEOValidator, }, { 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" }, validator: ADAValidator, }, { name: "Monero", symbol: "xmr", addressTypes: { prod: ["18"], testnet: ["53"] }, 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: "Avalanche", symbol: "avax", 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: [] }, iAddressTypes: { prod: ["115"], testnet: [] }, validator: XMRValidator, }, { 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: "Spendcoin", symbol: "spnd", validator: ETHValidator, }, { name: "TEMCO", symbol: "temco", validator: ETHValidator, }, { name: "Luniverse", symbol: "luniverse", 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, }, { name: "Binance Smart Chain", symbol: "bsc", validator: ETHValidator, }, { name: "Solana", symbol: "sol", validator: SOLValidator, }, ]; 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}",`));