iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
Blockchain

D30 Block Chain 系列 第 22

D22 Ubuntu「扣得」智能合約

安裝環境請看

創建一個放Truffle項目的資料夾

mkdir hello && cd hello

不包括智能合約的項目用truffle init初始化,使用truffle unbox 來下載各種範例

truffle init

https://ithelp.ithome.com.tw/upload/images/20181105/201124982ZFOtX5uzb.png

在contracts資料夾裡放的是這專案的所有solidity檔案,因此在contracts資料夾中建立一個Hello.sol檔案

pragma solidity ^0.4.11;  // solidity版本
  contract HelloWorld {
    function say () public returns (string) {
        return ("Hello World");
    }
}

在migrations資料夾下可維護些腳本,在其下建立2_deploy_contracts.js檔案

var HelloWorld = artifacts.require("HelloWorld");
module.exports = function(deployer) {
  deployer.deploy(HelloWorld);  //contract名稱
};

編輯智能合約

truffle compile

在Truffle4.0.0以上便可直接用develop部署

truffle develop

會自動創建10組帳密
編輯智能合約

truffle compile

調用智能合約

truffle migrate

用Javascript 語法與合約互動
取得合約中的Instance,並存進contract變數中

HelloWorld.deployed().then(instance => contract = instance)

呼叫函數

contract.say.call()

MetaMask錢包
要牢記註冊後的密碼
https://ithelp.ithome.com.tw/upload/images/20181105/20112498LaejwLmR5B.png
進入後會有一長串英文組合文字,需要記錄下來,以後會用到

建立好錢包之後,首先要從以太幣主網路切換到測試用的 Rinkeby Test Network,才不會每次測試合約都需要花錢
https://ithelp.ithome.com.tw/upload/images/20181110/20112498tBpo4p5uol.png
把錢包位址貼到,就會給你 0.001 Ether
想要更多則到

文章另會分享在stars blog中,歡迎一起交流。


上一篇
D21 區塊鏈中的智能合約
下一篇
D23 REMIX「扣得」智能合約
系列文
D30 Block Chain 30

尚未有邦友留言

立即登入留言