合約的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開發教程:教程