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​