-
Notifications
You must be signed in to change notification settings - Fork 3
/
IMVDFunctionalitiesManager.sol
33 lines (27 loc) · 2.57 KB
/
IMVDFunctionalitiesManager.sol
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
pragma solidity ^0.6.0;
interface IMVDFunctionalitiesManager {
function getProxy() external view returns (address);
function setProxy() external;
function init(address sourceLocation,
uint256 getMinimumBlockNumberSourceLocationId, address getMinimumBlockNumberFunctionalityAddress,
uint256 getEmergencyMinimumBlockNumberSourceLocationId, address getEmergencyMinimumBlockNumberFunctionalityAddress,
uint256 getEmergencySurveyStakingSourceLocationId, address getEmergencySurveyStakingFunctionalityAddress,
uint256 checkVoteResultSourceLocationId, address checkVoteResultFunctionalityAddress) external;
function addFunctionality(string calldata codeName, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnAbiParametersArray, bool isInternal, bool needsSender) external;
function addFunctionality(string calldata codeName, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnAbiParametersArray, bool isInternal, bool needsSender, uint256 position) external;
function removeFunctionality(string calldata codeName) external returns(bool removed, uint256 position);
function isValidFunctionality(address functionality) external view returns(bool);
function isAuthorizedFunctionality(address functionality) external view returns(bool);
function setCallingContext(address location) external returns(bool);
function clearCallingContext() external;
function getFunctionalityData(string calldata codeName) external view returns(address, uint256, string memory, address, uint256);
function hasFunctionality(string calldata codeName) external view returns(bool);
function getFunctionalitiesAmount() external view returns(uint256);
function functionalitiesToJSON() external view returns(string memory);
function functionalitiesToJSON(uint256 start, uint256 l) external view returns(string memory functionsJSONArray);
function functionalityNames() external view returns(string memory);
function functionalityNames(uint256 start, uint256 l) external view returns(string memory functionsJSONArray);
function functionalityToJSON(string calldata codeName) external view returns(string memory);
function preConditionCheck(string calldata codeName, bytes calldata data, uint8 submitable, address sender, uint256 value) external view returns(address location, bytes memory payload);
function setupFunctionality(address proposalAddress) external returns (bool);
}