import fs from 'fs'; import path from 'path'; import { logger, SNIPE_LIST_REFRESH_INTERVAL } from '../helpers'; export class SnipeListCache { private snipeList: string[] = []; private fileLocation = path.join(__dirname, '../snipe-list.txt'); 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(this.fileLocation, '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}`); } } }