62 lines
1.3 KiB
JavaScript
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')
|