首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >transferFrom函数不起作用

transferFrom函数不起作用
EN

Ethereum用户
提问于 2018-02-18 13:05:09
回答 2查看 1.5K关注 0票数 1

我做了一个简单的ERC20令牌智能契约,但是我的transferFrom函数不能工作。我一直收到“注意:如果你发送值的话,构造函数应该是可支付的。”即使我宣布它是应付的。

代码语言:javascript
复制
function transferFrom(address from, address to, uint256 value) payable public returns(bool success) {
  require(
    allowed[from][msg.sender] >= value
    && balances[from] >= value
    && value >= 0
  );
  balances[from] -= value;
  balances[to] += value;
  allowed[from][msg.sender] -= value;
  Transfer(from, to, value);
  return true;
}
EN

回答 2

Ethereum用户

发布于 2019-07-28 00:31:15

如果您正在使用转移,您的功能是启动一种支付形式。应付款项是指在将乙醚拿到合同时,哪个职能只对以太付款作出反应。

您需要从您的函数中删除传输调用。

转移(从价值转移到价值);

那就行了。然后,如果您愿意的话,可以发出不同的应付款功能。

票数 0
EN

Ethereum用户

发布于 2018-02-18 18:23:51

我想是你刚来的时候。可能有两个问题:调用函数和需求。首先让我解释一下payable函数。当您声明一个函数为应付款时,这意味着转换将发送以太到该函数。

如何调用应付函数,

代码语言:javascript
复制
contractObj.sampleFunction.sendTransaction(ar1, arg2,{from: <FROM>, value:<Eth_in_wei>});

如果您不使用eth事务调用函数,它将抛出一个error.Note:如果您发送值,则应支付构造函数

来到你们的基地:

transferFrom()函数将检查用户A是否允许使用X号令牌自动借入B地址?如果是,它将从A中扣除令牌并贷记到B地址

第一,用户A必须使用B地址和令牌数调用审批()函数。在“批准”方法中,直接将X个令牌数分配给B。

因此,您必须调用transferFrom(),然后,经过一段时间或第三方合同将调用地址A、地址B和Y的()方法。

当您想将存储变量保存在实体中时,需要使用{from:,gas:}调用sendTransaction(),如果函数是payable,则值键将是部分。

有关参考资料,请参阅以下连结:

应付款()实效性

https://theethereum.wiki/w/index.php/ERC20_令牌_标准

https://medium.com/@jgm.orinoco/understanding-erc-20-token-contracts-a809a7310aa5

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

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

复制
相关文章

相似问题

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