/euler-encode-workshop

EVC ERC4626

Primary LanguageSolidity

Euler <> Encode Educate

Usage

Install Foundry:

curl -L https://foundry.paradigm.xyz | bash

This will download foundryup. To start Foundry, run:

foundryup

Clone the repo and install dependencies:

git clone https://github.com/euler-xyz/euler-encode-workshop.git && cd euler-encode-workshop && forge install && forge update

Slides

Workshop presentation slides can be found here:

Assignments

Fork this repository and complete the assignments. Create a PR to merge your solution with the master branch of this repository. To do that, follow the instructions:

Assignment branch-name Prize Pool Rules Deadline
Workshop 2 Questionnaire assignment-q2 $500 FCFS for 10 participants No deadline
Workshop 3 Questionnaire assignment-q3 $500 FCFS for 10 participants No deadline
Workshop 2/3 Coding Assignment assignment-c $2000 5 best submissions; both Workshops judged together Jan 31st midnight UTC
  1. Fork the Repository

First, you need to fork this repository on GitHub. Go to the repository and click the "Fork" button in the upper right corner.

  1. Clone and navigate to the Forked Repository

Now, clone the forked repository to your local machine. Replace your-username with your GitHub username.

git clone https://github.com/your-username/euler-encode-workshop.git && cd euler-encode-workshop && forge install && forge update
  1. Create a New Branch

Create a new branch for your assignment. Replace branch-name with the name relevant to the assignment you wish to complete as per the table above.

git checkout master && git checkout -b branch-name
  1. Complete the Assignment

At this point, you can start working on the assignment. Make changes to the files as necessary. For details look below.

  1. Stage, Commit and Push Your Changes

Once you've completed the assignments, stage and commit your changes. Push your changes to your forked repository on GitHub. Replace branch-name accordingly.

git add . && git commit -m "assignment completed" && git push origin branch-name
  1. Create a Pull Request

Finally, go back to your forked repository on the GitHub website and click "Pull requests" at the top and then click "New pull request". From the dropdown menu, select the relevant branch of your forked repository and master branch of the original repository, then click "Create pull request". The PR title should be as in the Assignment column from the table above.

  1. Repeat

If you are completing more than one assignment, repeat steps 3-6 for each assignment using different branch names and creating new PRs. If you wish to complete all the assignments, you should have at most 3 PRs. Coding Assignment from both Workshop 2 and 3 should be submitted in the same PR.

Workshop 2

Questionnaire

Answer the EVC related questions tagged with [ASSIGNMENT] which can be found in the source file. The questions should be answered inline in the source file.

Coding Assignment

Add borrowing functionality to the workshop vault as per additional instructions in the interface file. You should not modify the vault constructor, otherwise the tests will not compile. Run forge compile or forge test before submitting to check if everything's in order.

Workshop 3

Questionnaire

Answer the EVC related questions which can be found in the assignment file. The questions should be answered inline in the file.

Coding Assignment

Taking from the EVC operator concept, and using VaultRegularBorrowable contract from the evc-playground repository, build a simple position manager that allows keepers to rebalance assets between multiple vaults of user's choice. Whether the assets should be rebalanced or not should be determined based on a predefined condition, i.e. deposit everything into a vault with the highest APY at the moment, but rebalance no more often than every day. The solution should be provided in the dedicated source file.

Resources

  1. EVC docs
  2. EVC repository
  3. EVC playground repository