UNPKG

@ocap/indexdb-elasticsearch

Version:
52 lines (42 loc) 1.47 kB
const ESIndex = require('./base'); const getParams = require('../model/rollup-block'); const { getTableName } = require('../util'); class RollupBlock extends ESIndex { constructor(db) { super({ name: getTableName(db.config.prefix, 'rollup_block'), docId: 'hash', client: db.client, http: db.http, indexParams: getParams(), }); } static formatBeforeUpdate(data, tokenLength) { data.rewardAmount = super.padBalance(data.rewardAmount, tokenLength); data.mintedAmount = super.padBalance(data.mintedAmount, tokenLength); data.burnedAmount = super.padBalance(data.burnedAmount, tokenLength); data.minReward = super.padBalance(data.minReward, tokenLength); return data; } static formatAfterRead(data) { if (data) { data.rewardAmount = super.trimBalance(data.rewardAmount); data.minReward = super.trimBalance(data.minReward); data.mintedAmount = super.trimBalance(data.mintedAmount); data.burnedAmount = super.trimBalance(data.burnedAmount); } return data; } batchInsert(rows) { const formatted = rows.map((x) => RollupBlock.formatBeforeUpdate(x, this.tokenLength)); return super.batchInsert(formatted); } _insert(row) { return super._insert(RollupBlock.formatBeforeUpdate(row, this.tokenLength)); } async _get(key) { const item = await super._get(key); return RollupBlock.formatAfterRead(item); } } module.exports = RollupBlock;