以太坊 ERC20 发币测试

目标

在本地测试环境发布 ERC20 代币,测试转账、查询。

开发环境:

  • Truffle v4.1.14 框架
  • Ganache 以太坊测试环境
  • TutorialToken 打包好的 ERC20 示例,我们只需要写很少的代码即可,而且包含了前端页面

步骤

1. 创建项目

mkdir tokentest
cd tokentest
sudo npm install -g lite-server
# 下载安装 tutorialtoken 
truffle unbox tutorialtoken
# 安装依赖 zeppelin-solidity
npm install zeppelin-solidity

truffle.js

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    }
  }
};

2. 代码

contracts/TutorialToken.sol

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

contract TutorialToken is StandardToken {
    string public name = 'TutorialToken';
    string public symbol = 'TT';
    uint public decimals = 2;
    uint public INITIAL_SUPPLY = 12000;

    constructor() public{
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
    }
}

3. 部署

迁移脚本 migrations/2_deploy_contracts.js

var TutorialToken = artifacts.require("./TutorialToken.sol");

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

执行命令:

## 编译
$ truffle compile
## 部署
$ truffle migrate

4. 测试

修改 src/js/app.js 中的连接地址:

...
// 要改成测试网络的地址,Ganache 默认是'http://127.0.0.1:7545'
App.web3Provider = new Web3.providers.HttpProvider('http://127.0.0.1:7545');
...

启动:

npm run dev

会自动打开页面:

以太坊 ERC20 发币测试_第1张图片

显示余额,可以转账。

测试转账,打开 Ganache 界面,找一个账户,比如拷贝第3个账户的地址,然后填到页面输入框,并填写转账金额,比如 1000:

以太坊 ERC20 发币测试_第2张图片

提交后,页面显示的余额会自动改变。

我们到控制台中查看一下目标账户(第3个账户)的余额:

# 进入控制台
$ truffle console
# 获取合约实例
truffle(development)> TutorialToken.deployed().then(instance => token = instance)
# 查看默认账户余额
truffle(development)> token.balanceOf(web3.eth.coinbase)
BigNumber { s: 1, e: 3, c: [ 9000 ] }
# 查看目标账户余额
truffle(development)> token.balanceOf(web3.eth.accounts[2])
BigNumber { s: 1, e: 3, c: [ 3000 ] }

完成。

你可能感兴趣的:(以太坊 ERC20 发币测试)