Reference: Smart Contract Interface
Every function on the vault contract that touches curator workflows, grouped by job, with the role that calls it.
Admin functions are gated to the owner multisig or operator; attempting them from a curator-managed address reverts.
Capital Movement (Vault ↔ Subaccount)
Function
Caller
Purpose and notes
depositToSubaccount(uint256 amount, address subAccountAddr)
Operator
Transfers vault assets to a whitelisted subaccount. This is the only road capital takes toward the curator’s strategy.
withdrawFromSubaccount(uint256 amount, address subAccountAddr)
Operator
Pulls assets from the subaccount back into the vault — used to refill the buffer and fund epoch settlements.
NAV and Accounting
Function
Caller
Purpose and notes
updateTotalAssets(uint256 externalAssetsAmount)
Operator
Syncs the vault’s internal accounting with the externally calculated value of deployed positions. This is what moves the share price. Bounded by the max-percentage-change guardrail (§8, §10).
updateMaxChangePercent(uint256 newValue)
Owner
Sets the ceiling/floor on share-price movement per update cycle (NAV volatility protection).
totalAssets() , totalSupply()
Anyone (view)
Current accounting state; share price = totalAssets / totalSupply.
convertToAssets(shares) , convertToShares(assets)
Anyone (view)
Preview conversions at the current ratio — use for reconciliation and reporting.
Redemption Processing
Function
Caller
Purpose and notes
processAllClaimsByDate(uint256 year, uint256 month, uint256 day, uint256 maxLimit)
Anyone
Batch-settles all scheduled redemptions for a given epoch date.
updateTimelockDuration(uint256 newDuration)
Owner
Changes the lag between requestRedeem and claim. Subject to the 24h timelock on withdrawal-period changes.
updateSettlementAccount(address addr)
Owner
Sets the address used for asset settlement for external funding or batch liquidity actions.
getWithdrawalEpoch()
Anyone (view)
Current epoch boundaries — poll this to plan unwinds.
Fee Management
Function
Caller
Purpose and notes
chargeManagementFee()
Operator
Triggers fee accrual against TVL. Emits ManagementFeeCharged(uint256).
collectFees()
Operator
Sweeps accrued fees to the fee collector address.
updateManagementFee(uint256 newManagementFeePercent)
Owner
Changes the management fee. Fee changes sit behind a 24h timelock.
updateWithdrawalFee(uint256 newWithdrawalFee)
Owner
Standard withdrawal fee percentage.
updateInstantRedemptionFee(uint256 newFee)
Owner
Fee charged on the instantRedeem path.
updateFeeCollector(address newFeeCollectorAddr)
Owner
Where collected fees land.
Limits, Pausing, and Emergency
Function
Caller
Purpose and notes
updateIssuanceLimits(uint256 maxDeposit, uint256 maxWithdrawal, uint256 maxSupply)
Owner
Caps on deposits, withdrawals, and total share supply — the lever for capacity management.
pauseDepositsAndWithdrawals(bool bPauseDeposits, bool bPauseWithdrawals)
Owner
Pause/resume either side independently. Emits DepositWithdrawalStatusChanged.
emergencyWithdraw(IERC20 token, address destinationAddr)
Owner
Emergency sweep of tokens to a safe destination; paired with pulling all strategy funds back into the vault.
User-facing Functions
Curators rarely call these, but depositor behavior drives liquidity planning, so the flows must be understood:
Function
Caller
Purpose and notes
deposit(uint256 assets, address receiver)
User/custodian
Deposit underlying assets; returns shares minted.
requestRedeem(uint256 shares, address receiverAddr, address holderAddr)
User/custodian
Starts the epoch redemption flow; returns assets owed and the claimable epoch.
claim(uint256 year, uint256 month, uint256 day, address receiverAddr)
Anyone (for the registered receiver)
Completes a matured redemption; returns assetsClaimed and sharesBurned.
instantRedeem(uint256 shares, address receiverAddr, address holderAddr)
User/custodian
Immediate exit, fee applies, served from the buffer.
previewDeposit , previewRedeem , previewInstantRedemption
Anyone (view)
Simulation surfaces for frontends and reconciliation.
Last updated
