Contract Governance

In emergencies, the smart contract has dedicated functions that can block most of its functionality.

The primary function for this purpose is pauseContract():

/// @notice Pauses all contract functions that are protected by the `whenNotPaused` modifier.
/// @dev This function can only be called by the SuperAdmin.
    function pauseContract() external onlySuperAdmin {
        _pause();
    }

This function can only be executed by the Super Admin role and disables all contract functions except those specifically accessible to the Super Admin and Recovery Manager roles. The functions that remain available during a pause include:

  • Granting and removing all roles (Super Admin)

  • Changing the main Corporate Treasury (Super Admin)

  • Enabling or disabling the Whitelist (Super Admin)

  • Enabling or disabling transaction limits (Super Admin)

  • Enabling or disabling the Secondary Trading Limit (Super Admin)

  • Extracting “alien” tokens that were mistakenly sent to the SecurityTokenContract address using withdrawStuckTokens() (Super Admin)

  • Minting tokens (Recovery Manager)

  • Burning tokens (Recovery Manager)

  • Redeeming (burning the entire token balance of an address) (Recovery Manager)

  • Transferring tokens between any addresses without restrictions, provided the recipient address is whitelisted: function transferFunds(address _from, address _to, uint256 _amount) (Master Manager)

All other functions remain unavailable until the Super Admin unpauses the smart contract.


Last updated