这是混音,编译器还是openzeplin错误?

时间:2019-07-20 06:12:59

标签: solidity remix open-zeppelin

我刚刚编写了一个简单的代码来测试openzeplin Safemath库。我正在使用最新版本的remix ide并针对^ 0.5.0进行编译。 Remix正在使用0.5.0_commit.1d4f565a编译器 环境是JavaScript VM EVM版本是编译器的默认值

add函数似乎在下面给出的代码中不起作用

我已经尝试过x.sub(1),它会按预期方式引发异常,我还尝试过将x初始化为不同的值,但仍然无法正常工作。

pragma solidity ^0.5.0;
import "./SafeMath.sol";

contract SimpleStorage {
    using SafeMath for uint;
    uint x;

    event incremented(uint x);

    constructor() public{
        x=0;
    }

    function increment() public {
        x.add(1);
        emit incremented(x);
    }

    function get() external view returns (uint) {
        return x;
    }
}

预期输出是每次调用该函数时增加1,但每次均获得相同的值。发射也显示相同的值。

1 个答案:

答案 0 :(得分:0)

好吧,这是你的错误:)

尝试使用x.add(1)而不是x = x.add(1)。添加函数不在位,返回新值,您需要将新值分配给x