如何在智能合约中接收ETH

问题描述 投票:0回答:2

我正在开发一个 ICO,我得到了这个代码,众筹是使用 dai 代币,但我想使用以太币, 我该怎么做?

IERC20 public dai = IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F);
function buy(uint etherAmount)
    external
    icoActive() {
    require(
      etherAmount >= minPurchase && etherAmount <= maxPurchase, 
      'have to buy between minPurchase and maxPurchase'
    );
    uint tokenAmount = etherAmount.div(price);
    
    require(
      tokenAmount <= availableTokens, 
      'Not enough tokens left for sale'
    );
    dai.transferFrom(msg.sender, address(this), etherAmount);
    token.mint(address(this), tokenAmount);
    sales[msg.sender] = Sale(
        msg.sender,
        tokenAmount,
        false
    );
}
blockchain ethereum solidity truffle cryptocurrency
2个回答
1
投票

您可以使用

payable
函数修饰符。请参阅文档如何在智能合约中接收以太币


0
投票

您需要有 receive() 回调函数才能在智能合约中接收 ETH。

将此功能添加到您的智能合约中。

receive() 外部应付{}

© www.soinside.com 2019 - 2024. All rights reserved.