"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.permissionTemplates = exports.PermissionGroup = void 0;
const types_1 = require("@polymathnetwork/polymesh-sdk/polkadot/types");
var PermissionGroup;
(function (PermissionGroup) {
    PermissionGroup["PortfolioManagement"] = "portfolioManagement";
    PermissionGroup["TokenManagement"] = "tokenManagement";
    PermissionGroup["AdvancedTokenManagement"] = "advancedTokenManagement";
    PermissionGroup["Distribution"] = "distribution";
    PermissionGroup["ManageApprovedAttestationProviders"] = "manageApprovedAttestationProviders";
    PermissionGroup["ManageAttestations"] = "manageAttestations";
    PermissionGroup["Minting"] = "minting";
    PermissionGroup["ManageRules"] = "manageRules";
    PermissionGroup["CorporateActions"] = "corporateActions";
})(PermissionGroup = exports.PermissionGroup || (exports.PermissionGroup = {}));
exports.permissionTemplates = [
    {
        group: PermissionGroup.PortfolioManagement,
        transactions: [
            types_1.TxTags.identity.AddInvestorUniquenessClaim,
            types_1.TxTags.portfolio.MovePortfolioFunds,
            types_1.TxTags.settlement.AddAndAffirmInstruction,
            types_1.TxTags.settlement.AffirmInstruction,
            types_1.TxTags.settlement.AddInstruction,
            types_1.TxTags.settlement.RejectInstruction,
            types_1.TxTags.settlement.CreateVenue,
        ],
    },
    {
        group: PermissionGroup.TokenManagement,
        transactions: [
            types_1.TxTags.asset.MakeDivisible,
            types_1.TxTags.asset.RenameAsset,
            types_1.TxTags.asset.SetFundingRound,
            types_1.TxTags.asset.AddDocuments,
            types_1.TxTags.asset.RemoveDocuments,
        ],
    },
    {
        group: PermissionGroup.AdvancedTokenManagement,
        transactions: [
            types_1.TxTags.asset.Freeze,
            types_1.TxTags.asset.Unfreeze,
            types_1.TxTags.identity.AddAuthorization,
            types_1.TxTags.identity.RemoveAuthorization,
        ],
    },
    {
        group: PermissionGroup.Distribution,
        transactions: [
            types_1.TxTags.identity.AddInvestorUniquenessClaim,
            types_1.TxTags.settlement.CreateVenue,
            types_1.TxTags.settlement.AddAndAffirmInstruction,
        ],
    },
    {
        group: PermissionGroup.Minting,
        transactions: [types_1.TxTags.asset.Issue],
    },
    {
        group: PermissionGroup.ManageApprovedAttestationProviders,
        transactions: [
            types_1.TxTags.complianceManager.AddDefaultTrustedClaimIssuer,
            types_1.TxTags.complianceManager.RemoveDefaultTrustedClaimIssuer,
        ],
    },
    {
        group: PermissionGroup.ManageAttestations,
        transactions: [types_1.TxTags.identity.AddClaim, types_1.TxTags.identity.RevokeClaim],
    },
    {
        group: PermissionGroup.ManageRules,
        transactions: [
            types_1.TxTags.complianceManager.AddComplianceRequirement,
            types_1.TxTags.complianceManager.RemoveComplianceRequirement,
            types_1.TxTags.complianceManager.ChangeComplianceRequirement,
            types_1.TxTags.complianceManager.PauseAssetCompliance,
            types_1.TxTags.complianceManager.ResumeAssetCompliance,
            types_1.TxTags.complianceManager.ResetAssetCompliance,
        ],
    },
    {
        group: PermissionGroup.CorporateActions,
        transactions: [
            types_1.TxTags.checkpoint.CreateSchedule,
            types_1.TxTags.checkpoint.RemoveSchedule,
            types_1.TxTags.checkpoint.CreateCheckpoint,
            types_1.TxTags.corporateAction.InitiateCorporateAction,
            types_1.TxTags.capitalDistribution.Distribute,
            types_1.TxTags.capitalDistribution.Claim,
            types_1.TxTags.identity.AddInvestorUniquenessClaim,
        ],
    },
];
//# sourceMappingURL=permissionTemplates.js.map