@fordefi-public/crypto-address-validator-ts
Version:
Crypto address validator for Bitcoin and other Altcoins, forked to be used with typescript
970 lines • 26.9 kB
JavaScript
import * as ETHValidator from './validators/ethereum_validator';
import * as BTCValidator from './validators/bitcoin_validator';
import * as ADAValidator from './validators/ada_validator';
import * as SCValidator from './validators/siacoin_validator';
import * as TRXValidator from './validators/tron_validator';
import * as NEMValidator from './validators/nem_validator';
import * as LSKValidator from './validators/lisk_validator';
import * as BCHValidator from './validators/bch_validator';
import * as EOSValidator from './validators/eos_validator';
import * as XTZValidator from './validators/tezos_validator';
import * as USDTValidator from './validators/usdt_validator';
import * as DotValidator from './validators/dot_validator';
import * as BIP173Validator from './validators/bip173_validator';
import * as IOTAValidator from './validators/iota_validator';
import * as XMRValidator from './validators/xmr_validator';
import * as SOLValidator from './validators/sol_validator';
import * as PearlValidator from './validators/pearl_validator';
// defines P2PKH and P2SH address types for standard (prod) and testnet networks
const CURRENCIES = [{
name: 'Bitcoin',
symbol: 'btc',
addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4', '3c', '26'] },
bech32Hrp: { prod: ['bc'], testnet: ['tb'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BitcoinCash',
symbol: 'bch',
regexp: new RegExp('^[qQpP]{1}[0-9a-zA-Z]{41}$'),
addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },
validator: BCHValidator.isValidAddress,
}, {
name: 'Bitcoin SV',
symbol: 'bsv',
regexp: new RegExp('^[qQ]{1}[0-9a-zA-Z]{41}$'),
addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },
validator: BCHValidator.isValidAddress,
}, {
name: 'LiteCoin',
symbol: 'ltc',
addressTypes: { prod: ['30', '05', '32'], testnet: ['6f', 'c4', '3a'] },
bech32Hrp: { prod: ['ltc'], testnet: ['tltc'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'PeerCoin',
symbol: 'ppc',
addressTypes: { prod: ['37', '75'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'DogeCoin',
symbol: 'doge',
addressTypes: { prod: ['1e', '16'], testnet: ['71', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BeaverCoin',
symbol: 'bvc',
addressTypes: { prod: ['19', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'FreiCoin',
symbol: 'frc',
addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'ProtoShares',
symbol: 'pts',
addressTypes: { prod: ['38', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'MegaCoin',
symbol: 'mec',
addressTypes: { prod: ['32', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'PrimeCoin',
symbol: 'xpm',
addressTypes: { prod: ['17', '53'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'AuroraCoin',
symbol: 'aur',
addressTypes: { prod: ['17', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'NameCoin',
symbol: 'nmc',
addressTypes: { prod: ['34'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BioCoin',
symbol: 'bio',
addressTypes: { prod: ['19', '14'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'GarliCoin',
symbol: 'grlc',
addressTypes: { prod: ['26', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'VertCoin',
symbol: 'vtc',
addressTypes: { prod: ['0x', '47', '71', '05'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BitcoinGold',
symbol: 'btg',
addressTypes: { prod: ['26', '17'], testnet: ['6f', 'c4'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Komodo',
symbol: 'kmd',
addressTypes: { prod: ['3c', '55'], testnet: ['0', '5'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BitcoinZ',
symbol: 'btcz',
expectedLength: 26,
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'BitcoinPrivate',
symbol: 'btcp',
expectedLength: 26,
addressTypes: { prod: ['1325', '13af'], testnet: ['1957', '19e0'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Hush',
symbol: 'hush',
expectedLength: 26,
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'SnowGem',
symbol: 'sng',
expectedLength: 26,
addressTypes: { prod: ['1c28', '1c2d'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'ZCash',
symbol: 'zec',
expectedLength: 26,
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'ZClassic',
symbol: 'zcl',
expectedLength: 26,
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'ZenCash',
symbol: 'zen',
expectedLength: 26,
addressTypes: { prod: ['2089', '2096'], testnet: ['2092', '2098'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'VoteCoin',
symbol: 'vot',
expectedLength: 26,
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Decred',
symbol: 'dcr',
addressTypes: { prod: ['073f', '071a'], testnet: ['0f21', '0efc'] },
hashFunction: 'blake256',
expectedLength: 26,
validator: BTCValidator.isValidAddress,
}, {
name: 'GameCredits',
symbol: 'game',
addressTypes: { prod: ['26', '05'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'PIVX',
symbol: 'pivx',
addressTypes: { prod: ['1e', '0d'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'SolarCoin',
symbol: 'slr',
addressTypes: { prod: ['12', '05'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'MonaCoin',
symbol: 'mona',
addressTypes: { prod: ['32', '37'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'DigiByte',
symbol: 'dgb',
addressTypes: { prod: ['1e', '3f'], testnet: [] },
bech32Hrp: { prod: ['dgb', 'S'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Tether',
symbol: 'usdt',
addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },
validator: USDTValidator.isValidAddress,
}, {
name: 'Binance Coin Mainnet',
symbol: 'bnb',
validator: ETHValidator.isValidAddress,
}, {
name: 'Monero',
symbol: 'xmr',
addressTypes: { prod: ['18', '42'], testnet: ['53', '63'], stagenet: ['24'] },
iAddressTypes: { prod: ['19'], testnet: ['54'], stagenet: ['25'] },
validator: XMRValidator.isValidAddress,
}, {
name: 'Dash',
symbol: 'dash',
addressTypes: { prod: ['4c', '10'], testnet: ['8c', '13'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Neo',
symbol: 'neo',
addressTypes: { prod: ['17'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'NeoGas',
symbol: 'gas',
addressTypes: { prod: ['17'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Qtum',
symbol: 'qtum',
addressTypes: { prod: ['3a', '32'], testnet: ['78', '6e'] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Waves',
symbol: 'waves',
addressTypes: { prod: ['0157'], testnet: ['0154'] },
expectedLength: 26,
hashFunction: 'blake256keccak256',
regexp: new RegExp(/^[a-zA-Z0-9]{35}$/),
validator: BTCValidator.isValidAddress,
}, {
name: 'Ethereum',
symbol: 'eth',
validator: ETHValidator.isValidAddress,
}, {
name: 'EtherZero',
symbol: 'etz',
validator: ETHValidator.isValidAddress,
}, {
name: 'EthereumClassic',
symbol: 'etc',
validator: ETHValidator.isValidAddress,
}, {
name: 'Callisto',
symbol: 'clo',
validator: ETHValidator.isValidAddress,
}, {
name: 'Bankex',
symbol: 'bkx',
validator: ETHValidator.isValidAddress,
}, {
name: 'Cardano',
symbol: 'ada',
bech32Hrp: { prod: ['addr'], testnet: ['addr'] },
validator: ADAValidator.isValidAddress
}, {
name: 'Aragon',
symbol: 'ant',
validator: ETHValidator.isValidAddress,
}, {
name: 'Basic Attention Token',
symbol: 'bat',
validator: ETHValidator.isValidAddress,
}, {
name: 'Bancor',
symbol: 'bnt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Civic',
symbol: 'cvc',
validator: ETHValidator.isValidAddress,
}, {
name: 'District0x',
symbol: 'dnt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Gnosis',
symbol: 'gno',
validator: ETHValidator.isValidAddress,
}, {
name: 'Golem (GNT)',
symbol: 'gnt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Golem',
symbol: 'glm',
validator: ETHValidator.isValidAddress,
}, {
name: 'Matchpool',
symbol: 'gup',
validator: ETHValidator.isValidAddress,
}, {
name: 'Melon',
symbol: 'mln',
validator: ETHValidator.isValidAddress,
}, {
name: 'Numeraire',
symbol: 'nmr',
validator: ETHValidator.isValidAddress,
}, {
name: 'OmiseGO',
symbol: 'omg',
validator: ETHValidator.isValidAddress,
}, {
name: 'TenX',
symbol: 'pay',
validator: ETHValidator.isValidAddress,
}, {
name: 'Ripio Credit Network',
symbol: 'rcn',
validator: ETHValidator.isValidAddress,
}, {
name: 'Augur',
symbol: 'rep',
validator: ETHValidator.isValidAddress,
}, {
name: 'iExec RLC',
symbol: 'rlc',
validator: ETHValidator.isValidAddress,
}, {
name: 'Salt',
symbol: 'salt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Status',
symbol: 'snt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Storj',
symbol: 'storj',
validator: ETHValidator.isValidAddress,
}, {
name: 'Swarm City',
symbol: 'swt',
validator: ETHValidator.isValidAddress,
}, {
name: 'TrueUSD',
symbol: 'tusd',
validator: ETHValidator.isValidAddress,
}, {
name: 'Wings',
symbol: 'wings',
validator: ETHValidator.isValidAddress,
}, {
name: '0x',
symbol: 'zrx',
validator: ETHValidator.isValidAddress,
}, {
name: 'Expanse',
symbol: 'exp',
validator: ETHValidator.isValidAddress,
}, {
name: 'Viberate',
symbol: 'vib',
validator: ETHValidator.isValidAddress,
}, {
name: 'Odyssey',
symbol: 'ocn',
validator: ETHValidator.isValidAddress,
}, {
name: 'Polymath',
symbol: 'poly',
validator: ETHValidator.isValidAddress,
}, {
name: 'Storm',
symbol: 'storm',
validator: ETHValidator.isValidAddress,
}, {
name: 'Siacoin',
symbol: 'sc',
validator: SCValidator.isValidAddress,
}, {
name: 'HyperSpace',
symbol: 'xsc',
validator: SCValidator.isValidAddress,
}, {
name: 'LBRY Credits',
symbol: 'lbc',
addressTypes: { prod: ['55'], testnet: [] },
validator: BTCValidator.isValidAddress,
}, {
name: 'Tron',
symbol: 'trx',
addressTypes: { prod: ['65'], testnet: ['160'] },
validator: TRXValidator.isValidAddress,
}, {
name: 'Nem',
symbol: 'xem',
validator: NEMValidator.isValidAddress,
}, {
name: 'Lisk',
symbol: 'lsk',
validator: LSKValidator.isValidAddress,
}, {
name: 'BTU Protocol',
symbol: 'btu',
validator: ETHValidator.isValidAddress,
}, {
name: 'Crypto.com Coin',
symbol: 'cro',
bech32Hrp: { prod: ['cro'], testnet: ['tcro'] },
validator: BIP173Validator.isValidAddress,
}, {
name: 'Multi-collateral DAI',
symbol: 'dai',
validator: ETHValidator.isValidAddress,
}, {
name: 'Enjin Coin',
symbol: 'enj',
validator: ETHValidator.isValidAddress,
}, {
name: 'HedgeTrade',
symbol: 'hedg',
validator: ETHValidator.isValidAddress,
}, {
name: 'Cred',
symbol: 'lba',
validator: ETHValidator.isValidAddress,
}, {
name: 'Chainlink',
symbol: 'link',
validator: ETHValidator.isValidAddress,
}, {
name: 'Loom Network',
symbol: 'loom',
validator: ETHValidator.isValidAddress,
}, {
name: 'Maker',
symbol: 'mkr',
validator: ETHValidator.isValidAddress,
}, {
name: 'Metal',
symbol: 'mtl',
validator: ETHValidator.isValidAddress,
}, {
name: 'Ocean Protocol',
symbol: 'ocean',
validator: ETHValidator.isValidAddress,
}, {
name: 'Quant',
symbol: 'qnt',
validator: ETHValidator.isValidAddress,
}, {
name: 'Synthetix Network',
symbol: 'snx',
validator: ETHValidator.isValidAddress,
}, {
name: 'SOLVE',
symbol: 'solve',
validator: ETHValidator.isValidAddress,
}, {
name: 'Spendcoin',
symbol: 'spnd',
validator: ETHValidator.isValidAddress,
}, {
name: 'TEMCO',
symbol: 'temco',
validator: ETHValidator.isValidAddress,
}, {
name: 'EOS',
symbol: 'eos',
validator: EOSValidator.isValidAddress
}, {
name: 'Tezos',
symbol: 'xtz',
validator: XTZValidator.isValidAddress,
}, {
name: 'VeChain',
symbol: 'vet',
validator: ETHValidator.isValidAddress,
},
{
name: 'StormX',
symbol: 'stmx',
validator: ETHValidator.isValidAddress,
},
{
name: 'AugurV2',
symbol: 'repv2',
validator: ETHValidator.isValidAddress,
},
{
name: 'FirmaChain',
symbol: 'fct',
validator: ETHValidator.isValidAddress,
},
{
name: 'BlockTrade',
symbol: 'btt',
validator: ETHValidator.isValidAddress,
},
{
name: 'Quantum Resistant Ledger',
symbol: 'qrl',
validator: ETHValidator.isValidAddress,
},
{
name: 'Serve',
symbol: 'serv',
validator: ETHValidator.isValidAddress,
},
{
name: 'Tap',
symbol: 'xtp',
validator: ETHValidator.isValidAddress,
},
{
name: 'Compound',
symbol: 'comp',
validator: ETHValidator.isValidAddress,
},
{
name: 'Paxos',
symbol: 'pax',
validator: ETHValidator.isValidAddress,
},
{
name: 'USD Coin',
symbol: 'usdc',
validator: ETHValidator.isValidAddress,
},
{
name: 'CUSD',
symbol: 'cusd',
validator: ETHValidator.isValidAddress,
},
{
name: 'Polkadot',
symbol: 'dot',
validator: DotValidator.isValidAddress,
},
{
name: 'Uniswap Coin',
symbol: 'uni',
validator: ETHValidator.isValidAddress,
},
{
name: 'Aave Coin',
symbol: 'aave',
validator: ETHValidator.isValidAddress,
},
{
name: 'Matic',
symbol: 'matic',
validator: ETHValidator.isValidAddress,
},
{
name: 'Decentraland',
symbol: 'mana',
validator: ETHValidator.isValidAddress,
},
{
name: 'Solana',
symbol: 'sol',
validator: SOLValidator.isValidAddress,
},
{
name: 'yearn.finance',
symbol: 'yfi',
validator: ETHValidator.isValidAddress,
},
{
name: 'Yield Guild Games',
symbol: 'ygg',
validator: ETHValidator.isValidAddress,
},
{
name: 'Wrapped Nexus Mutual',
symbol: 'wnxm',
validator: ETHValidator.isValidAddress,
},
{
name: 'Verasity',
symbol: 'vra',
validator: ETHValidator.isValidAddress,
},
{
name: 'VIDT Datalink',
symbol: 'vidt',
validator: ETHValidator.isValidAddress,
},
{
name: 'Ultra',
symbol: 'uos',
validator: ETHValidator.isValidAddress,
},
{
name: 'Universal Market Access',
symbol: 'uma',
validator: ETHValidator.isValidAddress,
},
{
name: 'Terra Virtua Kolect',
symbol: 'tvk',
validator: ETHValidator.isValidAddress,
},
{
name: 'Tellor',
symbol: 'trb',
validator: ETHValidator.isValidAddress,
},
{
name: 'Tornado Cash',
symbol: 'torn',
validator: ETHValidator.isValidAddress,
},
{
name: 'Swipe',
symbol: 'sxp',
validator: ETHValidator.isValidAddress,
},
{
name: 'SushiSwap',
symbol: 'sushi',
validator: ETHValidator.isValidAddress,
},
{
name: 'Serum',
symbol: 'srm',
validator: ETHValidator.isValidAddress,
},
{
name: 'SKALE Network',
symbol: 'skl',
validator: ETHValidator.isValidAddress,
},
{
name: 'SHIBA INU',
symbol: 'shib',
validator: ETHValidator.isValidAddress,
},
{
name: 'The Sandbox',
symbol: 'sand',
validator: ETHValidator.isValidAddress,
},
{
name: 'Reserve Rights',
symbol: 'rsr',
validator: ETHValidator.isValidAddress,
},
{
name: 'KeeperDAO',
symbol: 'rook',
validator: ETHValidator.isValidAddress,
},
{
name: 'Reef',
symbol: 'reef',
validator: ETHValidator.isValidAddress,
},
{
name: 'Raiden Network Token',
symbol: 'rdn',
validator: ETHValidator.isValidAddress,
},
{
name: 'Rarible',
symbol: 'rari',
validator: ETHValidator.isValidAddress,
},
{
name: 'Quantstamp',
symbol: 'qsp',
validator: ETHValidator.isValidAddress,
},
{
name: 'Pundi X',
symbol: 'pundix',
validator: ETHValidator.isValidAddress,
},
{
name: 'Marlin',
symbol: 'pond',
validator: ETHValidator.isValidAddress,
},
{
name: 'Phala Network',
symbol: 'pha',
validator: ETHValidator.isValidAddress,
},
{
name: 'Perpetual Protocol',
symbol: 'perp',
validator: ETHValidator.isValidAddress,
},
{
name: 'Orchid',
symbol: 'oxt',
validator: ETHValidator.isValidAddress,
},
{
name: 'Orion Protocol',
symbol: 'orn',
validator: ETHValidator.isValidAddress,
},
{
name: 'OKB',
symbol: 'okb',
validator: ETHValidator.isValidAddress,
},
{
name: 'Origin Protocol',
symbol: 'ogn',
validator: ETHValidator.isValidAddress,
},
{
name: 'Enzyme',
symbol: 'mln',
validator: ETHValidator.isValidAddress,
},
{
name: 'Loopring',
symbol: 'lrc',
validator: ETHValidator.isValidAddress,
},
{
name: 'Kyber Network Crystal v2',
symbol: 'knc',
validator: ETHValidator.isValidAddress,
},
{
name: 'Injective Protocol',
symbol: 'inj',
validator: ETHValidator.isValidAddress,
},
{
name: 'Illuvium',
symbol: 'ilv',
validator: ETHValidator.isValidAddress,
},
{
name: 'Hegic',
symbol: 'hegic',
validator: ETHValidator.isValidAddress,
},
{
name: 'The Graph',
symbol: 'grt',
validator: ETHValidator.isValidAddress,
},
{
name: 'Gods Unchained',
symbol: 'gods',
validator: ETHValidator.isValidAddress,
},
{
name: 'Aavegotchi',
symbol: 'ghst',
validator: ETHValidator.isValidAddress,
},
{
name: 'FUNToken',
symbol: 'fun',
validator: ETHValidator.isValidAddress,
},
{
name: 'FTX Token',
symbol: 'ftt',
validator: ETHValidator.isValidAddress,
},
{
name: 'Fantom',
symbol: 'ftm',
validator: ETHValidator.isValidAddress,
},
{
name: 'e-Radix',
symbol: 'exrd',
validator: ETHValidator.isValidAddress,
},
{
name: 'Ethernity Chain',
symbol: 'ern',
validator: ETHValidator.isValidAddress,
},
{
name: 'Ethereum Name Service',
symbol: 'ens',
validator: ETHValidator.isValidAddress,
},
{
name: 'Dent',
symbol: 'dent',
validator: ETHValidator.isValidAddress,
},
{
name: 'Curve DAO Token',
symbol: 'crv',
validator: ETHValidator.isValidAddress,
},
{
name: 'Celsius',
symbol: 'cel',
validator: ETHValidator.isValidAddress,
},
{
name: 'bZx Protocol',
symbol: 'bzrx',
validator: ETHValidator.isValidAddress,
},
{
name: 'Bluzelle',
symbol: 'blz',
validator: ETHValidator.isValidAddress,
},
{
name: 'Balancer',
symbol: 'bal',
validator: ETHValidator.isValidAddress,
},
{
name: 'Badger DAO',
symbol: 'badger',
validator: ETHValidator.isValidAddress,
},
{
name: 'Axie Infinity',
symbol: 'axs',
validator: ETHValidator.isValidAddress,
},
{
name: 'Audius',
symbol: 'audio',
validator: ETHValidator.isValidAddress,
},
{
name: 'Amp',
symbol: 'amp',
validator: ETHValidator.isValidAddress,
},
{
name: 'SingularityNET',
symbol: 'agix',
validator: ETHValidator.isValidAddress,
},
{
name: 'MyNeighborAlice',
symbol: 'alice',
validator: ETHValidator.isValidAddress,
},
{
name: 'Mirror Protocol',
symbol: 'mir',
validator: ETHValidator.isValidAddress,
},
{
name: 'Chiliz',
symbol: 'chz',
validator: ETHValidator.isValidAddress,
},
{
name: 'SuperFarm',
symbol: 'super',
validator: ETHValidator.isValidAddress,
},
{
name: 'UNUS SED LEO',
symbol: 'leo',
validator: ETHValidator.isValidAddress,
},
{
name: 'SuperRare',
symbol: 'rare',
validator: ETHValidator.isValidAddress,
},
{
name: 'Selfkey',
symbol: 'key',
validator: ETHValidator.isValidAddress,
},
{
name: 'Immutable X',
symbol: 'imx',
validator: ETHValidator.isValidAddress,
},
{
name: 'Icon',
symbol: 'icx',
validator: ETHValidator.isValidAddress,
},
{
name: 'Holo',
symbol: 'hot',
validator: ETHValidator.isValidAddress,
},
{
name: 'Efinity Token',
symbol: 'efi',
validator: ETHValidator.isValidAddress,
},
{
name: 'EasyFi',
symbol: 'ez',
validator: ETHValidator.isValidAddress,
},
{
name: 'dYdX',
symbol: 'dydx',
validator: ETHValidator.isValidAddress,
},
{
name: 'Streamr',
symbol: 'data',
validator: ETHValidator.isValidAddress,
},
{
name: 'Cartesi',
symbol: 'ctsi',
validator: ETHValidator.isValidAddress,
},
{
name: 'Cream Finance',
symbol: 'cream',
validator: ETHValidator.isValidAddress,
},
{
name: 'Band Protocol',
symbol: 'band',
validator: ETHValidator.isValidAddress,
},
{
name: 'Alpha Finance Lab',
symbol: 'alpha',
validator: ETHValidator.isValidAddress,
},
{
name: '1inch Network',
symbol: '1inch',
validator: ETHValidator.isValidAddress,
},
{
name: 'IOTA',
symbol: 'miota',
bech32Hrp: { prod: ['iota'], testnet: ['iota'] },
validator: IOTAValidator.isValidAddress,
},
{
name: 'Pearl',
symbol: 'pearl',
bech32Hrp: { prod: ['prl'], testnet: ['tprl'] },
validator: PearlValidator.isValidAddress,
},
];
export function getByNameOrSymbol(currencyNameOrSymbol) {
var nameOrSymbol = currencyNameOrSymbol.toLowerCase();
return CURRENCIES.find(function (currency) {
return currency.name.toLowerCase() === nameOrSymbol || currency.symbol.toLowerCase() === nameOrSymbol;
});
}
export function getAll() {
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}",`));
//
export default { getByNameOrSymbol, getAll };
//# sourceMappingURL=currencies.js.map