我试过在transerFrom上工作两天。但不工作所以请帮帮我。
我知道我们需要先批准。批准()和津贴()似乎是好的。我读过这个常见问题( https://forum.openzeppelin.com/t/transferfrom-always-reverts-with-revert-erc20-transfer-amount-exceeds-allowance/3993 ),但是..。不起作用。我也读过这个。ERC20 -批准和TransferFrom不工作
这就是我所做的。
固体中的
这是我的代码code
function approveBUSD(address _spender, uint256 _value) public returns (bool) {
return tokenB.approve(_spender, _value);
}
function buyTokens(uint256 amount) public payable {
uint256 allowance = tokenB.allowance(address(this), msg.sender);
require(allowance >= amount, "Check the token allowance");
tokenB.transferFrom(msg.sender, address(this),amount);
emit BoughtTokens(msg.sender, amount); // log event onto the blockchain我创造了两个稳固的契约。一个是象征性的一个问题。另一个是交换程序。
转机似乎没问题。但是我的合同不能接受BUSD。即使是BUSD的批准似乎也不错。
错误信息是
内部JSON错误。{“代码”:3,“消息”:“执行恢复:不足允许”,“数据”:
所以buyTokens(0)完全有效!.
请帮帮我。我会给你一些建议..。
提前谢谢你。
发布于 2021-07-28 09:21:50
发布于 2023-01-15 14:38:11
你是对的。正确的程序是,首先汤姆应该批准BUSD的合同x。
汤姆批准10美元BUSD.approve(ContractX,10)
https://ethereum.stackexchange.com/questions/104140
复制相似问题