aave / aave-ui Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] An open source interface for the decentralized liquidity protocol Aave
Home Page: https://classic.aave.com
License: Other
[DEPRECATED] An open source interface for the decentralized liquidity protocol Aave
Home Page: https://classic.aave.com
License: Other
Jobs to be done
When I have positions borrowed on Aave, I want to the ability repay in atokens, so I don\t have to use my other assets.
When I am have borrowed positions in Aave, I want to be able to know my options for repayment, so I know that I am aware of how I can repay.
When I have positions borrowed in Aave, if i dont have any atokens, I should not be able to see this option available it should be disabled.
When i want to repay, I want to know the values of my positions and the outstanding repayment balance, so I can chose which currencies I can repay in.
https://www.figma.com/file/R3a0OuN6jKoLnAo5mvAx6M/V3%3A-Repay-with-aTokens?node-id=9%3A9
Background:
A user provided feedback that we should show ENS username and avatar when users have connected their wallet in the dashboard. When users have connected their wallet it currently shows "Ethereum Mainnet 0xxxβ¦..4545". If a user has an ENS domain that can resolve from being connected we should show that instead. For example if I own an ENS domain and I connect my wallet it should show defimark.eth with my avatar pulled from ENS. See below the uniswap example.
ENS Specifications
https://gist.github.com/Arachnid/9db60bd75277969ee1689c8742b75182
Acceptance Criteria
When a user connects their wallet to the AAVE protocol we should show their ENS name and avatar if it exists.
If the user does not have an ENS registered show the default Ethereum Mainnet and their wallet address
When i enable caching server on avalanche, it still uses light mode.
There seems to be an error on he gql side: overflow (fault=\"overflow\", operation=\"toNumber\", value=\"131773801700889904\", code=NUMERIC_FAULT, version=bignumber/5.3.0)
Should work like with other networks.
Visist app.aav.com & select avalache market.
If you borrow stablecoin assets of the same category. Currently in v2 we can only get 80% borrowing power. In v3 you can borrow up to 98%. The user needs to toggle if they want to enter into efficiency mode or not. The user needs to limit himself to a certain category of assets being borrowed(For example stablecoins).
They should be able to enable efficiency mode of ONLY 1 category at a time. If user activates efficiency mode and choses stablecoins. Deposit usdc and borrow dai USDC will have 99% borrowing power instead of 80%.
To learn more about v3 features see the governance proposal: https://governance.aave.com/t/introducing-aave-v3/6035
Design Specifications: https://www.figma.com/file/SRPFQfp6ta3lkWqN0HreWE/V3%3A-E-Mode
The current aave-ui is huge(13.7MB) and I think we should find ways to decrease bundle size & setup some sort of ci to prevent huge size regressions.
This would be nice in terms of ux - especially for ipfs deployments where replication might be slow & even slower for gigantic files.
Checked via bundle analyzer to find some(i'm sure there are more) culprits:
The aave app currently uses an external service for gas estimation.
In #33 I replaces gasnow with paraswap gas api, but while doing this I started wondering if we really need this.
Most interactions on the aave protocol don't need to happen fast.
Except for liquidations and swaps most transactions don't rely on timing - therefore I think i should be possible to completely drop the recommendation & instead go with the wallets getGasPrice
/ rely on people speeding things up there.
Need to do some benchmarking on getGasPrice
troughout supported wallets though.
Supply and Borrow Caps: Aave Governance will be able to configure both borrow and supply caps. Borrow caps would allow Governance to set limits on how much of each asset can be borrowed, while supply caps allow Governance to vote to limit how much of a certain asset can be supplied to the Aave Protocol. Borrow caps minimize liquidity pool insolvency while supply caps reduce protocol exposure to a certain asset and help prevent attacks like infinite minting or price oracle manipulation.
For more details on V3
https://governance.aave.com/t/introducing-aave-v3/6035
https://www.figma.com/file/0sno2ECNT9Mi3GntwFhwIb/V3%3A-Borrow-%26-supply-caps?node-id=9%3A9
Currently testnetworks are hardcoded in the code which makes testing with unsupported testnetworks cumbersome.
isTestnet:
network !== Network.mainnet &&
network !== Network.polygon &&
network !== Network.avalanche,
Instead there should just be a isTestnet
flag on the network level.
APY can be a confusing metric to understand. To help users better understand their deposit and borrow positions it might be a good idea to add the corresponding APR and daily interest rate to the overview page.
This guide details the calculation: https://docs.aave.com/developers/guides/apy-and-apr
The Ampleforth project runs a liquidity mining program for AMPL depositors on Aave. This issue proposes adding a badge, similar to Fei's Tribe badge, to let Aave users know about this.
Proposed implementation is here:
#81
The goal is to help Aave users know about all opportunities available in a lightweight way, but this does require staking on a third party platform so warrants some discussion. Thoughts on whether this is good to add?
The V3 TxBuilder will support permit instead of approve for token transfer actions (supply, repay, etc.). This means that you will need to sign + one transaction instead of 2
currently the claim button is dependent on the emission, which is wrong as emission can have ended while you're still having incentives to claim.
Aave ui should support multiple incentice claims per market like on mainnet proto with aave/tribe.
Background: We currently dont have a good way to indicate to the user in the application new asset listings, announcements, new governance proposals, changelog etc. One nice feature would be to have a bell icon which shows the latest updates across the Aave ecosystem.
When a user is inside the Aave app, we can add a bell icon which when clicked shows a history of the latest changes in the app. From governance proposals, new features, new listings etc.
Links to the Uniswap V2 pools are broke in AAVE AMM. Links don't take you to correct Uniswap page.
Link should work and take you to correct Uniswap page.
Steps:
(1) Go to AAVE AMM
(2) Click on Deposit
(3) Click on one of the Uniswap V2 pools (ex. UNI UNI/WETH)
(4) Click on "View Pool
browser: chrome
os: win10
vpn: yes
Console errors:
[error]: ...
Background
We have been asked from legal and design to update our security page on the Aave website. Ive attached an image for reference
Acceptance Criteria
Some protocols indicate to the user the amount paid APY from the protocol to the user. This is useful as it indicates to the user how much they have earned from supplying as an LP.
In my dashboard there should be an indicator either through an integer how much the user has earned through the protocol over time.
https://www.figma.com/file/llDg9En4y8aDmgjdqTryg0/V3%3A-Net-APY?node-id=9%3A9
A user provided feedback that we should show ENS username and avatar when users have connected their wallet in the dashboard. We quickly updated this to add the ENS username, however we still are missing the profile picture. We first need a design and then we can implement this functionality.
ENS Specifications
https://gist.github.com/Arachnid/9db60bd75277969ee1689c8742b75182
We quickly implemented the ENS username first, see here #48
https://www.figma.com/file/0ClevOXCXZioRVpogcNMFh/ENS-Profile-Avatar?node-id=229%3A3580
Add configuration for a new Arbitrum Rinkeby testnet market.
TO-DO: Add deployed contract addresses and link to the deployed code on this issue
Everytime i opened my dashboard on aave,it shows: Something went wrong
Please report the problem to our developer team so they can look into it.
My question matic address is 0x7DF95bB85f16602D9779972c8D3aD528bd1A9Fb0
I try other address
, That is ok. Could someone tell me how to enter the normal dashboard?
When trying to flashswap collateral during
network congestion, I created multiple transactions that were pending.
(Polygon/MATIC network)
After finally resolving the issue, and getting my desired allocation of collateral,
my WMATIC rewards were displayed as +178 WMATIC.
When I claimed rewards, I received close to what I believe to be the correct amount (0.99WMATIC).
The WMATIC rewards balance should have been displayed correctly as lower
(<1 WMATIC), but they were really high!
Steps:
browser: Firefox / METAMASK
os: win10
vpn: NO
Console errors:
[error]: ...
When an issue/question is reported a lot of time we should put it into a FAQ, so we can reference it the next time it's being asked.
This could be just part of the readme. A seperate md
file or a section in the app.
People are often confused about the same things. e.g. APR/APY - might make sense to explain it once in detail.
When there's only one market, there's stil the market select dropdown - which has only one choice.
Dropdown should disappear when it doesn't make sense?
Disable all markets except one.
Paraswap v5 brought some useful improvements and paraswap on avalanche only supports v5+, so the aave-ui needs to upgrade to v5.
βIsolation Modeβ is intended to allow Aave Governance to enact risk mitigation features when a new asset market is created on the protocol.
When a community member submits a governance proposal to create a new asset market on V3, the proposal can seek to list the assets as βisolated collateralβ such that users supplying those βisolatedβ assets can only borrow stablecoins that Aave Governance has βpermissionedβ to be borrowed in isolation mode, up to a specified debt ceiling.
When a user supplies an βisolated assetβ as collateral, that user can only use that asset as collateral; even if the user supplies other assets to the protocol, the user can only earn yield on those assets and cannot use those assets as collateral.
To see more details on V3
https://governance.aave.com/t/introducing-aave-v3/6035
DEBT_CEILING_DECIMALS
, isolationModeDebtCeiling, isolationModeTotalDebtmin(isolationModeDebtCeiling- isolationModeTotalDebt, availableLiquidity)
The idea is to put the calculation into formatReserves so it's recalculated whenever there's updated blockchain data available
Because we now support multiple networks, we need to update the text in the helper dialog so the user doesnt get confused if they are using a network other than ethereum.
It currently assumes that the user is always on the ethereum network. It is possible they may be on polygon or avalanche.
It should be network agnostic. We should update the text to be " 'The transaction may fail unless sufficient gas price is used to confirm the transaction in time. Failed transactions are also subject to a fee by the network. Use the fast gas price option to reduce the likelihood of the transaction failing.',"
Steps:
browser: chrome
os: win10
vpn: yes
Console errors:
[error]: ...
swaps & repay with collateral should show both best/worst outcome, not only worst.
Aave has contracts deployed for governance and staking on kovan. This allows:
Right now the only way to access kovan staking/ governance is by checking out the repo and changing the config.
I think it would be nice to have a toggle on the ui, to switch between the two or similar.
@aave/protocol-js has historically grown over aave v1/v2 and workarounds piled up. Therefore a completely new library was developed to solve long outstanding issues in the code & bundle process.
Things are getting stable enough to utilize in aave-ui so let's start the efforts
Background: A bug was reported in the aave governance forum about Ampleforth APY.
From Alexandra
The reserve seems fully utilised, based on the interest rate model the rate should borrow rate should be >10,000% the slope 2; and actually with the math util approximation close to 180k
While the Lending Pool Reserve Data and UI say 749.86%
There also seem to be some issues in the Utilisation Rate chart in the front end
When working on cypress setup i realized how annoying & unnecessary our configuration via docker-config is.
The problem is that to have a slightly different setup (e.g. other networks) you have to fork and alter existing files eventually resulting in merge conflicts with upsteam.
I think aave-ui should follow common practice of having a .env
and a .env.test
, env.x
so you can either create your own .env
or just copy over one of the supplied .env
files.
Background
When users unstake they need to wait for 10 days for the cooldown period. And then they'll have only 2 days to unstake.
Problem
Not all users understand how it works. They message Pablo.
Task
Help users to understand how it works and decrease submits to support.
Designs
https://www.figma.com/file/sMydmvG8ZtF7xq0EXQ24qx/Staking-Update?node-id=186%3A8001
Acceptance Criteria
nash doesn't need an api key so it could be enabled on ipfs i think.
When I try to withdraw from a close to fully utilized reserve, there#s a good chance that someone else will do the same and thus one transaction will fail. While this can't be prevented, I think the ui should show a warning that this might happen, so people can increase gas or wait till utilization cycles back to equilibrium.
There should be less users wasting gas on failing transactions.
When a proposal is submitted and then cancelled, when you enter the application on the proposal page it shows the ability to still vote on this proposal.
If a proposal is cancelled the section where it says "Your voting information" should not show buttons to vote if this proposal is already cancelled.
These buttons should not be displayed if the vote is cancelled.
Steps:
browser: chrome
os: win10
vpn: yes
Console errors:
[error]: ...
Add logo for Arbitrum bridge in src/ui-config/networks.ts
currently there's an env variable REACT_APP_SUPPORTED_ETHEREUM_NETWORKS
which allows enabling/disabling markets for a whole market. That's unfortunate as it doesn't allow enabling/disabling of a certain market within a network.
Therefore REACT_APP_SUPPORTED_ETHEREUM_NETWORKS
should be removed and REACT_APP_SUPPORTED_MARKETS
should be introduced which will allow setting the exact markets to show.
When using light mode - which will switch the app to user rpc over caching-layer/thegraph - for governance it will keep using thegraph.
That is on purpose atm, as the rpc implementation currently spams a lot of rpc requests eventually getting rate limited by public rpcs, but we should find a way to fetch the required data in a more reasonable way.
When connecting a web3 wallet with the Aave protocol, we show a list of possible providers. We should give a hint to the user or update the disclaimer to let them know they it is possible to connect to the protocol with any web3 browser or wallet connect connection than the icons shown.
We should update the disclaimer text or provide a hint somewhere in this UI to indicate to the user that they can connect with any web3 browser or wallet connect connection
A user may not realize they can connect with their wallet if it is not shown here as an image
Both chainId and network are used on the client and there's lot of transformations between the two.
Let's refactor to only use ChainId
everywhere.
In the Aave Avalanche market, when you are sorting by USD value. If you click market size it does not sort them correctly. It appears to be sorted by the native size and not the market USD size. See image
Column is not sorting numerically from largest to smallest
Sorting for USD and clicking Market size is sorting by native market size and not USD value. See image column market size.
Steps:
Brave
Version 1.30.86 Chromium: 94.0.4606.61 (Official Build) (arm64)
Console errors:
[error]: ...
Liquidity swap should be enabled for avalanche.
blocked: contracts are not deployed yet
Since AAVE has already deployed the frontend to IPFS(Pinata), we proposed PR #122 to help AAVE's frontend to extend more replicas in a decentralized way.
Crust Network is an incentive protocol beyond IPFS, now it has 7000+ IPFS nodes and over 2000+ PB IPFS storage volumes around the world. It can help AAVE's frontend be unstoppable and make it more decentralized!
Uniswap is using the Github Action -- ipfs-crust-action
to Pin the Dapp to IPFS in Github Action way. Here is the code ref(https://github.com/Uniswap/interface/blob/main/.github/workflows/release.yaml#L58-L64), and here is the issue introduced why Uniswap needs Crust([CI] Uniswap Interface decentralized IPFS pin Uniswap/interface#1339)
Polkadot Apps is using the crust-pin
node package in the CD process, here is the code ref(https://github.com/polkadot-js/apps/blob/master/scripts/ipfsUpload.mjs#L94-L99)
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.