Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hannesgao/the-defi-learning-path-of-hannes

A collection of useful notes, books, tutorials, manuels and tools for your DeFi Learning Path
https://github.com/hannesgao/the-defi-learning-path-of-hannes

amm blockchain blockchain-technology defi dex ethereum foundry openzeppelin openzeppelin-contracts openzeppelin-upgrades smart-contract smart-contracts solidity solidity-contracts uniswap uniswap-v2 uniswap-v3 uups-proxy uups-upgradeable-contract

Last synced: 21 days ago
JSON representation

A collection of useful notes, books, tutorials, manuels and tools for your DeFi Learning Path

Awesome Lists containing this project

README

        



Logo

"Where there's a will, there's a way."

A collection of useful notes, books, tutorials, manuels and tools for your DeFi Learning Path




Sponsor

 

Pull Requests

 

MIT License


---

## 📝 What is it?
This repository is a collection of various materials and tools that I use in my daily learning about blockchain, smart contract development, and DeFi. It brings together a lot of useful information. It is an invaluable collection of knowledge for me and I check it often.

## 👨‍💻 For whom?
It is mainly for experienced developers who are interested in learning smart contract development and DeFi related skills, as well as blockchain industry practitioners and smart contract developers.

## 💡 Contributing
If you find something which doesn't make sense, or something doesn't seem right, please make a pull request and please add valid and well-reasoned explanations about your changes or comments.

## 💖 Special Thanks to Referenced Projects

