用truffle和openzeppelin發幣

truffle簡介

官方網站:https://www.trufflesuite.com/
Truffle是針對基於以太坊的Solidity語言的一套開發框架。本身基於Javascript。

  • 首先對客戶端做了深度集成。開發,測試,部署一行命令都可以搞定。不用再記那麼多環境地址,繁重的配置更改,及記住諸多的命令。
  • 它提供了一套類似maven或gradle這樣的項目構建機制,能自動生成相關目錄,默認是基於Web的。當前這個打包機制是自定義的,比較簡陋,不與當前流行打包方案兼容。但自已稱會棄用,與主流兼容,好在它也支持自定義打包流程。
  • 提供了合約抽象接口,可以直接通過var meta = MetaCoin.deployed();拿到合約對象後,在Javascript中直接操作對應的合約函數。原理是使用了基於web3.js封裝的Ether Pudding工具包。簡化開發流程。
  • 提供了控制檯,使用框架構建後,可以直接在命令行調用輸出結果,可極大方便開發調試。
  • 提供了監控合約,配置變化的自動發佈,部署流程。不用每個修改後都重走整個流程。

openzeppelin簡介

官方網站:https://openzeppelin.com/contracts/
因爲智能合約往往涉及金錢,保證Soldity代碼沒有錯誤,以及足夠的安全是非常根本的。Zeppelin Solutions,一個智能合約審查服務商,已經意識到相關的需求。建立在他們的合約審查經驗之上,他們把一些最佳實踐整理到了OpenZeppelin。它包括最常用的ERC標準實現。

安裝truffle

需要nodejs環境

 npm install -g truffle
 npm install -g request

項目初始化、安裝openzeppelin

mkdir myproject
cd myproject
truffle init

npm init -y
npm install --save-exact openzeppelin-solidity

編寫合約

進入contracts目錄創建PldToken.sol文件

pragma solidity ^0.5.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
contract PldToken is ERC20, ERC20Detailed {
    constructor () public
    ERC20Detailed("Fuck Token", "PLD", 18)
    {
        _mint(msg.sender,10000 * (10 ** uint256(decimals())));
    }
}

編譯

truffle compile

編譯成功後會在builds目錄下生產ABI文件

修改配置

truffle-config.js

 rinkeby: {
     host: "yourip",    // Localhost (default: none)
     port: 8545,            // Standard Ethereum port (default: none)
     network_id: "4",       // Any network (default: none)
 }

部署

創建部署文件,進入migrations目錄,創建2_deploy_contracts.js,內容如下

const PldToken = artifacts.require("./PldToken.sol");
module.exports = function(deployer, network, accounts) {
  if (network == "rinkeby") {
    deployer.deploy(PldToken);
  } 
};

執行部署命令(部署在以太坊rinkeby測試網絡)

#需要先解鎖賬號
truffle migrate --network rinkeby
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章