Contract Map
Source tree
Section titled “Source tree”/home/code/maia/solidity/raises/src/contracts
Core contracts
Section titled “Core contracts”PutManager.sol
Section titled “PutManager.sol”Primary orchestration contract for raise operations:
- Collateral whitelisting and caps
- Investor entry (
invest) - Exit paths (
divest,divestUnderlying,withdrawFT) - Transferability toggle (
enableTransferable) - Capital release tracking (
capitalDivesting)
pFT.sol
Section titled “pFT.sol”Position token contract used by PutManager.
- Current implementation uses ERC-721 position tokens
- Stores per-position state (collateral token, amount, FT allocated, strike, etc.)
- Supports partial
divestandwithdrawFTupdates
ftYieldWrapper.sol
Section titled “ftYieldWrapper.sol”Collateral wrapper and strategy router:
depositandwithdrawpaths for put servicing- Strategy list management
- Yield claiming hooks
- Circuit breaker integration (
checkAndRecordOutflow,recordInflow)
AaveStrategy.sol
Section titled “AaveStrategy.sol”Default strategy implementation:
- Supplies collateral to Aave V3
- Tracks principal via strategy share supply
- Exposes
yield = valueOfCapital - totalSupply - Supports optional
withdrawUnderlyingpath for position-token exit
CircuitBreaker.sol
Section titled “CircuitBreaker.sol”Dual-buffer rate limiter for inflows/outflows:
- Main replenishing buffer
- Elastic buffer tracking recent inflows
- Protected-contract registry
- Owner-configurable windows and max draw rate
YieldClaimer.sol
Section titled “YieldClaimer.sol”Yield routing helper for fee splits and treasury flows.
FlyingTulipOracle.sol
Section titled “FlyingTulipOracle.sol”Oracle adapter used for deposit-time pricing and FT-per-USD conversion.
Important state concepts
Section titled “Important state concepts”collateralSupply[token]: active backing collateral per tokencapitalDivesting[token]: released collateral available for project pullftOfferingSupply: FT available for saleftAllocated: FT currently allocated to active positions
Note on terminology
Section titled “Note on terminology”Mechanism docs in this site follow current FT implementation terms:
- Position rights are represented by
pFTERC-721 position NFTs - Core user flows map to
hold,divest/divestUnderlying, andwithdrawFT