endOfDay
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++;
}
}
}Last updated