Solidity

如何發回發送到備份的值?

  • July 18, 2022

有沒有辦法獲取並保留發送到備份/接收函式的值?假設,我想發回發送到我的合約的乙太幣。好的,備份功能的存在足以處理接收乙太幣,但我想保留發送給我的價值。我該怎麼做?

如果您想將金額退回給原始發件人,您可以執行以下操作:

fallback() external payable {
    address _to = msg.sender;
    (bool success, ) = _to.call{value: msg.value}("");
    require(success, "send failed")
}

如果要發送到特定地址,請替換 _to。如果您的合約餘額為零,您可能會因 gas 而面臨一些複雜性,然後發送將失敗。

msg.value包含收到的 ETH 數量,因此您可以將該數量發送回msg.sender.

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