Skip to content

AbstractNestorComplianceModule

Git Source

Inherits: INestorComplianceModule, OwnableUpgradeable

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.

See {INestorComplianceModule}

State Variables

permissionsManager

INestorPermissionsManager public override permissionsManager;

complianceFactory

INestorComplianceFactory public override complianceFactory;

_complianceBound

mapping(address => bool) private _complianceBound;

Modifiers

onlyApprovedCompliance

Modifier used to verify that only approved compliance modules can be used.

onlyBoundCompliance

Modifier used to verify that only modules that are bound can be used.

Functions

__AbstractNestorComplianceModule_init

function __AbstractNestorComplianceModule_init(
    address nestorPermissionsManager_,
    address complianceFactory_
) internal onlyInitializing;

setPermissionsManager

function setPermissionsManager(address nestorPermissionsManager_) external override onlyOwner;

setComplianceFactory

function setComplianceFactory(address newComplianceFactory_) external override onlyOwner;

bindCompliance

function bindCompliance(address compliance_) external override onlyApprovedCompliance;

unbindCompliance

function unbindCompliance(address compliance_) external override;

moduleTransferAction

function moduleTransferAction(address from_, address to_, uint256 value_) external virtual override onlyBoundCompliance;

moduleMintAction

function moduleMintAction(address to_, uint256 value_) external virtual override onlyBoundCompliance;

moduleBurnAction

function moduleBurnAction(address from_, uint256 value_) external virtual override onlyBoundCompliance;

moduleCheck

function moduleCheck(address, address, uint256, address) public view virtual override returns (bool);

isComplianceBound

function isComplianceBound(address compliance_) public view override returns (bool);

isTreasury

function isTreasury(address userAddress_) public view override returns (bool);

isCustodian

function isCustodian(address userAddress_) public view override returns (bool);

isInvestor

function isInvestor(address userAddress_) public view override returns (bool);

isManager

function isManager(address userAddress_) public view override returns (bool);

isCalculatingAgent

function isCalculatingAgent(address userAddress_) public view override returns (bool);

isTransferAgent

function isTransferAgent(address userAddress_) public view override returns (bool);

isFundAccountant

function isFundAccountant(address userAddress_) public view override returns (bool);

isUser

Verifies if the specified wallet address is a permissioned user in the Nestor Protocol.

function isUser(address userAddress_) public view override returns (bool);

hasClaim

function hasClaim(address userAddress_, INestorPermissionsManager.NestorPermissionedUser userType_)
    public view override returns (bool);

_setPermissionsManager

function _setPermissionsManager(address newNestorPermissionsManager_) internal;

_setComplianceFactory

function _setComplianceFactory(address newComplianceFactory_) internal;

_checkZeroAddr

function _checkZeroAddr(address addrToCheck_, string memory addrName_) internal pure;

_onlyBoundCompliance

function _onlyBoundCompliance(address compliance_) internal view virtual;

_onlyValidCompliance

function _onlyValidCompliance(address compliance_) internal view;

_onlyApprovedCompliance

function _onlyApprovedCompliance() internal view;

_getTokenBound

function _getTokenBound(address compliance_) internal view returns (address);

_hasClaim

function _hasClaim(address userAddress_, INestorPermissionsManager.NestorPermissionedUser userType_)
    internal view virtual returns (bool);