首页 > 解决方案 > 在测试网上部署智能合约时出现合约错误中的未知动作

问题描述

我正在尝试在测试网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.

有人可以帮我解决这个问题。

标签: c++blockchainsmartcontractseos

解决方案


这没有什么问题,一切正常。

以下是我调用您的函数时的结果。

cleos -u https://api.kylin.alohaeos.com push action suniltestacc hi '["bobmarley"]' -p doslnjslongd@active

已执行交易:8faa9669ed143c979afa842489dafdfc610e0c6ad4f2831039a170448f867835 104 字节 134 us

suniltestacc <= suniltestacc::hi {"user":"bobmarley"}

警告:交易在本地执行,但可能尚未被网络确认]

让我知道我是否可以进一步帮助您。


推荐阅读