首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >transferFrom()不工作

transferFrom()不工作
EN

Ethereum用户
提问于 2021-07-27 09:27:08
回答 2查看 877关注 0票数 1

我试过在transerFrom上工作两天。但不工作所以请帮帮我。

我知道我们需要先批准。批准()和津贴()似乎是好的。我读过这个常见问题( https://forum.openzeppelin.com/t/transferfrom-always-reverts-with-revert-erc20-transfer-amount-exceeds-allowance/3993 ),但是..。不起作用。我也读过这个。ERC20 -批准和TransferFrom不工作

这就是我所做的。

我想做的是,例如,

  1. 汤姆寄10块钱给我的合同X。
  2. 合同X把令牌A寄给汤姆。

固体中的

(基于混合)

  1. 汤姆批准10美元contractX.approve(汤姆的地址,10)
  2. Tom发送函数buyToken⇨contractX.buyTokens(10)

这是我的代码code

代码语言:javascript
复制
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)完全有效!.

请帮帮我。我会给你一些建议..。

提前谢谢你。

EN

回答 2

Ethereum用户

发布于 2021-07-28 09:21:50

我终于成功了。

我停止使用混音。我刚从web3用过。

哈哈,

是20批准(支出者,金额)认为业主也是合同

感谢这篇文章

票数 1
EN

Ethereum用户

发布于 2023-01-15 14:38:11

你是对的。正确的程序是,首先汤姆应该批准BUSD的合同x。

汤姆批准10美元BUSD.approve(ContractX,10)

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/104140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档