Skip to content

INestorModularCompliance

Git Source

Inherits: IModularCompliance

Author: Originally developed by DEFYCA Labs S.a.r.l., maintained by Nestor Exchange OÜ

MIT Licence. Originally Copyright © 2023 DEFYCA Labs S.a.r.l.

The INestorModularCompliance is responsible for the compliant transfer of the various Tokens in the Nestor Protocol.

Functions

init

Initializes the modular compliance, sets the maximum allowable modules per token and adds the modules provided

function init(address[] calldata modules_, uint256 maxModulesCount_) external;

updateMaxModulesCount

function updateMaxModulesCount(uint256 newMaxModulesCount_) external;

addModules

function addModules(address[] calldata modulesToAdd_) external;

removeModules

function removeModules(address[] calldata modulesToRemove_) external;

maxModulesCount

function maxModulesCount() external view returns (uint256);

Events

MaxModulesCountUpdated

event MaxModulesCountUpdated(uint256 newMaxModulesCount, uint256 oldMaxModulesCount);

ModulesAdded

event ModulesAdded(address[] modules);

ModulesRemoved

event ModulesRemoved(address[] modules);

Errors

NestorIsZeroAddress

error NestorIsZeroAddress(string);

NestorModularComplianceZeroMaxModulesCount

error NestorModularComplianceZeroMaxModulesCount();

NestorModularComplianceModuleIsAlreadyBound

error NestorModularComplianceModuleIsAlreadyBound(address module);

NestorModularComplianceModuleDoesNotExist

error NestorModularComplianceModuleDoesNotExist(address module);

NestorModularComplianceMaxModuleCountReached

error NestorModularComplianceMaxModuleCountReached();

NestorModularComplianceCallerNotATokenOrOwner

error NestorModularComplianceCallerNotATokenOrOwner(address caller);

NestorModularComplianceCallerNotAToken

error NestorModularComplianceCallerNotAToken(address caller);