使用truffle构建ERC20代币

使用truffle+openzeppelin构建ERC20代币

昨天说不用truffle来着,想着remix蛮好的。
今天。 艾玛真香~

Error:Could not find artifacts for MetaCoin from any sources

原来migration文件夹下的js文件是需要排序的。
所以命名格式不能乱1_xx_xx.js后面随意。

后面几个报错就不说了,都是这种比较粗心的。

1.安装openzeppelin

在GitHub上这个已经0.6.0了,但是npm安装下来是0.4.x的。

npm install zeppelin-solidity

2.需要在truffle-config.js中配置版本

  compilers: {
    solc: {
      version: "^0.4.24",    // Fetch exact version from solc-bin (default: truffle's version)
      // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
      // settings: {          // See the solidity docs for advice about optimization and evmVersion
      //  optimizer: {
      //    enabled: false,
      //    runs: 200
      //  },
      //  evmVersion: "byzantium"
      // }
    }
  }

3.创建合约和对应js

pragma solidity ^0.4.24;
import "../node_modules/zeppelin-solidity/contracts/token/ERC20/StandardToken.sol";

contract coin is StandardToken {
  string public name = "pcl";
  string public symbol = "pcl";
  uint8 public decimals = 18;
  uint256 public INITIAL_SUPPLY = 888888;
  constructor() public{
    totalSupply();
    balances[msg.sender] = INITIAL_SUPPLY;
  }
}
//文件名:1_deploy_coin,因为我把初始文件删了。
var coin = artifacts.require("./coin.sol");

module.exports = function(deployer) {
  deployer.deploy(coin);
};

4.编译和测试

编译:

truffle compile

再进入develop下(当然也可以进去在编译)

truffle develop

然后部署

migration

几个常用命令:

account	//这个是直接打印出当前账户

migrate --reset		//重新部署(不知道可以reset时候我就每次都要出去compile一遍。心态崩了。)

coin.deployed().then(t => con = t); 	//创建合约实例为con

con.func()//调用函数

con.func.call()	//没有pure的时候需要call

听说Windows那个terminal好像很强:
https://github.com/microsoft/terminal

你可能感兴趣的:(区块链学习-以太坊)