iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
Blockchain

商管學生如何從零開始學習區塊鏈系列 第 23

DAY23 從編寫Adoption智能合約繼續的Dapp之旅

  • 分享至 

  • xImage
  •  

今天我們要來繼續truffle boxes中寵物商店(pet-shop)的範例,現在我們要來編譯智能合約,之前我們都使用Remix IDE來編寫,但是今天我們要用相當好用的
Sublime Text 3來編寫(https://www.sublimetext.com/3),身為商管學生,我了解大家可能沒用過Sublime,不要緊張,跟著商管學生從零開始一步一步慢慢來。

首先我們下載安裝Sublime。
https://ithelp.ithome.com.tw/upload/images/20191004/20120814vq9VHzYrBk.jpg
接著我們打開我們的pet資料夾。
https://ithelp.ithome.com.tw/upload/images/20191004/20120814ER95gNU7x8.jpg
我們要編寫的智能合約例子在這裡(https://www.trufflesuite.com/tutorials/pet-shop),我們把智能合約的code複製過來,然後存成Adoption.sol,並且儲存在contracts資料夾中。
https://ithelp.ithome.com.tw/upload/images/20191004/20120814iCGyLMZ9BE.jpg
相信現在對大家來說看懂這份智能合約不是難事,讓我來幫大家回顧一下。
下面這行是Solidity可接受的版本。

pragma solidity ^0.5.0;

這個智能合約叫Adoption(領養寵物)。

contract Adoption {

address(地址)就像是我們帳戶的帳號,我們現在有一個叫adopters(領養寵物的人)的地址(帳戶),我們的address(地址)長度是16。

address[16] public adopters;

下面是我們領養寵物的function (函數)adopt,我們的寵物ID(petId)必須在0到15之間,msg.sender是發送消息的地址,是我們的adopters(領養寵物的人)的地址。

function adopt(uint petId) public returns (uint) {
  require(petId >= 0 && petId <= 15);

  adopters[petId] = msg.sender;

  return petId;
}

下面是寵物領養狀態的function (函數) getAdopters(),它能在我們(adopters)領養寵物後,更新所有寵物的領養狀態(是否成功領養)。

function getAdopters() public view returns (address[16] memory) {
  return adopters;
}

將Adoption.sol儲存在contracts資料夾後,我們就可以編譯(compile)我們的智能合約了,我們回到電腦的命令提示字元中truffle的開發的環境輸入下面這行。

truffle compile

https://ithelp.ithome.com.tw/upload/images/20191004/201208140WDcp0KuPY.jpg
下一步我們要進行遷移(migrate),將這個智能合約遷移到區塊鏈上,我們需要下載Ganache來進行開發和測試,下一篇我們要安裝Ganache、遷移(migrate)智能合約,並且修改我們app.js的內容(也就是我們領養狗狗的網站),那我們明天見~

完整程式碼:

pragma solidity ^0.5.0;

contract Adoption {

address[16] public adopters;

function adopt(uint petId) public returns (uint) {
  require(petId >= 0 && petId <= 15);

  adopters[petId] = msg.sender;

  return petId;
}

function getAdopters() public view returns (address[16] memory) {
  return adopters;
}
}

上一篇
DAY22 從安裝Node.js、npm和Truffle開始的Dapp之旅
下一篇
DAY24 從Ganache、遷移(migrate)和app.js 持續的Dapp之旅
系列文
商管學生如何從零開始學習區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言