@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
30 lines (29 loc) • 1.05 kB
JavaScript
import { CLUSTER_SLUGS } from '../../services/SolanaTokenListProvider/constants';
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;
}
}