54 lines
1.1 KiB
JavaScript
54 lines
1.1 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) {
|
|
return await redis.sIsMember(`${chain}|${this.series}`, key)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
export class CacheDict {
|
|
constructor(series) {
|
|
this.series = series
|
|
}
|
|
|
|
async get(chain, key) {
|
|
return await redis.hGet(`${chain}|${this.series}`, key)
|
|
}
|
|
}
|
|
|
|
|
|
export class CacheObject {
|
|
constructor(series) {
|
|
this.series = series
|
|
}
|
|
|
|
async get(chain) {
|
|
return await redis.json.get(`${chain}|${this.series}`)
|
|
}
|
|
}
|
|
|
|
const cache_blocks = {
|
|
'1338': new CacheObject('1338|latest_block'),
|
|
}
|
|
|
|
async function latestBlock(chain) {
|
|
return await cache_blocks[chain].get()
|
|
}
|
|
|
|
export const vaults = new CacheSet('v')
|
|
export const vaultTokens = new CacheDict('vt')
|
|
export const prices = new CacheDict('p')
|