深入以太坊智慧型合約 ABI

2021-09-20 08:19:58 字數 1574 閱讀 6539

編譯智慧型合約的**變成可在 evm 上執行的 bytecode(binary code)。同時可以通過編譯取得智慧型合約的 abi

部署智慧型合約,實際上是把 bytecode 儲存在鏈上(通過乙個transaction),並取得乙個專屬於這個合約的位址

如果要寫個程式呼叫這個智慧型合約,就要把資訊傳送到這個合約的位址(一樣的也是通過乙個 transaction)。ethereum 節點會根據輸入的資訊,選擇要執行合約中的哪乙個 function 和要輸入的引數

type:a string,"function", "constructor", or "fallback"

inputs:an array,function 輸入的引數,包含:

outputs:an array,function 的返回值,和inputs使用相同表示方式。如果沒有返回值可忽略,值為

payabletrue,function 是否可收 ether,預設為false

constanttrue,function 是否會改寫區塊鏈狀態,反之為false

statemutability:a string,其值可能為以下其中之一:"pure"(不會讀寫區塊鏈狀態)、"view"(唯讀不寫區塊鏈狀態)、"payable" and "nonpayable"(會改區塊鏈狀態,且如可收 ether 為 "payable",反之為 "nonpayable")

type: a string,always "event"

inputs: an array,輸入引數,包含:

anonymous:true,如果 event 被定義為 anonymous

set():乙個修改data值的 function

set():乙個在每次修寫data時記錄 log 的 event

pragma solidity ^0.4

.20;

contract ******storage

}

,

"payable": false,

"statemutabㄒility": "view",

"type": "function"

},,],

"name": "set",

"type": "event"

},],

"name": "set",

"outputs": ,

"payable": false,

"statemutability": "nonpayable",

"type": "function"

}]

etherscan

智慧型合約 以太坊

智慧型合約是執行在可複製 共享的賬本上的電腦程式,可以處理資訊,接收 儲存和傳送價值。2.1 什麼是以太坊 以太坊 ethereum 是乙個分布式計算機,有許多的節點,其中的每乙個節點都會執行智慧型合約,然後把結果存在區塊鏈上。由於整個網路是分布式的,且應用就是乙個個的狀態組成,儲存了狀態就有了服務...

深入淺出以太坊智慧型合約

本系列文章將全面講述ethereum的原理,特點和機制,以及涉及的各種概念。區塊鏈的執行機制 首先大家必須了解區塊鏈。這裡只做乙個簡單的描述,區塊鏈就是一條全網賬單鏈,鏈的使用者憑著自己的私鑰加密交易內容,然後傳送到網路上後,礦工通過比拼算力將內容加密提交到區塊鏈上,同時獲得使用者支付的手續費。由於...

以太坊和智慧型合約

1 什麼是以太坊?以太坊的官方 告訴我們 以太坊是乙個執行著智慧型合約的分布式平台 應用程式完全按照程式執行,不存在故障 審查 欺詐或第三方干預的可能性 2 智慧型合約就是可以處理資金的指令碼。開發語言 solidity 整合開發工具ide remix,乙個基於瀏覽器的整合開發環境 開發框架 tru...