Hello! Iām experimenting with a presale contract based on the BSC testnet, and in the contract Iām attempting to achieve the purchase of my own token with USDT.
Using my own code within the contract itself, I cannot get approval to go through properly for the presale contract to spend my USDT on behalf of me.
However if I use the approve function within the āwrite contractā section of the USDT token on BSCSCAN, it does work - and I can buy tokens after approval went through.
While approval via BSCSCAN works, this would not be convenient for further users of the contract. So I would need working code within the contract itself to cover approvals, but I havenāt been able to get any working as expected.
Example of the approval code:
function approveUSDT() public {
IERC20 usdtToken = IERC20(0x337610d27c682E347C9cD60BD4b3b107C9d34dDd);
require(usdtToken.approve(address(this), tokenAmount), "Approval failed");
emit ApprovalSuccessful(msg.sender, tokenAmount);
}
What am I missing here? Thanks!