上一篇文章介紹瞭如何搭建Truffle開發框架,所以的開發都是基於這個框架,所以在開發之前需要把這個框架搭建好,不懂的需要先去看上一篇文章,鏈接如下:
https://blog.csdn.net/xuecuilan/article/details/90379919
初步建立好的項目目錄如下:
- contracts:用來存放你編寫的智能合約代碼
- migrations:用來部署的文件夾
- test:用來存放測試代碼
- truffle-config.js :truffle環境配置
Truffle集成了一個開發控制檯,運行下面代碼對你的智能合約進行編譯:
truffle compile
Truffle會根據你的contracts文件夾中的合約按順序進行一一編譯,結果如下:
這一步編譯成功之後,truffle會把編譯好的ABI及字節碼信息保存在 build/cintracts裏面,如下:
注意:每一個合約對應一個json文件;
編譯之後,就可以部署到區塊鏈上了。
在migrations文件夾下已經有一個1-initial-migration.js部署腳本,用來部署Migration.sol合約。Migration.sol合約是Truffle生成的一個用來確保不會進行重複部署的合約,這個合約在contracts文件夾下,我們需要建立一個自己的部署腳本:目錄結構如下
注意:如果一個合約用到別的合約的信息,可以分開寫部署腳本,如上;否則部署腳本可以寫在一起;腳本內容:
注意:deploy函數裏面寫合約名稱和構造函數的參數,用逗號隔開;
目前我們要把智能合約部署到ganache的測試鏈上,所以我們需要先啓動ganache的測試鏈,我用的是ganache提供的可視化界面,具體下載細節請自行百度:圖形如下:
她爲我們提供了十個賬戶,默認使用第一個;
啓動好ganache之後,我們需要修改truffle的配置信息,使其鏈接到ganache網絡;替換如下:需要修改host和port:
module.exports = {
networks: {
// Useful for testing. The `development` name is special - truffle uses it by default
// if it's defined here and no other network is specified at the command line.
// You should run a client (like ganache-cli, geth or parity) in a separate terminal
// tab if you use this network and you must also set the `host`, `port` and `network_id`
// options below to some value.
//
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 7545, // Standard Ethereum port (default: none)
network_id: "*", // Any network (default: none)
},
然後執行如下代碼進行編譯:
truffle migrate
部署成功後,就可以看到ganache鏈中block的變化,之後就可以進行編寫測試代碼了。
測試代碼分爲兩種:一種用javascript編寫,一種用solidity編寫,我一直用solidity進行的測試;
編寫完測試代碼,運行下面代碼進行測試:
truffle test
如下表示測試通過:
接下來與web頁面進行交互什麼的。。。後續再總結
Truffle開發和用Remix的區別:
- Truffle看起來很正式,目錄結構很清晰,領導會覺得你很熟練,適合裝逼;
- remix上寫合約,錯誤提示比idea上更加智能(自我感覺,一直喜歡用,測試很方便,當然領導覺得你這樣測試相當於沒測試);
- remix需要一直部署合約,就是說你只要改一點點合約 就必須重新部署,但是truffle只需要部署一次;