import fs from 'fs'; import path from 'path'; import { logger, SNIPE_LIST_REFRESH_INTERVAL } from '../helpers'; export class SnipeListCache { private snipeList: string[] = []; constructor() { setInterval(this.loadSnipeList, SNIPE_LIST_REFRESH_INTERVAL); } public init() { this.loadSnipeList(); } public isInList(mint: string) { return this.snipeList.includes(mint); } private loadSnipeList() { logger.trace('Refreshing snipe list...'); const count = this.snipeList.length; const data = fs.readFileSync(path.join(__dirname, 'snipe-list.txt'), 'utf-8'); this.snipeList = data .split('\n') .map((a) => a.trim()) .filter((a) => a); if (this.snipeList.length != count) { logger.info(`Loaded snipe list: ${this.snipeList.length}`); } } }