IRule701

Git Source

Interface for Rule 701 compliance management

Functions

createGrant

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

exerciseGrant

function exerciseGrant(bytes32 grantId, uint256 amount) external;

cancelGrant

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

getGrant

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

getEmployeeRecord

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

isWithinLimits

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

setAnnualLimit

function setAnnualLimit(uint256 newLimit) external;

setRule701Status

function setRule701Status(bool isActive) external;

addGrantAdmin

function addGrantAdmin(address admin) external;

removeGrantAdmin

function removeGrantAdmin(address admin) external;

Errors

Rule701Inactive

error Rule701Inactive();

ExceedsAnnualLimit

error ExceedsAnnualLimit();

ExceedsEmployeeLimit

error ExceedsEmployeeLimit();

ExceedsCompanyLimit

error ExceedsCompanyLimit();

InvalidGrant

error InvalidGrant();

GrantNotActive

error GrantNotActive();

UnauthorizedAccess

error UnauthorizedAccess();

InvalidAssetType

error InvalidAssetType();

Structs

Grant

struct Grant {
    address employee;
    address assetType;
    uint256 amount;
    uint256 grantDate;
    uint256 vestingStart;
    uint256 vestingDuration;
    uint256 exercisePrice;
    bool isActive;
    bool isExercised;
}

EmployeeRecord

struct EmployeeRecord {
    uint256 totalGranted;
    uint256 annualGranted;
    uint256 lastGrantYear;
    bytes32[] grantIds;
    bool isActive;
}

Last updated

Was this helpful?