我该如何退还我用来购买ERC20代币的以太币?

时间:2019-02-22 10:54:12

标签: blockchain ethereum solidity erc20 ether

我正在尝试编写一种方法,它会检查给定的以太币是否足以购买我的硬币。如果足够的话,我会给他们各自的硬币数量,但是如果以太币不够的话,我需要将已经用来购买硬币的以太币寄回去。有什么方法可以做到吗?

这是我写的购买硬币的方法。

function buyTokens(uint256 noOfCoins) public payable returns (bool success){
    if(CoinValue*noOfCoins <= msg.value)
    {
        balances[msg.sender] += noOfCoins;
        return true;
    }
    else{

        emit TokenIssues("You doesnt have enough balances to purchase these quartz base coins");
        msg.sender.transfer(msg.value);
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

如果 msg.value 较低,则您期望else子句中的 throw 金额。 这样,以太币将返回给用户。