---
# System prepended metadata

title: QC 題目架構

---

# QC 題目架構

**簡答題，挑錯題**
**及格線：6題/10題**

## Solidity 基礎 (選3題)

- 列舉五種 Solidity 的型別並且寫出實際例子
- 寫出一 function 可接受 eth value 並且 return 自定義結果
- 如何在部屬合約時，指定 owner，以程式碼舉例
- ERC20 合約部屬至 rinkeby，寫上部屬的合約地址
- ERC721 合約部屬至 rinkeby，寫上部屬的合約地址
- 寫出一 function 添加 modifier 判斷執行者要是 owner, 且錢包餘額需大於某值
- 試寫出兩種錯誤處理(requre, revert)，並解釋兩種的不同
- 試寫出 event 記錄

## Solidity 進階 (選2題)

- 以文字描述為智能合約增加流動性的流程
- 實作 ERC20 質押某代幣，timelock（固定鎖倉期，自定義）, reward （回饋該代幣）
- 試寫出多簽錢包程式碼，調整同意比例(1/3)

## Solidity 整合開發相關 (選3題)

- 試說明如何整合 VSCode, 以及 Remix 的開發環境
- 試寫出 contract auto verify 的 相關內容(npm install xxx, hardhat.config.js, npm hardhat xxx)
- 試寫出部屬 ERC721 合約並且先 mint 10 個 NFT 的 hardhat.js script
- 列舉 3 種 window.ethereum 事件並說明此事件含意，不包含舉例XD ( ex. accountsChanged)

## Solidity 資安相關 (選1題)

- 標註程式碼第幾行可能有資安問題，並說明何種資安問題，並提出解法
    ref: https://hackmd.io/@SVMGKOLoRDqczI3S4lKC9Q/SyNzdnNK9#%E5%90%88%E7%B4%84%E8%B3%87%E5%AE%89%E8%88%87%E5%90%88%E7%B4%84%E6%B8%AC%E8%A9%A6%E5%AF%A6%E6%88%B0
    - Re-Entrancy Attack
    - Denial of Service

## Solidity 節省 Gasfee 相關 (選1題)
- 嘗試閱讀以下程式碼，如何寫出更節省Gas fee 的方法
    - 嘟嘟房片段
    - 第二组片段
    - TORO 片段