WAuraPools
The WAuraPools
contract is a wrapper for leveraged liquidity provider (LP) tokens on the Blueberry Protocol. The contract allows users to mint and burn ERC-1155 tokens representing their LP positions, while also allowing them to interact with the underlying rewards of the associated pools.
Key Features
Inherits from OpenZeppelin's
ERC1155Upgradeable
,ReentrancyGuardUpgradeable
,OwnableUpgradeable
, andEnsureApprove
contracts.Implements
IERC20Wrapper
andIWAuraPools
interfaces.Mints and burns wrapped LP tokens (ERC-1155 tokens) while interacting with the underlying rewards.
Functions
initialize
Initializes the contract with the given AURA token and Aura Pools contract addresses.
function initialize(
address aura_,
address auraPools_
) external initializer;
encodeId
Encodes the given pool ID and AURA per share value into an ERC-1155 token ID.
function encodeId(
uint256 pid,
uint256 auraPerShare
) public pure returns (uint256 id);
decodeId
Decodes the given ERC-1155 token ID into its pool ID and AURA per share value.
function decodeId(
uint256 id
) public pure returns (uint256 gid, uint256 auraPerShare);
getUnderlyingToken
Returns the underlying ERC20 token address for the given ERC-1155 token ID.
function getUnderlyingToken(
uint256 id
) external view override returns (address uToken);
getVault
Returns the Balancer vault associated with the given Balancer pool token.
solidityCopy codefunction getVault(address bpt) public view returns (IBalancerVault);
getPoolTokens
Returns the tokens, balances, and last changed block for the given Balancer pool token.
function getPoolTokens(
address bpt
)
external
view
returns (
address[] memory tokens,
uint256[] memory balances,
uint256 lastChangedBlock
);
getPool
Returns the Balancer pool address and pool ID associated with the given Balancer pool token and pool ID.
function getPool(
address bpt,
uint256 pid
) external view returns (address, uint256);
getPoolInfoFromPoolId
Returns detailed information about the pool associated with the given pool ID.
function getPoolInfoFromPoolId(
uint256 pid
)
public
view
returns (
address lptoken,
address token,
address gauge,
address crvRewards,
address stash,
bool shutdown
);
pendingRewards
Returns the pending rewards for the given ERC-1155 token ID and amount.
function pendingRewards(
uint256 tokenId,
uint256 amount
)
public
view
override
returns (address[] memory tokens, uint256[] memory rewards);
mint
Mints wrapped LP tokens (ERC-1155 tokens) for the given pool ID and amount.
function mint(
uint256 pid,
uint256 amount
) external nonReentrant returns (uint256 id);
burn
Burns the given ERC-1155 token ID and amount to redeem the underlying LP tokens and associated rewards.
function burn(
uint256 id,
uint256 amount
) external nonReentrant returns (address[] memory rewardTokens, uint256[] memory rewards);
Last updated