Created
November 2, 2022 10:39
-
-
Save erdesigns-eu/90d2e176832ef5a645babc32f3bc1179 to your computer and use it in GitHub Desktop.
CoinLayer API Wrapper for Javascript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* CoinLayer API - Cryptocurrency exchange rates etc.. | |
* for use in the browser. | |
* | |
* License: MIT | |
* Author: Ernst Reidinga - ERDesigns - 26/10/2022 | |
*/ | |
class CoinLayerAPIError extends Error { | |
/** | |
* Create new CoinLayerAPI Error instance | |
* @param {Object} error | |
*/ | |
constructor(error) { | |
super(); | |
this.code = error.code; | |
this.name = `CoinLayerAPIError: ${error.code}`; | |
this.message = error.message; | |
} | |
} | |
export class CoinLayerAPI { | |
__apiKey; | |
/** | |
* Create new Coin Layer API instance | |
* @param {String} key | |
*/ | |
constructor(key) { | |
if (!key || !key.length) { | |
throw new CoinLayerAPIError({ message: "No api key defined!", code: 1 }); | |
} | |
this.__apiKey = key; | |
} | |
/** | |
* List of available crypto coins | |
*/ | |
get coins() { | |
return [ | |
{ | |
symbol: "611", | |
name: "SixEleven", | |
}, | |
{ | |
symbol: "ABC", | |
name: "AB-Chain", | |
}, | |
{ | |
symbol: "ACP", | |
name: "Anarchists Prime", | |
}, | |
{ | |
symbol: "ACT", | |
name: "ACT", | |
}, | |
{ | |
symbol: "ACT*", | |
name: "Achain", | |
}, | |
{ | |
symbol: "ADA", | |
name: "Cardano", | |
}, | |
{ | |
symbol: "ADCN", | |
name: "Asiadigicoin", | |
}, | |
{ | |
symbol: "ADL", | |
name: "Adelphoi", | |
}, | |
{ | |
symbol: "ADX", | |
name: "AdEx", | |
}, | |
{ | |
symbol: "ADZ", | |
name: "Adzcoin", | |
}, | |
{ | |
symbol: "AE", | |
name: "Aeternity", | |
}, | |
{ | |
symbol: "AGI", | |
name: "SingularityNET", | |
}, | |
{ | |
symbol: "AIB", | |
name: "AdvancedInternetBlock", | |
}, | |
{ | |
symbol: "AIDOC", | |
name: "AI Doctor", | |
}, | |
{ | |
symbol: "AION", | |
name: "Aion", | |
}, | |
{ | |
symbol: "AIR", | |
name: "AirToken", | |
}, | |
{ | |
symbol: "ALT", | |
name: "ALTcoin", | |
}, | |
{ | |
symbol: "AMB", | |
name: "Ambrosus", | |
}, | |
{ | |
symbol: "AMM", | |
name: "MicroMoney", | |
}, | |
{ | |
symbol: "ANT", | |
name: "Aragon", | |
}, | |
{ | |
symbol: "APC", | |
name: "AlpaCoin", | |
}, | |
{ | |
symbol: "APPC", | |
name: "AppCoins", | |
}, | |
{ | |
symbol: "ARC", | |
name: "ArcticCoin", | |
}, | |
{ | |
symbol: "ARCT", | |
name: "ArbitrageCT", | |
}, | |
{ | |
symbol: "ARDR", | |
name: "Ardor", | |
}, | |
{ | |
symbol: "ARK", | |
name: "ARK", | |
}, | |
{ | |
symbol: "ARN", | |
name: "Aeron", | |
}, | |
{ | |
symbol: "ASAFE2", | |
name: "Allsafe", | |
}, | |
{ | |
symbol: "AST", | |
name: "AirSwap", | |
}, | |
{ | |
symbol: "ATB", | |
name: "ATB coin", | |
}, | |
{ | |
symbol: "ATM", | |
name: "ATMChain", | |
}, | |
{ | |
symbol: "AURS", | |
name: "Aureus", | |
}, | |
{ | |
symbol: "AVT", | |
name: "AventCoin", | |
}, | |
{ | |
symbol: "BAR", | |
name: "TBIS token", | |
}, | |
{ | |
symbol: "BASH", | |
name: "LuckChain", | |
}, | |
{ | |
symbol: "BAT", | |
name: "Basic Attention Token", | |
}, | |
{ | |
symbol: "BAY", | |
name: "BitBay", | |
}, | |
{ | |
symbol: "BBP", | |
name: "BiblePay", | |
}, | |
{ | |
symbol: "BCD", | |
name: "Bitcoin Diamond", | |
}, | |
{ | |
symbol: "BCH", | |
name: "Bitcoin Cash / BCC", | |
}, | |
{ | |
symbol: "BCN", | |
name: "ByteCoin", | |
}, | |
{ | |
symbol: "BCPT", | |
name: "BlockMason Credit Protocol", | |
}, | |
{ | |
symbol: "BEE", | |
name: "Bee Token", | |
}, | |
{ | |
symbol: "BIO", | |
name: "Biocoin", | |
}, | |
{ | |
symbol: "BLC", | |
name: "BlakeCoin", | |
}, | |
{ | |
symbol: "BLOCK", | |
name: "BlockNet", | |
}, | |
{ | |
symbol: "BLU", | |
name: "BlueCoin", | |
}, | |
{ | |
symbol: "BLZ", | |
name: "Bluzelle", | |
}, | |
{ | |
symbol: "BMC", | |
name: "Blackmoon Crypto", | |
}, | |
{ | |
symbol: "BNB", | |
name: "Binance Coin", | |
}, | |
{ | |
symbol: "BNT", | |
name: "Bancor Network Token", | |
}, | |
{ | |
symbol: "BOST", | |
name: "BoostCoin", | |
}, | |
{ | |
symbol: "BQ", | |
name: "Bitqy", | |
}, | |
{ | |
symbol: "BQX", | |
name: "Ethos", | |
}, | |
{ | |
symbol: "BRD", | |
name: "Bread token", | |
}, | |
{ | |
symbol: "BRIT", | |
name: "BritCoin", | |
}, | |
{ | |
symbol: "BT1", | |
name: "Bitfinex Bitcoin Future", | |
}, | |
{ | |
symbol: "BT2", | |
name: "Bitcoin SegWit2X", | |
}, | |
{ | |
symbol: "BTC", | |
name: "Bitcoin", | |
}, | |
{ | |
symbol: "BTCA", | |
name: "Bitair", | |
}, | |
{ | |
symbol: "BTCS", | |
name: "Bitcoin Scrypt", | |
}, | |
{ | |
symbol: "BTCZ", | |
name: "BitcoinZ", | |
}, | |
{ | |
symbol: "BTG", | |
name: "Bitcoin Gold", | |
}, | |
{ | |
symbol: "BTLC", | |
name: "BitLuckCoin", | |
}, | |
{ | |
symbol: "BTM", | |
name: "BitMark", | |
}, | |
{ | |
symbol: "BTM*", | |
name: "Bytom", | |
}, | |
{ | |
symbol: "BTQ", | |
name: "BitQuark", | |
}, | |
{ | |
symbol: "BTS", | |
name: "Bitshares", | |
}, | |
{ | |
symbol: "BTX", | |
name: "Bitcore", | |
}, | |
{ | |
symbol: "BURST", | |
name: "BurstCoin", | |
}, | |
{ | |
symbol: "CALC", | |
name: "CaliphCoin", | |
}, | |
{ | |
symbol: "CAS", | |
name: "Cashaa", | |
}, | |
{ | |
symbol: "CAT", | |
name: "BlockCAT", | |
}, | |
{ | |
symbol: "CCRB", | |
name: "CryptoCarbon", | |
}, | |
{ | |
symbol: "CDT", | |
name: "CoinDash", | |
}, | |
{ | |
symbol: "CESC", | |
name: "Crypto Escudo", | |
}, | |
{ | |
symbol: "CHAT", | |
name: "ChatCoin", | |
}, | |
{ | |
symbol: "CJ", | |
name: "CryptoJacks", | |
}, | |
{ | |
symbol: "CL", | |
name: "CoinLancer", | |
}, | |
{ | |
symbol: "CLD", | |
name: "Cloud", | |
}, | |
{ | |
symbol: "CLOAK", | |
name: "CloakCoin", | |
}, | |
{ | |
symbol: "CMT*", | |
name: "CyberMiles", | |
}, | |
{ | |
symbol: "CND", | |
name: "Cindicator", | |
}, | |
{ | |
symbol: "CNX", | |
name: "Cryptonex", | |
}, | |
{ | |
symbol: "CPC", | |
name: "CapriCoin", | |
}, | |
{ | |
symbol: "CRAVE", | |
name: "CraveCoin", | |
}, | |
{ | |
symbol: "CRC", | |
name: "CrowdCoin", | |
}, | |
{ | |
symbol: "CRE", | |
name: "Credits", | |
}, | |
{ | |
symbol: "CRW", | |
name: "Crown Coin", | |
}, | |
{ | |
symbol: "CTO", | |
name: "Crypto", | |
}, | |
{ | |
symbol: "CTR", | |
name: "Centra", | |
}, | |
{ | |
symbol: "CVC", | |
name: "Civic", | |
}, | |
{ | |
symbol: "DAS", | |
name: "DAS", | |
}, | |
{ | |
symbol: "DASH", | |
name: "DigitalCash", | |
}, | |
{ | |
symbol: "DAT", | |
name: "Datum", | |
}, | |
{ | |
symbol: "DATA", | |
name: "Streamr DATAcoin", | |
}, | |
{ | |
symbol: "DBC", | |
name: "DeepBrain Chain", | |
}, | |
{ | |
symbol: "DBET", | |
name: "Decent.bet", | |
}, | |
{ | |
symbol: "DCN", | |
name: "Dentacoin", | |
}, | |
{ | |
symbol: "DCR", | |
name: "Decred", | |
}, | |
{ | |
symbol: "DCT", | |
name: "Decent", | |
}, | |
{ | |
symbol: "DEEP", | |
name: "Deep Gold", | |
}, | |
{ | |
symbol: "DENT", | |
name: "Dent", | |
}, | |
{ | |
symbol: "DGB", | |
name: "DigiByte", | |
}, | |
{ | |
symbol: "DGD", | |
name: "Digix DAO", | |
}, | |
{ | |
symbol: "DIM", | |
name: "DIMCOIN", | |
}, | |
{ | |
symbol: "DIME", | |
name: "DimeCoin", | |
}, | |
{ | |
symbol: "DMD", | |
name: "Diamond", | |
}, | |
{ | |
symbol: "DNT", | |
name: "district0x", | |
}, | |
{ | |
symbol: "DOGE", | |
name: "Dogecoin", | |
}, | |
{ | |
symbol: "DRGN", | |
name: "Dragonchain", | |
}, | |
{ | |
symbol: "DRZ", | |
name: "Droidz", | |
}, | |
{ | |
symbol: "DSH", | |
name: "Dashcoin", | |
}, | |
{ | |
symbol: "DTA", | |
name: "Data", | |
}, | |
{ | |
symbol: "EC", | |
name: "Eclipse", | |
}, | |
{ | |
symbol: "EDG", | |
name: "Edgeless", | |
}, | |
{ | |
symbol: "EDO", | |
name: "Eidoo", | |
}, | |
{ | |
symbol: "EDR", | |
name: "E-Dinar Coin", | |
}, | |
{ | |
symbol: "EKO", | |
name: "EchoLink", | |
}, | |
{ | |
symbol: "ELA", | |
name: "Elastos", | |
}, | |
{ | |
symbol: "ELF", | |
name: "aelf", | |
}, | |
{ | |
symbol: "EMC", | |
name: "Emercoin", | |
}, | |
{ | |
symbol: "EMGO", | |
name: "MobileGo", | |
}, | |
{ | |
symbol: "ENG", | |
name: "Enigma", | |
}, | |
{ | |
symbol: "ENJ", | |
name: "Enjin Coin", | |
}, | |
{ | |
symbol: "EOS", | |
name: "EOS", | |
}, | |
{ | |
symbol: "ERT", | |
name: "Esports.com", | |
}, | |
{ | |
symbol: "ETC", | |
name: "Ethereum Classic", | |
}, | |
{ | |
symbol: "ETH", | |
name: "Ethereum", | |
}, | |
{ | |
symbol: "ETN", | |
name: "Electroneum", | |
}, | |
{ | |
symbol: "ETP", | |
name: "Metaverse", | |
}, | |
{ | |
symbol: "ETT", | |
name: "EncryptoTel", | |
}, | |
{ | |
symbol: "EVR", | |
name: "Everus", | |
}, | |
{ | |
symbol: "EVX", | |
name: "Everex", | |
}, | |
{ | |
symbol: "FCT", | |
name: "Factoids", | |
}, | |
{ | |
symbol: "FLP", | |
name: "Gameflip", | |
}, | |
{ | |
symbol: "FOTA", | |
name: "Fortuna", | |
}, | |
{ | |
symbol: "FRST", | |
name: "FirstCoin", | |
}, | |
{ | |
symbol: "FUEL", | |
name: "Etherparty", | |
}, | |
{ | |
symbol: "FUN", | |
name: "FunFair", | |
}, | |
{ | |
symbol: "FUNC", | |
name: "FunCoin", | |
}, | |
{ | |
symbol: "FUTC", | |
name: "FutCoin", | |
}, | |
{ | |
symbol: "GAME", | |
name: "Gamecredits", | |
}, | |
{ | |
symbol: "GAS", | |
name: "Gas", | |
}, | |
{ | |
symbol: "GBYTE", | |
name: "Byteball", | |
}, | |
{ | |
symbol: "GMX", | |
name: "Goldmaxcoin", | |
}, | |
{ | |
symbol: "GNO", | |
name: "Gnosis", | |
}, | |
{ | |
symbol: "GNT", | |
name: "Golem Network Token", | |
}, | |
{ | |
symbol: "GNX", | |
name: "Genaro Network", | |
}, | |
{ | |
symbol: "GRC", | |
name: "GridCoin", | |
}, | |
{ | |
symbol: "GRS", | |
name: "Groestlcoin ", | |
}, | |
{ | |
symbol: "GRWI", | |
name: "Growers International", | |
}, | |
{ | |
symbol: "GTC", | |
name: "Game", | |
}, | |
{ | |
symbol: "GTO", | |
name: "GIFTO", | |
}, | |
{ | |
symbol: "GUP", | |
name: "Guppy", | |
}, | |
{ | |
symbol: "GVT", | |
name: "Genesis Vision", | |
}, | |
{ | |
symbol: "GXS", | |
name: "GXShares", | |
}, | |
{ | |
symbol: "HAC", | |
name: "Hackspace Capital", | |
}, | |
{ | |
symbol: "HNC", | |
name: "Hellenic Coin", | |
}, | |
{ | |
symbol: "HSR", | |
name: "Hshare", | |
}, | |
{ | |
symbol: "HST", | |
name: "Decision Token", | |
}, | |
{ | |
symbol: "HVN", | |
name: "Hive Project", | |
}, | |
{ | |
symbol: "ICN", | |
name: "Iconomi", | |
}, | |
{ | |
symbol: "ICOS", | |
name: "ICOBox", | |
}, | |
{ | |
symbol: "ICX", | |
name: "ICON Project", | |
}, | |
{ | |
symbol: "IGNIS", | |
name: "Ignis", | |
}, | |
{ | |
symbol: "ILC", | |
name: "ILCoin", | |
}, | |
{ | |
symbol: "INK", | |
name: "Ink", | |
}, | |
{ | |
symbol: "INS", | |
name: "INS Ecosystem", | |
}, | |
{ | |
symbol: "INSN", | |
name: "Insane Coin", | |
}, | |
{ | |
symbol: "INT", | |
name: "Internet Node Token", | |
}, | |
{ | |
symbol: "IOP", | |
name: "Internet of People", | |
}, | |
{ | |
symbol: "IOST", | |
name: "IOS token", | |
}, | |
{ | |
symbol: "ITC", | |
name: "IoT Chain", | |
}, | |
{ | |
symbol: "KCS", | |
name: "Kucoin", | |
}, | |
{ | |
symbol: "KICK", | |
name: "KickCoin", | |
}, | |
{ | |
symbol: "KIN", | |
name: "Kin", | |
}, | |
{ | |
symbol: "KLC", | |
name: "KiloCoin", | |
}, | |
{ | |
symbol: "KMD", | |
name: "Komodo", | |
}, | |
{ | |
symbol: "KNC", | |
name: "Kyber Network", | |
}, | |
{ | |
symbol: "KRB", | |
name: "Karbo", | |
}, | |
{ | |
symbol: "LA", | |
name: "LATOKEN", | |
}, | |
{ | |
symbol: "LEND", | |
name: "EthLend", | |
}, | |
{ | |
symbol: "LEO", | |
name: "LEOcoin", | |
}, | |
{ | |
symbol: "LINDA", | |
name: "Linda", | |
}, | |
{ | |
symbol: "LINK", | |
name: "ChainLink", | |
}, | |
{ | |
symbol: "LOC", | |
name: "Loco", | |
}, | |
{ | |
symbol: "LOG", | |
name: "Wood Coin", | |
}, | |
{ | |
symbol: "LRC", | |
name: "Loopring", | |
}, | |
{ | |
symbol: "LSK", | |
name: "Lisk", | |
}, | |
{ | |
symbol: "LTC", | |
name: "Litecoin", | |
}, | |
{ | |
symbol: "LUN", | |
name: "Lunyr", | |
}, | |
{ | |
symbol: "LUX", | |
name: "LUXCoin", | |
}, | |
{ | |
symbol: "MAID", | |
name: "MaidSafe Coin", | |
}, | |
{ | |
symbol: "MANA", | |
name: "Decentraland", | |
}, | |
{ | |
symbol: "MCAP", | |
name: "MCAP", | |
}, | |
{ | |
symbol: "MCO", | |
name: "Monaco", | |
}, | |
{ | |
symbol: "MDA", | |
name: "Moeda", | |
}, | |
{ | |
symbol: "MDS", | |
name: "MediShares", | |
}, | |
{ | |
symbol: "MIOTA", | |
name: "IOTA", | |
}, | |
{ | |
symbol: "MKR", | |
name: "Maker", | |
}, | |
{ | |
symbol: "MLN", | |
name: "Melon", | |
}, | |
{ | |
symbol: "MNX", | |
name: "MinexCoin", | |
}, | |
{ | |
symbol: "MOD", | |
name: "Modum", | |
}, | |
{ | |
symbol: "MOIN", | |
name: "MoinCoin", | |
}, | |
{ | |
symbol: "MONA", | |
name: "MonaCoin", | |
}, | |
{ | |
symbol: "MTL", | |
name: "Metal", | |
}, | |
{ | |
symbol: "MTN*", | |
name: "Medicalchain", | |
}, | |
{ | |
symbol: "MTX", | |
name: "Matryx", | |
}, | |
{ | |
symbol: "NAS", | |
name: "Nebulas", | |
}, | |
{ | |
symbol: "NAV", | |
name: "NavCoin", | |
}, | |
{ | |
symbol: "NBT", | |
name: "NuBits", | |
}, | |
{ | |
symbol: "NDC", | |
name: "NeverDie", | |
}, | |
{ | |
symbol: "NEBL", | |
name: "Neblio", | |
}, | |
{ | |
symbol: "NEO", | |
name: "NEO", | |
}, | |
{ | |
symbol: "NEU", | |
name: "Neumark", | |
}, | |
{ | |
symbol: "NEWB", | |
name: "Newbium", | |
}, | |
{ | |
symbol: "NGC", | |
name: "NagaCoin", | |
}, | |
{ | |
symbol: "NKC", | |
name: "Nukecoinz", | |
}, | |
{ | |
symbol: "NLC2", | |
name: "NoLimitCoin", | |
}, | |
{ | |
symbol: "NMC", | |
name: "NameCoin", | |
}, | |
{ | |
symbol: "NMR", | |
name: "Numerai", | |
}, | |
{ | |
symbol: "NULS", | |
name: "Nuls", | |
}, | |
{ | |
symbol: "NVC", | |
name: "NovaCoin", | |
}, | |
{ | |
symbol: "NXT", | |
name: "Nxt", | |
}, | |
{ | |
symbol: "OAX", | |
name: "OpenANX", | |
}, | |
{ | |
symbol: "OBITS", | |
name: "Obits Coin", | |
}, | |
{ | |
symbol: "OC", | |
name: "OrangeCoin", | |
}, | |
{ | |
symbol: "OCN", | |
name: "Odyssey", | |
}, | |
{ | |
symbol: "ODN", | |
name: "Obsidian", | |
}, | |
{ | |
symbol: "OK", | |
name: "OKCash", | |
}, | |
{ | |
symbol: "OMG", | |
name: "OmiseGo", | |
}, | |
{ | |
symbol: "OMNI", | |
name: "Omni", | |
}, | |
{ | |
symbol: "ORE", | |
name: "Galactrum", | |
}, | |
{ | |
symbol: "ORME", | |
name: "Ormeus Coin", | |
}, | |
{ | |
symbol: "OST", | |
name: "Simple Token", | |
}, | |
{ | |
symbol: "OTN", | |
name: "Open Trading Network", | |
}, | |
{ | |
symbol: "OTX", | |
name: "Octanox", | |
}, | |
{ | |
symbol: "OXY", | |
name: "Oxycoin", | |
}, | |
{ | |
symbol: "PART", | |
name: "Particl", | |
}, | |
{ | |
symbol: "PAY", | |
name: "TenX", | |
}, | |
{ | |
symbol: "PBT", | |
name: "Primalbase", | |
}, | |
{ | |
symbol: "PCS", | |
name: "Pabyosi Coin", | |
}, | |
{ | |
symbol: "PIVX", | |
name: "Private Instant Verified Transaction", | |
}, | |
{ | |
symbol: "PIZZA", | |
name: "PizzaCoin", | |
}, | |
{ | |
symbol: "PLBT", | |
name: "Polybius", | |
}, | |
{ | |
symbol: "PLR", | |
name: "Pillar", | |
}, | |
{ | |
symbol: "POE", | |
name: "Po.et", | |
}, | |
{ | |
symbol: "POLY", | |
name: "PolyBit", | |
}, | |
{ | |
symbol: "POSW", | |
name: "PoSWallet", | |
}, | |
{ | |
symbol: "POWR", | |
name: "Power Ledger", | |
}, | |
{ | |
symbol: "PPC", | |
name: "PeerCoin", | |
}, | |
{ | |
symbol: "PPT", | |
name: "Populous", | |
}, | |
{ | |
symbol: "PPY", | |
name: "Peerplays", | |
}, | |
{ | |
symbol: "PRC", | |
name: "ProsperCoin", | |
}, | |
{ | |
symbol: "PRES", | |
name: "President Trump", | |
}, | |
{ | |
symbol: "PRG", | |
name: "Paragon", | |
}, | |
{ | |
symbol: "PRL", | |
name: "Oyster Pearl", | |
}, | |
{ | |
symbol: "PRO", | |
name: "Propy", | |
}, | |
{ | |
symbol: "PURA", | |
name: "Pura", | |
}, | |
{ | |
symbol: "PUT", | |
name: "PutinCoin", | |
}, | |
{ | |
symbol: "QASH", | |
name: "Quoine Liquid", | |
}, | |
{ | |
symbol: "QAU", | |
name: "Quantum", | |
}, | |
{ | |
symbol: "QSP", | |
name: "Quantstamp", | |
}, | |
{ | |
symbol: "QTUM", | |
name: "QTUM", | |
}, | |
{ | |
symbol: "QUN", | |
name: "QunQun", | |
}, | |
{ | |
symbol: "R", | |
name: "Revain", | |
}, | |
{ | |
symbol: "RBIES", | |
name: "Rubies", | |
}, | |
{ | |
symbol: "RCN", | |
name: "Ripio", | |
}, | |
{ | |
symbol: "RDD", | |
name: "ReddCoin", | |
}, | |
{ | |
symbol: "RDN", | |
name: "RadonPay", | |
}, | |
{ | |
symbol: "RDN*", | |
name: "Raiden Network", | |
}, | |
{ | |
symbol: "REBL", | |
name: "Rebellious", | |
}, | |
{ | |
symbol: "REE", | |
name: "ReeCoin", | |
}, | |
{ | |
symbol: "REP", | |
name: "Augur", | |
}, | |
{ | |
symbol: "REQ", | |
name: "Request Network", | |
}, | |
{ | |
symbol: "REV", | |
name: "Revenu", | |
}, | |
{ | |
symbol: "RGC", | |
name: "RG Coin", | |
}, | |
{ | |
symbol: "RHOC", | |
name: "RChain", | |
}, | |
{ | |
symbol: "RIYA", | |
name: "Etheriya", | |
}, | |
{ | |
symbol: "RKC", | |
name: "Royal Kingdom Coin", | |
}, | |
{ | |
symbol: "RLC", | |
name: "iEx.ec", | |
}, | |
{ | |
symbol: "RPX", | |
name: "Red Pulse", | |
}, | |
{ | |
symbol: "RUFF", | |
name: "Ruff", | |
}, | |
{ | |
symbol: "SALT", | |
name: "Salt Lending", | |
}, | |
{ | |
symbol: "SAN", | |
name: "Santiment", | |
}, | |
{ | |
symbol: "SBC", | |
name: "StableCoin", | |
}, | |
{ | |
symbol: "SC", | |
name: "Siacoin", | |
}, | |
{ | |
symbol: "SENT", | |
name: "Sentinel", | |
}, | |
{ | |
symbol: "SHIFT", | |
name: "Shift", | |
}, | |
{ | |
symbol: "SIB", | |
name: "SibCoin", | |
}, | |
{ | |
symbol: "SMART", | |
name: "SmartCash", | |
}, | |
{ | |
symbol: "SMLY", | |
name: "SmileyCoin", | |
}, | |
{ | |
symbol: "SMT*", | |
name: "SmartMesh", | |
}, | |
{ | |
symbol: "SNC", | |
name: "SunContract", | |
}, | |
{ | |
symbol: "SNGLS", | |
name: "SingularDTV", | |
}, | |
{ | |
symbol: "SNM", | |
name: "SONM", | |
}, | |
{ | |
symbol: "SNT", | |
name: "Status Network Token", | |
}, | |
{ | |
symbol: "SPK", | |
name: "Sparks", | |
}, | |
{ | |
symbol: "SRN", | |
name: "SirinLabs", | |
}, | |
{ | |
symbol: "STEEM", | |
name: "Steem", | |
}, | |
{ | |
symbol: "STK", | |
name: "STK Token", | |
}, | |
{ | |
symbol: "STORJ", | |
name: "Storj", | |
}, | |
{ | |
symbol: "STRAT", | |
name: "Stratis", | |
}, | |
{ | |
symbol: "STU", | |
name: "BitJob", | |
}, | |
{ | |
symbol: "STX", | |
name: "Stox", | |
}, | |
{ | |
symbol: "SUB", | |
name: "Substratum Network", | |
}, | |
{ | |
symbol: "SUR", | |
name: "Suretly", | |
}, | |
{ | |
symbol: "SWFTC", | |
name: "SwftCoin", | |
}, | |
{ | |
symbol: "SYS", | |
name: "SysCoin", | |
}, | |
{ | |
symbol: "TAAS", | |
name: "Token as a Service", | |
}, | |
{ | |
symbol: "TESLA", | |
name: "TeslaCoilCoin", | |
}, | |
{ | |
symbol: "THC", | |
name: "The Hempcoin", | |
}, | |
{ | |
symbol: "THETA", | |
name: "Theta", | |
}, | |
{ | |
symbol: "THS", | |
name: "TechShares", | |
}, | |
{ | |
symbol: "TIO", | |
name: "Trade.io", | |
}, | |
{ | |
symbol: "TKN", | |
name: "TokenCard ", | |
}, | |
{ | |
symbol: "TKY", | |
name: "THEKEY Token", | |
}, | |
{ | |
symbol: "TNB", | |
name: "Time New Bank", | |
}, | |
{ | |
symbol: "TNT", | |
name: "Tierion", | |
}, | |
{ | |
symbol: "TOA", | |
name: "TOA Coin", | |
}, | |
{ | |
symbol: "TRC", | |
name: "TerraCoin", | |
}, | |
{ | |
symbol: "TRIG", | |
name: "Trigger", | |
}, | |
{ | |
symbol: "TRST", | |
name: "TrustCoin", | |
}, | |
{ | |
symbol: "TRUMP", | |
name: "TrumpCoin", | |
}, | |
{ | |
symbol: "TRX", | |
name: "Tronix", | |
}, | |
{ | |
symbol: "UBQ", | |
name: "Ubiq", | |
}, | |
{ | |
symbol: "UNO", | |
name: "Unobtanium", | |
}, | |
{ | |
symbol: "UNRC", | |
name: "UniversalRoyalCoin", | |
}, | |
{ | |
symbol: "UQC", | |
name: "Uquid Coin", | |
}, | |
{ | |
symbol: "USDT", | |
name: "Tether", | |
}, | |
{ | |
symbol: "UTK", | |
name: "Utrust", | |
}, | |
{ | |
symbol: "UTT", | |
name: "United Traders Token", | |
}, | |
{ | |
symbol: "VEE", | |
name: "BLOCKv", | |
}, | |
{ | |
symbol: "VEN", | |
name: "Vechain", | |
}, | |
{ | |
symbol: "VERI", | |
name: "Veritaseum", | |
}, | |
{ | |
symbol: "VIA", | |
name: "ViaCoin", | |
}, | |
{ | |
symbol: "VIB", | |
name: "Viberate", | |
}, | |
{ | |
symbol: "VIBE", | |
name: "VIBEHub", | |
}, | |
{ | |
symbol: "VOISE", | |
name: "Voise", | |
}, | |
{ | |
symbol: "VOX", | |
name: "Voxels", | |
}, | |
{ | |
symbol: "VRS", | |
name: "Veros", | |
}, | |
{ | |
symbol: "VTC", | |
name: "VertCoin", | |
}, | |
{ | |
symbol: "VUC", | |
name: "Virta Unique Coin", | |
}, | |
{ | |
symbol: "WABI", | |
name: "WaBi", | |
}, | |
{ | |
symbol: "WAVES", | |
name: "Waves", | |
}, | |
{ | |
symbol: "WAX", | |
name: "Worldwide Asset eXchange", | |
}, | |
{ | |
symbol: "WC", | |
name: "WhiteCoin", | |
}, | |
{ | |
symbol: "WGR", | |
name: "Wagerr", | |
}, | |
{ | |
symbol: "WINGS", | |
name: "Wings DAO", | |
}, | |
{ | |
symbol: "WLK", | |
name: "Wolk", | |
}, | |
{ | |
symbol: "WOP", | |
name: "WorldPay", | |
}, | |
{ | |
symbol: "WPR", | |
name: "WePower", | |
}, | |
{ | |
symbol: "WRC", | |
name: "Worldcore", | |
}, | |
{ | |
symbol: "WTC", | |
name: "Waltonchain", | |
}, | |
{ | |
symbol: "XAUR", | |
name: "Xaurum", | |
}, | |
{ | |
symbol: "XBP", | |
name: "Black Pearl Coin", | |
}, | |
{ | |
symbol: "XBY", | |
name: "XtraBYtes", | |
}, | |
{ | |
symbol: "XCP", | |
name: "CounterParty", | |
}, | |
{ | |
symbol: "XCXT", | |
name: "CoinonatX", | |
}, | |
{ | |
symbol: "XDN", | |
name: "DigitalNote ", | |
}, | |
{ | |
symbol: "XEM", | |
name: "NEM", | |
}, | |
{ | |
symbol: "XGB", | |
name: "GoldenBird", | |
}, | |
{ | |
symbol: "XHI", | |
name: "HiCoin", | |
}, | |
{ | |
symbol: "XID", | |
name: "Sphre AIR", | |
}, | |
{ | |
symbol: "XLM", | |
name: "Stellar", | |
}, | |
{ | |
symbol: "XMR", | |
name: "Monero", | |
}, | |
{ | |
symbol: "XNC", | |
name: "XenCoin", | |
}, | |
{ | |
symbol: "XRB", | |
name: "Nano", | |
}, | |
{ | |
symbol: "XRP", | |
name: "Ripple", | |
}, | |
{ | |
symbol: "XTO", | |
name: "Tao", | |
}, | |
{ | |
symbol: "XTZ", | |
name: "Tezos", | |
}, | |
{ | |
symbol: "XUC", | |
name: "Exchange Union", | |
}, | |
{ | |
symbol: "XVG", | |
name: "Verge", | |
}, | |
{ | |
symbol: "XZC", | |
name: "ZCoin", | |
}, | |
{ | |
symbol: "YEE", | |
name: "Yee", | |
}, | |
{ | |
symbol: "YOC", | |
name: "YoCoin", | |
}, | |
{ | |
symbol: "YOYOW", | |
name: "Yoyow", | |
}, | |
{ | |
symbol: "ZBC", | |
name: "Zilbercoin", | |
}, | |
{ | |
symbol: "ZCL", | |
name: "ZClassic", | |
}, | |
{ | |
symbol: "ZEC", | |
name: "ZCash", | |
}, | |
{ | |
symbol: "ZEN", | |
name: "ZenCash", | |
}, | |
{ | |
symbol: "ZIL", | |
name: "Zilliqa", | |
}, | |
{ | |
symbol: "ZNY", | |
name: "BitZeny", | |
}, | |
{ | |
symbol: "ZRX", | |
name: "0x", | |
}, | |
{ | |
symbol: "ZSC", | |
name: "Zeusshield", | |
}, | |
]; | |
} | |
/** | |
* Convert name to coin or return coin if valid | |
* @param {String} str | |
*/ | |
getCoin(str) { | |
const findCoin = this.coins.find((c) => { | |
return c.symbol === str.toUpperCase(); | |
}); | |
if (findCoin) { | |
return findCoin.symbol; | |
} | |
const findName = this.coins.find((coin) => { | |
return coin.name.toUpperCase() === str.toUpperCase(); | |
}); | |
if (findName) { | |
return findName.symbol; | |
} | |
return str; | |
} | |
/** | |
* Convert coin (BTC) to name (Bitcoin) | |
* @param {String} coin | |
*/ | |
coinToName(coin) { | |
const res = this.coins.find((c) => { | |
return c.symbol === coin.toUpperCase(); | |
}); | |
return res ? res.name : coin; | |
} | |
/** | |
* Convert name (Bitcoin) to coin (BTC) | |
* @param {String} name | |
*/ | |
nameToCoin(name) { | |
const res = this.coins.find((coin) => { | |
return coin.name.toUpperCase() === name.toUpperCase(); | |
}); | |
return res ? res.symbol : name; | |
} | |
/** | |
* HTTP Get Request | |
* @param {String} url | |
* @returns Promise | |
*/ | |
__get(url) { | |
return new Promise((resolve, reject) => { | |
fetch(url) | |
.then((response) => response.json()) | |
.then((data) => resolve(data)) | |
.catch((error) => reject(error)); | |
}); | |
} | |
/** | |
* Get exchange rate for coin | |
* @param {String} name | |
* @returns Promise | |
*/ | |
live(coin) { | |
return new Promise((resolve, reject) => { | |
// URL | |
const url = new URL("https://api.coinlayer.com/live"); | |
url.searchParams.append("access_key", this.__apiKey); | |
url.searchParams.append("target", "eur"); | |
url.searchParams.append("symbols", this.getCoin(coin)); | |
// GET | |
this.__get(url.href) | |
.then((res) => { | |
if (res.success) { | |
resolve(res.rates); | |
} else { | |
reject(res); | |
} | |
}) | |
.catch((error) => { | |
reject(error); | |
}); | |
}); | |
} | |
/** | |
* Convert amount between any one cryptocurrency and standard (fiat) currency | |
* @param {String} from | |
* @param {String} to | |
* @param {Number} amount | |
* @returns Promise | |
*/ | |
convert(from, to, amount) { | |
return new Promise((resolve, reject) => { | |
// URL | |
const url = new URL("https://api.coinlayer.com/convert"); | |
url.searchParams.append("access_key", this.__apiKey); | |
url.searchParams.append("from", this.getCoin(from)); | |
url.searchParams.append("to", this.getCoin(to)); | |
url.searchParams.append("amount", amount); | |
// GET | |
this.__get(url.href) | |
.then((res) => { | |
if (res.success) { | |
resolve(res); | |
} else { | |
reject(res); | |
} | |
}) | |
.catch((error) => { | |
reject(error); | |
}); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment