智慧型合約Solidity教程 事件和日誌(一)

2021-09-13 03:31:11 字數 1331 閱讀 2338

簡述:事件是以太坊提供的基本功能,用來將資料記錄成日誌,儲存在區塊鏈上,同時事件也可用於用於和外部互動,例如和前端的互動、非同步呼叫等作用。solidity中,事件是指操作觸發的行為,而日誌則是觸發事件後,將資料記錄在區塊鏈上形成日誌。

什麼是事件event、日誌log

事件event是以太坊提供的基本功能,用於將資料記錄成日誌儲存到區塊鏈上,使用者可以自定義需要記錄的資料,以及topic和索引;日誌是指事件儲存在區塊鏈上的資料。事件強調操作行為,日誌強調儲存內容,兩者是完全不同的概念。

事件event如何定義、如何觸發

solidity中,使用關鍵字event來定義事件,其中引數列表就是需要儲存到區塊鏈上的資料,其中最多可以有三個引數被描述成indexed,表示該引數可以被索引,新增indexed的引數本身不會儲存,但是可以通過引數值來檢索。

以下內容是使用truffle unbox webpack命令生成的專案中已有的合約**

contract metacoin 

function sendcoin(address receiver, uint amount) public returns(bool sufficient)

function getbalanceineth(address addr) public view returns(uint)

function getbalance(address addr) public view returns(uint)

}

事件event有什麼作用

事件event的作用的可以總結為以下幾點:

以和前端互動為例,在web3.js中,我們可以通過監聽event來做到及時更新前端顯示。在專案index.js檔案中的start方法內,新增以下內容

metacoin.deployed().then(function (instance) 

console.log(result['args'])

for (let i in result['args'])

console.log('transfer log end')

})}).then(function (value) ).catch(function (e) )

}

歡迎訂閱「k叔區塊鏈」 - 專注於區塊鏈技術學習

segmentfault主頁:

solidity智慧型合約程式設計基礎

基礎語法 一 1 函式定義 function 函式名 引數型別 引數1,引數型別 引數2 訪問許可權 讀取資料型別函式 returns 返回資料型別 訪問許可權 public private 一般private許可權的話,引數命名前面加乙個 例如 name 讀取資料型別函式 view函式 唯讀且不可...

solidity智慧型合約重要特性

solidity智慧型合約的一些重要特性,如變長陣列中的storage和memory變數,storage和memory的儲存位置以及字串陣列string使用。區塊鏈開發 以太坊 fabric bcos 密碼技術 共識演算法 位元幣 其他鏈 string,bytes 對於變長陣列,在初始化分配空間前不...

solidity 智慧型合約之間的呼叫

在智慧型合約的編譯過程中,有兩種情況 呼叫者和被呼叫者在乙個sol檔案中和分別在不同的檔案中。在下面的智慧型合約中,demo1和demo在同乙個檔案中,可進行同時編譯,然後逐個發布。pragma solidity 0.5.10 contract demo1 contract demo2 當發布完成,...