Remix
如何通過地址(0x0)進行混音?
我希望我的使用者呼叫一個函式並向合約發送一些存款。我希望他們選擇是要發送 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