import { buildTx } from "../../../helper-func-types";
import { toEncoders, toConverters } from "@interchainjs/cosmos/utils";
import { MsgCreateGroup, MsgUpdateGroupMembers, MsgUpdateGroupAdmin, MsgUpdateGroupMetadata, MsgCreateGroupPolicy, MsgCreateGroupWithPolicy, MsgUpdateGroupPolicyAdmin, MsgUpdateGroupPolicyDecisionPolicy, MsgUpdateGroupPolicyMetadata, MsgSubmitProposal, MsgWithdrawProposal, MsgVote, MsgExec, MsgLeaveGroup } from "./tx";
export const createCreateGroup = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgCreateGroup.typeUrl,
    encoders: toEncoders(MsgCreateGroup),
    converters: toConverters(MsgCreateGroup)
});
export const createUpdateGroupMembers = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupMembers.typeUrl,
    encoders: toEncoders(MsgUpdateGroupMembers),
    converters: toConverters(MsgUpdateGroupMembers)
});
export const createUpdateGroupAdmin = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupAdmin.typeUrl,
    encoders: toEncoders(MsgUpdateGroupAdmin),
    converters: toConverters(MsgUpdateGroupAdmin)
});
export const createUpdateGroupMetadata = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupMetadata.typeUrl,
    encoders: toEncoders(MsgUpdateGroupMetadata),
    converters: toConverters(MsgUpdateGroupMetadata)
});
export const createCreateGroupPolicy = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgCreateGroupPolicy.typeUrl,
    encoders: toEncoders(MsgCreateGroupPolicy),
    converters: toConverters(MsgCreateGroupPolicy)
});
export const createCreateGroupWithPolicy = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgCreateGroupWithPolicy.typeUrl,
    encoders: toEncoders(MsgCreateGroupWithPolicy),
    converters: toConverters(MsgCreateGroupWithPolicy)
});
export const createUpdateGroupPolicyAdmin = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupPolicyAdmin.typeUrl,
    encoders: toEncoders(MsgUpdateGroupPolicyAdmin),
    converters: toConverters(MsgUpdateGroupPolicyAdmin)
});
export const createUpdateGroupPolicyDecisionPolicy = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupPolicyDecisionPolicy.typeUrl,
    encoders: toEncoders(MsgUpdateGroupPolicyDecisionPolicy),
    converters: toConverters(MsgUpdateGroupPolicyDecisionPolicy)
});
export const createUpdateGroupPolicyMetadata = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgUpdateGroupPolicyMetadata.typeUrl,
    encoders: toEncoders(MsgUpdateGroupPolicyMetadata),
    converters: toConverters(MsgUpdateGroupPolicyMetadata)
});
export const createSubmitProposal = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgSubmitProposal.typeUrl,
    encoders: toEncoders(MsgSubmitProposal),
    converters: toConverters(MsgSubmitProposal)
});
export const createWithdrawProposal = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgWithdrawProposal.typeUrl,
    encoders: toEncoders(MsgWithdrawProposal),
    converters: toConverters(MsgWithdrawProposal)
});
export const createVote = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgVote.typeUrl,
    encoders: toEncoders(MsgVote),
    converters: toConverters(MsgVote)
});
export const createExec = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgExec.typeUrl,
    encoders: toEncoders(MsgExec),
    converters: toConverters(MsgExec)
});
export const createLeaveGroup = (clientResolver) => buildTx({
    clientResolver,
    typeUrl: MsgLeaveGroup.typeUrl,
    encoders: toEncoders(MsgLeaveGroup),
    converters: toConverters(MsgLeaveGroup)
});
