学习区块链(十)--基于truffle和testrpc创建加密数字货币

在前面的章节中,我们主要进行了两个步骤:搭建了truffle和testrpc环境;学习了sodility的语法和以太坊的基本概念。
有了这两部分知识,我们很容易开发一款基于testrpc的测试加密数字货币:

一 首先新建一个dapp2文件夹

mkdir dapp2

二 truffle初始化

truffle init

三 创建合约myToken

truffle create contract myToken

四 编写业务代码
cd contract;
vim myToken.sol;

pragma solidity ^0.4.4;
contract EncryptedToken {
 //storage变量永久存储在区块链上
 uint256 INITIAL_SUPPLY = 10000;
 //地址到账户余额的映射
 mapping(address => uint256) balances;
 //构造函数,合约部署的时候只执行一次,将
 function EncryptedToken() {
 balances[msg.sender] = INITIAL_SUPPLY;
 }
 // 转账到⼀个指定的地址
 function transfer(address _to, uint256 _amount) {
 assert(balances[msg.sender] > _amount);
 balances[msg.sender] -= _amount;
 balances[_to] += _amount;
 }
 // 查看指定地址的余额
 function balanceOf(address _owner) constant returns (uint256) {
 return balances[_owner];
 }
}

五 配置部署文件
编辑migrations/1_initial_migration.js部署脚本,将我们刚才创建的Hello_mshk_top.sol文件设置到发布配置文件中,内容如下:

var myToken= artifacts.require('./myToken.sol');
module.exports = function(deployer) {
 deployer.deploy(myToken);
}

六 到truffle.js配置网络相关

module.exports = {
    networks: {
        development: {
          host: "localhost",
          port: 8545,
          network_id: "*"
        }
    }
};

七 编译部署

退到dapp2目录下

truffle compile
truffle deply

八 测试合约

truffle console;//开启控制台
web3.eth.coinbase;//查看合约拥有者帐号token数量
web3.eth.accounts[0];
web3.eth.accounts[1];

accounts[0]和coinbase是一个账户

扫描二维码关注公众号,回复: 899435 查看本文章

然后调用合约contract的查询余额方法balancesOf:

这里写图片描述

然后调用合约contract的转账方法transfer向accounts[1]转账8888个token:

这里写图片描述

然后查询accounts[1]的余额,发现从0变成8888个token了:

这里写图片描述

九 总结

在这篇文章中,只是简单介绍了代币系统的逻辑,并没有对安全进行相关操作,比如:余额不够
的处理、地址合不合法的处理等等。我想有了前面学习的基础应该很容易看懂这里面的操作逻辑。

猜你喜欢

转载自blog.csdn.net/sureSand/article/details/79307491