今天我們要來繼續truffle boxes中寵物商店(pet-shop)的範例,現在我們要來編譯智能合約,之前我們都使用Remix IDE來編寫,但是今天我們要用相當好用的
Sublime Text 3來編寫(https://www.sublimetext.com/3),身為商管學生,我了解大家可能沒用過Sublime,不要緊張,跟著商管學生從零開始一步一步慢慢來。
首先我們下載安裝Sublime。
接著我們打開我們的pet資料夾。
我們要編寫的智能合約例子在這裡(https://www.trufflesuite.com/tutorials/pet-shop),我們把智能合約的code複製過來,然後存成Adoption.sol,並且儲存在contracts資料夾中。
相信現在對大家來說看懂這份智能合約不是難事,讓我來幫大家回顧一下。
下面這行是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
下一步我們要進行遷移(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;
}
}