beefyfinance / beefy-app Goto Github PK
View Code? Open in Web Editor NEWThis project forked from yfii/dfi
Multichain yield optimizer
Home Page: https://beefy.finance/
License: MIT License
This project forked from yfii/dfi
Multichain yield optimizer
Home Page: https://beefy.finance/
License: MIT License
Add 1-click option to configure BSC network in Metamask and switch to it.
Implemented by PCS recently
https://twitter.com/PancakeSwap/status/1369177840915148800
with this commit
pancakeswap/pancake-frontend@35e83a5
This is a feature that I've been meaning to add for some time, and I just saw that Alpha Homora has it implemented.
They display the trading APY of holding an LP and add it to the total as well. This is relevant because a lot of the time, you're comparing the profitability of farming with an LP as opposed to holding an asset like BNB. In this sense, the trading profits are part of the equation, and it would be good to be explicit about it.
Right now, app.beefy load by default with Hide Zero Balances ticked on. This could cause user not to see new vault release.
I'd suggested to had a 'Featured' vault option. That way when a new vault is release , people can see it.
Featured vault could be rotated every week. Also, an announcement page or just a rotating list could be usefull to display at top? At some point, a lot of user will not be on Discord, or twitter and will only get their info from the webpage.
From: @power
Users benefit if they withdraw as soon as a harvest happened. This is because unharvested gains are not realized by someone who exits the system.
It'd be good to add two things to our UI and I don't think it would be hard. It's just a matter of finding a place where it's usable.
A "time since last harvest" counter. So that users can tell if a long time has gone by since the last harvest and they should maybe wait until the next one.
A Harvest button. Or a "Withdrawal with harvest". Most harvests right now cost $0.25-$0.35 which is really cheap. Users with more than $x would benefit from harvesting before exiting. Or you might be in a rush because you want to use the locked coins for a trade, in which case you might be better off harvesting and then withdrawing.
This last point also continues the path towards decentralization of the system.
I've seen a few projects that have "Binance Wallet" as a connector, besides MetaMask and the others.
Might be interesting to add it
As the first batches of audits start to come out, we will begin to have more strategies and vaults with Certiik audits.
It would be good to have a place in our UI to show that certain contracts are audited.
We might have to do a separation between the vault contract being audited, and the strategy contract being audited.
I've seen a few requests to show the vault/strategy addresses in the UI with links to bscscan. Maybe this is the time to add them and add the little shield when relevant.
Very frequently, when users report issues with not seeing certain vaults, it's due to past filters continuing to be applied.
Having these saved in localStorage is not a bad idea to keep (166a2d6), but there should be quick access to reset this filter. This will mitigate several back-and-forth queries of "Do you have filter set?", as well give other users an easy way to knowingly reset their settings.
This could be a good metric to have front and center in the app homepage.
When landing on the page, the language should be the one selected in the header menu. If the selected language is English, the texts should be in english.
My system is in French and when I open up the app, the selected language is English but some texts are in French.
Add another filter where users can find vaults which use USDC/USDT/BUSD/DAI/VAI/etc
This could be a misc filter where another option is "LP Tokens" and "Single assets" maybe?
At the moment we use color coding to display the state of vaults. There are various problems. For once, we only have two colors but at least 4 states:
Color coding is also nos very explicit. Having clear labels, or some explicit manner to convey vault state would be better.
As we have more pools, it gets to be more useful for users to have a quick way to only see the pools where they have funds deposited.
This could be a filter, a tab, or anything
When deposit.amount
is a number (e.g. 29.95
not "29.95"
) this throws an exception as numbers don't have a .replace method:
react-dom.production.min.js:101 Uncaught TypeError: x.amount.replace is not a function
at w (DepositSection.js:67)
at onClick (DepositSection.js:192)
at Object.He (react-dom.production.min.js:52)
at Ve (react-dom.production.min.js:52)
at react-dom.production.min.js:53
at Mr (react-dom.production.min.js:100)
at kr (react-dom.production.min.js:101)
at react-dom.production.min.js:113
at Pe (react-dom.production.min.js:292)
at react-dom.production.min.js:50
To reproduce - press the deposit all button; cancel this request in metamask; then press either of deposit or deposit all buttons without changing the value in the box.
I noticed this while implementing the multichain toggle. I don't know if it's the expected outcome.
If you're in a chain like HECO, where we don't currently have single asset vaults. Selecting "Single Assets" in the "Vault type" filter will display all vaults.
Showing no vaults is what would normally happen in my mind. Don't know if there's a better argument to show everything.
Right now the app is designed to work with just one chain, BSC. The farming ecosystem has grown on other chains, like HECO, so we need to adapt the app to handle them.
This can happen in a few different ways.
This is probably not an easy issue to solve, so it will certainly have reward from the Treasury. Or you can ask for a budget before starting work.
Every time a user opens up the app, we're doing a few hundred RPC calls to the BSC nodes. Some users get rate limited and face weird bugs. As we add more vaults, it becomes more of a problem.
We should deploy a Multicall contract on BSC and use it to turn all those requests into 1-3
Having a routable page to a vault would help us in a few ways.
I noticed this while implementing the multichain toggle. I don't know if it's the expected outcome.
It also works this way if you've deposited previously but you withdraw all.
Right now we use custom images for different vaults even if they use the same LP. For example the ETH-BNB vault that uses Pancakeswap has a different image than the ETH-BNB vault that uses jetfuel, or the one from Streetswap.
If we stopped separating token/lp images in folders, and use the same assets for each LP/token it would diminish load time.
We could have at the top a section for 1-3 featured vaults. Maybe these are the latest vaults, one with a particularly high APY, etc
I got 355 BUSD and deposited them into the BUSD x AUTO
vault. I got mooAutoBusd
tokens back. Their quantity was the same as I deposited, but on the UI I saw that the count of deposited money is less. And for now, I have more mooAutoBusd
tokens, than the balance on the website. Is it expected behavior?
Small issue after scroll loading improvement #143.
If scroll down to show additional vaults and then wait for balance refresh - scroll position will be lost and only initial 10 vaults become visible.
Easier to reproduce locally if change fetch interval to 1-3 seconds here:
When balances are too small but higher than 0 it doesn't show when you select Hide Zero Balances.
If you have LP balances like 0.00006482 it isn't showed up in the list when you select that filter. Deposited Vault works though.
App performance is a pain point for our users. With so many things on our place, we haven't had that much time to optimize the app.
It would be great to do an initial scouting of low hanging fruits that we can improve. With that list we can create some specific issues for each improvement.
Lodash is a considerable part of our build right now but we only use it for its "find" function.
We should either replace it for native javascript or just depend on that individual lodash function.
This would increase performance, especially if we're trying to start targeting mobile users more.
Right now our images are oversized. We're uploading 256x256 images, but the max display size seems to be 40x40. There's quite a bit optimization that could be gained by reducing image size.
Remove coins from "Assets" dropdown and keep only vault type there
Sometimes we try new things, and these might carry extra risks. It might be good to be able to mark these vaults as "Experimental" and possibly hide them by default.
We can have another toggle, like the "Hide Zero Values" or "Retired Vaults", where people can see the experimental vaults.
In the future we can have different sections and move these pools into their own section.
While we develop the next version of the Beefy app, or add native a multi-chain feature, the other chain where we have farms is in a different subdomain at https://heco.beefy.finance
## Problem
Users might not check the farms on that chain, or even know that we have farms on HECO already.
It would be good to have a link from our main app into the HECO app. The challenge is how to do it without making the header even more cluttered than what already is.
"Reset Filters" text should be part of i18n instead of just in english.
Like the title says :)
Something like: Network error. Please connect to Binance Smart Chain.
Needs i18n
Right now we're using somewhat of a confusing nomenclature for APYs
Something like 1.15k% is used for example instead of 1150% which would take up the same space but be clearer.
On the TVL side, something like $141.01k takes up the same space than $141,000 and is less clear too.
Revamping this could diminish confusion from newbies and increase retention
We maintain a single codebase for all chains now.
The "/stake" section keeps showing BSC pools though. It would be good to adapt it to show pools relevant to the current chain.
We need to improve how we display our value to our users.
Right now there's little feedback and a good chunk of our more savvy users are using other tools to track the value generated by Beefy. This can range from the BIFI deposit telegram bot, to https://www.yieldwatch.net/ .
The problem is that a good portion of our users either doesn't know about these initiatives, or would prefer to see the value displayed right within the app.
I feel like having more indicators of value, gamification, etc, could increase UX substantially. This increases user retention and decreases friction.
We don't need to reinvent the wheel. It would be enough to see how those platforms are tracking value and do the same. I think that accepting that the estimates will break if someone transfers mooTokens is okay too.
It would be great to filter by asset. For example only show pools which have CAKE, or only pools with DRUGS.
I think that LP tokens which have the asset as one of the pair tokens should also fall wiithin the filter.
While TVL's are being loaded, it should not show 0. Show loading or another indicator instead.
When the app's width is set between 1280px to 960px, there will be missing links such as barn, vote, etc. That would be an issue for anybody who's using the iPad or any tablet that utilises that website width.
The bug was found on Safari on iPad Mini and Version 88.0.4324.190 (Official Build) (64-bit).
I'm proposing to change the breakpoints and ensure that the users can access the sidebar menu when using a tablet.
We're always looking to improve the experience and remove friction of users interacting with Beefy.
Having to create an LPs can sometimes be a hassle, especially for new users.
We would like to add a "Zap" feature from BNB and to BNB. This means that:
There is no translation in Dutch yet, I'm going to translate it. I mainly made this issue to inform others and prevent double work :)
We've had to add DFI code again to the app. This comes with 1000 different warnings like always. It'd be good to clean them up.
The '/stake' section was reworked to fetch all data client side. We still use the API on the vaults list to display two data points that we already have locally:
1- Reward pool name.
2- Reward pool apy.
If we could reuse the client data, it would improve the launchpool flow 10x, and it's another step to being able to run the app entirely client side.
How that the BIFI distribution period has ended, it might be a good idea de take down the "gov" subdomain, and move the BIFI pool into the beefy app.
It might be good to have a separate section of the website where all the pools that have reached an end of life are. This way we have more room on the front page for pools that are actually active.
Right now we load all 100-200 vaults at the same time. There are react libraries designed to only render a particular sub-section/window or a list. This could increase performance tremendously.
There's a new endpoint to use as LP oracle at https://api.beefy.finance/lps
The app currently uses a bunch of different custom endpoints, like "/pancake/lps" and "jetfuel/lps". We should move everything to use the single endpoint so that the other ones can be deleted from the API.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.