CompensationFactory
Inherits: FactoryBase, ICompensationFactory
Factory for deploying compensation plan diamonds
State Variables
planTypes
mapping(address => string) public planTypes;
entityPlans
mapping(address => address[]) public entityPlans;
planTemplates
mapping(string => address[]) public planTemplates;
Functions
constructor
constructor(address _facetRegistry, address _authority) FactoryBase(_facetRegistry, _authority);
deployRule701Plan
Deploy a Rule 701 compensation plan
function deployRule701Plan(string calldata name, address entity, uint256 annualLimit, bytes calldata additionalConfig)
external
returns (address);
deployCompensationPlan
Deploy a generic compensation plan
function deployCompensationPlan(string calldata planType, string calldata name, address entity, bytes calldata config)
external
returns (address);
addPlanTemplate
Add a new plan template
function addPlanTemplate(string calldata planType, address[] calldata facets) external restricted;
updatePlanTemplate
Update an existing plan template
function updatePlanTemplate(string calldata planType, address[] calldata facets) external restricted;
removePlanTemplate
Remove a plan template
function removePlanTemplate(string calldata planType) external restricted;
getPlansByEntity
function getPlansByEntity(address entity) external view returns (address[] memory);
getPlanType
function getPlanType(address plan) external view returns (string memory);
isPlan
function isPlan(address plan) external view returns (bool);
deployDiamond
Deploy a diamond with custom facet cuts (required by IFactoryBase)
function deployDiamond(IDiamond.FacetCut[] memory facetCuts, bytes memory constructorArgs, bytes32 salt)
external
override
returns (address diamond);
_deployCompensationDiamond
function _deployCompensationDiamond(
string memory planType,
string memory name,
address entity,
address[] memory facets,
bytes memory initData
) internal returns (address);
_buildFacetCuts
function _buildFacetCuts(address[] memory facets) internal pure returns (IDiamond.FacetCut[] memory);
Last updated
Was this helpful?