Rule701CoreFacet

Git Source

Inherits: IRule701Events

Core functionality for Rule 701 compliance management

Functions

onlyActive

modifier onlyActive();

onlyAdmin

modifier onlyAdmin();

initialize

Initialize the Rule 701 plan

function initialize(address _entity, uint256 _annualLimit, uint256 _companyLimit) external;

createGrant

Create a new grant for an employee

function createGrant(
    address employee,
    address assetType,
    uint256 amount,
    uint256 vestingStart,
    uint256 vestingDuration,
    uint256 exercisePrice
) external onlyActive onlyAdmin returns (bytes32 grantId);

exerciseGrant

Exercise a grant

function exerciseGrant(bytes32 grantId, uint256 amount) external onlyActive;

cancelGrant

Cancel a grant

function cancelGrant(bytes32 grantId, string calldata reason) external onlyAdmin;

getGrant

function getGrant(bytes32 grantId) external view returns (IRule701.Grant memory);

getEmployeeRecord

function getEmployeeRecord(address employee) external view returns (IRule701.EmployeeRecord memory);

isWithinLimits

function isWithinLimits(address employee, uint256 amount) external view returns (bool);

_checkLimits

function _checkLimits(Rule701Storage.Layout storage s, address employee, uint256 amount) internal view returns (bool);

_updateEmployeeRecord

function _updateEmployeeRecord(Rule701Storage.Layout storage s, address employee, uint256 amount, bytes32 grantId)
    internal;

_calculateVested

function _calculateVested(IRule701.Grant storage grant) internal view returns (uint256);

_isAdmin

function _isAdmin(address account, Rule701Storage.Layout storage s) internal view returns (bool);

_authority

function _authority() internal view returns (address);

Last updated

Was this helpful?