UNPKG

@ocap/statedb-fs

Version:
55 lines (47 loc) 1.83 kB
const { StateDB } = require('@ocap/statedb'); const Table = require('./table/base'); const Account = require('./table/account'); const Token = require('./table/token'); const Rollup = require('./table/rollup'); const Balance = require('./table/balance'); const { name, version } = require('../package.json'); class FsStateDB extends StateDB { constructor(dataDir) { super(); this.name = name; this.version = version; this.balance = new Balance({ name: 'balance', dataDir, uniqIndex: ['address', 'tokenAddress'] }); this.account = new Account({ name: 'account', dataDir, uniqIndex: 'address', balanceTable: this.balance, syncBalance: true, }); this.factory = new Table({ name: 'factory', dataDir, uniqIndex: 'address', syncBalance: true, balanceTable: this.balance, }); this.stake = new Table({ name: 'stake', dataDir, uniqIndex: 'address', syncBalance: true, balanceTable: this.balance, }); this.asset = new Table({ name: 'asset', dataDir, uniqIndex: 'address' }); this.delegation = new Table({ name: 'delegation', dataDir, uniqIndex: 'address' }); this.tx = new Table({ name: 'tx', dataDir, uniqIndex: 'hash' }); this.token = new Token({ name: 'token', dataDir, uniqIndex: 'address' }); this.chain = new Table({ name: 'chain', dataDir, uniqIndex: 'address' }); this.rollup = new Rollup({ name: 'rollup', dataDir, uniqIndex: 'address' }); this.rollupBlock = new Table({ name: 'rollupBlock', dataDir, uniqIndex: 'hash' }); this.evidence = new Table({ name: 'evidence', dataDir, uniqIndex: 'hash' }); this.tokenFactory = new Table({ name: 'tokenFactory', dataDir, uniqIndex: 'address' }); this.attachReadyListeners(); } } module.exports = FsStateDB;