@swaptoshi/governance-module
Version:
Klayr governance on-chain module
41 lines • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CastedVoteStore = exports.defaultVote = 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.defaultVote = Object.freeze({
activeVote: [],
});
class CastedVoteStore extends klayr_framework_1.Modules.BaseStore {
constructor() {
super(...arguments);
this.schema = schema_1.castedVoteStoreSchema;
}
async getOrDefault(context, address) {
try {
const castedVote = await this.get(context, address);
return castedVote;
}
catch (error) {
if (!(error instanceof db.NotFoundError)) {
throw error;
}
return utils.objects.cloneDeep(exports.defaultVote);
}
}
async removeAllCastedVote(context, address) {
await this.set(context, address, exports.defaultVote);
}
async removeCastedVoteByProposalId(context, address, proposalId) {
const castedVote = await this.getOrDefault(context, address);
const indexToRemove = castedVote.activeVote.findIndex(vote => vote.proposalId === proposalId);
if (indexToRemove !== -1) {
castedVote.activeVote.splice(indexToRemove, 1);
await this.set(context, address, castedVote);
}
}
}
exports.CastedVoteStore = CastedVoteStore;
//# sourceMappingURL=casted_vote.js.map