endOfDay

FUND EOD NAV

FUNCTION

function endOfDay(
    address[] calldata accounts,
    uint256[] calldata adjustedShares,
    bytes32[] calldata txIds,
    uint256 date,
    int256 rate,
    uint256 price
)
    external
    virtual
    override
    onlyAdmin
    onlyWithValidRate(rate)
    onlyValidPaginationSize(accounts.length, MAX_ACCOUNT_PAGE_SIZE)
    onlyValidPaginationSize(adjustedShares.length, MAX_ACCOUNT_PAGE_SIZE)
    onlyValidPaginationSize(txIds.length, MAX_TX_PAGE_SIZE)
{
    require(
        accounts.length == adjustedShares.length,
        "ARRAY_LENGTH_MISMATCH"
    );
    moneyMarketFund.updateLastKnownPrice(price);
    for (uint i = 0; i < accounts.length; ) {
        uint256 accountBalance;
        if (adjustedShares[i] == 0) {
            accountBalance = moneyMarketFund.balanceOf(accounts[i]);
        } else {
            accountBalance = adjustedShares[i];
        }
        _processDividends(accounts[i], accountBalance, date, rate, price);
        _processSettlements(txIds, accounts[i], date, price);
        unchecked {
            i++;
        }
    }
}

INTERFACE

USER FLOW

RESOURCES

Last updated