UNPKG

@ocap/statedb-fs

Version:
43 lines (41 loc) 1.33 kB
Object.defineProperty(exports, '__esModule', { value: true }); const require_table_base = require('./base.cjs'); //#region src/table/balance.ts /** * Balance 表 * 扩展基础表,增加余额管理功能 */ var BalanceTable = class extends require_table_base.default { async getBalance(address, _context) { return (await this.collection.find({ address }) || []).reduce((acc, token) => { acc[token.tokenAddress] = token.balance; return acc; }, {}); } async updateBalance({ address, tokens, context = {} }, ctx) { if (!Object.keys(tokens).length) return {}; const tokenBalances = await this.getBalance(address); const updatedTokens = Object.keys(tokens).filter((token) => tokenBalances[token] && tokenBalances[token] !== "0" || tokens[token] && tokens[token] !== "0").filter((token) => tokenBalances[token] !== tokens[token]); await Promise.all(updatedTokens.map(async (token) => { const key = { address, tokenAddress: token }; if (tokenBalances[token]) await this.update(key, { ...key, balance: tokens[token], context }, ctx); else await this.create(key, { ...key, balance: tokens[token], context }, ctx); tokenBalances[token] = tokens[token]; })); return tokens; } }; var balance_default = BalanceTable; //#endregion exports.default = balance_default;