/yearn-vaults-v3

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Yearn V3 Vaults

This repository contains the Smart Contracts for Yearns V3 vault implementation.

VaultFactory.vy - The base factory that all vaults will be deployed from and used to configure protocol fees

Vault.vy - The ERC4626 compliant Vault that will handle all logic associated with deposits, withdraws, strategy management, profit reporting etc.

For the V3 strategy implementation see the Tokenized Strategy repo.

Requirements

This repository runs on ApeWorx. A python based development tool kit.

You will need:

  • Python 3.8 or later
  • Vyper 0.3.7
  • Foundry
  • Linux or macOS
  • Windows: Install Windows Subsystem Linux (WSL) with Python 3.8 or later
  • Hardhat installed globally

Installation

Fork the repository and clone onto your local device

git clone --recursive https://github.com/user/yearn-vaults-v3
cd yearn-vaults-v3

Set up your python virtual environment and activate it.

python3 -m venv venv
source venv/bin/activate

Install requirements.

python3 -m pip install -r requirements.txt
yarn

Fetch the ape plugins:

ape plugins install .

Compile smart contracts with:

ape compile

and test smart contracts with:

ape test

To run the Foundry tests

NOTE: You will need to first compile with Ape before running foundry tests.

forge test

Deployment

Deployments of the Vault Factory are done using create2 to be at a deterministic address on any EVM chain.

Check the docs for the most updated deployment address.

Deployments on new chains can be done permissionlessly by anyone using the included script.

ape run scripts/deploy.py --network YOUR_RPC_URL

If the deployments do not end at the same address you can also manually send the calldata used in the previous deployments on other chains.

To make a contribution please follow the guidelines

See the ApeWorx documentation and github for more information.

You will need hardhat to run the test yarn