/aave-v3-yield-source

Aave V3 Yield Source

Primary LanguageTypeScript

PoolTogether Brand


PoolTogether Aave V3 Yield Source 👻

Fork Tests Coverage Status built-with openzeppelin GPLv3 license

PoolTogether Yield Source that uses Aave V3 to generate yield by lending any ERC20 token deposited into the Yield Source to Aave.

Development

Clone this repository and enter the directory:

cd aave-v3-yield-source

Installation

Install dependencies:

yarn

Env

We use direnv to manage environment variables. You'll likely need to install it.

Copy .envrc.example and write down the env variables needed to run this project.

cp .envrc.example .envrc

Once your env variables are setup, load them with:

direnv allow

Compile

Run the following command to compile the contract:

yarn compile

Test

We use the Hardhat ecosystem to test our contracts.

To run unit tests:

yarn test

To run coverage:

yarn coverage

Polygon fork

Before deploying, you can make sure your implementation works by deploying a Yield Source Prize Pool on a fork of Polygon.

To do so, run the following command:

yarn run-yield-source-fork

Code quality

Prettier is used to format TypeScript and Solidity code. Use it by running:

yarn format

Solhint is used to lint Solidity files. Run it with:

yarn hint

TypeChain is used to generates types for scripts and tests. Generate types by running:

yarn typechain