Как получить ETH в смарт — контракте

#blockchain #ethereum #solidity #truffle #cryptocurrency

Вопрос:

я работаю над ico, и я получил этот код, краудсейл был с токеном dai, но я хочу работать с эфиром, как я могу это сделать ?

 IERC20 public dai = IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F);
function buy(uint etherAmount)
    external
    icoActive() {
    require(
      etherAmount >= minPurchase amp;amp; 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
    );
}
 

Ответ №1:

Вы можете использовать модификатор payable функции. Смотрите документацию о том, как получать эфир в смарт-контрактах.