tmp-aave-v2

Aave protocol data aggregation tool

Usage no npm install needed!

<script type="module">
  import tmpAaveV2 from 'https://cdn.skypack.dev/tmp-aave-v2';
</script>

README

Aave Protocol js

Aave protocol logic package, supports main and uniswap markets

The simplest way to get initial protocol data - use our subgraphs on TheGraph protocol: https://thegraph.com/explorer/subgraph/aave/protocol-multy-ropsten-raw - ropsten https://thegraph.com/explorer/subgraph/aave/protocol-multy-kovan-raw - kovan https://thegraph.com/explorer/subgraph/aave/protocol-multy-raw - mainnet

/graphql/ folder contains graphql documents with the structures needed for aggregation methods.

Installation

// with npm
npm install @aave/protocol-js
// with yarn
yarn add @aave/protocol-js

Usage

Here is a quick example to get you started:

import { v1, v2 } from '@aave/protocol-js';

// returns user summary data in big units.
v1.formatUserSummaryData(
  poolReservesData,
  rawUserReserves,
  userId,
  usdPriceEth,
  currentTimestamp
);

// returns user summary data in small units with 0 decimal places, except health-factor.
v1.computeRawUserSummaryData(
  poolReservesData,
  rawUserReserves,
  userId,
  usdPriceEth,
  currentTimestamp
);

// returns reserves data formatted to big units.
v2.formatReserves(reserves, currentTimestamp);

If you want to use the built-in graphql queries & subscriptions you can find them in dist/v<1|2>/graphql.

Braking changes in v1

  • Endpoint addresses should be changed (addresses above)
  • Graphql documents should be "recompiled"
  • Reserve id not underlying asset address anymore, it's not unique enough because same asset can be in 2 or more pools.
  • But reserve has underlyingAssetAddress field

Braking changes in v2

  • the main entry-point exports v2 methods & graphql queries
// before
import { formatUserSummaryData } from '@aave/protocol-js';

formatUserSummaryData();

// after
import { v1 } from '@aave/protocol-js';

v1.formatUserSummaryData();

TODO

  • Extra documentation
  • Transactions encoding logic
  • React hooks
  • Tests