Files
solana-sniper-bot/cache/snipe-list.cache.ts
2024-04-16 00:06:02 +02:00

36 lines
872 B
TypeScript

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}`);
}
}
}