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等增加数据条目。