CoreERC-4626 deviations
ERC-4626 Deviation Note — CreatorOVault
CreatorOVault inherits OpenZeppelin’s ERC4626 and presents a recognizable ERC-4626 share token interface. It is not a pure drop-in implementation.
Intentional Deviations
| Area | Standard ERC-4626 Behavior | CreatorOVault Behavior |
|---|---|---|
| Large withdrawals | Instant | ≥ largeWithdrawalThreshold must go through queueWithdrawal → delay → claimQueuedWithdrawal |
| Preview functions | Symmetric | previewRedeem subtracts queued shares. previewDeposit / previewMint / previewWithdraw remain vanilla OZ and can be inaccurate when queues or strategies are active |
| redeem / withdraw | 3-argument only | Also exposes 4-argument versions with Yearn-style maxLoss (bps) |
| Access control | Open | deposit / mint gated by whitelist + pause + shutdown. Exit paths have different guards |
totalAssets | asset.balanceOf(address(this)) | Includes strategy marks + idle clamp via OVaultViewLib |
| Virtual shares | Optional | Fixed _decimalsOffset() = 3 (1000 virtual shares) for inflation protection |
Integrator Guidance
- Prefer
previewRedeemwhen queued withdrawals may be non-zero. - Do not assume instant liquidity for large positions.
- Treat this vault as ERC-4626 + protocol extensions, not a vanilla implementation.
- The 4-arg
redeem/withdrawoverloads are intentional (Yearn-style maxLoss).
Design Stance
The contract is an ABI + storage facade. Core logic lives in modules. Future product features should not be added as new methods on CreatorOVault.
Integrator walkthrough (queues, previews, maxLoss): How to integrate with CreatorOVault.