作為一個 Web3、區塊鍊領域的小白,希望可以學習到怎麼撰寫、實作智能合約以及區塊鍊和資安領域的應用,目標是完成從入門開始的 Solidity 學習,再逐步擴展學習範疇,期望能夠探索相關的延伸應用或實作。
繼承 繼承可以減少重複的程式碼,可以把合約看作物件,Solidity 也是支持繼承的物件導向程式語言。Solidity 的繼承包括簡單繼承、多重繼承、修飾器繼承...
抽象合約 如果一個智能合約至少有一個未實現的函數,即某個函數缺少主體 {} 中的內容,則必須將該合約標為 abstract,不然編譯會報錯。另外,未實現的函數需...
異常 Solidity 有三種拋出異常的方法:error、require 和 assert,三種方法的 gas 消耗不同。寫智能合約常常會出 bug,Solid...
重載 Solidity 中允許函數進行重載(overloading),即名字相同但輸入參數類型不同的函數可以同時存在,他們被視為不同的函數。但 Solidity...
在寫接收 ETH 合約時,會用到有兩個特殊的函數:receive() 和 fallback()。寫發送合約則可以用 transfer()、send() 和cal...
在 Solidity 中,一個合約可以呼叫另一個合約的函數,這對建立複雜的 DApps 時非常有用,而在已知合約程式碼(或介面)和位址的情況下,可以呼叫已部署的...
Delegatecall delegatecall 與 call 類似,是 Solidity 中位址類型的低階成員函數。 delegate 是委託/代表的意思,...
在合約中創建新合約 在以太坊鏈上,使用者(外部帳戶,EOA)可以創造智能合約,智能合約也可以創造新的智能合約。去中心化交易所 uniswap 就是利用工廠合約(...
刪除合約 selfdestruct selfdestruct 指令可以用來刪除智能合約,並將合約剩餘的 ETH 轉到指定的地址。selfdestruct 是為了...
Hash 雜湊函數(hash function)是密碼學概念,它可以將任意長度的訊息轉換成固定長度的值,這個值也稱為雜湊(hash)。 性質 單向:從輸入的訊...