@swaptoshi/governance-module
Version:
Klayr governance on-chain module
34 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SetProposalAttributesCommand = void 0;
const klayr_framework_1 = require("klayr-framework");
const context_1 = require("../stores/context");
const proposal_1 = require("../stores/proposal");
const schema_1 = require("../schema");
class SetProposalAttributesCommand extends klayr_framework_1.Modules.BaseCommand {
constructor() {
super(...arguments);
this.schema = schema_1.setProposalAttributesCommandSchema;
}
async verify(_context) {
try {
const context = (0, context_1.immutableTransactionHookGovernanceContext)(_context);
const proposalStore = await this.stores.get(proposal_1.ProposalStore).getImmutableProposal(context, _context.params.proposalId);
await proposalStore.verifySetAttributes(_context.params);
}
catch (error) {
return {
status: klayr_framework_1.StateMachine.VerifyStatus.FAIL,
error: new Error(error.message),
};
}
return { status: klayr_framework_1.StateMachine.VerifyStatus.OK };
}
async execute(_context) {
const context = (0, context_1.mutableTransactionHookGovernanceContext)(_context);
const proposalStore = await this.stores.get(proposal_1.ProposalStore).getMutableProposal(context, _context.params.proposalId);
await proposalStore.setAttributes(_context.params, false);
}
}
exports.SetProposalAttributesCommand = SetProposalAttributesCommand;
//# sourceMappingURL=set_proposal_attributes_command.js.map