RouterUtil
Last updated
Last updated
RouterUtil.sol
provides miscellaneous utils and preview functions related to Router executions.
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 |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
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.
Estimates the amount of IBT required to perform a flash swap to obtain a specific amount of YT.
Estimates the amount of YT that can be obtained by providing a specific amount of IBT in a flash swap.
Estimates the amount of IBT that can be obtained by swapping a specific amount of YT.
Estimate the required input amount of a token (dx
) for a Curve pool swap, given a target output amount (targetDy
).
Estimate the amount of LP tokens the user will get by routing assets for LP tokens (see Routing).
Estimate the amount of LP tokens the user will get by routing IBTs for LP tokens (see Routing).
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.
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).
Estimate the amount of IBTs a user will get for burning _lpAmount
LP tokens and redeeming PT for IBT. (see Routing).
Estimate the amounts of IBT and PT received for burning _lpAmount
LP tokens.
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 |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
Input Parameter | Type | Description |
---|---|---|
Return Parameter | Type | Description |
---|---|---|
_curvePool
address
The address of the curve pool contract
_i
uint256
The input token index
_j
uin256
The output token index
uint256
The quote for the exchange rate of _
i
for _
j
_inputIBTAmount
address
The amount of IBT to convert
_curvePool
uint256
The address of the curve pool contract
ytAmount
uint256
An upper bound on the YT amount expected
_curvePool
address
The address of the curve pool contract
_outputYTAmount
uint256
The desired YT amount
inputIBTAmount
uint256
The estimated IBT amount required for the swap
borrowedIBTAmount
uint256
The calculated IBT amount to be borrowed in the flash swap.
_curvePool
address
The address of the curve pool contract
_inputIBTAmount
uint256
IBT amount for the swap.
minGuessOutputYTAmount
uint256
The minimum estimated YT obtained from the swap.
maxGuessOutputYTAmount
uint256
The maximum estimated YT obtained from the swap.
borrowedIBTAmount
uint256
The calculated IBT amount to be borrowed in the flash swap.
_curvePool
address
The address of the curve pool to trade in
_inputYTAmount
uint256
The YT amount provided for the swap.
outputIBTAmount
uint256
Estimated IBT amount obtainable from the swap.
borrowedIBTAmount
uint256
The calculated IBT amount to be borrowed in the flash swap.
curvePool
address
The address of the curve pool contract
i
uint256
The index of the input token in the Curve pool.
j
uint256
The index of the output token in the Curve pool.
targetDy
uint256
The desired output amount in the swap.
guess
uint256
The estimated input amount (dx
) that should be provided to the Curve pool to obtain the targetDy
.
_curvePool
address
The address of the curve pool contract
_assets
uint256
The amount of assets to deposit as total liquidity.
minMintAmount
uint256
The estimated amount of Curve LP tokens
curvePool
address
The address of the curve pool contract
_ibts
uint256
The amount of ibts to deposit as total liquidity.
minMintAmount
uint256
The estimated amount of Curve LP tokens
_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
minMintAmount
uint256
The estimated amount of Curve LP tokens
_curvePool
address
The address of the curve pool contract
_lpAmount
uint256
The amount of lp tokens to burn
assets
uint256
The estimated assets withdrawn from the pool.
_curvePool
address
The address of the curve pool contract
_lpAmount
uint256
The amount of lp tokens to burn
ibts
uint256
The estimated IBTs withdrawn from the pool.
_curvePool
address
The address of the curve pool contract
_lpAmount
uint256
The amount of lp tokens to burn
minAmounts
uint256[2]
The estimated amounts of IBTs and PTs withdrawn from the pool.
_curvePool
address
The address of the curve pool contract
_lpAmount
uint256
The amount of LP tokens to burn
_i
uin256
The index of the token to withdraw
minAmounts
uint256
The estimated amounts of token withdrawn