0

我正在运行 SimpleStorage 示例中的一个简单代码,并在其上添加了几行用于其他合同的代码。合同从松露编译得很好。但是在 Cakeshop Integrated IDE 上它显示编译错误。

pragma solidity ^0.4.24;
pragma experimental ABIEncoderV2;
contract SimpleStorage {

    uint public storedData; 

    event Change(string message, uint newVal);

    function SimpleStorage(uint initVal) {
        Change("initialized", initVal);
        storedData = initVal;
    }

    function set(uint x) {
        Change("set", x);
        storedData = x;
    }

    function get() constant returns (uint retVal) {
        return storedData;
    }

}

它应该在 cakeshop Web UI 上编译,因为它在本地机器上编译

4

1 回答 1

1

使用 Remix,您的合同似乎可能存在以下问题:

  1. 您正在使用构造函数的合同名称。您应该改用constructor关键字。
  2. 您的所有功能都缺少可见性修饰符。考虑将public修饰符添加到每个函数,包括构造函数。
  3. 应使用emit关键字调用事件。例子:emit Change("set", x);
于 2018-12-20T05:47:31.827 回答