1. 程式人生 > >Solidity學習筆記(一) 智慧合約開發第一步——「Hello World」

Solidity學習筆記(一) 智慧合約開發第一步——「Hello World」

Solidity 智慧合約開發第一步 ——「Hello World」

通過“Hello world”例項的開發,初步理解Solidity的工作原理,並能夠使用Remix( Solidity IDE)在以太坊平臺上建立自己的智慧合約。

第1步:建立檔案

轉到 Remix IDE 網站。Remix是一個整合開發環境,可以幫助你編寫智慧合約。它可以線上使用,並且可以非常輕鬆地編寫,除錯和部署智慧合約。

如果你訪問成功將會有如下介面:
在這裡插入圖片描述
接下來,單擊左上角的+符號以建立新合約並將其命名為Hello.sol

第2步:規定版本Pragma

規定合約相容的編譯器版本,規定最低版本0.4.0,並且相容任何版本高達0.5.0。我們通過在最小版本之前新增^符號來實現此目的,如下所示。

pragma solidity ^0.4.0;

第3步:宣告合同

很像用Java等其他語言宣告一個類。我們使用關鍵字契約而不是類,合同名稱應與.sol檔案的名稱相匹配。在我們的例子中,我們將合約命名為Hello。

contract Hello { }

第4步:宣告變數

在本合同中,我們將使用兩個變數。第一個變數是 address 型別。address 基本上是指以太坊上的帳戶。當您引用address時,指的是使用者帳戶或智慧合約帳戶。第二個變數是string型別。字串是一種普遍存在的資料型別,所以不在說它。

我們將命名我們的變數建立者和問候語。creator變數將儲存部署智慧合約的帳戶的地址,而greeting變數將儲存我們可以在合同狀態下返回或操作的字串。

contract Hello {
    address creator;
    string greeting;
    }

第5步:建構函式

使用msg.sender初始化creator變數,msg是一個全域性可用的物件,它提供有關呼叫合同或函式的事務的資訊。

  function Hello(string _greeting){
        greeting = _greeting;
        creator = msg.sender;
    }

第6步:編寫常量函式

新增一個名為greet()的常量函式。此函式將返回string型別的變數greeting。

 function
greet() constant returns(string){ return greeting; }

第7步:使用setGreeting()更改合同狀態

setGreeting() 的函式將字串作為引數,該函式將我們的greeting變數分配給引數。

function setGreeting(string _greeting){
        greeting = _greeting;
    }

第8步:將合同部署到沙箱

現在我們的合同已經完成,我們將把它部署到內建的沙箱區塊鏈中以檢視它的實際執行情況。你的程式碼應如下所示:

pragma solidity ^0.4.0; 

contract Hello {
    address creator;
    string greeting;
    
    function Hello(string _greeting){
        greeting = _greeting;
        creator = msg.sender;
    }
    
    function greet() constant returns(string){
        return greeting;
    }
    
    function setGreeting(string _greeting){
        greeting = _greeting;
    }
}

部署合約

1.單擊編輯器右側的“run”選項,從第一個下拉選單中選擇JavaScript VM。
2.在"deploy"按鈕旁邊的欄位中輸入字串“Hello World”。
你的螢幕應如下所示:
在這裡插入圖片描述
3.單擊“Deploy”按鈕進行部署。部署完成後,您將在IDE底部的灰色終端區域中獲得有關合約的資訊。如果您展開該部分,您將看到類似於下面的內容:
在這裡插入圖片描述

狀態 顯示合同的部署狀態。

合約地址 是您可以參考合同的以太坊地址。

起始地址 是部署合同的帳戶的地址。

在這種情況下,To指的是為建立契約而呼叫的建構函式。

gas 是為部署合同而支付的金額。

第9步:與合約互動

部署完成後,您將看到右側與合同互動的輸入。將有一個下拉框,其中包含合同名稱及其地址。在下面你會看到一個標有greet的按鈕。當您單擊該按鈕時,它將呼叫greet函式並返回變數greeting的值。
在這裡插入圖片描述
我們可以在setGreeting按鈕旁邊的輸入框中鍵入我們想要的任何字串。例如我輸入“Hello ZYP”,然後再次按下“greet”按鈕,它應該返回我們的新字串。
在這裡插入圖片描述

至此已經編寫並部署了第一份智慧合約!