Grants warrants to employees/consultants, ensuring compliance with Rule 701 and using the ValuationRegistry for accurate strike price determination.
State Variables
warrant
Warrant public warrant;
shareClass
ShareClass public shareClass;
valuationRegistry
ValuationRegistry public valuationRegistry;
rule701Exemption
Rule701Exemption public rule701Exemption;
Functions
constructor
constructor(address _warrant, address _shareClass, address _valuationRegistry, address _rule701Exemption);
getFairValue
Retrieves the latest fair market value (FMV) for a company from ValuationRegistry.
function getFairValue(address company) internal view returns (uint256);
Parameters
The address representing the private company.
Returns
grantWarrants
Grants warrants to a holder based on the latest 409A valuation.
function grantWarrants(address holder, uint96 quantity, address paymentCurrency) external;
Parameters
The address receiving the warrants.
The number of warrants to grant.
The payment currency for the warrants.
exerciseWarrant
Example: holder exercises the warrants, we createLot actual shares in shareClass.
function exerciseWarrant(bytes32 tokenId, uint96 exerciseQuantity) external payable;
Events
WarrantGranted
event WarrantGranted(
bytes32 indexed tokenId, address indexed holder, uint96 quantity, uint256 strikePrice, uint256 valuationTimestamp
);
WarrantExercised
event WarrantExercised(bytes32 indexed tokenId, address indexed holder, uint96 exercisedQuantity, uint256 totalCost);