pragma solidity >=0.4.22 <0.7.0;
/// @title 委託投票
contract ballot
// 提案的型別
struct proposal
address public chairperson;
// 這宣告了乙個狀態變數,為每個可能的位址儲存乙個 `voter`。
// 乙個 `proposal` 結構型別的動態陣列
proposal public proposals;
/// 為 `proposalnames` 中的每個提案,建立乙個新的(投票)表決
constructor(bytes32 memory proposalnames) public )` 建立乙個臨時 proposal 物件,
// `proposals.push(...)` 將其新增到 `proposals` 的末尾
proposals.push(proposal());}}
// 授權 `voter` 對這個(投票)表決進行投票
// 只有 `chairperson` 可以呼叫該函式。
function giverighttovote(address voter) public
/// 把你的投票委託到投票者 `to`。
function delegate(address to) public
// `sender` 是乙個引用, 相當於對 `voters[msg.sender].voted` 進行修改
sender.voted = true;
sender.delegate = to;
voter storage delegate_ = voters[to];
if (delegate_.voted) else
}/// 把你的票(包括委託給你的票),
/// 投給提案 `proposals[proposal].name`.
function vote(uint proposal) public
/// @dev 結合之前所有的投票,計算出最終勝出的提案
function winningproposal() public view
returns (uint winningproposal_)}}
// 呼叫 winningproposal() 函式以獲取提案陣列中獲勝者的索引,並以此返回獲勝者的名稱
function winnername() public view
returns (bytes32 winnername_)
}
智慧型合約 以太坊
智慧型合約是執行在可複製 共享的賬本上的電腦程式,可以處理資訊,接收 儲存和傳送價值。2.1 什麼是以太坊 以太坊 ethereum 是乙個分布式計算機,有許多的節點,其中的每乙個節點都會執行智慧型合約,然後把結果存在區塊鏈上。由於整個網路是分布式的,且應用就是乙個個的狀態組成,儲存了狀態就有了服務...
以太坊和智慧型合約
1 什麼是以太坊?以太坊的官方 告訴我們 以太坊是乙個執行著智慧型合約的分布式平台 應用程式完全按照程式執行,不存在故障 審查 欺詐或第三方干預的可能性 2 智慧型合約就是可以處理資金的指令碼。開發語言 solidity 整合開發工具ide remix,乙個基於瀏覽器的整合開發環境 開發框架 tru...
以太坊智慧型合約安全
智慧型合約就是自主執行的合約,其條款是用 規定的。雖然這個概念已經存在一段時間了,但至少從1996年nick szabo提出了這一概念以來,直到圖靈完備的以太坊區塊鏈來臨,智慧型合約的使用才變得普遍。對智慧型合約理念的字面解釋造成了 即法律 code is law 的正規化理解,意思是那些智慧型合約...