@ocap/statedb-fs
Version:
OCAP statedb adapter that uses fs as backend
55 lines (47 loc) • 1.83 kB
JavaScript
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;