-
Notifications
You must be signed in to change notification settings - Fork 151
Expand file tree
/
Copy pathIModuleRegistry.sol
More file actions
55 lines (46 loc) · 1.94 KB
/
IModuleRegistry.sol
File metadata and controls
55 lines (46 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
pragma solidity ^0.4.24;
/**
* @title Interface for the polymath module registry contract
*/
interface IModuleRegistry {
/**
* @notice Called by a security token to notify the registry it is using a module
* @param _moduleFactory is the address of the relevant module factory
*/
function useModule(address _moduleFactory) external;
/**
* @notice Called by moduleFactory owner to register new modules for SecurityToken to use
* @param _moduleFactory is the address of the module factory to be registered
*/
function registerModule(address _moduleFactory) external returns(bool);
/**
* @notice Use to get all the tags releated to the functionality of the Module Factory.
* @param _moduleType Type of module
*/
function getTagByModuleType(uint8 _moduleType) external view returns(bytes32[]);
/**
* @notice Called by Polymath to verify modules for SecurityToken to use.
* @notice A module can not be used by an ST unless first approved/verified by Polymath
* @notice (The only exception to this is that the author of the module is the owner of the ST)
* @param _moduleFactory is the address of the module factory to be registered
* @return bool
*/
function verifyModule(address _moduleFactory, bool _verified) external returns(bool);
/**
* @notice Add the tag for specified Module Factory
* @param _moduleType Type of module.
* @param _tag List of tags
*/
function addTagByModuleType(uint8 _moduleType, bytes32[] _tag) external;
/**
* @notice remove the tag for specified Module Factory
* @param _moduleType Type of module.
* @param _removedTags List of tags
*/
function removeTagByModuleType(uint8 _moduleType, bytes32[] _removedTags) external;
/**
* @notice Indicate if minting can be frozen permanently by issuers
* @return bool
*/
function freezeMintingAllowed() external view returns(bool);
}