IPriceFeed
Interface Description
License: MIT
interface IPriceFeed
This is the price feed contract which is used to fetch the spot prices from the UniswapV2 protocol. There also is a pathfinder built into the contract to find the optimal* path between the pairs
Enums info
PoolInterfaceType
enum PoolInterfaceType {
UniswapV2Interface,
UniswapV3Interface
}
The enum that holds information about the router type
Parameters:
UniswapV2Interface
the Uniswap V2 router V2 type
UniswapV3Interface
the Uniswap V3 quouter V2 type
Structs info
PoolType
struct PoolType {
IPriceFeed.PoolInterfaceType poolType;
address router;
uint24 fee;
}
A struct describing single swapping pool parameters
Parameters:
poolType
enum IPriceFeed.PoolInterfaceType
the interface type of the router
router
address
the address of the router or quoter
fee
uint24
the pool fee (in case of V3 pools)
SwapPath
struct SwapPath {
address[] path;
uint8[] poolTypes;
}
A struct describing a swap path
Parameters:
path
address[]
the tokens swapped alongside the path
poolTypes
uint8[]
the v2/v3 pool types alongside the path
Functions info
addPathTokens (0xf973dc01)
function addPathTokens(address[] calldata pathTokens) external
This function sets path tokens that will be used in the pathfinder
Parameters:
pathTokens
address[]
the array of tokens to be added into the path finder
removePathTokens (0x5de49e39)
function removePathTokens(address[] calldata pathTokens) external
This function removes path tokens from the pathfinder
Parameters:
pathTokens
address[]
the array of tokens to be removed from the pathfinder
setPoolTypes (0x3cbc6757)
function setPoolTypes(IPriceFeed.PoolType[] calldata poolTypes) external
This function sets pool types that will be used in the pathfinder
Parameters:
poolTypes
struct IPriceFeed.PoolType[]
the array of pool types
getPriceOut (0x70e48e96)
function getPriceOut(
address inToken,
address outToken,
uint256 amountIn
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceOut" function with an empty optionalPath. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountIn
uint256
the amount of inToken to be exchanged (with 18 decimals)
Return values:
amountOut
uint256
the received amount of outToken after the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens and pools path that will be used during the swap
getPriceIn (0xd48c3202)
function getPriceIn(
address inToken,
address outToken,
uint256 amountOut
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceIn" function with with an empty optionalPath. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountOut
uint256
the amount of outToken to be received (with 18 decimals)
Return values:
amountIn
uint256
required amount of inToken to execute the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceOutUSD (0xb4c05b8c)
function getNormalizedPriceOutUSD(
address inToken,
uint256 amountIn
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
The same as "getPriceOut" with "outToken" being native USD token
Parameters:
inToken
address
the token to be exchanged from
amountIn
uint256
the amount of inToken to exchange (with 18 decimals)
Return values:
amountOut
uint256
the received amount of native USD tokens after the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceInUSD (0x715c6baf)
function getNormalizedPriceInUSD(
address inToken,
uint256 amountOut
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
The same as "getPriceIn" with "outToken" being USD token
Parameters:
inToken
address
the token to get the price of
amountOut
uint256
the amount of USD to be received (with 18 decimals)
Return values:
amountIn
uint256
the required amount of inToken to execute the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceOutDEXE (0x291bcd52)
function getNormalizedPriceOutDEXE(
address inToken,
uint256 amountIn
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
The same as "getPriceOut" with "outToken" being DEXE token
Parameters:
inToken
address
the token to be exchanged from
amountIn
uint256
the amount of inToken to exchange (with 18 decimals)
Return values:
amountOut
uint256
the received amount of DEXE tokens after the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceInDEXE (0x9180f690)
function getNormalizedPriceInDEXE(
address inToken,
uint256 amountOut
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
The same as "getPriceIn" with "outToken" being DEXE token
Parameters:
inToken
address
the token to get the price of
amountOut
uint256
the amount of DEXE to be received (with 18 decimals)
Return values:
amountIn
uint256
the required amount of inToken to execute the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
totalPathTokens (0x9f2f8ce1)
function totalPathTokens() external view returns (uint256)
The function that returns the total number of path tokens (tokens used in the pathfinder)
Return values:
[0]
uint256
the number of path tokens
getPathTokens (0x547c176b)
function getPathTokens() external view returns (address[] memory)
The function to get the list of path tokens
Return values:
[0]
address[]
the list of path tokens
getPoolTypesLength (0x14980a8d)
function getPoolTypesLength() external view returns (uint256)
The function that returns the total number of pool types used in the pathfinder
Return values:
[0]
uint256
the number of pool types
getPoolTypes (0x2fbc3b93)
function getPoolTypes() external view returns (IPriceFeed.PoolType[] memory)
The function to return the list of pool types used in the pathfinder
Return values:
[0]
struct IPriceFeed.PoolType[]
the list of pool types
isSupportedPathToken (0xa5b0de41)
function isSupportedPathToken(address token) external view returns (bool)
This function checks if the provided token is used by the pathfinder
Parameters:
token
address
the token to be checked
Return values:
[0]
bool
true if the token is used by the pathfinder, false otherwise
getExtendedPriceOut (0x054889da)
function getExtendedPriceOut(
address inToken,
address outToken,
uint256 amountIn,
IPriceFeed.SwapPath memory optionalPath
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
This function tries to find the optimal exchange rate (the price) between "inToken" and "outToken" using custom pathfinder and optional specified path. The optimality is reached when the amount of outTokens is maximal
Parameters:
inToken
address
the token to exchange from
outToken
address
the received token
amountIn
uint256
the amount of inToken to be exchanged (in inToken decimals)
optionalPath
struct IPriceFeed.SwapPath
the optional path between inToken and outToken that will be used in the pathfinder
Return values:
amountOut
uint256
amount of outToken after the swap (in outToken decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getExtendedPriceIn (0x76707b6b)
function getExtendedPriceIn(
address inToken,
address outToken,
uint256 amountOut,
IPriceFeed.SwapPath memory optionalPath
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
This function tries to find the optimal exchange rate (the price) between "inToken" and "outToken" using custom pathfinder and optional specified path. The optimality is reached when the amount of inTokens is minimal
Parameters:
inToken
address
the token to exchange from
outToken
address
the received token
amountOut
uint256
the amount of outToken to be received (in inToken decimals)
optionalPath
struct IPriceFeed.SwapPath
the optional path between inToken and outToken that will be used in the pathfinder
Return values:
amountIn
uint256
amount of inToken to execute a swap (in outToken decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedExtendedPriceOut (0x62d78340)
function getNormalizedExtendedPriceOut(
address inToken,
address outToken,
uint256 amountIn,
IPriceFeed.SwapPath memory optionalPath
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceOut" function. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountIn
uint256
the amount of inToken to be exchanged (with 18 decimals)
optionalPath
struct IPriceFeed.SwapPath
the optional path between inToken and outToken that will be used in the pathfinder
Return values:
amountOut
uint256
the received amount of outToken after the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedExtendedPriceIn (0x9ebb6389)
function getNormalizedExtendedPriceIn(
address inToken,
address outToken,
uint256 amountOut,
IPriceFeed.SwapPath memory optionalPath
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceIn" function. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountOut
uint256
the amount of outToken to be received (with 18 decimals)
optionalPath
struct IPriceFeed.SwapPath
the optional path between inToken and outToken that will be used in the pathfinder
Return values:
amountIn
uint256
the required amount of inToken to execute the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceOut (0xb6ccb44d)
function getNormalizedPriceOut(
address inToken,
address outToken,
uint256 amountIn
) external returns (uint256 amountOut, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceOut" function with an empty optionalPath. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountIn
uint256
the amount of inToken to be exchanged (with 18 decimals)
Return values:
amountOut
uint256
the received amount of outToken after the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap
getNormalizedPriceIn (0x2bcbc598)
function getNormalizedPriceIn(
address inToken,
address outToken,
uint256 amountOut
) external returns (uint256 amountIn, IPriceFeed.SwapPath memory path)
Shares the same functionality as "getExtendedPriceIn" function with an empty optionalPath. It accepts and returns amounts with 18 decimals regardless of the inToken and outToken decimals
Parameters:
inToken
address
the token to exchange from
outToken
address
the token to exchange to
amountOut
uint256
the amount of outToken to be received (with 18 decimals)
Return values:
amountIn
uint256
required amount of inToken to execute the swap (with 18 decimals)
path
struct IPriceFeed.SwapPath
the tokens path that will be used during the swap