Remix

如何通過地址(0x0)進行混音?

  • January 6, 2021

我希望我的使用者呼叫一個函式並向合約發送一些存款。我希望他們選擇是要發送 ETH 還是 ERC20 代幣。我有我的程式碼,我看不出它有任何缺陷。但是我怎樣才能通過地址(0x0)來重新混合 UI?我的意思是如果我想發送 ETH,我需要將令牌地址設置為 null 或其他東西。

如果沒有選擇。是否可以使用松露發送地址(0x0)?

contract SendEtherOrToken {

function send(uint _value, Token _currency) public payable {
   if (address(_currency) == address(0x0)) { 
       require(msg.value == _value, "ETH value doesn't match offer");
   } 
   else { // use ERC20
       require(msg.value == 0, "ETH would be lost");
       require( _currency.transferFrom(msg.sender, address(this), _value),  "transferFrom failed");
   }
 }
}

我知道,如果發送 ETH,我可以使用假地址並在我的 UI 中提供該選項。if (_currency == fake address) {accept eth} 然後在使用者選擇 ETH 支付選項而不是 Token 時在 UI 中傳遞虛假地址。但是,我不想那樣做。

我得到了答案,你必須傳遞完整的地址才能重新混合。即使是地址或0x0

在這種情況下,它將是:0x0000000000000000000000000000000000000000

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