ClosedEndFundClass

Git Source

Inherits: IssuedAsset

Inherits from IssuedAsset, representing a private/LLC-structured fund with no daily NAV re-pricing. Subscriptions are limited; distributions or side pockets can be managed by an external FundManager contract.

State Variables

isSubscriptionOpen

bool public isSubscriptionOpen = true;

Functions

closeSubscriptions

Closes the subscription window, preventing new createLot calls (unless overridden by operator).

function closeSubscriptions() external onlyAdmin;

openSubscriptions

Opens the subscription window again, if your fund structure allows it.

function openSubscriptions() external onlyAdmin;

createLot

Overridden createLot to optionally enforce subscription rules. E.g., block new tokens if subscriptions are closed.

function createLot(
    address owner,
    uint96 quantity,
    address paymentCurrency,
    uint96 costBasis,
    uint64 acquisitionDate,
    string memory uri,
    bytes memory data
) public virtual override returns (bytes32 tokenId);

recordDistribution

Example of a distribution approach. Typically, the fund gets proceeds from an exit and wants to distribute them to lot holders off-chain or in a separate manager. This contract remains minimal. If you want to store distribution logic on-chain, you could add methods or references to each lot to record how much has been returned, leftover cost basis, etc.

function recordDistribution(uint256 totalProceeds) external onlyAdmin;

Events

SubscriptionsClosed

event SubscriptionsClosed();

SubscriptionsOpened

event SubscriptionsOpened();

Last updated

Was this helpful?