---
# System prepended metadata

title: Solidity 學習筆記彙整

---

# Solidity 學習筆記彙整

### 1/3 - 1/12
環境建置
DAPP 腳手架研究
發幣
簡易錢包撰寫

### 1/13
[ChainLink 原理](/ivhAOviMSWiYU-PO7R3Lxg)
[Solidity - 調用其他合約機制](/Sr2pi12dSdidKJM1-uu8tw)
[Solidity - 撰寫可升級合約，還有UUPS待補充](/ZukIwwYPQDyvpPxJ3upBfw)

### 1/14
[Solidity - 撰寫可升級合約](/ZukIwwYPQDyvpPxJ3upBfw)
[什麼是星際文件系統 IPFS](/79OWvNXITU-01BeYytdO1w)
[經典案例分析](/vXHryOHXRZixZE8IRx3lrQ)
[simple nft](https://docs.scaffoldeth.io/scaffold-eth/challenges/simple-nft)



## Learning Map 重新整理(建議)
環境建置與開發工具了解(hardhat related)
ERC20 實作，閱讀
穿插語法
ERC721 實作，閱讀
合約更新 by Proxy Mode & UUPS
Dutch Auction 實作
Defi Uniswap 實作
Defi Curve 實作
Solidity 資安，漏洞，防禦
Oracle 實作
OHM 實作


## 環境建置相關
[環境建置 Truffle](https://hackmd.io/U5baalLeSHWcYkHTPbqYng)




## 測試幣領取
[Ropsten
Rinkeby
Kovan(for uniswap)](https://faucets.chain.link/))

## Solidity 學習資源
https://hackmd.io/@ChiHaoLu/HymtJS_oF All in one solidity
https://solidity-by-example.org/ (版本為0.8.x 最新)
ETH 漏洞列表
https://ethernaut.openzeppelin.com/

eth 開發腳手架(建議用有 typescript 的版本，有些東西太新，文件不齊，有typescript 可以直接看Code)
https://docs.scaffoldeth.io/scaffold-eth/
https://github.com/Seth-McKilla/nextjs-wagmi?ref=reactjsexample.com
https://github.com/super-urban-people/coffeehouse?ref=reactjsexample.com


[dApp - React.js Examples](https://reactjsexample.com/tag/dapp/)

Solidity 安全：已知攻擊方法和常見防禦模式綜合列表
https://iter01.com/356222.html
UniswapV2核心合約學習（1）— UniswapV2Factory.sol
https://www.gushiciku.cn/pl/p3Nb/zh-tw
Uniswap 白皮书（中文版）
https://hearrain.com/uniswap-bai-pi-shu-zhong-wen-ban
Uniswap 白皮书（英文版）
https://hackmd.io/@HaydenAdams/HJ9jLsfTz

# 功能

* 連接錢包
* 鑄造 NFT
* 交易市場
* 錢包概覽
https://github.com/Krypto-Camp/cryptoboys-nft-marketplace-main
![](https://i.imgur.com/h4CYG94.png)

NFT Marketplace 程式碼
https://github.com/Krypto-Camp/cryptoboys-nft-marketplace-main
![](https://i.imgur.com/4ndqkMi.jpg)


與 DApp 串接
* [JavaScript SDK for the OpenSea marketplace. Let your users buy or sell cryptogoods on your own site!](https://github.com/ProjectOpenSea/opensea-js)
* [WalletConnect v1.0 | WalletConnect Docs](https://docs.walletconnect.com/)

Lazy Minting
利用 Lazy-Mint 的方法，將 NFT 被 Mint 的時候把 GAS 轉嫁到消費者身上：[Deploy NFT - Lazy-Minting](https://ithelp.ithome.com.tw/articles/10278782)

盲盒隨機性
[How to get Random Numbers in an NFT (ERC721)](https://blog.chain.link/random-numbers-nft-erc721/)

Multi-Sig Wallet
[使用Gnosis Multisig Wallet (Gnosis 多簽章錢包)的指南](https://medium.com/my-blockchain-development-daily-journey/%E4%BD%BF%E7%94%A8gnosis-multisig-wallet-gnosis-%E5%A4%9A%E7%B0%BD%E7%AB%A0%E9%8C%A2%E5%8C%85-%E7%9A%84%E6%8C%87%E5%8D%97-dd9b765044eb)
![](https://i.imgur.com/1XkwS1M.png)
https://gnosis-safe.io/app/

---
https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9ey
https://blog.chain.link/how-to-become-a-smart-contract-developer

Office Hour 總整理：[Outline - 【KryptoCamp】Office Hour](https://chihaolu.gitbook.io/kryptocamp-office-hour/season-1-2022-1/outline)
```
contracts/
src/

```

TODO
發幣, 轉幣， approve 
