CompensationFactory

Git Source

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?