Solidity

發送 ETH 後收到 ERC20 代幣

  • April 5, 2018

我想在將 eth 發送到合約後實現接收令牌的可能性。我能怎麼做?也許我必須修改這個功能?

function () public payable {
   revert();   
}

您遺漏了一個重要細節:代幣是不同的合約嗎?

如果我們假設代幣在單獨的合約中,並且希望為每個貢獻的乙太幣發送 10 個代幣(我假設代幣像乙太幣一樣有 18 位小數)

ERC20 token; // <-- Token address assigned on the constructor for example.

function () public payable {
   // Received amount of ether
   uint amount = msg.value;
   // Convert to tokens
   uint tokens = amount * 10;
   // Transfer tokens assigned to this contract to sender
   token.transfer(msg.sender, tokens);
}

對於 ERC20 合約介面,您可以使用OpenZeppelin實現。

我建議您查看 OpenZeppelin 團隊實施的其他契約,以便您更好地了解如何程式其他事情。

引用自:https://ethereum.stackexchange.com/questions/44856