Erc-20
使用呼叫功能呼叫 ERC20 代幣的轉移不起作用
我試著做這樣的代幣轉移合約,
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。