Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 1.3 KB

File metadata and controls

51 lines (41 loc) · 1.3 KB

作者:@愚指导


payable 可能导致资金被锁

漏洞说明

漏洞在代码 PositionManager.sol#L61 处。

    function mint(
        MintParams calldata params
    )
        external
        payable
        override
        checkDeadline(params.deadline)
        returns (
            uint256 positionId,
            uint128 liquidity,
            uint256 amount0,
            uint256 amount1
        )
    {

因为我们的合约并不支持原生代币的交易,所以也没有做原生代币的提取,我们的合约中的 payable 其实是没有必要的,相反它还可能会导致意外转入原生代币到合约之后无法提取。

修复方法

修复方法如下,去掉 payable 即可。

    function mint(
        MintParams calldata params
    )
        external
-       payable
        override
        checkDeadline(params.deadline)
        returns (
            uint256 positionId,
            uint128 liquidity,
            uint256 amount0,
            uint256 amount1
        )
    {

这个是漏洞提交的简单的示例模板,你可以提交 PR 来提交你发现的漏洞,帮助社区同学学习。