LPPriceProvider

Overview

License: MIT

contract LPPriceProvider is PriceProvider, Initializable, AccessControlUpgradeable

The LPPriceProvider contract is the contract that provides the functionality of getting the latest price from Uniswap V2 LP tokens.

Contract that provides the functionality of getting the latest price from Uniswap V2 LP tokens. Inherit from PriceProvider.

Structs info

LPMetadata

struct LPMetadata {
	bool isActive;
	address base;
}

Events info

SetLPTokenAndPriceProvider

event SetLPTokenAndPriceProvider(address indexed token, address indexed priceProvider)

Emitted when the LPToken and its corresponding price provider are set.

Parameters:

ChangeActive

event ChangeActive(address indexed token, bool active)

Emitted when the active status of a token changes.

Parameters:

SetTokenDecimals

event SetTokenDecimals(uint8 newTokenDecimals)

Emitted when the token decimals is set.

Parameters:

Constants info

MODERATOR_ROLE (0x797669c9)

bytes32 constant MODERATOR_ROLE = keccak256("MODERATOR_ROLE")

State variables info

tokenDecimals (0x3b97e856)

uint8 tokenDecimals

lpMetadata (0x1e3214d8)

mapping(address => struct LPPriceProvider.LPMetadata) lpMetadata

Modifiers info

onlyModerator

modifier onlyModerator()

Modifier to restrict access to functions to only the contract's moderator.

Functions info

initialize (0x8129fc1c)

function initialize() public initializer

Initializes the LPPriceProvider contract by setting up the access control roles and the number of decimals for the USD price.

setTokenDecimals (0xf2cf47be)

function setTokenDecimals(uint8 newTokenDecimals) public onlyModerator

Sets the number of decimals used by the token. Only the moderator can call this function.

Parameters:

setLPTokenAndProvider (0x98a0fb36)

function setLPTokenAndProvider(
    address lpToken,
    address provider
) public onlyModerator

Sets the LP token and price provider for the given LP token address.

Requirements:

  • lpToken cannot be the zero address.

  • provider cannot be the zero address.

Parameters:

changeActive (0x258a4532)

function changeActive(address token, bool active) public override onlyModerator

Changes the active status of a token in the LPPriceProvider contract.

Requirements:

  • The token must be listed in the contract.

  • Only the contract moderator can call this function.

Parameters:

isListed (0xf794062e)

function isListed(address token) public view override returns (bool)

Checks if a token is listed in the LPPriceProvider.

Parameters:

Return values:

isActive (0x9f8a13d7)

function isActive(address token) public view override returns (bool)

Returns whether a token is active or not.

Parameters:

Return values:

getUSDPx (0x89378bc7)

function getUSDPx(address lpToken) public view returns (uint256)

Returns the value of the given input as ETH per unit, multiplied by 2**112.

Parameters:

Return values:

getPrice (0x41976e09)

function getPrice(
    address lpToken
) public view override returns (uint256 priceMantissa, uint8 priceDecimals)

Returns the price of the given LP token in USD.

Parameters:

Return values:

getPriceDecimals (0x1b30aafc)

function getPriceDecimals() public view override returns (uint8)

Returns the number of decimals used for the price provided by this contract.

Return values:

Last updated