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);