合约的buy()方法用于提供购买股票的接口。注意关键字payable,有了它买股票的人才能够付钱给你。 接收钱没有比这个再简单的了!web
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属性设置 用于购买股票通证的以太币金额。例如:ui
contract.buy({ value:web3.toWei('1','ether'), from:web3.eth.accounts[1] })
在合约的payable方法实现代码中使用msg.value来读取用户支付的以太币数额。 基于用户支付额和股票通证单价,就能够计算出购买数量,并将这些通证赋予购买人, 购买人的帐户地址能够经过msg.sender获取。code
推荐这个,适合新手的以太坊DApp开发教程:教程