@ocap/statedb-memory
Version:
OCAP statedb adapter that uses memory as backend statedb, just for test purpose
21 lines (16 loc) • 665 B
JavaScript
const { ensureChecksumAddress } = require('@ocap/state/lib/states/account');
const MemoryStateDB = require('./base');
class AccountStateDB extends MemoryStateDB {
async _get(address, { traceMigration = true } = {}) {
const current = await super._get(ensureChecksumAddress(address));
if (current && traceMigration && Array.isArray(current.migratedTo) && current.migratedTo.length) {
return this._get(current.migratedTo[0]);
}
return current;
}
_create(key, attrs = {}) {
const address = ensureChecksumAddress(key);
return super._create(address, { ...attrs, [this.uniqIndex]: address });
}
}
module.exports = AccountStateDB;