UNPKG

@swaptoshi/governance-module

Version:

Klayr governance on-chain module

39 lines 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProposalVoterStore = exports.defaultProposalVoters = 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"); const utils_1 = require("@swaptoshi/utils"); exports.defaultProposalVoters = Object.freeze({ voters: [], }); class ProposalVoterStore extends klayr_framework_1.Modules.BaseStore { constructor() { super(...arguments); this.schema = schema_1.proposalVoterStoreSchema; } async getOrDefault(context, proposalId) { try { const proposalVoters = await this.get(context, utils_1.bytes.numberToBytes(proposalId)); return proposalVoters; } catch (error) { if (!(error instanceof db.NotFoundError)) { throw error; } return utils.objects.cloneDeep(exports.defaultProposalVoters); } } async addVoter(context, proposalId, address) { const proposalVoters = await this.getOrDefault(context, proposalId); const index = proposalVoters.voters.findIndex(voter => voter.equals(address)); if (index === -1) { proposalVoters.voters.push(address); await this.set(context, utils_1.bytes.numberToBytes(proposalId), proposalVoters); } } } exports.ProposalVoterStore = ProposalVoterStore; //# sourceMappingURL=proposal_voter.js.map