Erc-20
呼叫 TransferFrom() 函式時出現執行恢復錯誤
這是我的以下程式碼。我正在使用 Rinkeby 網路。
//SPDX-License-Identifier: MIT pragma solidity ^0.8; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol"; contract TransferDAI{ IERC20 public dai; constructor() { dai = IERC20(0x5592EC0cfb4dbc12D3aB100b257153436a1f0FEa); } function Transfer(uint _amount) external { dai.transferFrom(msg.sender, address(this), _amount); } // Some extra functions for now... function getDaiBalance(address _address) external view returns(uint) { return dai.balanceOf(_address); } }
我無法將 Dai 轉移到合約地址。雖然我可以查看
getDaiBalance
並看到正確數量的 DAI。任何線索都會有所幫助。我嘗試使用
dai.approve(msg.sender,_amount)
它沒有幫助。
dai.approve(msg.sender, _amount)
讓我們msg.sender
花費_amount
合約餘額中的代幣。不是反過來。您需要approve
直接在 DAI 合約地址上呼叫您的錢包,並輸入您的合約地址和金額。