"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.leaveGroup = exports.exec = exports.vote = exports.withdrawProposal = exports.submitProposal = exports.updateGroupPolicyMetadata = exports.updateGroupPolicyDecisionPolicy = exports.updateGroupPolicyAdmin = exports.createGroupWithPolicy = exports.createGroupPolicy = exports.updateGroupMetadata = exports.updateGroupAdmin = exports.updateGroupMembers = exports.createGroup = void 0;
const helper_func_types_1 = require("../../../helper-func-types");
const tx_1 = require("./tx");
/**
 * CreateGroup creates a new group with an admin account address, a list of members and some optional metadata.
 * @name createGroup
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.CreateGroup
 */
exports.createGroup = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgCreateGroup
});
/**
 * UpdateGroupMembers updates the group members with given group id and admin address.
 * @name updateGroupMembers
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupMembers
 */
exports.updateGroupMembers = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupMembers
});
/**
 * UpdateGroupAdmin updates the group admin with given group id and previous admin address.
 * @name updateGroupAdmin
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupAdmin
 */
exports.updateGroupAdmin = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupAdmin
});
/**
 * UpdateGroupMetadata updates the group metadata with given group id and admin address.
 * @name updateGroupMetadata
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupMetadata
 */
exports.updateGroupMetadata = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupMetadata
});
/**
 * CreateGroupPolicy creates a new group policy using given DecisionPolicy.
 * @name createGroupPolicy
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.CreateGroupPolicy
 */
exports.createGroupPolicy = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgCreateGroupPolicy
});
/**
 * CreateGroupWithPolicy creates a new group with policy.
 * @name createGroupWithPolicy
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.CreateGroupWithPolicy
 */
exports.createGroupWithPolicy = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgCreateGroupWithPolicy
});
/**
 * UpdateGroupPolicyAdmin updates a group policy admin.
 * @name updateGroupPolicyAdmin
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupPolicyAdmin
 */
exports.updateGroupPolicyAdmin = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupPolicyAdmin
});
/**
 * UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated.
 * @name updateGroupPolicyDecisionPolicy
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupPolicyDecisionPolicy
 */
exports.updateGroupPolicyDecisionPolicy = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupPolicyDecisionPolicy
});
/**
 * UpdateGroupPolicyMetadata updates a group policy metadata.
 * @name updateGroupPolicyMetadata
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.UpdateGroupPolicyMetadata
 */
exports.updateGroupPolicyMetadata = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateGroupPolicyMetadata
});
/**
 * SubmitProposal submits a new proposal.
 * @name submitProposal
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.SubmitProposal
 */
exports.submitProposal = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgSubmitProposal
});
/**
 * WithdrawProposal withdraws a proposal.
 * @name withdrawProposal
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.WithdrawProposal
 */
exports.withdrawProposal = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgWithdrawProposal
});
/**
 * Vote allows a voter to vote on a proposal.
 * @name vote
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.Vote
 */
exports.vote = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgVote
});
/**
 * Exec executes a proposal.
 * @name exec
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.Exec
 */
exports.exec = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgExec
});
/**
 * LeaveGroup allows a group member to leave the group.
 * @name leaveGroup
 * @package cosmos.group.v1
 * @see proto service: cosmos.group.v1.LeaveGroup
 */
exports.leaveGroup = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgLeaveGroup
});
