3 2 智慧型合約的結構

2021-09-16 19:31:45 字數 832 閱讀 7723

合約就像乙個類(class),其中包含狀態變數(state variable)、函式(function)、函式修改器(function modifier)、事件(event)、結構(structure)和列舉(enum)。合約還支援繼承,通過在編譯時備份**來實現。最後,合約還支 持多型。

下面來看乙個智慧型合約的例子:

上述**的工作原理如下:

1)使用contract關鍵字宣告乙個合約。

2)宣告兩個狀態變數data和owner。data包含一些資料,owner包含所有者的以太坊錢包位址,即部署合約者的以太坊位址。

3)定義乙個事件(event)。事件用於通知客戶端。一旦data發生變化,將觸發這個事件。所有事件都儲存在區塊鏈中。

4)定義乙個函式修改器(function modifier)。修改器用於在執行乙個函式之前自動檢測條件。這裡,修改器檢測合約所有者是否在呼叫函式。如果不是,就丟擲異常。

5)得到合約建構函式(constructor)。在部署合約時,呼叫建構函式。建構函式用於初始化狀態變數。

6)定義兩個方法。第乙個方法用於得到data狀態變數的值,第二個方法用於改變data的值。

在更深入地學習智慧型合約的函式之前,我們先來學習一些與solidity有關的其他知識,然後再回到合約。

'); (window.slotbydup = window.slotbydup || ).push(); })();

'); (window.slotbydup = window.slotbydup || ).push(); })();

智慧型合約的理念

何謂 抵押品 抵押品 的目的是什麼?它怎樣梳理了我們的已有的關係?我認為,尤其是合約的規範化,為我們的關係實現了理想化抵押品的藍圖。多種型別的合同條款,如抵押品,債券,產權界定等等,都可以嵌入在我們執行條款的硬體和軟體中,通過這樣的方式使那些不遵守協議者的違約成本很高,如果需要的話,令人望而卻步的 ...

智慧型合約的公升級

做軟體開發的都知道,沒有完美的 在當前設計的時候由於考慮不完備或者後續需要增加一些新功能,需要對軟體進行迭代公升級。在以太坊的智慧型合約中也存在這種情況,由於功能的完善可能會 公升級 智慧型合約。大家都知道,部署到鏈上的合約 是不可修改的,怎麼實現合約 的 公升級 呢?比如小強就讀某小學二年級,納入...

智慧型合約的安全

智慧型合約的安全問題一直是編寫智慧型合約的關鍵點。多數的智慧型合約都是開源的,原始碼公布更容易被黑客找到攻擊的漏洞。這裡將一些常見的,易犯的錯誤。首先我們先看看下面這段 contract text function transferto address add,uint num public pay...