"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.depositValidatorRewardsPool = exports.communityPoolSpend = exports.updateParams = exports.fundCommunityPool = exports.withdrawValidatorCommission = exports.withdrawDelegatorReward = exports.setWithdrawAddress = void 0;
const helper_func_types_1 = require("../../../helper-func-types");
const tx_1 = require("./tx");
/**
 * SetWithdrawAddress defines a method to change the withdraw address
 * for a delegator (or validator self-delegation).
 * @name setWithdrawAddress
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.SetWithdrawAddress
 */
exports.setWithdrawAddress = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgSetWithdrawAddress
});
/**
 * WithdrawDelegatorReward defines a method to withdraw rewards of delegator
 * from a single validator.
 * @name withdrawDelegatorReward
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.WithdrawDelegatorReward
 */
exports.withdrawDelegatorReward = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgWithdrawDelegatorReward
});
/**
 * WithdrawValidatorCommission defines a method to withdraw the
 * full commission to the validator address.
 * @name withdrawValidatorCommission
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.WithdrawValidatorCommission
 */
exports.withdrawValidatorCommission = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgWithdrawValidatorCommission
});
/**
 * FundCommunityPool defines a method to allow an account to directly
 * fund the community pool.
 *
 * WARNING: This method will fail if an external community pool is used.
 * @name fundCommunityPool
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.FundCommunityPool
 */
exports.fundCommunityPool = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgFundCommunityPool
});
/**
 * UpdateParams defines a governance operation for updating the x/distribution
 * module parameters. The authority is defined in the keeper.
 * @name updateParams
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.UpdateParams
 */
exports.updateParams = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgUpdateParams
});
/**
 * CommunityPoolSpend defines a governance operation for sending tokens from
 * the community pool in the x/distribution module to another account, which
 * could be the governance module itself. The authority is defined in the
 * keeper.
 *
 * WARNING: This method will fail if an external community pool is used.
 * @name communityPoolSpend
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.CommunityPoolSpend
 */
exports.communityPoolSpend = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgCommunityPoolSpend
});
/**
 * DepositValidatorRewardsPool defines a method to provide additional rewards
 * to delegators to a specific validator.
 * @name depositValidatorRewardsPool
 * @package cosmos.distribution.v1beta1
 * @see proto service: cosmos.distribution.v1beta1.DepositValidatorRewardsPool
 */
exports.depositValidatorRewardsPool = (0, helper_func_types_1.buildTx)({
    msg: tx_1.MsgDepositValidatorRewardsPool
});
