程序员

Error 3050003: eosio_assert_mess

2019-01-31  本文已影响4人  小亮光

在调用 cleos push action actionx时,出现

Error 3050003: eosio_assert_message assertion failure 

Error Details: 

assertion failure with message: read 

只要在actionx中出现对Table的迭代器访问,就会出现这个错误提示

开头几次调用push  actionx是没有问题的,然后一边添加业务逻辑,一边修改Table的数据结构,直到出现了这个问题,怀疑与表结构数据不一致有关。

尝试一:清空表数据,创建clear table的action然后调用之,

没有惊喜,push action clear 本身就会触发这个错误,尝试失败。

尝试二:删除合约

cleos -uhttp://jungle2.cryptolions.io:80 set contract myaccount ../mycontract --clear

表成功删除,但调用push action actionx错误仍然存在。

可能是TABLE的错误太严重了,只好用另外一个测试账户重新发布合约

然后再调用合约的 actions,此错误不再出现。

经验:在修改表的数据结构之前,需要先调用erase删除以前的表结构及数据,这之后才可调用emplace,push_back等增加数据条目。

上一篇下一篇

猜你喜欢

热点阅读