timezone |
---|
Asia/Shanghai |
-
自我介绍 Hi, 我是 Aries。38,现在在做 Web3 相关的开发工作。 剛好有這次的學習可以了解到共多以及交到更多的朋友!
-
你认为你会完成本次残酷学习吗? 一定會完成。
使用Remix將Hello Web3執行起來,並在值类型了解到如果要用於轉帳,要使用payable address 在函數這章節了解到函數有四種並可用在哪些地方,且pure只能用在不能查詢或改寫區塊鏈上的值功能上面,View只能讀取功能 在函数输出章節學習到可以在funtion直接帶入參數不一定要寫return只要直接給變數值就好 在变量数据存储和作用域了解到如果不是真的要長期保存的資料建議不要用storage可選memory和calldata去省錢但如果長度會變化要用memory,變數如果不是萬不得已不要用全域變數gas消耗會很多
章節6-9滿多都是程式語言基本的東西 在第十章了解到由於length是uint,目前還沒學到轉型別,所以必須配合這個方式去使用 第11章學到可以將自己的合約擁有者在轉移給其他人
章節12學習到可以去訂閱event,且事件相較於儲存一個新的變量便宜許多 從EVM Log中可以知道交易的所有資訊
章節13學習到繼承跟覆寫,當多重繼承時會有順序必須是按辈分最高到最低的顺序排,當多重繼承時可以調用父合約函數 當使用鑽石繼承時,如果每一個繼承的合約都有super去調用函數的話整個過程只會被執行一次
章節14學習到abstract和interface,抽象必須實作出來子函數但interface不用可用於規範介面有哪些 當有合約要給其他人使用時可直接把interface給對方就好,可以很容易知道有哪些函數可直接使用
章節15學習到可以透過error將一些例外狀況直接拋出且gas是最低的,require會隨著拋出的error長度gas也會增加
章節16學習到重載可以使用相同函數名稱但輸入輸出可以不同,但參數形態建議還是要不同避免他會陷入一個混亂導致報錯
章節17學習到可以引用其他人創建好的Lib直接使用,也可以自己發佈Lib去給他人引用
章節18學習到引用可以直接用網路或者npm以及本地端的合約,透過上一個章節可以寫成Lib後給別人直接引用
章節19學習到eth轉帳時可以透過fallbackCalled和receive兩個函數去確保在轉帳時後是否要帶足夠資訊,確保合約跟交易的安全性
章節20學習到三種發送eth方法transfer,send和call,建議使用call主要是底層安全性問題,再來建議使用transfer有revert功能 send不建議使用,因為有問題還會繼續執行下去
章節21學習到可以透過其他合約的address直接呼叫函數進而達到需要的功能
章節22學習到可以直接從合約地址直接用函數call進行呼叫,但這方法非常簡陋可能會有不安全也很難查詢
章節23學習到當如果想要做一個代理合約可以採用delegatecall方式,只要簡單的代理改變就可以做到用戶不需要改變東西就可以直接升級底層
章節24學習到可以使用create在合約內在創建一個合約,範例中可以利用創建合約後將合約在保存在map裏面就可以一份Code可以創建很多幣種
章節25學習到用Create2創建合約可以得到一個確定的地址不需要再呼叫函數去得到地址可以省掉一次
章節26學習到可以藉由selfdestruct在發生一些問題時將合約刪除避免一些後續不必要的麻煩
章節27學習到abi的原理組成,也可以利用其他語言透過呼叫abi方式達到呼叫合約
章節28學習到可以透過hash來判斷訊息是否有被修改過或者是否有不同地方,以達到驗證安全性功能
章節29學習到calldata前四個byte是selector,可以透過keccak256計算出method id在用selector就可以呼叫函數
章節30學習到可以利用try cache來將錯誤包起來避免代理出現一些非預期狀況
章節31學習到可以基於ERC20去發自己的代幣,並且透過繼承ERC20可以實現自己的代幣化合約
章節32學習到可以透過水龍頭去拿一些免費代幣,可以拿來不論做測試或使用都是可以的
章節33學習到可以將自己發出來一些幣透過空投方式將她分派給其他人來達到營銷目的
章節34學習到ERC-721最主要是為了非同質化代幣,每一個代幣都有他的獨特性,所以可以利用ERC-721來發行例如數位圖片...等等
章節35學習到可以荷蘭拍賣來將一些NFT類的東西來進行營銷,並在完成銷售後可以透過智能合約將錢全部拿回