sdk - pragma solidity - jpmorganchase cakeshop 中的编译错误
问题描述
我正在运行 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 上编译,因为它在本地机器上编译
解决方案
使用 Remix,您的合同似乎可能存在以下问题:
- 您正在使用构造函数的合同名称。您应该改用
constructor
关键字。 - 您的所有功能都缺少可见性修饰符。考虑将
public
修饰符添加到每个函数,包括构造函数。 - 应使用
emit
关键字调用事件。例子:emit Change("set", x);
推荐阅读
- prolog - 如何从命令行运行 prolog 文件而不是放到 repl 中?
- java - 子类中的构造函数,只有超类的部分参数
- flutter - 在“flutter”下发现了意外的孩子“assets.fonts”
- laravel - Laravel Eloquent 查询顺序分层
- android - 如何在回收视图 Kotlin 中更新数据对象的 editText
- python - 使用 groupby 过滤重复值
- r - 在 R 中,当替换列不为空时,如何将一列中的值替换为另一列的值?
- php - 带有会话和 wordpress 简码的 PHP 自定义登录页面
- sql - 创建在包含的数据类型上没有区别的语义 SQL 表是错误的吗?
- java - Java 8 Instant.range 和 Instant.with 出现不一致