Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Roles

Git Source

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

NameTypeDescription
selfAccessManagerThe AccessManager contract

assignAdminTargetsFor

Assigns admin function selectors for ApxUSD contract (extension function)

function assignAdminTargetsFor(AccessManager self, ApxUSD apxUSD) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
apxUSDApxUSDThe ApxUSD contract

assignAdminTargetsFor

Assigns admin function selectors for MinterV0 contract (extension function)

function assignAdminTargetsFor(AccessManager self, IMinterV0 minterContract) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
minterContractIMinterV0The MinterV0 contract

assignAdminTargetsFor

Assigns admin function selectors for ApyUSD contract (extension function)

function assignAdminTargetsFor(AccessManager self, ApyUSD apyUSD) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
apyUSDApyUSDThe ApyUSD contract

assignAdminTargetsFor

Assigns admin function selectors for Vesting contract (extension function)

function assignAdminTargetsFor(AccessManager self, IVesting vestingContract) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
vestingContractIVestingThe Vesting contract

assignAdminTargetsFor

Assigns admin function selectors for AddressList contract (extension function)

function assignAdminTargetsFor(AccessManager self, IAddressList denyList) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
denyListIAddressListThe AddressList contract

assignAdminTargetsFor

Assigns admin function selectors for CommitToken contract (extension function)

function assignAdminTargetsFor(AccessManager self, CommitToken commitToken) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
commitTokenCommitTokenThe 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

NameTypeDescription
selfAccessManagerThe AccessManager contract
yieldDistributorIYieldDistributorThe YieldDistributor contract

assignAdminTargetsFor

Assigns ADMIN_ROLE function selectors for IRedemptionPool contract (extension function)

function assignAdminTargetsFor(AccessManager self, RedemptionPoolV0 pool) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
poolRedemptionPoolV0The IRedemptionPool contract

assignAdminTargetsFor

Assigns admin function selectors for OrderDelegate contract (extension function)

function assignAdminTargetsFor(AccessManager self, OrderDelegate orderDelegate) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
orderDelegateOrderDelegateThe OrderDelegate contract

assignMinterTargetsFor

Assigns MINTER_ROLE function selectors for MinterV0 contract (extension function)

function assignMinterTargetsFor(AccessManager self, IMinterV0 minterContract) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
minterContractIMinterV0The MinterV0 contract

assignMintGuardTargetsFor

Assigns mint guard function selectors for MinterV0 contract (extension function)

function assignMintGuardTargetsFor(AccessManager self, IMinterV0 minterContract) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
minterContractIMinterV0The MinterV0 contract

assignMintingContractTargetsFor

Assigns minting contract function selectors for ApxUSD contract (extension function)

function assignMintingContractTargetsFor(AccessManager self, ApxUSD apxUSD) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
apxUSDApxUSDThe ApxUSD contract

assignYieldDistributorTargetsFor

Assigns yield distributor function selectors for Vesting contract (extension function)

function assignYieldDistributorTargetsFor(AccessManager self, IVesting vestingContract) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
vestingContractIVestingThe Vesting contract

assignYieldOperatorTargetsFor

Assigns ROLE_YIELD_OPERATOR function selectors for YieldDistributor contract (extension function)

function assignYieldOperatorTargetsFor(AccessManager self, IYieldDistributor yieldDistributor) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
yieldDistributorIYieldDistributorThe YieldDistributor contract

assignRedeemerTargetsFor

Assigns ADMIN_ROLE and ROLE_REDEEMER function selectors for RedemptionPool contract (extension function)

function assignRedeemerTargetsFor(AccessManager self, IRedemptionPool pool) internal;

Parameters

NameTypeDescription
selfAccessManagerThe AccessManager contract
poolIRedemptionPoolThe RedemptionPool contract (e.g. RedemptionPoolV0)