讓我們繼續建構我們的智能合約吧! 列出我們想要在選舉中投票的所有候選人
在我們做的 smoke test 當中,創建了一種將單個候選人存儲到我們的智能合約的方法
讓我們先重新打開 Election.sol 進行編輯
需要一個存放候選人的地方。
可以用Solidity mapping來做到這一點。Solidity mapping 就像 array 或 hash,關聯 key-value pairs。提供了以 id 進行每個候選人的查找。
addCandidate
在 function內,我們遞增候選計數器以表示已添加新候選人。
然後我們使用新的候選人結構更新mapping,使用當前候選人計數作為key。
這個 Candidate struct使用來自當前候選人計數的候選人id、名稱和初始投票計數初始化為 0。
將合約部署到區塊鏈並用兩名候選人填充我們的選舉時,執行此遷移。
通過表示合約已經部署
truffle migrate --reset
然後重新打開控制台
truffle console
Eleection.deployed().then(function(i){ app=i; })
查看列表中第一個候選人,可以在這裡看到該候選人的值
括號中也能改為二,代表查看第二個,但不能查看沒有的數字
app.candidates(1)
app.candidates(1).then(function(c){ candidate = c; })
c
candidate
今天先到這,明天再繼續!