Skip to main content

Master Matrix: Write Methods and Admin Roles

Role Definitions

RoleDescriptionSource
Contract AdminManages roles, upgrades, core configEasyAccessControl.sol
Reserve AdminToken minting, burning, max supply, token type changesEasyAccessControl
Wallets AdminIdentity/KYC, holder management, freezeEasyAccessControl
Transfer AdminTransfer rules, payments, reclaim, pauseEasyAccessControl
Soft Burn AdminSoft burn (requires allowance)EasyAccessControl
Mint AdminMint/timelock mint (alongside Reserve Admin)EasyAccessControl
OwnerPurchaseContract ownership (Ownable)PurchaseContract.sol
Automation AdminExecute purchases, cancellationsPurchaseContract

Matrix: Contract | Method | Contract Admin | Reserve Admin | Transfer Admin | Wallets Admin | Soft Burn Admin | Mint Admin | Owner | Automation Admin

AccessControl / EasyAccessControl

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
EasyAccessControlgrantRoleX
EasyAccessControlrevokeRoleX
EasyAccessControlbatchGrantRolesX
EasyAccessControlbatchRevokeRolesX

IdentityRegistry

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
IdentityRegistrysetIdentityX
IdentityRegistrybatchSetIdentityX
IdentityRegistryremoveIdentityX
IdentityRegistrysetRegionsX
IdentityRegistryaddRegionX
IdentityRegistryremoveRegionX
IdentityRegistrygrantAmlKycX
IdentityRegistryrevokeAmlKycX
IdentityRegistrygrantAccreditationX
IdentityRegistryrevokeAccreditationX
IdentityRegistrysetAmlKycValidityDurationX

PurchaseContract

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
PurchaseContractupdateAutomationAdminX
PurchaseContractupdateAdminFeeWalletX
PurchaseContractupdateCanceledPurchaseWalletX
PurchaseContractupdateOriginatorPaymentWalletX
PurchaseContractexecutePurchaseWithInterestX
PurchaseContractexecutePurchaseX
PurchaseContractcancelPurchaseX

RestrictedLockupToken (main contract - non-delegated)

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
RestrictedLockupTokenmintXX
RestrictedLockupTokenmintTokenTypeXX
RestrictedLockupTokenforceTransferBetweenX
RestrictedLockupTokensetRecordMintTimestampX

RestrictedLockupToken (via Management Extension delegatecall)

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
RestrictedLockupTokencreateHolderFromAddressXX
RestrictedLockupTokenappendHolderAddressXX
RestrictedLockupTokenaddHolderWithAddressesXX
RestrictedLockupTokensetHolderMaxX
RestrictedLockupTokenremoveHolderXX
RestrictedLockupTokenremoveWalletFromHolderXX
RestrictedLockupTokenbatchRemoveWalletFromHolderXX
RestrictedLockupTokenpauseXX
RestrictedLockupTokenfreezeXX
RestrictedLockupTokenupgradeTransferRulesX
RestrictedLockupTokenupgradeIdentityRegistryX

RestrictedLockupToken (via Extension delegatecall)

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
RestrictedLockupTokenupdateHoldingTokenTypeX
RestrictedLockupTokenburnX
RestrictedLockupTokenburnHoldingX
RestrictedLockupTokensoftBurnX
RestrictedLockupTokencreateReleaseScheduleXXXX
RestrictedLockupTokenfundReleaseScheduleWithHoldingXXXX
RestrictedLockupTokenfundReleaseScheduleXXXX
RestrictedLockupTokenmintReleaseScheduleTokenTypeXX
RestrictedLockupTokenmintReleaseScheduleXX
RestrictedLockupTokenupdateTimelockTokenTypeX
RestrictedLockupTokenbatchFundReleaseScheduleWithHoldingXXXX
RestrictedLockupTokenbatchFundReleaseScheduleXXXX
RestrictedLockupTokenbatchMintReleaseScheduleTokenTypeXX
RestrictedLockupTokenbatchMintReleaseScheduleXX
RestrictedLockupTokensetMaxTotalSupplyX

TransferRules

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
TransferRulessetTokenTypeRuleX
TransferRulessetDefaultTokenTypeRuleX
TransferRulesresetDefaultTokenTypeRuleX
TransferRulesremoveTokenTypeRuleX
TransferRulesbatchSetTokenTypeRulesX
TransferRulessetTransferRuleX
TransferRulesremoveTransferRuleX
TransferRulesbatchSetTransferRulesX

InterestPayment

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
InterestPaymentpausePaymentPeriodXX
InterestPaymentunpausePaymentPeriodXX
InterestPaymentpauseXX
InterestPaymentpausePaymentAfterXX
InterestPaymentunpausePaymentAfterXX
InterestPaymentsetReclaimerAddressX
InterestPaymentshiftInterestAccrualEndXX
InterestPaymentsetMaxInterestRateX
InterestPaymentupdateInterestRateForPeriodX
InterestPaymentcreatePaymentPeriodX
InterestPaymentforceClaimX
InterestPaymentreclaimInterestForPeriodX
InterestPaymentreclaimInterestX
InterestPaymentbatchReclaimInterestX
InterestPaymentbatchForceClaimInterestX
InterestPaymentreclaimInterestForAllRecipientsX
InterestPaymentreclaimTotalInterestX
InterestPaymentfundPrincipalX
InterestPaymentforceClaimPrincipalX
InterestPaymentreclaimPrincipalX
InterestPaymentforceClaimForPeriodX
InterestPaymentreclaimDividendX
InterestPaymentfundDividendX
InterestPaymentreclaimTotalDividendX
InterestPaymentearlyRepaymentXX

RestrictedSwap

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
RestrictedSwappauseXX

SnapshotPeriods

ContractMethodContractReserveTransferWalletsSoft BurnMintOwnerAutomation
SnapshotPeriodsonUpdateToken only

Note: onUpdate is callable only by the token contract (msg.sender == tokenAddress), not by any admin role.


User/External Methods (No Admin Required)

These write methods are callable by token holders or external addresses without admin roles:

  • RestrictedLockupToken: transfer, transferFrom, transferHolding, transferTimelock, batchTransfer, cancelTimelock, safeApprove, approve
  • InterestPayment: fundInterest (anyone with tokens), claimInterest, claimInterestForPeriod, batchClaimInterestForPeriods, claimPrincipal, claimDividend, batchClaimDividend
  • RestrictedSwap: configureSell, configureBuy, completeSwapWithQuoteToken, completeSwapWithRestrictedToken, cancelSwap

Modifier to Role Mapping