本篇是參考truffle官網所做的筆記:ROBUST SMART CONTRACTS WITH OPENZEPPELIN
OpenZeppelin介紹
可以把OpenZeppelin當成強化Solidity資訊安全的Framework,為智能合約附上Ethereum所認可的ERC-20標準,畢竟合約要處理的可是真正的錢!
ERC-20標準介紹:What is ERC-20 and What Does it Mean for Ethereum?
簡單來說ERC-20標準
允許錢包、交易所和其他智能合約以一種常見的方式對接各種代幣。
使用OpenZeppelin預備知識
建議先瞭解ethereum以及Smart Contract語言Solidity
以及開發Smart Contract的框架 Truffle
可以參考官網或是我之前所做的筆記
環境設定
創立一個資料夾 open_z
使用truffle unbox把練習專案給下載到本機上
1 | cd open_z |
安裝 zeppelin-solidity
1 | npm install zeppelin-solidity |
為tutorialtoken專案撰寫 TutorialToken合約
在 /contracts 目錄底下創建 TutorialToken.sol
TutorialToken.sol
1 | pragma solidity ^0.4.4; |
透過以上簡短的程式碼就已經創造出符合Ethereum的 ERC-20標準的Token囉!
編譯(Compile)以及部署(Deploy)
在/migrations
內,創建2_deploy_contracts.js
檔案
2_deploy_contracts.js
1 | var TutorialToken = artifacts.require("./TutorialToken.sol"); |
在terminal,先用testrpc啟好自己的測試鍊
1 | testrpc |
then 執行
1 | truffle comile |
和TutorialToken Dapp互動
我們使用metamask和我們的Dapp互動
並且該專案已經內建 lite-server
可運行Dapp
執行
1 | npm run dev |
看到以下畫面則表示成功運行!
(別忘了要先登入metamask,以便前端能夠擷取到testrpc所開啟的錢包資訊)
以及可以看到在metamask上錢包的資訊
總結: Truffle+OpenZeppelin = A Superb Development Experience
透過:
- Truffle:開發智能合約的框架
- OpenZeppelin:可為智能合約提供ERC-20標準的工具
就可以打造出可上市的智能合約的開發環境!
對OpenZeppelin內的合約架構有興趣的朋友可以觀看我這篇筆記: