Files
server/cache.js

62 lines
1.3 KiB
JavaScript

import {createClient} from "redis";
export const redis = createClient({url: process.env.DEXORDER_REDIS_URL || 'redis://localhost:6379'})
redis.on('error', (err) => console.log('Redis Client Error', err));
await redis.connect();
export class CacheSet {
constructor(series) {
this.series = series
}
async contains(chain, key) {
const series = `${chain}|${this.series}`;
const result = await redis.sIsMember(series, key)
console.log('contains', series, key, result)
return result
}
}
export class CacheDict {
constructor(series) {
this.series = series
}
async get(chain, key) {
return await redis.hGet(`${chain}|${this.series}`, key)
}
async contains(chain, key) {
return await redis.hExists(`${chain}|${this.series}`, key)
}
}
export class CacheObject {
constructor(series) {
this.series = series
}
async get(chain) {
return await redis.json.get(`${chain}|${this.series}`)
}
}
const blockCaches = {
'31337': new CacheObject('31337|latest_block'),
'42161': new CacheObject('42161|latest_block'),
}
async function latestBlock(chain) {
return await blockCaches[chain].get()
}
export const vaults = new CacheDict('v')
export const vaultTokens = new CacheDict('vt')
export const prices = new CacheDict('p')