首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理滑块检测到的低级别调用

如何处理滑块检测到的低级别调用
EN

Ethereum用户
提问于 2023-03-28 08:01:57
回答 1查看 29关注 0票数 0

我的智能合同里有个低级电话

代码语言:javascript
复制
    (bool success, ) = address.call{ value: amount * percentage / 100 }("");
    require(success, "some error");     

并被滑行检测到。

代码语言:javascript
复制
[{
    "resource": "/home/.../path/.../MyContract.sol",
    "owner": "Slither",
    "severity": 2,
    "message": "Low level call in MyContract.function(string,uint8) (contracts/MyContract.sol#341-365):\n\t- (success) = address.call{value: amount * percentage / 100}() (contracts/MyContract.sol#353)",
    "startLineNumber": 341,
    "startColumn": 2,
    "endLineNumber": 342,
    "endColumn": 1
}]

调用应该将以太发送到另一个智能契约回退函数。虽然这是稳健性调用回退函数的推荐方法,但Slither在这里得到了肯定的结果。

https://solidity-by-example.org/call/

当您只是通过调用fallback函数发送以太时,推荐使用<#>This方法。

那么,为了消除审计报告中的正面影响,我应该做些什么呢?

EN

回答 1

Ethereum用户

发布于 2023-03-28 08:13:53

若要忽略查找,可以手动添加注释,指示应忽略下一行。

代码语言:javascript
复制
//slither-disable-next-line low-level-calls
(bool success, ) = address.call{ value: amount * percentage / 100 }("");
require(success, "some error");  

或者在分流模式下运行Slither

代码语言:javascript
复制
slither . --triage-mode

并确认所有假阳性。更多细节可以在医生们中找到。

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

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

复制
相关文章

相似问题

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