Yearn Protocol
Yearn Protocol is a set of Ethereum Smart Contracts focused on creating a simple way to generate high risk-adjusted returns for depositors of various assets via best-in-class lending protocols, liquidity pools, and community-made yield farming strategies on Ethereum.
Before getting started with this repo, please read:
- Andre's Overview Blog Post, describing how yearn.finance works.
- The Delegated Vaults Blog Post, explaining how the delegated vaults work.
- yETH Vault Explained, describing how the yETH vault works.
Requirements
To run the project you need:
- Python 3.8 local development environment and Node.js 10.x development environment for Ganache.
- Brownie local environment setup. See instructions: ETH Brownie.
- Local env variables for Etherscan API and Infura (
ETHERSCAN_TOKEN
,WEB3_INFURA_PROJECT_ID
). - Local Ganache environment installed with
npm install -g ganache-cli@6.11
.
Installation
To run the yearn protocol, pull the repository from GitHub and install its dependencies. You will need yarn installed.
git clone https://github.com/iearn-finance/yearn-protocol
cd yearn-protocol
yarn install --lock-file
Compile the Smart Contracts:
brownie compile
Tests
Run tests:
brownie test -s
Run tests with coverage:
brownie test -s --coverage
Formatting
Check linter rules for *.json
and *.sol
files:
yarn lint:check
Fix linter errors for *.json
and *.sol
files:
yarn lint:fix
Check linter rules for *.py
files:
black . --check --config black-config.toml
Fix linter errors for *.py
files:
black . --config black-config.toml
Security
For security concerns, please visit Bug Bounty.
Documentation
You can read more about yearn finance on our documentation webpage.
Discussion
For questions not covered in the docs, please visit our Discord server.