Badger-Finance / Badger-Finance/gitcoin

Chadger Registry and Website Bounty

Open
#45 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
8
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Badger is evolving, in order to allow new Strategist to join Badger we need a scouting ground, a place where new strategists can deploy and stage their strategies as they move them to production.

This is Chadger, a fully decentralized Registry and Website, that allows new Strategists to easily deploy new vaults and display them for apes to try.

This is an advanced bounty that requires both Smart Contract and Website Development skills.

## Video Version:
https://drive.google.com/file/d/1ol9YCdPLvtwIjhM6OiCqs4XNt5AbD8qF/view?usp=sharing

## The deliverables are going to be:
- ChadgerRegistry, a smart contract that allows to deploy a new Badger 1.5 Vault (see Badger Vaults 1.5), while registering it as a new staging vault
- Chadger Website, a website that uses a client Injected RPC (typically metamask) to interact with the Registry, using the Registry as backend to display the Vaults information

## ChadgerRegistry specs:
Uses OZ Clones or similar to clone the Vault1.5 implementation and deploys it with the msg.sender as governance
It adds the msg.sender as a strategist (used to discover vaults) (use EnumerableAddressSet to make it convenient to loop)

- View functions to retrieve all strategists
- View function that given the strategist, returns all the vaults they deployed
- View function that given each vault, return some data about (total assets under management, deposit token, last time harvested, estimated APY)

------------------

## Chadger Website specs:
Use the view functions to:
-> /strategists display the list of all strategists
-> /strategists/{address} display the vaults that each strategists deployed

The Ui allows to connect wallet, it uses the injected RPC to communicate with the ChadgerRegistry Contract.

The UI allows to deposit into vaults (handle approval, and deposit), approval is always for the exact amount, never full approval.
The UI shows if I have deposits into the vaults and allows me to withdraw

-------

# Submission Quality Requirements

The ChadgerRegistry needs to be unit tested and the following functionality needs to be tested:
- Deploying a new vault
- Fetching Strategists
- Fetching a list of vaults from a strategist
- Demo deployment on a testnet or mainnet (sidechains are fine)

The website doesn't need unit tests, however it is expected that:
- The website is easy to build, one line for install deps, one line to run locally / deploy
- The website demo will be deployed on IPFS and will work with the deployed ChadgerRegistry contract

## Resources

This is the BadgerRegistry which we use for Production Vaults, feel free to take inspiration from the codebase:
https://github.com/Badger-Finance/badger-registry

-------

# Post-bounty offers
We understand that this is a sizeable bounty, and will pursue the few developers that are able to undertake this challenge and succeed by offering 1-1 tailored bounties with the goal of onboarding them into Core Tech at BadgerDAO (Full time Contributor Positions)

## Dev Discord

Feel free to join us on our Dev Discord: https://discord.gg/Tf2PucrXcE

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the ChadgerRegistry deliverable and the BadgerRegistry reference linked in the issue, then map the website entry points /strategists and /strategists/{address}. Done means the registry has the requested unit tests and a testnet or mainnet demo, while the website builds locally and is deployed on IPFS against the registry.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.