Skip to content

INestorComplianceModule

Git Source

Inherits: IModule

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 INestorComplianceModule is responsible for the compliant transfer of the various Tokens in the Nestor Protocol.

Functions

setPermissionsManager

Sets the instance of the INestorPermissionsManager to determine permissions for users.

function setPermissionsManager(address nestorPermissionsManager_) external;

setComplianceFactory

Sets the instance of the INestorComplianceFactory to determine the compliance module for the protocol.

function setComplianceFactory(address newComplianceFactory_) external;

permissionsManager

function permissionsManager() external view returns (INestorPermissionsManager);

complianceFactory

function complianceFactory() external view returns (INestorComplianceFactory);

isTreasury

Verifies if the specified wallet address is a PROTOCOL_TREASURY user.

function isTreasury(address walletAddress_) external view returns (bool);

isCustodian

Verifies if the specified wallet address is a PERMISSIONED_CUSTODIAN user.

function isCustodian(address walletAddress_) external view returns (bool);

isInvestor

Verifies if the specified wallet address is a PERMISSIONED_INVESTOR user.

function isInvestor(address walletAddress_) external view returns (bool);

isManager

Verifies if the specified wallet address is a PERMISSIONED_MANAGER user.

function isManager(address walletAddress_) external view returns (bool);

isCalculatingAgent

Verifies if the specified wallet address is a PERMISSIONED_CALCULATING_AGENT user.

function isCalculatingAgent(address walletAddress_) external view returns (bool);

isTransferAgent

Verifies if the specified wallet address is a PERMISSIONED_TRANSFER_AGENT user.

function isTransferAgent(address walletAddress_) external view returns (bool);

isFundAccountant

Verifies if the specified wallet address is a PERMISSIONED_FUND_ACCOUNTANT user.

function isFundAccountant(address walletAddress_) external view returns (bool);

isUser

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

function isUser(address walletAddress_) external view returns (bool);

hasClaim

Verify if the userAddress is permissioned in the Nestor Protocol and has a valid claim

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

Events

NestorTokenTransferred

Event emitted during compliance module transfers

event NestorTokenTransferred(
    IBasicNestorToken.NestorTokenTypes tokenType,
    address tokenAddr,
    address from,
    address to,
    uint256 amount
);

Errors

NestorIsZeroAddress

error NestorIsZeroAddress(string);

NestorComplianceModuleInvalidCompliance

error NestorComplianceModuleInvalidCompliance(address compliance);

NestorComplianceModuleNotAnApprovedCompliance

error NestorComplianceModuleNotAnApprovedCompliance(address compliance);

NestorComplianceModuleComplianceIsAlreadyBound

error NestorComplianceModuleComplianceIsAlreadyBound(address compliance);

NestorComplianceModuleNotABoundCompliance

error NestorComplianceModuleNotABoundCompliance(address compliance);