今天来规划另一个题目区块链留言板。
留言板其实很简单,但是会比昨天的投票系统结构稍微复杂一点,我们先来看看合约该怎麽写。
我们一样先建立一个资料夹 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 完成。
学习目标 if判断&switch case 、取得html元素 if判断 if(条件)-&g...
这年头要赚政府的钱也不容易啊 资安法要求的对象不只有公务机关,连委外的厂商也需要符合大部分的应办事项...
Vue 的模组 - component 作用 Vue 的模组 component 是可以重复使用的 ...
元件介绍 Slider 是一个滑动型输入器,允许使用者在数值区间内进行选择,选择的值可为连续值或是离...
很常有人会问说 ㄟㄟ 怎麽不能用全域搜寻料号 这时我只能回答没有买这功能 就是原厂右上角的框框 那麽...