[區塊鏈&DAPP介紹 Day27] Dapp 實戰 留言版 - 1
今天來規劃另一個題目區塊鏈留言板。
留言板其實很簡單,但是會比昨天的投票系統結構稍微複雜一點,我們先來看看合約該怎麼寫。
我們一樣先建立一個資料夾 dapp-guestbook ,然後進去資料夾裡面下
truffle init
透過 truffle 把目錄結構產生出來後,就可以進去 contract 資料夾,新增一個 Guestbook.sol,檔案內容如下。
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.21 <0.7.0;
contract Guestbook {
    //定義一個 struct 裡面會有文字、誰留言的、留言時間
    struct Item {
        string word;
        address who;
        uint when ;
    }
    //定義一個 陣列,儲存上面的 item
    Item[] private allWords;
    function save(string memory s, uint t) public {
        allWords.push(Item({
            word: s,
            who: msg.sender,
            when: t
        }));
    }
    查詢陣列長度
    function getSize() public view returns (uint){
        return allWords.length;
    }
    查詢留言板內的內容
    function queryGusetbook(uint index) public view returns (string memory, address, uint) {
        //如果長度為0 則直接回傳
        if(allWords.length==0){
            return ("", msg.sender, 0);
        }else{
            Item storage result = allWords[index];
            return (result.word, result.who, result.when);
        }
    }
}
這樣我們就完成了一個留言板合約,明天我們來把剩下的 html & js 完成。