是否有ERC20功能来确保特定代币的付款



是否有ERC/IERC20函数或util可确保收到的付款以特定代币计价?

receive() external payable virtual {

IERC20 token = IERC20(address(0x123...789));

require(
paymentToken == MYtoken,
"Payment Must be MY token"
);
emit PaymentReceived(_msgSender(), msg.value);

receive()函数用于您的合同接受ETH。或者通常是部署合同的网络的本机令牌(BSC网络上的BNB,Tron网络上的TRX,…(

但是,如果您的合同地址收到标准ERC-20代币,它不会以任何方式得到通知。

除了令牌合约专门调用接收方以让他们知道传输的情况(例如在EIP-777tokensReceived()挂钩中定义的(。但是这个钩子首先需要在代币合约中定义,这样你就可以在接收者合约中使用它。如果它不在代币合同中,那么您的合同就无法直接收到收到收到代币的通知。

最新更新