/yearn-protocol

Yearn Smart Contracts

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

Yearn Protocol

GitHub license Lint Test

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:

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.