Erc-20

使用呼叫功能呼叫 ERC20 代幣的轉移不起作用

  • May 10, 2022

我試著做這樣的代幣轉移合約,

contract TokenSender {
   function transferToken(address token1Address, address to, uint256 amount) external {
       (bool check, ) = token1Address.call(abi.encodeWithSignature("transfer(address,uint256)",to,amount));
       require(check, "tokenA is not transferred");
   }
}

但檢查總是失敗。但是我將轉移更改為批准,然後它就可以工作了。但兩者都有相同的界面。

我錯過了什麼?

你總是需要批准這個合約地址才能在外部管理你的資金。您需要做的是使用令牌的批准功能。

轉賬前呼叫approval函式就可以了,基本上每次交易都需要approval。

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