GithubHelp home page GithubHelp logo

aave / interface Goto Github PK

View Code? Open in Web Editor NEW
382.0 18.0 316.0 191.01 MB

An open source interface for the decentralized liquidity protocol Aave

Home Page: https://app.aave.com

License: Other

JavaScript 0.16% TypeScript 99.66% CSS 0.17% Shell 0.01%

interface's Introduction

        .///.                .///.     //.            .//  `/////////////-
       `++:++`              .++:++`    :++`          `++:  `++:......---.`
      `/+: -+/`            `++- :+/`    /+/         `/+/   `++.
      /+/   :+/            /+:   /+/    `/+/        /+/`   `++.
  -::/++::`  /+:       -::/++::` `/+:    `++:      :++`    `++/:::::::::.
  -:+++::-`  `/+:      --++/---`  `++-    .++-    -++.     `++/:::::::::.
   -++.       .++-      -++`       .++.    .++.  .++-      `++.
  .++-         -++.    .++.         -++.    -++``++-       `++.
 `++:           :++`  .++-           :++`    :+//+:        `++:----------`
 -/:             :/-  -/:             :/.     ://:         `/////////////-

Aave protocol interface ๐Ÿ‘ป

An open source interface for the decentralized liquidity protocol Aave

Enabling users to:

  • Manage and monitor their positions on the Aave Protocol, and the overall status of it
  • Manage and monitor their positions on the Aave Safety module
  • Participate in the Aave Governance

How to use

Install it and run:

cp .env.example .env.local
yarn
yarn dev

Contribution

For instructions on local development, deployment, configurations & feature proposals, see Contributing

Also, contributors with at least one pull request that has been merged into the main branch are eligible for a unique GitPOAP. Visit gitpoap.io to claim it.

IPFS deployment

Each commit gets deployed to IPFS automatically

There's a github action commenting the appropriate IPFS hash embedded in the Cloudflare IPFS gateway after each commit

For ease of use:

Links known to work at some point:

Troubleshooting

Issue: Cannot connect to app.aave.com

The aave-ui is hosted on IPFS in a decentralized manner. app.aave.com just holds a CNAME record to the Cloudflare IPFS gateway. You can use any public or private IPFS gateway supporting origin isolation to access aave-ui if for some reason the Cloudflare gateway doesn't work for you

Just go to <your favorite public ipfs gateway>/ipns/app.aave.com

โš ๏ธ Make sure the gateway supports origin isolation to avoid possible security issues: you should be redirected to URL that looks like https://app-aave-com.<your gateway>

License

All Rights Reserved ยฉ Aave Labs

Credits

To all the Ethereum community

interface's People

Contributors

alexmance avatar argeare5 avatar austingreen avatar bigint avatar bojanaave avatar defispartan avatar dependabot[bot] avatar derasd avatar dghelm avatar drewcook avatar eidriahn avatar foodaka avatar grothem avatar iamanastasia avatar jdecristi avatar joaquinbattilana avatar kartojal avatar marcpineiroaave avatar mareskoy avatar matthewcylau avatar mbigant avatar miguelmtzinf avatar omahs avatar sakulstra avatar satanworker avatar sendra avatar slundy-ledger avatar taycaldwell avatar vani11aa avatar xiaolou86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

interface's Issues

SEO meta

  • add fallback meta (use Meta component in _document or _app with some default for when sharing the link on social)
  • add governance meta

tokenIcon

The current tokenIcon implementation is flawed in some ways:

  • svgs are base encoded inflating the size by up to 30%
  • we load all the svgs for all markets by default as they are bundled into the main bundle

Modal UI Boilerplate

Develop the basic Modal UI that will host the different flows.

The modal component should contain:

Title   -  Close button
-----
Any Content
-----
Call to action (1 button or 2 buttons)

Depositing with faucet has incorrect text

When a user deposits the faucet, the text says "is not used as collateral"

AC

  • When user deposits with faucet. Text should say "You have successfully deposited {asset} from the faucet.
    Screen Shot 2022-02-17 at 10 27 31 AM

Setup CI

  • make cypress run
  • migrate suite from aave-ui

Supply - Modal Flow

The supply Modal flow involves the following components:

  • Input
  • Supply details
  • Breadcrumbs
  • Represent TX state

