c++ - 在测试网上部署智能合约时出现合约错误中的未知动作
问题描述
我正在尝试在测试网http://api.kylin.alohaeos.com上部署合约。我有以下 hello2.cpp 程序
#include <eosiolib/eosio.hpp>
#include <eosiolib/print.hpp>
using namespace eosio;
class suniltestacc : public contract {
public:
using contract::contract;
[[eosio::action]]
void hi( name user ) {
//require_auth( user );
//print( "Hello, ", name{user} );
print( "Hello, ", user);
}
};
EOSIO_DISPATCH(suniltestacc, (hi))
我使用eosio-cpp -o hello2.wasm hello2.cpp --abigen
. 它给了我两个我忽略的警告。
Warning, empty ricardian clause file
Warning, empty ricardian clause file
然后我执行cleos -u http://api.kylin.alohaeos.com set contract suniltestacc /home/varsha/Varsha/contracts/hello2
这个运行成功,之后我正在尝试这个命令
cleos -u https://api.kylin.alohaeos.com push action suniltestacc hi '["bobmarley"]' -p suniltestacc@active
它给了我错误
error 2019-01-22T08:10:35.520 thread-0 main.cpp:3449 main ] Failed with error: Assert Exception (10)
!action_type.empty(): Unknown action hi in contract suniltestacc.
有人可以帮我解决这个问题。
解决方案
这没有什么问题,一切正常。
以下是我调用您的函数时的结果。
cleos -u https://api.kylin.alohaeos.com push action suniltestacc hi '["bobmarley"]' -p doslnjslongd@active
已执行交易:8faa9669ed143c979afa842489dafdfc610e0c6ad4f2831039a170448f867835 104 字节 134 us
suniltestacc <= suniltestacc::hi {"user":"bobmarley"}
警告:交易在本地执行,但可能尚未被网络确认]
让我知道我是否可以进一步帮助您。
推荐阅读
- ios - Info.plist 文件中键 CFBundleShortVersionString [3.0.0] 的值必须包含比先前批准的版本更高的版本
- objective-c - 如何将以下字符串转换为 URLDecode 并分配给 UILabel - Objective c
- javascript - 如何获得一个反应组件树,就像它在反应开发工具中显示的那样?
- ckeditor - 如何插入图像和超链接 [ckeditor 4]
- javascript - 加载没有图像的网站以提高效率
- node.js - 如何将排序功能与 $or 和 $and 一起使用?
- javascript - 当您在 JavaScript Promises 中省略 .catch 时,实际发生了什么?
- javascript - 无法解析为在 Thymeleaf 中定义 DataTable 的表达式
- java - kurento-room-demo 缺少库 org.kurento.module:markerdetector
- python - 列表/Zip 中的“for”