UNPKG

@renec-foundation/rpl-token-registry

Version:
94 lines 7.44 kB
import { fetch } from 'cross-fetch'; import tokenlist from './../tokens/renec.tokenlist.json'; export var ENV; (function (ENV) { ENV[ENV["MainnetBeta"] = 101] = "MainnetBeta"; ENV[ENV["Testnet"] = 102] = "Testnet"; ENV[ENV["Devnet"] = 103] = "Devnet"; })(ENV || (ENV = {})); export const CLUSTER_SLUGS = { 'mainnet-beta': ENV.MainnetBeta, testnet: ENV.Testnet, devnet: ENV.Devnet, }; export class GitHubTokenListResolutionStrategy { repositories = [ 'https://raw.githubusercontent.com/renec-chain/rpl-token-registry/master/src/tokens/renec.tokenlist.json', ]; resolve = () => { return queryJsonFiles(this.repositories); }; } export class CDNTokenListResolutionStrategy { repositories = [ 'https://cdn.jsdelivr.net/gh/renec-chain/rpl-token-registry@master/src/tokens/renec.tokenlist.json', ]; resolve = () => { return queryJsonFiles(this.repositories); }; } const queryJsonFiles = async (files) => { const responses = (await Promise.all(files.map(async (repo) => { try { const response = await fetch(repo); const json = (await response.json()); return json; } catch { console.info(`@renec-chain/rpl-token-registry: falling back to static repository.`); return tokenlist; } }))); return responses .map((tokenlist) => tokenlist.tokens) .reduce((acc, arr) => acc.concat(arr), []); }; export var Strategy; (function (Strategy) { Strategy["GitHub"] = "GitHub"; Strategy["Static"] = "Static"; Strategy["CDN"] = "CDN"; })(Strategy || (Strategy = {})); export class StaticTokenListResolutionStrategy { resolve = () => { return tokenlist.tokens; }; } export class TokenListProvider { static strategies = { [Strategy.GitHub]: new GitHubTokenListResolutionStrategy(), [Strategy.Static]: new StaticTokenListResolutionStrategy(), [Strategy.CDN]: new CDNTokenListResolutionStrategy(), }; resolve = async (strategy = Strategy.GitHub) => { return new TokenListContainer(await TokenListProvider.strategies[strategy].resolve()); }; } export class TokenListContainer { tokenList; constructor(tokenList) { this.tokenList = tokenList; } filterByTag = (tag) => { return new TokenListContainer(this.tokenList.filter((item) => (item.tags || []).includes(tag))); }; filterByChainId = (chainId) => { return new TokenListContainer(this.tokenList.filter((item) => item.chainId === chainId)); }; excludeByChainId = (chainId) => { return new TokenListContainer(this.tokenList.filter((item) => item.chainId !== chainId)); }; excludeByTag = (tag) => { return new TokenListContainer(this.tokenList.filter((item) => !(item.tags || []).includes(tag))); }; filterByClusterSlug = (slug) => { if (slug in CLUSTER_SLUGS) { return this.filterByChainId(CLUSTER_SLUGS[slug]); } throw new Error(`Unknown slug: ${slug}, please use one of ${Object.keys(CLUSTER_SLUGS)}`); }; getList = () => { return this.tokenList; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b2tlbmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwQyxPQUFPLFNBQVMsTUFBTSxrQ0FBa0MsQ0FBQztBQUV6RCxNQUFNLENBQU4sSUFBWSxHQUlYO0FBSkQsV0FBWSxHQUFHO0lBQ2IsNkNBQWlCLENBQUE7SUFDakIscUNBQWEsQ0FBQTtJQUNiLG1DQUFZLENBQUE7QUFDZCxDQUFDLEVBSlcsR0FBRyxLQUFILEdBQUcsUUFJZDtBQStDRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTBCO0lBQ2xELGNBQWMsRUFBRSxHQUFHLENBQUMsV0FBVztJQUMvQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87SUFDcEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO0NBQ25CLENBQUM7QUFFRixNQUFNLE9BQU8saUNBQWlDO0lBQzVDLFlBQVksR0FBRztRQUNiLHlHQUF5RztLQUMxRyxDQUFDO0lBRUYsT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNiLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUM7Q0FDSDtBQUVELE1BQU0sT0FBTyw4QkFBOEI7SUFDekMsWUFBWSxHQUFHO1FBQ2IsbUdBQW1HO0tBQ3BHLENBQUM7SUFFRixPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2IsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQztDQUNIO0FBRUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLEtBQWUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sU0FBUyxHQUFnQixDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7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