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
Workshop presentation slides can be found here:
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 |
- 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.
- 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
- 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
- Complete the Assignment
At this point, you can start working on the assignment. Make changes to the files as necessary. For details look below.
- 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
- 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.
- 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.
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.
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.
Answer the EVC related questions which can be found in the assignment file. The questions should be answered inline in the file.
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.