智能合约开发——以太坊 DApp 实现 购买通证token

合约的buy()方法用于提供购买股票的接口。注意关键字payable,有了它买股票的人才可以付钱给你。 接收钱没有比这个再简单的了!

function buy() payable public returns (uint) {
  uint tokensToBuy = msg.value / tokenPrice;    
  require(tokensToBuy <= balanceTokens);        
  voterInfo[msg.sender].voterAddress = msg.sender;    
  voterInfo[msg.sender].tokensBought += tokensToBuy;  
  balanceTokens -= tokensToBuy;                
  return tokensToBuy;                          
}

当用户(或程序)调用合约的buy()方法时,需要在请求消息里利用value属性设置 用于购买股票通证的以太币金额。例如:

contract.buy({
  value:web3.toWei('1','ether'), 
  from:web3.eth.accounts[1]      
})

在合约的payable方法实现代码中使用msg.value来读取用户支付的以太币数额。 基于用户支付额和股票通证单价,就可以计算出购买数量,并将这些通证赋予购买人, 购买人的账户地址可以通过msg.sender获取。

推荐这个,适合新手的以太坊DApp开发教程:

http://www.dwz.cn/7zBqC2

posted @ 2018-03-22 14:27  Jason-node  阅读(624)  评论(0编辑  收藏  举报