Roles
Title: Roles
Centralized role definitions for AccessManager-based access control
These role IDs are used across the Apyx ecosystem of contracts for consistent access management
State Variables
ADMIN_ROLE
Built-in OpenZeppelin admin role - controls all other roles and critical functions
uint64 public constant ADMIN_ROLE = 0
MINT_STRAT_ROLE
Minting strategy role - granted to minting contracts (e.g., MinterV0)
Can call PrefUSD.mint() with no execution delay
uint64 public constant MINT_STRAT_ROLE = 1
MINTER_ROLE
Individual minter role - granted to authorized minter addresses
Can call MinterV0.requestMint() and executeMint() with configured delays
uint64 public constant MINTER_ROLE = 2
MINT_GUARD_ROLE
Mint guardian role - granted to compliance guardians
Can call MinterV0.cancelMint() to stop non-compliant mint operations
uint64 public constant MINT_GUARD_ROLE = 3
YIELD_DISTRIBUTOR_ROLE
Yield distributor role - granted to addresses that can deposit yield
Can call Vesting.depositYield() to add yield for vesting
uint64 public constant YIELD_DISTRIBUTOR_ROLE = 6
ROLE_YIELD_OPERATOR
Yield operator role - granted to addresses that can trigger yield deposits
Can call YieldDistributor.depositYield() to deposit yield to vesting
uint64 public constant ROLE_YIELD_OPERATOR = 7
ROLE_REDEEMER
Redeemer role - granted to addresses that can perform redemptions
Can call RedemptionPoolV0.redeem() to burn asset and pay out reserve
uint64 public constant ROLE_REDEEMER = 8
Functions
setRoleAdmins
Sets the admin role for all roles (extension function)
function setRoleAdmins(AccessManager self) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
assignAdminTargetsFor
Assigns admin function selectors for ApxUSD contract (extension function)
function assignAdminTargetsFor(AccessManager self, ApxUSD apxUSD) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
apxUSD | ApxUSD | The ApxUSD contract |
assignAdminTargetsFor
Assigns admin function selectors for MinterV0 contract (extension function)
function assignAdminTargetsFor(AccessManager self, IMinterV0 minterContract) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
minterContract | IMinterV0 | The MinterV0 contract |
assignAdminTargetsFor
Assigns admin function selectors for ApyUSD contract (extension function)
function assignAdminTargetsFor(AccessManager self, ApyUSD apyUSD) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
apyUSD | ApyUSD | The ApyUSD contract |
assignAdminTargetsFor
Assigns admin function selectors for Vesting contract (extension function)
function assignAdminTargetsFor(AccessManager self, IVesting vestingContract) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
vestingContract | IVesting | The Vesting contract |
assignAdminTargetsFor
Assigns admin function selectors for AddressList contract (extension function)
function assignAdminTargetsFor(AccessManager self, IAddressList denyList) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
denyList | IAddressList | The AddressList contract |
assignAdminTargetsFor
Assigns admin function selectors for CommitToken contract (extension function)
function assignAdminTargetsFor(AccessManager self, CommitToken commitToken) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
commitToken | CommitToken | The CommitToken contract (or subclass like UnlockToken) |
assignAdminTargetsFor
Assigns ADMIN_ROLE function selectors for YieldDistributor contract (extension function)
function assignAdminTargetsFor(AccessManager self, IYieldDistributor yieldDistributor) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
yieldDistributor | IYieldDistributor | The YieldDistributor contract |
assignAdminTargetsFor
Assigns ADMIN_ROLE function selectors for IRedemptionPool contract (extension function)
function assignAdminTargetsFor(AccessManager self, RedemptionPoolV0 pool) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
pool | RedemptionPoolV0 | The IRedemptionPool contract |
assignAdminTargetsFor
Assigns admin function selectors for OrderDelegate contract (extension function)
function assignAdminTargetsFor(AccessManager self, OrderDelegate orderDelegate) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
orderDelegate | OrderDelegate | The OrderDelegate contract |
assignMinterTargetsFor
Assigns MINTER_ROLE function selectors for MinterV0 contract (extension function)
function assignMinterTargetsFor(AccessManager self, IMinterV0 minterContract) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
minterContract | IMinterV0 | The MinterV0 contract |
assignMintGuardTargetsFor
Assigns mint guard function selectors for MinterV0 contract (extension function)
function assignMintGuardTargetsFor(AccessManager self, IMinterV0 minterContract) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
minterContract | IMinterV0 | The MinterV0 contract |
assignMintingContractTargetsFor
Assigns minting contract function selectors for ApxUSD contract (extension function)
function assignMintingContractTargetsFor(AccessManager self, ApxUSD apxUSD) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
apxUSD | ApxUSD | The ApxUSD contract |
assignYieldDistributorTargetsFor
Assigns yield distributor function selectors for Vesting contract (extension function)
function assignYieldDistributorTargetsFor(AccessManager self, IVesting vestingContract) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
vestingContract | IVesting | The Vesting contract |
assignYieldOperatorTargetsFor
Assigns ROLE_YIELD_OPERATOR function selectors for YieldDistributor contract (extension function)
function assignYieldOperatorTargetsFor(AccessManager self, IYieldDistributor yieldDistributor) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
yieldDistributor | IYieldDistributor | The YieldDistributor contract |
assignRedeemerTargetsFor
Assigns ADMIN_ROLE and ROLE_REDEEMER function selectors for RedemptionPool contract (extension function)
function assignRedeemerTargetsFor(AccessManager self, IRedemptionPool pool) internal;
Parameters
| Name | Type | Description |
|---|---|---|
self | AccessManager | The AccessManager contract |
pool | IRedemptionPool | The RedemptionPool contract (e.g. RedemptionPoolV0) |