Roles Contract
- Smart Contract: SRC20 specific
- Purpose: Manages the addresses that can perform restricted actions for an SRC20 as defined by the contract owner. SRC20 tokens can have four types of roles: Owner, Authority, Manager and Delegate
Glossary
Item | Description |
Owner | Owner is the owner of the Roles smart contract |
Delegate | Address responsible for updating the KYA document, Net Asset Value, transfer restrictions and rules and perform bulk transfers that bypass whitelist and greylist. There can be multiple authorities granted |
Authority | Address authorized to maintain the white and greylists (add/remove) for a specific SRC20 token, as well as authorize transfers subject to a greylist |
Manager | There is one manager, which is a smart contract responsible for minting or burning tokens. It is initially set to be the SRC20 Registry contract where you can increase or decrease the supply of the corresponting SRC20 |
Read Functions
Function | Description |
isDelegate() | Returns true/false whether an address is a Delegate for this contract |
isAuthority() | Returns true/false whether an address is an Authority for this contract |
manager() | Returns the address of the Manager contract. This is normally the address of the SRC20Registry contract, where staking and minting is executed |
owner() | Returns the address of the contract owner |
isOwner() | Returns true if the caller is the current owner |
isManager() | Returns true if the caller is the current Manager |
Write Functions
Function | Description |
renounceManagement() | Relinquish the ability to manage this contract. Attention: If a manager renounces management there is no possible way to mint or burn SRC20 tokens anymore |
addAuthority() | Adds an address authorized to maintain the white and greylists (add/remove) for a specific SRC20 token, as well as authorize transfers subject to a greylist. Can only be called by the owner |
removeDelegate() | Remove an address from being able to perform delegate functions. Can only be called by the owner |
renounceOwnership() | Can only be called by the owner and it sets the owner address to 0x0 |
removeAuthority() | Removes an address authorized to maintain the white and greylists (add/remove) for a specific SRC20 token, as well as authorize transfers subject to a greylist. Can only be called by the owner |
transferManagement() | A manager can transfer their role to a new address |
addDelegate() | Add an address that is able to perform delegate only functions. Can only be called by the owner |
transferOwnership() | An owner can transfer their role to a new address or to a multisig wallet or to a multisig wallet |
Last modified 3yr ago