Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build FRAX/USDC EIP-4626 vault #1

Open
3 tasks
0xtuytuy opened this issue Sep 12, 2022 · 0 comments
Open
3 tasks

Build FRAX/USDC EIP-4626 vault #1

0xtuytuy opened this issue Sep 12, 2022 · 0 comments

Comments

@0xtuytuy
Copy link
Contributor

Is your feature request related to a problem? Please describe.
No problem, the goal is to increase TVL in the protocol and the number of CVX rewards $ALLUO lockers earns.

This is related to the white paper here: https://www.notion.so/alluo/Yield-booster-933737d27e1f4808b425081f3ecbd60c

Describe the solution you'd like
This task is to build the first part of the Yield Booster product, the vault. The vault should take in base assets, create the LP on Curve, and issue the AlluoBoostedXXX token to the user.

We would like to use the ERC-4626 standard (described here by open Zepplin: https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#ERC4626) and implement the UX improvements that come with EIP-2612 as well.

This issue includes:

  • create the template vault to create more AlluoBoostedXXX tokens
  • implement the AlluoBoostedFraxUsdc
  • implement the wrapper that will convert the USDC and FRAX into LP and then deposit them into the AbFraxUsdc vault

The AlluoBoostedFraxUsdc should be able to take in USDC or FRAX tokens and invests them in the Frax/Usdc pool on the Curve (https://curve.fi/fraxusdc) then move the LP token to the booster pool (issue to be created)

The AbFraxUsdc vault should implement all the standard functions described in the ERC:

The vault should then be complemented by a wrapper contract which will actually be used by the Alluo webapp and mobile app to interact with this boosted pool. This contract should implement the following functions:

  • getBalances(address, address = 0x) -> this should return the underlying balance of the tokens addresses passed. So in the Frax / USDC case, you would be able to query the view function with both USDC and FRAX addresses and it would give back the amount of USDC or FRAX you are able to claim back from the vault if you are to unwind your LP
  • getRewardsBalance() -> this function would return the balance in reward from the boost pool for the Frax/Usdc case if it is attached to the boost pool Cvx/ETH it would return how much ETH and how much CVX a share of the vault is entitled to.

Describe alternatives you've considered
this is the only standard out there for now, so better than building our own stuff!

Additional context
This task is linked to the booster pool which will be described the next task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant