@ethereumjs/devp2p
Version:
A JavaScript implementation of ÐΞVp2p
29 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BanList = void 0;
const debug_1 = require("debug");
const lru_cache_1 = require("lru-cache");
const util_ts_1 = require("../util.js");
const kbucket_ts_1 = require("./kbucket.js");
const debug = (0, debug_1.default)('devp2p:dpt:ban-list');
const verbose = (0, debug_1.default)('verbose').enabled;
class BanList {
constructor() {
this._lru = new lru_cache_1.LRUCache({ max: 10000 });
this.DEBUG =
typeof window === 'undefined' ? (process?.env?.DEBUG?.includes('ethjs') ?? false) : false;
}
add(obj, maxAge) {
for (const key of kbucket_ts_1.KBucket.getKeys(obj)) {
this._lru.set(key, true, { ttl: maxAge });
if (this.DEBUG) {
debug(`Added peer ${(0, util_ts_1.formatLogId)(key, verbose)}, size: ${this._lru.size}`);
}
}
}
has(obj) {
return kbucket_ts_1.KBucket.getKeys(obj).some((key) => Boolean(this._lru.get(key)));
}
}
exports.BanList = BanList;
//# sourceMappingURL=ban-list.js.map