智能合約開發——以太坊 DApp 實現 購買通證token

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

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

相關文章
相關標籤/搜索