欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-29 17:22:58
...

在前面的章节中,我们主要进行了两个步骤:搭建了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是一个账户

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

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

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

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

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

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

九 总结

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