ITranchePool

Git Source

Inherits: IERC4626Upgradeable

Functions

portfolio

the associated portfolio for this tranche pool

function portfolio() external view returns (IPortfolio portfolio);

Returns

NameTypeDescription
portfolioIPortfolioThe associated portfolio

ceiling

the ceiling for this tranche pool

function ceiling() external view returns (uint256 ceiling);

Returns

NameTypeDescription
ceilinguint256The ceiling value

availableLiquidity

available liquidity tracked by the token balance tracker

function availableLiquidity() external view returns (uint256);

Returns

NameTypeDescription
<none>uint256The available liquidity

waterfallIndex

the waterfall index for this tranche pool. 0 is equity and 1 is senior

function waterfallIndex() external view returns (uint256 waterfallIndex);

Returns

NameTypeDescription
waterfallIndexuint256The waterfall index

convertToSharesCeil

Converts a given amount of assets to shares (rounded up)

function convertToSharesCeil(uint256 assets) external view returns (uint256 shares);

Parameters

NameTypeDescription
assetsuint256The amount of assets to convert

Returns

NameTypeDescription
sharesuint256The equivalent amount of shares

convertToAssetsCeil

Converts a given amount of shares to assets (rounded up)

function convertToAssetsCeil(uint256 shares) external view returns (uint256 assets);

Parameters

NameTypeDescription
sharesuint256The amount of shares to convert

Returns

NameTypeDescription
assetsuint256The equivalent amount of assets

setPortfolio

Sets the portfolio for this tranche pool

function setPortfolio(IPortfolio _portfolio) external;

Parameters

NameTypeDescription
_portfolioIPortfolioThe new portfolio to set

setDepositController

Sets the deposit controller for this tranche pool

function setDepositController(IDepositController newController) external;

Parameters

NameTypeDescription
newControllerIDepositControllerThe new deposit controller to set

setWithdrawController

Sets the withdraw controller for this tranche pool

function setWithdrawController(IWithdrawController newController) external;

Parameters

NameTypeDescription
newControllerIWithdrawControllerThe new withdraw controller to set

setCeiling

Sets the ceiling for this tranche pool

function setCeiling(uint256 newCeiling) external;

Parameters

NameTypeDescription
newCeilinguint256The new ceiling to set

onPortfolioStart

Called when the portfolio starts

function onPortfolioStart() external returns (uint256);

Returns

NameTypeDescription
<none>uint256The balance of the tranche pool

increaseTokenBalance

Increases the token balance of the tranche pool by the given amount

function increaseTokenBalance(uint256 amount) external;

Parameters

NameTypeDescription
amountuint256The amount to increase the token balance by

Events

DepositControllerChanged

event DepositControllerChanged(IDepositController indexed controller);

DepositFeePaid

event DepositFeePaid(address indexed receiver, uint256 fee);

WithdrawControllerChanged

event WithdrawControllerChanged(IWithdrawController indexed controller);

WithdrawFeePaid

event WithdrawFeePaid(address indexed receiver, uint256 fee);

CeilingChanged

event CeilingChanged(uint256 newCeiling);

Errors

PortfolioAlreadySet

error PortfolioAlreadySet();

NotPortfolio

error NotPortfolio();

PortfolioPaused

error PortfolioPaused();

MaxDepositExceeded

error MaxDepositExceeded();

MaxMintExceeded

error MaxMintExceeded();

MaxWithdrawExceeded

error MaxWithdrawExceeded();

MaxRedeemExceeded

error MaxRedeemExceeded();

InsufficientAllowance

error InsufficientAllowance();