首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查函数是否应付?

如何检查函数是否应付?
EN

Stack Overflow用户
提问于 2019-05-01 10:31:42
回答 2查看 262关注 0票数 0

如何在调用契约函数前签入代码(在实心端或/和Web3端),该函数是否为应付函数?

例如,我今天在token EURS中找到了这个

代码语言:javascript
复制
function transfer (address _to, uint256 _value)
public payable returns (bool success);

这不是使erc20转账功能为应付的标准!如果用户使用EURS令牌,这不是在我的应用程序中制造错误的标准逻辑。

这是标准的

代码语言:javascript
复制
function transfer(address to, uint tokens) public returns (bool 
success);

所以我需要,或者覆盖这不是我的应用合同端的标准传输,或者在最坏的情况下在前端端禁止这样的令牌。

EN

回答 2

Stack Overflow用户

发布于 2019-05-01 18:26:08

在一行中回答您的问题:

任何标记为payable的函数都可以被视为接收ethers。

function testPayable() external payable {...}

上面的函数是可支付的,因此可以接收。

但毫无疑问,payable关键字仅用于接收Ethers,而不是ERC20令牌。

因此,在你的例子中,我可以看到传递函数被标记为payable,如果它是ERC20令牌,则不应该是这种情况。

我觉得有点可疑,你觉得呢?

票数 0
EN

Stack Overflow用户

发布于 2019-05-06 03:40:16

一言以蔽之:在不知道abi /接口的情况下,无法从外部或内部检查函数是否应支付。

什么是应付的?

在可靠性方面,

  • Payable的工作方式与任何其他Payable相似。它在执行应用它的函数之前运行。需要
  • Payable才能接收以太。如果您将事务处理中的以太发送到非应付函数,则事务处理将被还原。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55930963

复制
相关文章

相似问题

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