### 📔 The Book of Secret Knowledge Project from [@trimstray](https://github.com/trimstray)
> The concept, file structure, header design, logo design and foreword formats of this project were all inspired by [The Book of Secret Knowledge](https://github.com/trimstray/the-book-of-secret-knowledge) project from [@trimstray](https://github.com/trimstray).

### 🎖️ Badges 4 README.md Profile Project from [@alexandresanlim](https://github.com/alexandresanlim)
> The badge design and GitHub Sponsor settings for this project were inspired by the [Badges 4 README.md Profile](https://github.com/alexandresanlim/Badges4-README.md-Profile) project and its author [@alexandresanlim](https://github.com/alexandresanlim).


---

## 📑 Table of Contents

**[1. Ethereum](#1-ethereum-toc)**

**[2. Smart Contract Development (Solidity)](#2-smart-contract-development-solidity-toc)**
- [2.1 Documentations](#21-documentations)
- [2.2 Solidity & Foundry Tutorials (Free Course)](#22-solidity--foundry-tutorials-free-course)
- [2.3 Solidity Learning Toolkit](#23-solidity-learning-toolkit)
- [2.4 Solidity Learning Challenges & Games](#24-solidity-learning-challenges--games)

**[3. DeFi](#3-defi-toc)**
- [3.1 AMM based DEX](#31-amm-based-dex)
- [3.2 Uniswap](#32-uniswap)
- [3.2.1 Uniswap V1](#321-uniswap-v1)
- [3.2.2 Uniswap V2](#322-uniswap-v2)
- [3.2.3 Uniswap V3](#323-uniswap-v3)

**[4. Upgradeable Smart Contract](#4-upgradeable-smart-contract-toc)**
- [4.1 Proxy](#41-proxy)
- [4.1.1 Transparent Proxy](#411-transparent-proxy)
- [4.1.2 UUPS (Universal Upgradeable Proxy Standard) Proxy](#412-uups-universal-upgradeable-proxy-standard-proxy)
- [4.2 OpenZeppelin Upgradeable Contracts](#42-openzeppelin-upgradeable-contracts)
- [4.2.1 OpenZeppelin Contracts Wizard](#421-openzeppelin-contracts-wizard)
- [4.2.2 OpenZeppelin Upgrades Library](#422-openzeppelin-upgrades-library)
- [4.2.3 OpenZeppelin Upgrades Plugins](#423-openzeppelin-upgrades-plugins)

> Notice: The table of contents is still being updated...


---

# 1. Ethereum [[TOC]](#-table-of-contents)

## 1.1 Ethereum & EVM Basic
- [ethereum-evm-illustrated.pdf](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)

---

# 2. Smart Contract Development (Solidity) [[TOC]](#-table-of-contents)

## 2.1 Documentations

### 2.1.1 Solidity Documentation
- [Solidity 0.8.28 Documentation](https://docs.soliditylang.org/en/v0.8.28/)

### 2.1.2 Foundry Documentation

- [Foundry Book](https://book.getfoundry.sh/)

## 2.2 Solidity & Foundry Tutorials (Free Course)

### 2.2.1 Tutorials from Alchemy University

#### 2.2.1.1 Beginner
- [Learn Soldity - Alchemy University](https://www.alchemy.com/university/courses/solidity)

#### 2.2.1.2 Intermediate
- [Ethereum Developer Bootcamp - Alchemy University](https://www.alchemy.com/university/courses/solidity)

### 2.2.2 Tutorials from Cyfrin Updraft

#### 2.2.2.1 Beginner
- [Solidity Smart Contract Development - Cyfrin Updraft](https://updraft.cyfrin.io/courses/solidity)

#### 2.2.2.2 Intermediate
- [Foundry Fundamentals - Cyfrin Updraft](https://updraft.cyfrin.io/courses/foundry)
- [Advanced Foundry - Cyfrin Updraft](https://updraft.cyfrin.io/courses/foundry)

#### 2.2.2.3 Advanced
- [Smart Contract Security - Cyfrin Updraft](https://updraft.cyfrin.io/courses/security)
- [Assembly and Formal Verification - Cyfrin Updraft](https://updraft.cyfrin.io/courses/formal-verification)
- [Smart Contract DevOps - Cyfrin Updraft](https://updraft.cyfrin.io/courses/wallets)

## 2.3 Solidity Learning Toolkit

### 2.3.1 Scaffold-ETH 2 from BuidlGuidl
- [Scaffold-ETH 2 - Open source toolkit to build dApps on Ethereum](https://scaffoldeth.io/)

## 2.4 Solidity Learning Challenges & Games

### 2.4.1 Speed Run Ethereum from [BuidlGuidl](https://buidlguidl.com/)
- [Speed Run Ethereum](https://speedrunethereum.com/)
> **Summary**: [Speed Run Ethereum](https://speedrunethereum.com/) is an interactive learning platform designed to teach developers how to build decentralized applications (dApps) on Ethereum.

> **Techstack**: It uses a series of hands-on coding challenges based on [Scaffold-ETH 2](https://scaffoldeth.io/) to guide users through the development process, focusing on key blockchain concepts such as smart contract creation, deployment, and testing with Solidity and Hardhat.

> **To Join the [BuidlGuidl](https://buidlguidl.com/)**: It is necessary to successfully complete the first five challenges and pass the automated tests in order to join the [BuidlGuidl](https://buidlguidl.com/) with the wallet address used to pass the challenges (signature is required when submitting the results of the challenge).

### 2.4.2 [BuidlGuidl](https://buidlguidl.com/) Batches
- [BuidlGuidl (Onboarding) Batches](https://buidlguidl.com/batches)
> **Summary**: [BuidlGuidl Batches](https://buidlguidl.com/batches) is a program designed for builders who have completed (at least the first five challenges of) [Speed Run Ethereum](https://speedrunethereum.com/) and joined the [BuidlGuidl](https://buidlguidl.com/). It's the next step for Web3 developers within the [BuidlGuidl](https://buidlguidl.com/), offering additional challenges and skills to enhance your abilities.

### 2.4.3 The Ethernaut from OpenZeppelin
- [The Ethernaut](https://ethernaut.openzeppelin.com/)

---

# 3. DeFi [[TOC]](#-table-of-contents)

## 3.1 AMM based DEX

### 3.1.1 Tutorials

#### 3.1.1.1 "Build Your Own DEX" Tutorial from QuickNode
- [DeFi Development with Ethereum Course | QuickNode](https://www.quicknode.com/courses/ethereum/defi/overview)
> A quick guide for building a Uniswap-V1-liked AMM based DEX with code examples

### 3.1.2 AMM Examples

#### 3.1.2.1 Examples from Solidity by Example
- [Constant Product AMM | Solidity by Example](https://solidity-by-example.org/defi/constant-product-amm/)

#### 3.1.2.2 Examples from Speed Run Ethereum (Scaffold-ETH)
- [DEX.sol at challenge-4-dex](https://github.com/scaffold-eth/se-2-challenges/blob/challenge-4-dex/packages/hardhat/contracts/DEX.sol)
- [DEX.sol Solutions](https://github.com/scaffold-eth/scaffold-eth-challenges/blob/dex-foundry-tests/Solutions/DEX.sol)

## 3.2 Uniswap

### 3.2.1 Uniswap V1

#### 3.2.1.1 Uniswap V1 Codebase
- [Uniswap/v1-contracts: Uniswap V1 Smart Contracts](https://github.com/Uniswap/v1-contracts)
> Notice: The Uniswap V1 contracts were written in Vyper, not Solidity.

#### 3.2.1.2 Uniswap V1 Tutorials from Ivan Kuznetsov (jeiwan.eth)
- [Programming DeFi: Uniswap. Part 1](https://jeiwan.net/posts/programming-defi-uniswap-1/)
- [Programming DeFi: Uniswap. Part 2](https://jeiwan.net/posts/programming-defi-uniswap-2/)
- [Programming DeFi: Uniswap. Part 3](https://jeiwan.net/posts/programming-defi-uniswap-3/)
> Notice: It is recommended to read the three tutorials in this section first, and if interested follow the tutorials to try to write the Solidity smart contract code that implements the core functionality of Uniswap V1.

### 3.2.2 Uniswap V2

#### 3.2.2.1 Uniswap V2 Codebase
- [Uniswap/v2-core: Core Smart Contracts of Uniswap V2](https://github.com/Uniswap/v2-core)
- [Uniswap/v2-periphery: Peripheral Smart Contracts for Interacting with Uniswap V2](https://github.com/Uniswap/v2-periphery)

#### 3.2.2.2 Uniswap V2 Tutorial from Ivan Kuznetsov (jeiwan.eth)
- [Programming DeFi: Uniswap V2. Part 1](https://jeiwan.net/posts/programming-defi-uniswapv2-1/)
- [Programming DeFi: Uniswap V2. Part 2](https://jeiwan.net/posts/programming-defi-uniswapv2-2/)
- [Programming DeFi: Uniswap V2. Part 3](https://jeiwan.net/posts/programming-defi-uniswapv2-3/)
- [Programming DeFi: Uniswap V2. Part 4](https://jeiwan.net/posts/programming-defi-uniswapv2-4/)

#### 3.2.2.3 Uniswap V2 Tutorial from Ethereum.org
- [Uniswap-V2 Contract Walk-Through | Ethereum.org](https://ethereum.org/en/developers/tutorials/uniswap-v2-annotated-code/)

### 3.2.3 Uniswap V3

#### 3.2.3.1 Uniswap V2 Codebase
- [Uniswap/v3-core: Core Smart Contracts of Uniswap V3](https://github.com/Uniswap/v3-core)
- [Uniswap/v3-periphery: Peripheral Smart Contracts for Interacting with Uniswap V3](https://github.com/Uniswap/v3-periphery)

#### 3.2.3.2 Uniswap V3 Development Book from Ivan Kuznetsov (jeiwan.eth)
- [Uniswap V3 Development Book](https://uniswapv3book.com/)

---

# 4. Upgradeable Smart Contract [[TOC]](#-table-of-contents)

## 4.1 Proxy

### 4.1.1 Transparent Proxy

> TODO: Filling Contents

### 4.1.2 UUPS (Universal Upgradeable Proxy Standard) Proxy

#### 4.1.2.1 UUPS Proxy Explanations from RareSkills
- [UUPS: Universal Upgradeable Proxy Standard (ERC-1822) - RareSkills](https://www.rareskills.io/post/uups-proxy)

#### 4.1.2.2 "Create and Deploy an UUPS Upgradeable ERC20 Token" Guides from QuickNode
- [How to Create and Deploy an Upgradeable ERC20 Token](https://www.quicknode.com/guides/ethereum-development/smart-contracts/how-to-create-and-deploy-an-upgradeable-erc20-token)

#### 4.1.2.3 "Create an UUPS Upgradeable ERC20 Token Factory" Guides from Pengjun Qiao
- [Foundry Advanced Hands-on: Create an UUPS Upgradeable ERC20 Token Factory](https://learnblockchain.cn/article/8878)

## 4.2 OpenZeppelin Upgradeable Contracts

### 4.2.1 OpenZeppelin Contracts Wizard
- [OpenZeppelin Contracts Wizard](https://wizard.openzeppelin.com/)

### 4.2.2 OpenZeppelin Upgrades Library
- [Creating Upgradeable Contracts From Solidity](https://docs.openzeppelin.com/upgrades/2.6/creating-upgradeable-from-solidity)

### 4.2.3 OpenZeppelin Upgrades Plugins
- [OpenZeppelin Upgrades Plugins - Using with Foundry](https://docs.openzeppelin.com/upgrades-plugins/1.x/foundry-upgrades)
- [OpenZeppelin Upgrades Plugins - Writing Upgradeable Contracts](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable)
- [OpenZeppelin Upgrades Plugins - Frequently Asked Questions](https://docs.openzeppelin.com/upgrades-plugins/1.x/faq)

---