@swaptoshi/governance-module
Version:
Klayr governance on-chain module
35 lines • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NextAvailableProposalIdStore = exports.defaultNextId = void 0;
const klayr_framework_1 = require("klayr-framework");
const db = require("@liskhq/lisk-db");
const utils = require("@klayr/utils");
const schema_1 = require("../schema");
exports.defaultNextId = Object.freeze({
nextProposalId: 0,
});
class NextAvailableProposalIdStore extends klayr_framework_1.Modules.BaseStore {
constructor() {
super(...arguments);
this.schema = schema_1.nextAvailableProposalIdStoreSchema;
}
async getOrDefault(context) {
try {
const nextAvailableId = await this.get(context, Buffer.alloc(0));
return nextAvailableId;
}
catch (error) {
if (!(error instanceof db.NotFoundError)) {
throw error;
}
return utils.objects.cloneDeep(exports.defaultNextId);
}
}
async increase(context) {
const nextId = await this.getOrDefault(context);
nextId.nextProposalId += 1;
await this.set(context, Buffer.alloc(0), nextId);
}
}
exports.NextAvailableProposalIdStore = NextAvailableProposalIdStore;
//# sourceMappingURL=next_available_proposal_id.js.map