CreatorOVaultWrapper
Wraps vault shares into LayerZero OFT tokens for cross-chain transfers.
Purpose
The CreatorOVaultWrapper:
- Wraps vault shares (▢TOKEN) into OFT tokens (■TOKEN)
- Enables cross-chain transfers via LayerZero V2
- Maintains 1:1 wrapping ratio (no dilution)
Key Functions
Wrapping
// Wrap vault shares into OFT tokens
function wrap(uint256 shares) external returns (uint256 oftAmount);
// Unwrap OFT tokens back to vault shares
function unwrap(uint256 oftAmount) external returns (uint256 shares);
View Functions
// Get the vault shares token address
function vaultShares() external view returns (address);
// Get the OFT token address
function shareOFT() external view returns (address);
Wrapping Flow
User has ▢AKITA vault shares
↓
wrapper.wrap(shares)
↓
Vault shares locked in wrapper
↓
■AKITA OFT minted to user
↓
User can bridge via LayerZero
Unwrapping Flow
User has ■AKITA OFT tokens
↓
wrapper.unwrap(oftAmount)
↓
OFT tokens burned
↓
Vault shares released to user
↓
User can redeem from vault
1:1 Ratio
The wrapping ratio is always 1:1:
- 1 ▢AKITA = 1 ■AKITA
- No fees on wrap/unwrap
- No dilution from cross-chain transfers
Integration with GaugeController
When trading fees are collected:
- ShareOFT sends fees to GaugeController
- GaugeController calls
wrapper.unwrap() - Vault shares distributed according to split