智能合約是以太坊的核心之一,用戶可以利用智能合約實現更靈活的代幣以及其他DApp。不過在深入講解如何開發智能合約之前,需要先介紹一下以太坊中用于開發智能合約的Solidity語言,以及相關的開發和測試
寫在開頭 在我寫這遍文章的時候,距離EOS曝出漏洞已經有三天時間,區塊鏈行業熱點來的快去的也快,每每出現安全相關問題,都會給整個行業帶來震蕩。自從我開始關
轉賬如果在函數中涉及到以太幣的轉移,需要使用到payable關鍵詞。意味著可以在調用這筆函數的消息中附帶以太幣。123function pay() public payable{ }this代表合約地
連續繼承合約可以被連續的繼承,在下面的合約中,father繼承了grandfather、son繼承了father。那么son也同樣繼承了grandfather中的狀態變量和方法。12345678910
pure與view代碼例子如下的一段solidity智能合約中,只要有了pure與view修飾符的函數,那么調用函數就不會消耗gas。而沒有pure與view修飾的函數,如下面的change就會消耗g
動態字節數組轉換為string動態字節數組可以通過string(name)非常直接的轉換為string類型,下面為例子:1234567891011121314pragma solidity ^0.4.
函數的一般形式1function () {public|internal|external} [pure|constant|view|payable] [
在之前,我們已經寫好了一個最簡單的helloworld合約,如下:1234567891011121314151617pragma solidity ^0.4.23;contract HelloWorl
動態二維數組定義uint[][] public grade = [[60,80],[40,20],[50,50]];獲取長度123456789function getLength() view pub
固定字節數組轉動態字節數組要將固定長度的字節數組轉換為動態長度的字節數組,需要首先創建動態數組,并挨個賦值。12345678910111213141516pragma solidity ^0.4.23