Solidity

在“receive()應付”中檢測接收令牌地址

  • January 23, 2022

對於給定的接收功能,有沒有辦法可以檢測到接收令牌地址(檢測我的契約正在接收什麼硬幣)

是否可以從msg中提取此資訊?

receive() payable external {
   balance += msg.value;
   emit TransferReceived(msg.sender, msg.value);
}    

receive功能僅由原生代幣的轉移觸發,例如乙太坊上的 ETH 或幣安智能鏈上的 BNB。

因此,msg.value始終是原生代幣的數量,而不是任何 ERC-20 代幣的數量。

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