Roles Contract

  • Smart Contract: SRC20 specific

  • Created: Step 3 in SRC20 deployment (see Swarm Tokenization App)

  • 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

  • Example: NUVO on Ropsten

Feature Description

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