Annoyances umbrella

Just collecting a few things that annoy me on current(unfinished) ui.

  • switch network imo is at the wrong position, literally didn't see it a single time and am always wondering why the button at the bottom is grayed out. Feels very non-intuitive to me.
  • it's weird that i can't reach details from my supplied assets. Looking for it over & over again till i relalize i have to go via collapsed assets or markets overview

Faucet

  • add faucet modal flow

Market select shouldn't show when there#s only one market.

Prerequisites

  • I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior ๐Ÿ˜ฏ

When there's only one market, there's stil the market select dropdown - which has only one choice.
image

Expected Behavior ๐Ÿค”

Dropdown should disappear when it doesn't make sense?

Steps to Reproduce ๐Ÿ•น

Disable all markets except one.

Governance

  • delegation modal
  • vote modal
  • prerender pipeline
  • index page (in progress)
  • proposal page

--- i think these things can probably wait till a few weeks after the release

  • top x voters
  • show payload

Staking

  • staking page
  • stake modal flow
  • cooldown modal flow
  • claim modal flow

Gas configuration is difficult to close

When a user clicks on the โš™๏ธ icon to configure the gas. Its not very easy to close after. Should we add an (x) after to easily remove this popover?

Screen Shot 2022-02-17 at 11 40 13 AM

Wallet connection flow

Create a button where if user clicks will be presented with connection options:

  • Metamask
  • WalletConnect
  • WalletLink
  • MewWallet
  • Frame
  • Torus
    (do we actually need all of these?)

Once connected, it should show ens name with avatar
it should show a dropdown with network, disconnect:
image

It should set the connection params to the context / provider

tx modal flow

For tx modal flow it would be nice if we had more explicit control over the tx execution on a per transaction basis.

Things i remember were sub-optimal in the current implementation:

  • we have no option to set a certain gas recommendation for a specific transaction (for swap related things we would have liked to default to fast)
  • having custom errors was kinda complicated (for swaps there might be non tx related errors, we solved it somehow, but it was messy)

Casting a vote

Voting process

Initial vote

A user can vote with the voting power he had at proposal creation based on the selected strategy. While that's technical and might have nuances the relevant info for the user is:

For proposal x i have voting power y. If y > 0 I can vote for or against.
I can only vote with all my power at once for a single choice. All votes are binary. yes or no, nothing in between.

During the vote

Once I voted, i know if i voted for or against & with which power.

If I have a change of mind, I can now recast my vote for the opposite choice.

After the vote

Once the vote is over I can no longer cast my vote.
I now know if i voted, with which power i voted & if voted for or against.

On repayment clearing input creates NaN that cannot be inputted anymore

Steps to reproduce

When a user opens the repay dialog there is an input for the amount to repay. If you press backspace on the input it shows NaN. There is no way to get enter a repayment amount anymore.

Actual Expectation

  • If user clear the input it should show either a 0 OR empty input with a 0 placeholder.
  • User should always be able to input a number and not get stuck on NaN
    Screen Shot 2022-02-15 at 12 24 45 PM

Rewards

  • claim modal flow
  • integrate in dashboard ui

stable rate on api seems to be broken & api seems to be stuck on 31.01

The code for generating the data is hosted here:
https://github.com/aave/aave-api/blob/master/src/services/RatesHistory.ts#L105

For utilization variable & stable rate the the data seems to be correct (except for ampl, which is a subgraph error). For stable borrow rate it's broken.

You can check on https://app.aave.com/#/reserve-overview/0x0000000000085d4780b73119b644ae5ecd22b376-0x0000000000085d4780b73119b644ae5ecd22b3760xb53c1a33016b2dc2ff3653530bff1848a515c8c5 (stable tusd on mainnet)
In theory stable should move very similar to variable, just at a higher level.

The stableBorrowRate is a bit different then the other rates as it's not based on indexes. So instead of calculating the rate we simply take a snapshot ever x seconds.

The reasons on why this could be broken:

  • we don't persists the correct stableBorrowRate in RateHistoryItems, so the underlying data is wrong
  • we do persists it, but the api has some bug
  • ...?

One way to perhaps fix this would be to calculate the stable rate based on utilization instead of taking it from the subgraph? Idk, would still be nice to figure out why it's currently broken.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.