SwapPool
Swap pool contract. May or may not be covered by a backstop pool. Conceptionally, there are two ways to temporarily disable a pool: The owner can either pause the pool, disabling deposits, swaps & backstop, or the owner can set the pool cap to zero which only prevents deposits. The former is for security incidents, the latter for phasing out a pool.
SwapFees
totalLiabilities
The liabilities of the pool Cannot just use totalSupply() as the totalLiabilities will accumulate also the LP fees from swaps. This is fixed point number using the decimals of this pool
reserve
The amount of pool tokens usable for swaps This is fixed point number using the decimals of this pool
reserveWithSlippage
The amount of pool tokens plus the slippage The relationship with reserve is: reserveWithSlippage = slippageCurve.psi(reserve, totalLiabilities) However this relationship will never hold precisely and will deviate slightly for numerical reasons!! All code needs to work even if this relationship does not hold This is fixed point number using the decimals of this pool
maxCoverageRatioForSwapIn
safeRedeemPercentage
safeRedeemInterval
lastBackstopBurnTimestamp
lastAvailableAmountForSafeRedeem
protocolTreasury
lastDepositAt
lastDepositAmount
backstop
router
router instance for this swap pool
slippageCurve
deposit
Deposits amount of tokens into pool Will change cov ratio of pool, will increase delta to 0
Parameters
_depositAmount
uint256
The amount to be deposited, an amount of pool tokens
_minLPAmountOut
uint256
Minimum amount of pool lp tokens to mint
_deadline
uint256
Unix timestamp after which the transaction will revert
Return Values
sharesToMint_
uint256
Total number of pool lp tokens minted
fee_
int256
The slippage reward (a negative fee), fixed point number using the pool decimals
quoteDeposit
Get a quote for the effective amount of tokens for a deposit
Parameters
_depositAmount
uint256
The amount to be deposited
Return Values
sharesToMint_
uint256
Total number of pool LP tokens to be minted (incl. slippage)
slippageReward_
uint256
The reward due to slippage, fixed point number using the pool decimals
withdraw
Withdraws liquidity amount of asset ensuring minimum amount required
Parameters
_sharesToBurn
uint256
The liquidity to be withdrawn, an amount of LP tokens
_minimumAmount
uint256
The minimum amount of returned pool tokens that will be accepted by user
_deadline
uint256
Unix timestamp after which the transaction will revert
Return Values
payoutAmount_
uint256
Amount of pool tokens withdrawn after applying withdrawal fee
fee_
int256
The penalty due to slippage (a positive fee), fixed point number using the pool decimals
quoteWithdraw
Get a quote for the effective amount of tokens for a withdrawal
Parameters
_sharesToBurn
uint256
Total number of pool LP tokens to be burned
Return Values
payoutAmount_
uint256
The amount to be withdrawn (incl. slippage)
slippagePenalty_
uint256
The penalty due to slippage
backstopBurn
Burns swap pool LP tokens of owner, will get compensated using backstop liquidity (reedem swap pool shares) Can only be invoked by backstop pool, disabled when pool is paused
Parameters
_owner
address
The LP's address whose LP tokens should be burned
_sharesToBurn
uint256
The number of LP tokens of this pool to burn
Return Values
amount_
uint256
The amount of asset()
tokens that the burned shares were worth
getMaxRedeemSwapPoolShares
Get the maximum amount of swap pool LP tokens that can be burned (CR <= 100%)
Return Values
maxShares_
uint256
The maximum amount of LP tokens that can be burned
backstopDrain
For backstop pool to withdraw liquidity if swap pool's coverage ratio > 100% Can only be invoked by backstop pool
Parameters
_amount
uint256
The amount of asset()
tokens to be moved out of swap pool
_recipient
address
Address to send the funds to
Return Values
swapAmount_
uint256
The amount of asset()
tokens that are transfered to _recipient
quoteBackstopDrain
Get a quote for the effective amount of tokens for a backstop drain
Parameters
_amount
uint256
The amount of tokens to be withdrawn for backstop liquidity
Return Values
swapAmount_
uint256
The amount to be withdrawn (incl. slippage)
quoteSwapInto
Get a quote for the effective amount of tokens for a swap into
Parameters
_amount
uint256
The amount of pool tokens to swap into the pool
Return Values
effectiveAmount_
uint256
Effective amount, incl. slippage (penalty or rewards)
quoteSwapOut
Get a quote for the effective amount of tokens, incl. slippage and fees
Parameters
_amount
uint256
The amount of pool asset to swap out of the pool
Return Values
effectiveAmount_
uint256
Effective amount, incl. slippage and fees
protocolFeeWithSlippage_
uint256
The protocol fee that is to be sent to the treasury
effectiveLpFee_
uint256
The actual LP fee – totalLiabilities should be incremented by this value
backstopFee_
uint256
The effective backstop fee
coverage
returns pool coverage ratio
Return Values
reserves_
uint256
Current amount of usable asset()
tokens (without slippage)
liabilities_
uint256
total amount of asset
deposited by liquidity providers
getExcessLiquidity
Computes the excess liquidity that forms that valuation of the backstop pool is defined as b + C - B - L where
b is reserve
C is the amount of
asset()
tokens in the poolB is reserveWithSlippage
L is totalLiabilities The excess liquidity is a fixed point number using the decimals of this pool
Return Values
excessLiquidity_
int256
The total excess liquidity of this pool, can be negative
sharesTargetWorth
Returns the worth of an amount of pool shares (LP tokens) in underlying principle
Parameters
_sharesToBurn
uint256
The number of LP tokens to burn
Return Values
amount_
uint256
The amount of asset()
tokens that the shares are worth
swapFees
Return the configured swap fees for this pool
Return Values
lpFee_
uint256
Fee that benefits the pool's LPers, in 0.0001% (e.g. 300 -> 0.0300%)
backstopFee_
uint256
Fee that benefits the backstop pool, in 0.0001% (e.g. 150 -> 0.0150%)
protocolFee_
uint256
Fee that benefits the protocol, in 0.0001% (e.g. 50 -> 0.0050%)
depositingUnfreezesAt
Last updated