--- title: 'Solidity WTF 101 11 ~ 12 單元' lang: zh-tw --- Solidity WTF 101 11 ~ 12 單元 === :::info :date: 2024/09/27 ::: [TOC] ## 課程學習 ### 構造函數與修飾器 --- #### 構造函數 `constructor`又稱為構造函數,他再合約執行時會自動執行一次,所以`immutable`可以在此做賦值。 ```xml= <!-- 這邊宣告一個為immutable的變數,可以不用先宣告值 --> uint256 public immutable _firstValue; constructor( <!-- 這邊做一些參數設置 --> uint256 _value ) { <!-- 這邊做邏輯 --> _firstValue = _value; } ``` #### 修饰器 `modifier`這邊叫做修飾器,通常用於處理檢查等任務。 ```xml= <!-- 這邊先宣告 --> modifier onlyOwner { <!-- 检查调用者是否为owner地址 --> require(msg.sender == owner); <!-- 如果是的话,继续运行函数主体;否则报错并revert交易 --> <!-- 函數主體的意思是,哪一個函數如果使用此modifier的onlyOwner 函數內的logic就是函數主體 --> <!-- 一定要加上否則會噴錯 --> _; // } <!-- 創建一個函數並且加上 onlyOwner 的 modifier --> function changeOwner(address _newOwner) external onlyOwner{ <!-- 只有owner地址运行这个函数,并改变owner --> owner = _newOwner; } ``` ### 事件 --- 首先,先知道下面的網址: * [Etherscan](https://etherscan.io/) * [領取測試幣方法](https://support.token.im/hc/zh-tw/articles/19967535751065-%E5%A6%82%E4%BD%95%E5%9C%A8-imToken-%E7%8D%B2%E5%BE%97%E4%BB%A5%E5%A4%AA%E5%9D%8A%E6%B8%AC%E8%A9%A6%E5%B9%A3) * [領取網站](https://www.infura.io/faucet/sepolia) - 領取方式 - 安裝`MetaMask`狐狸錢包後並創建一個錢包 ![image](https://hackmd.io/_uploads/SJTFF0MRA.png) - 首先到網站之後給予`address`,貼上後點選`RECEIVE ETH` ![image](https://hackmd.io/_uploads/HJ-VKCG0C.png) - 會跳出一個`Popup`,點選連結過去後會到`Etherscan`網站 可以查看領取的狀態跟地址以及數量,甚至是Gas Fee。 ![image](https://hackmd.io/_uploads/HJRhK0zR0.png) - 之後就能夠再狐狸錢包的測試鏈上出現自己領取的測試幣 ![image](https://hackmd.io/_uploads/SyCE5AM0R.png) ![image](https://hackmd.io/_uploads/HJLBcCMAA.png) 通常只會給予`0.1ETH`給你當作測試幣 :::warning :warning: 事件筆記目前只先記錄如何領取測試幣,會單獨出一篇事件筆記。 :::