FundUnitFacet
Facet providing fund-specific functionality that extends IssuedAsset
Diamond facet for fund unit tracking including commitments, contributions, and distributions
Functions
initializeFundUnit
Initialize the fund unit functionality
function initializeFundUnit(address fundAddress) external;
Parameters
fundAddress
address
The address of the fund contract
recordCommitment
Record a capital commitment
function recordCommitment(address investor, uint256 commitment) external;
Parameters
investor
address
The investor making the commitment
commitment
uint256
The commitment amount
recordCapitalContribution
Record a capital contribution
function recordCapitalContribution(address investor, uint256 amount) external;
Parameters
investor
address
The investor making the contribution
amount
uint256
The contribution amount
recordDistribution
Record a distribution to an investor
function recordDistribution(address investor, uint256 amount) external;
Parameters
investor
address
The investor receiving the distribution
amount
uint256
The distribution amount
updatePreferredReturn
Update preferred return accrual
function updatePreferredReturn(address investor, uint256 amount) external;
Parameters
investor
address
The investor
amount
uint256
The preferred return amount
recordDefault
Record a default on a capital call
function recordDefault(address investor, uint256 callNumber, uint256 amount) external;
Parameters
investor
address
The defaulting investor
callNumber
uint256
The capital call number
amount
uint256
The defaulted amount
getUnitHolderInfo
Get unit holder information for an investor
function getUnitHolderInfo(address investor) external view returns (FundUnitStorage.UnitHolderInfo memory);
Parameters
investor
address
The investor address
Returns
<none>
FundUnitStorage.UnitHolderInfo
The unit holder information struct
getCommitment
Get commitment amount for an investor
function getCommitment(address investor) external view returns (uint256);
Parameters
investor
address
The investor address
Returns
<none>
uint256
The commitment amount
getPaidInPercentage
Get paid-in percentage for an investor
function getPaidInPercentage(address investor) external view returns (uint256);
Parameters
investor
address
The investor address
Returns
<none>
uint256
The paid-in percentage in basis points (10000 = 100%)
getUnfundedCommitment
Get unfunded commitment for an investor
function getUnfundedCommitment(address investor) external view returns (uint256);
Parameters
investor
address
The investor address
Returns
<none>
uint256
The unfunded commitment amount
getFundMetrics
Get fund metrics
function getFundMetrics() external view returns (FundUnitStorage.FundMetrics memory);
Returns
<none>
FundUnitStorage.FundMetrics
The fund metrics struct
fund
Get the associated fund address
function fund() external view returns (address);
Returns
<none>
address
The fund contract address
isFundUnitInitialized
Check if FundUnit is initialized
function isFundUnitInitialized() external view returns (bool);
Returns
<none>
bool
True if initialized
batchRecordCommitments
Batch record commitments for multiple investors
function batchRecordCommitments(address[] calldata investors, uint256[] calldata commitments) external;
Parameters
investors
address[]
Array of investor addresses
commitments
uint256[]
Array of commitment amounts
batchRecordContributions
Batch record contributions for multiple investors
function batchRecordContributions(address[] calldata investors, uint256[] calldata amounts) external;
Parameters
investors
address[]
Array of investor addresses
amounts
uint256[]
Array of contribution amounts
batchGetInvestorInfo
Get summary information for multiple investors
function batchGetInvestorInfo(address[] calldata investors)
external
view
returns (uint256[] memory commitments, uint256[] memory paidIn, uint256[] memory distributions);
Parameters
investors
address[]
Array of investor addresses
Returns
commitments
uint256[]
Array of commitment amounts
paidIn
uint256[]
Array of paid-in amounts
distributions
uint256[]
Array of distribution amounts
getFundPerformanceSummary
Get fund performance summary
function getFundPerformanceSummary()
external
view
returns (
uint256 totalCommitments,
uint256 totalPaidIn,
uint256 totalDistributed,
uint256 totalDefaulted,
uint256 commitmentUtilization,
uint256 distributionRatio
);
Returns
totalCommitments
uint256
Total commitments across all investors
totalPaidIn
uint256
Total capital contributed
totalDistributed
uint256
Total distributions made
totalDefaulted
uint256
Total defaults on capital calls
commitmentUtilization
uint256
Percentage of commitments called (basis points)
distributionRatio
uint256
Total distributions / total paid-in (basis points)
Events
CommitmentRecorded
event CommitmentRecorded(address indexed investor, uint256 commitment);
CapitalContributed
event CapitalContributed(address indexed investor, uint256 amount);
DistributionRecorded
event DistributionRecorded(address indexed investor, uint256 amount);
PreferredReturnUpdated
event PreferredReturnUpdated(address indexed investor, uint256 amount);
DefaultRecorded
event DefaultRecorded(address indexed investor, uint256 callNumber, uint256 amount);
Last updated
Was this helpful?