Source: src/DepositQueue.sol
Responsibility
DepositQueue is the user entrypoint for deposits. Requests queue into the current batch and convert to shares when that batch’s oracle report is accepted (see Oracle). Same execution price for every depositor in the batch.
Supports multiple deposit assets (ERC-20s and native ETH via 0xEeee…EEeE), per-asset and global pause, cancel before settlement, and pro-rata claim after. Admin functions authorize against the Fund ACL (spoke pattern).
Deposit lifecycle
1
Request
The user calls
deposit. The queue asks the Fund for the current batch id, runs Fund.checkDeposit → RiskManager, then escrows the assets.One request is allowed per (asset, batch, user).2
Cancel
The user can cancel their current-batch request before settlement for a full refund.An admin (
CANCEL_DEPOSIT_REQUEST_ROLE) can cancel any user’s request in any unsettled batch.3
Settle
During
Fund.acceptReport, the Fund mints the batch’s user shares to the queue and calls settleDeposit, transferring all escrowed assets of that batch to the Fund.4
Claim
The user calls
claimDeposit and receives:There is no deadline.Function reference
User actions
Fund actions
Admin
Roles are checked on the Fund.Views
getAllowedAssets(), getAssetStatuses(), getDepositRequest(asset, batchId, investor), getPendingDeposits(investor), getClaimableDeposits(investor), batchDepositTotals(asset, batchId), batchShareTotals(asset, batchId), isAssetPaused(asset), fund().