RouterUtil
Overview
RouterUtil.sol
provides miscellaneous utils and preview functions related to Router executions.
spotExchangeRate
Gives the spot exchange rate of token i in terms of token j.
For example spotExchangeRate(any, 1, 0)
gives you the PT/IBT quote (how much IBT is worth one PT).
in IBT while spotExchangeRate(any, 0, 1)
gives you the IBT/PT quote (how much PT is worth one IBT).
For the IBT-PT curve pools deployed with the factory, the coin at index 0 is the Interest Bearing Token and the coin at index 1 is the Principal Token.
Exchange rate is in 18 decimals
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The input token index |
| uin256 | The output token index |
Return Parameter | Type | Description |
---|---|---|
uint256 | The quote for the exchange rate of |
convertIBTToYTSpot
Returns the maximal amount of YT one can obtain with a given amount of IBT (i.e without fees or slippage).
This function is used for setting initial guess for the root finding algorithms used when performing flash swaps. This method should not be used to evaluate a precise YT price.
Input Parameter | Type | Description |
---|---|---|
| address | The amount of IBT to convert |
| uint256 | The address of the curve pool contract |
Return Parameter | Type | Description |
---|---|---|
| uint256 | An upper bound on the YT amount expected |
previewFlashSwapIBTToExactYT
Estimates the amount of IBT required to perform a flash swap to obtain a specific amount of YT.
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The desired YT amount |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated IBT amount required for the swap |
| uint256 | The calculated IBT amount to be borrowed in the flash swap. |
previewFlashSwapExactIBTToYT
Estimates the amount of YT that can be obtained by providing a specific amount of IBT in a flash swap.
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | IBT amount for the swap. |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The minimum estimated YT obtained from the swap. |
| uint256 | The maximum estimated YT obtained from the swap. |
| uint256 | The calculated IBT amount to be borrowed in the flash swap. |
previewFlashSwapExactYTToIBT
Estimates the amount of IBT that can be obtained by swapping a specific amount of YT.
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool to trade in |
| uint256 | The YT amount provided for the swap. |
Return Parameter | Type | Description |
---|---|---|
| uint256 | Estimated IBT amount obtainable from the swap. |
| uint256 | The calculated IBT amount to be borrowed in the flash swap. |
getDx
Estimate the required input amount of a token (dx
) for a Curve pool swap, given a target output amount (targetDy
).
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The index of the input token in the Curve pool. |
| uint256 | The index of the output token in the Curve pool. |
| uint256 | The desired output amount in the swap. |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated input amount ( |
previewAddLiquidityWithAsset
Estimate the amount of LP tokens the user will get by routing assets for LP tokens (see Routing).
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of assets to deposit as total liquidity. |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated amount of Curve LP tokens |
previewAddLiquidityWithIBT
Estimate the amount of LP tokens the user will get by routing IBTs for LP tokens (see Routing).
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of ibts to deposit as total liquidity. |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated amount of Curve LP tokens |
previewAddLiquidity
Estimate the amount of LP tokens the user will get by adding amounts
liquidity. amounts
is an array of the amount for token 0, the IBT and for token 1, the Principal Token.
Input Parameter | Type | Description |
---|---|---|
_curvePool | address | The address of the curve pool contract |
_amounts | uint256[2] | The amounts of token 0 (IBT) and token 1 (PT) to provide as liquidity |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated amount of Curve LP tokens |
previewRemoveLiquidityForAsset
Estimate the amount of underlying token (assets) a user will get for burning _lpAmount
LP tokens and redeeming PT and IBT for underlying. (see Routing).
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of lp tokens to burn |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated assets withdrawn from the pool. |
previewRemoveLiquidityForIBT
Estimate the amount of IBTs a user will get for burning _lpAmount
LP tokens and redeeming PT for IBT. (see Routing).
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of lp tokens to burn |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated IBTs withdrawn from the pool. |
previewRemoveLiquidity
Estimate the amounts of IBT and PT received for burning _lpAmount
LP tokens.
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of lp tokens to burn |
Return Parameter | Type | Description |
---|---|---|
| uint256[2] | The estimated amounts of IBTs and PTs withdrawn from the pool. |
previewRemoveLiquidityOneCoin
Estimate the amounts of either IBT or PT received for burning _lpAmount
LP tokens. _i=0
for IBT and _i=1
for PT.
Input Parameter | Type | Description |
---|---|---|
| address | The address of the curve pool contract |
| uint256 | The amount of LP tokens to burn |
| uin256 | The index of the token to withdraw |
Return Parameter | Type | Description |
---|---|---|
| uint256 | The estimated amounts of token withdrawn |
Last updated