如何解决如何在 eosio (c++) 中调用私有字段
我在 eosio 中有两个版本的响应:
v. 1.8.1
block_state::block_state( pending_block_header_state&& cur,const signed_block_ptr& b,vector<transaction_Metadata_ptr>&& trx_Metas,const std::function<void( block_timestamp_type,const flat_set<digest_type>&,const vector<digest_type>& )>& validator,bool skip_validate_signee
)
:block_header_state( std::move(cur).finish_next( *b,validator,skip_validate_signee ) ),block( b ),trxs( std::move(trx_Metas) ) <-----
{}
v. 2.0.11
block_state::block_state( pending_block_header_state&& cur,signed_block_ptr&& b,const protocol_feature_set& pfs,const signer_callback_type& signer
)
:block_header_state( inject_additional_signatures( std::move(cur),*b,pfs,signer ) ),block( std::move(b) ),_pub_keys_recovered( true ) // called by produce_block so signature recovery of trxs must have been done,_cached_trxs( std::move(trx_Metas) ) <-----
{}
它适用于第一个版本:
for (const auto &transaction : block->trxs)
{ }
但是当我想在第二个类似的调用时:
for (const auto &transaction : block->_cached_trxs)
{ }
_cached_trxs is a private member of 'eosio::chain::block_state'
我该如何解决这个问题?
解决方法
我的C++有点生疏,但看起来你可以使用pending_state对象的extract_trx_metas方法访问它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。