https://github.com/patrickalphac/defi-stake-yield-brownie
https://github.com/patrickalphac/defi-stake-yield-brownie
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/patrickalphac/defi-stake-yield-brownie
- Owner: PatrickAlphaC
- Created: 2021-07-11T22:43:28.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-17T03:05:07.000Z (12 months ago)
- Last Synced: 2024-11-10T21:49:01.990Z (6 months ago)
- Language: Solidity
- Size: 2.02 MB
- Stars: 77
- Watchers: 2
- Forks: 55
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Update: Head to Cyfrin Updraft
> **ℹ️ Important:** This repo is no longer maintained; we invite all people learning Solidity to head to [Cyfrin Updraft](https://updraft.cyfrin.io/)! The 100% free #1 smart contract education platform on earth. Developed with love by Patrick & Cyfrin <3
# defi-stake-yield-brownie
## Summary
This is a repo to build your own full stack defi staking application for yield farming, borrowing and lending, or any other project you can think of. It allows you to:- `stakeTokens`: Add any approved token to the farming contract for yeild farming, collateral, or whatever you want to do.
- `unStakeTokens`: Remove your tokens from the contract.
- `getUserTotalValue`: Get the total value that users have supplied based on calculations from the Chainlink Price Feeds.
- `issueTokens`: Issue a reward to the users staking on your platform!And more!
- [defi-stake-yield-brownie](#defi-stake-yield-brownie)
- [Summary](#summary)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Useage](#useage)
- [Scripts](#scripts)
- [Front end](#front-end)
- [Testing](#testing)
- [Linting](#linting)
- [Resources](#resources)
- [License](#license)## Prerequisites
Please install or have installed the following:
- [nodejs and npm](https://nodejs.org/en/download/)
- [python](https://www.python.org/downloads/)
## Installation1. [Install Brownie](https://eth-brownie.readthedocs.io/en/stable/install.html), if you haven't already. Here is a simple way to install brownie.
```bash
pip install --user pipx
pipx ensurepath
# restart your terminal
pipx install eth-brownie
```
Or if you can't get `pipx` to work, via pip (it's recommended to use pipx)
```bash
pip install eth-brownie
```2. Clone this repo
```
git clone https://github.com/PatrickAlphaC/defi-stake-yield-brownie
cd defi-stake-yield-brownie
```1. [Install ganache-cli](https://www.npmjs.com/package/ganache-cli)
```bash
npm install -g ganache-cli
```If you want to be able to deploy to testnets, do the following.
4. Set your environment variables
Set your `WEB3_INFURA_PROJECT_ID`, and `PRIVATE_KEY` [environment variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html).
You can get a `WEB3_INFURA_PROJECT_ID` by getting a free trial of [Infura](https://infura.io/). At the moment, it does need to be infura with brownie. You can find your `PRIVATE_KEY` from your ethereum wallet like [metamask](https://metamask.io/).
You'll also need testnet rinkeby or Kovan ETH and LINK. You can get LINK and ETH into your wallet by using the [rinkeby faucets located here](https://docs.chain.link/docs/link-token-contracts#rinkeby). If you're new to this, [watch this video.](https://www.youtube.com/watch?v=P7FX_1PePX0)
You'll also want an [Etherscan API Key](https://etherscan.io/apis) to verify your smart contracts.
You can add your environment variables to the `.env` file:
```bash
export WEB3_INFURA_PROJECT_ID=
export PRIVATE_KEY=
export ETHERSCAN_TOKEN=
```
> DO NOT SEND YOUR KEYS TO GITHUB
> If you do that, people can steal all your funds. Ideally use an account with no real money in it.# Useage
## Scripts
```bash
brownie run scripts/deploy.py
```
This will deploy the contracts, depoly some mock Chainlink contracts for you to interact with.
```bash
brownie run scripts/deploy.py --network kovan
```
This will do the same thing... but on Kovan.## Front end
```bash
cd front_end
yarn
yarn start
```
and you'll be able to interact with the UI## Testing
```
brownie test
```## Linting
```
pip install black
pip install autoflake
autoflake --in-place --remove-unused-variables -r .
black .
```# Resources
To get started with Brownie:
* [Chainlink Documentation](https://docs.chain.link/docs)
* Check out the [Chainlink documentation](https://docs.chain.link/docs) to get started from any level of smart contract engineering.
* Check out the other [Brownie mixes](https://github.com/brownie-mix/) that can be used as a starting point for your own contracts. They also provide example code to help you get started.
* ["Getting Started with Brownie"](https://medium.com/@iamdefinitelyahuman/getting-started-with-brownie-part-1-9b2181f4cb99) is a good tutorial to help you familiarize yourself with Brownie.
* For more in-depth information, read the [Brownie documentation](https://eth-brownie.readthedocs.io/en/stable/).
* [Create React App](https://create-react-app.dev/docs/adding-typescript/) for front end fun
* [Materials-UI](https://material-ui.com/)Shoutout to [Matt Durkin](https://twitter.com/mdurkin92) on twitter for creating the UI!
Shoutout to [Gregory from Dapp University](https://www.dappuniversity.com/) for the inspiration for this!Any questions? Join our [Discord](https://discord.gg/2YHSAey) or open an issue.
# License
This project is licensed under the [MIT license](LICENSE).