Privilege Functions

The contract has an Access Control mechanism. The access control of the contract governs which operations are allowed by who.

In the contract, there are the 3 access group ("priviledged groups") -

  1. Minter Role - all addresses that have this role can mint new tokens.

  2. Admin Role

  3. Pauser Role - Pauser Role can pause the token transfer functions.

Minter Role Capabilities

  1. public mint function - all the addresses with the minter role can mint new tokens.

function mint(address account, uint256 amount)
        public
        virtual
        onlyRole(MINTER_ROLE)

According to the team, the mint function's purposes are:

  1. DreamsQuest is a play-to-earn game, users earn $DREAMS token which will be minted.

  2. Mint function will be used for cross-chain bridge and “mint preferred chain”.

Admin Role Capabilities

function burnFrom(address account, uint256 amount)
        public
        virtual
        onlyRole(DEFAULT_ADMIN_ROLE)

burnFrom allows all the addresses with admin role to burn tokens on behalf of other addresses if the caller (the admin) has allowance to do that.

Pauser Role Capabilities

  1. pause - can pause transfer and allowance functions

  2. unpause - can unpause transfer and allowance functions.

Last updated