solana-token-list
Version:
Homebrew Solana Token Registry with Coingecko data
63 lines • 6.69 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const ava_1 = __importDefault(require("ava"));
const _1 = require(".");
(0, ava_1.default)('Token list is filterable by a tag', async (t) => {
const list = (await new _1.TokenListProvider().resolve(_1.Strategy.Static))
.filterByChainId(_1.ENV.MainnetBeta)
.filterByTag('nft')
.getList();
t.false(list.some((item) => item.symbol === 'SOL'));
});
(0, ava_1.default)('Token list can exclude by a tag', async (t) => {
const list = (await new _1.TokenListProvider().resolve(_1.Strategy.Static))
.filterByChainId(_1.ENV.MainnetBeta)
.excludeByTag('nft')
.getList();
// @ts-ignore
t.false(list.some((item) => item.tags === ['nft']));
});
(0, ava_1.default)('Token list can exclude by a chain', async (t) => {
const list = (await new _1.TokenListProvider().resolve(_1.Strategy.Static))
.excludeByChainId(_1.ENV.MainnetBeta)
.getList();
t.false(list.some((item) => item.chainId === _1.ENV.MainnetBeta));
});
(0, ava_1.default)('Token list returns new object upon filter', async (t) => {
const list = await new _1.TokenListProvider().resolve(_1.Strategy.Static);
const filtered = list.filterByChainId(_1.ENV.MainnetBeta);
t.true(list !== filtered);
t.true(list.getList().length !== filtered.getList().length);
});
(0, ava_1.default)('Token list throws error when calling filterByClusterSlug with slug that does not exist', async (t) => {
const list = await new _1.TokenListProvider().resolve(_1.Strategy.Static);
const error = await t.throwsAsync(async () => list.filterByClusterSlug('whoop'), { instanceOf: Error });
t.is(error === null || error === void 0 ? void 0 : error.message, `Unknown slug: whoop, please use one of ${Object.keys(_1.CLUSTER_SLUGS)}`);
});
(0, ava_1.default)('Token list is a valid json', async (t) => {
t.notThrows(() => {
const content = fs_1.default
.readFileSync('./src/tokens/solana.tokenlist.json')
.toString();
JSON.parse(content.toString());
});
});
(0, ava_1.default)('Token list does not have duplicate entries', async (t) => {
const list = await new _1.TokenListProvider().resolve(_1.Strategy.Static);
list
.filterByChainId(_1.ENV.MainnetBeta)
.getList()
.reduce((agg, item) => {
if (agg.has(item.address)) {
console.log(item.address);
}
t.false(agg.has(item.address));
agg.set(item.address, item);
return agg;
}, new Map());
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5saXN0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VubGlzdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQW9CO0FBRXBCLDhDQUF1QjtBQUV2Qix3QkFBK0U7QUFFL0UsSUFBQSxhQUFJLEVBQUMsbUNBQW1DLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLG9CQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRSxlQUFlLENBQUMsTUFBRyxDQUFDLFdBQVcsQ0FBQztTQUNoQyxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBRWIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDbEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksb0JBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xFLGVBQWUsQ0FBQyxNQUFHLENBQUMsV0FBVyxDQUFDO1NBQ2hDLFlBQVksQ0FBQyxLQUFLLENBQUM7U0FDbkIsT0FBTyxFQUFFLENBQUM7SUFFYixhQUFhO0lBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsbUNBQW1DLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLG9CQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsRSxnQkFBZ0IsQ0FBQyxNQUFHLENBQUMsV0FBVyxDQUFDO1NBQ2pDLE9BQU8sRUFBRSxDQUFDO0lBRWIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsMkNBQTJDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzVELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxvQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUEsYUFBSSxFQUFDLHdGQUF3RixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN6RyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksb0JBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FDL0IsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQzdDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUN0QixDQUFDO0lBQ0YsQ0FBQyxDQUFDLEVBQUUsQ0FDRixLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxFQUNkLDBDQUEwQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFhLENBQUMsRUFBRSxDQUN2RSxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFBLGFBQUksRUFBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDN0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDZixNQUFNLE9BQU8sR0FBRyxZQUFFO2FBQ2YsWUFBWSxDQUFDLG9DQUFvQyxDQUFDO2FBQ2xELFFBQVEsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxhQUFJLEVBQUMsNENBQTRDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxvQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsSUFBSTtTQUNELGVBQWUsQ0FBQyxNQUFHLENBQUMsV0FBVyxDQUFDO1NBQ2hDLE9BQU8sRUFBRTtTQUNULE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNwQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNCO1FBRUQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBcUIsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyxDQUFDIn0=