У меня проблемы с компиляцией системного контракта для eosio.cdt 1.7.1. Когда я это делаю, мне выдаются следующие ошибки, касающиеся отсутствующих членов, но они присутствуют в контракте eosio.system. Любое понимание этой проблемы будет высоко оценено, даже если оно не сможет полностью решить проблему с ошибками доступа, если я смогу исправить ошибку имени члена eosio :: block_signing_authority_v0, это решит большую часть проблем.
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
include/eosio.system/eosio.system.hpp:43:17: error: no member named
'block_signing_authority_v0' in namespace 'eosio'
using eosio::block_signing_authority_v0;
~~~~~~~^
include/eosio.system/eosio.system.hpp:186:18: error: no type named
'block_signing_authority' in namespace 'eosio'
inline eosio::block_signing_authority convert_to_block_s...
~~~~~~~^
include/eosio.system/eosio.system.hpp:187:21: error: no member
named 'block_signing_authority_v0' in namespace 'eosio'
return eosio::block_signing_authority_v0{ .threshold ...
~~~~~~~^
include/eosio.system/eosio.system.hpp:187:49: error: expected
expression
return eosio::block_signing_authority_v0{ .threshold ...
^
include/eosio.system/eosio.system.hpp:200:38: error: no member
named 'block_signing_authority' in namespace 'eosio'
eosio::binary_extension<eosio::block_signing_authorit...
~~~~~~~^
include/eosio.system/eosio.system.hpp:207:14: error: no type named
'block_signing_authority' in namespace 'eosio'
eosio::block_signing_authority get_producer_authority...
~~~~~~~^
include/eosio.system/eosio.system.hpp:1014:64: error: no type named
'block_signing_authority' in namespace 'eosio'
...regproducer2( const name& producer, const eosio::block_sign...
~~~~~~~^
include/eosio.system/eosio.system.hpp:1276:69: error: no type named
'block_signing_authority' in namespace 'eosio'
...register_producer( const name& producer, const eosio::block...
~~~~~~~^
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:277:7: error:
use of undeclared identifier 'preactivate_feature'
preactivate_feature( feature_digest );
^
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
In file included from include/eosio.system/eosio.system.hpp:2:
In file included from /usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/eosio.hpp:8:
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:1769:20: error:
cannot initialize object parameter of type 'const
eosiosystem::producer_info' with an expression of type
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item'
return ptr._item->primary_key() == primary;
^~~~~~~~~
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:282:30: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::find' requested
here
auto prod = _producers.find( producer.value );
^
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
In file included from include/eosio.system/eosio.system.hpp:2:
In file included from /usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/eosio.hpp:8:
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:1778:29: error:
no viable conversion from 'const
eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item' to 'const
eosiosystem::producer_info'
return iterator_to(static_cast<const T&>(i));
^ ~
include/eosio.system/eosio.system.hpp:191:61: note: candidate
constructor (the implicit copy constructor) not viable: no
known conversion from 'const
eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item' to 'const
eosiosystem::producer_info &' for 1st argument
...[[eosio::table, eosio::contract("eosio.system")]] producer_...
^
include/eosio.system/eosio.system.hpp:191:61: note: candidate
constructor (the implicit move constructor) not viable: no
known conversion from 'const
eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item' to
'eosiosystem::producer_info &&' for 1st argument
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
In file included from include/eosio.system/eosio.system.hpp:2:
In file included from /usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/eosio.hpp:8:
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:793:22: error:
cannot initialize object parameter of type 'const
eosiosystem::producer_info' with an expression of type
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item'
auto pk = itm->primary_key();
^~~
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:1777:26: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> >
>::load_object_by_primary_iterator' requested here
const item& i = load_object_by_primary_iterator( itr );
^
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:282:30: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::find' requested
here
auto prod = _producers.find( producer.value );
^
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
In file included from include/eosio.system/eosio.system.hpp:2:
In file included from /usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/eosio.hpp:8:
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:781:22: error:
non-const lvalue reference to type
'eosiosystem::producer_info' cannot bind to a value of
unrelated type 'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item'
T& val = static_cast<T&>(i);
^ ~
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:461:13: note:
in instantiation of function template specialization
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> >
>::load_object_by_primary_iterator(int32_t)::(anonymous
class)::operator()<eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item>' requested
here
c(*this);
^
/usr/local/eosio.cdt/bin/../include/libcxx/memory:3026:32: note:
in instantiation of function template specialization
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> >
>::item::item<(lambda at
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:780:51)>'
requested here
return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__...
^
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:780:26: note:
in instantiation of function template specialization
'std::__1::make_unique<eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item, const
eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > > *, (lambda at
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:780:51)>'
requested here
auto itm = std::make_unique<item>( this, [&]( auto& i ) {
^
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:1777:26: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> >
>::load_object_by_primary_iterator' requested here
const item& i = load_object_by_primary_iterator( itr );
^
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:282:30: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::find' requested
here
auto prod = _producers.find( producer.value );
^
In file included from /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:2:
In file included from include/eosio.system/eosio.system.hpp:2:
In file included from /usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/eosio.hpp:8:
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:907:46: error:
static_cast from 'const
eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::item *' to 'const
eosiosystem::producer_info *', which are not related by
inheritance, is not allowed
...operator*()const { return *static_cast<const T*>(_item); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/eosio.cdt/bin/../include/eosiolib/contracts/eosio/multi_index.hpp:1613:18: note:
in instantiation of member function
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> >
>::const_iterator::operator*' requested here
modify( *itr, payer, std::forward<Lambda&&>(updater) );
^
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:284:18: note:
in instantiation of function template specialization
'eosio::multi_index<12531438729690087424,
eosiosystem::producer_info,
eosio::indexed_by<12531717195943457440,
eosio::const_mem_fun<eosiosystem::producer_info, double,
&eosiosystem::producer_info::by_votes> > >::modify<(lambda at
/home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp:284:44)>'
requested here
_producers.modify( prod, same_payer, [&](auto& p) {
^
Warning, empty ricardian clause file
Warning, empty ricardian clause file
Warning, action <newaccount> does not have a ricardian contract
Warning, action <updateauth> does not have a ricardian contract
Warning, action <deleteauth> does not have a ricardian contract
Warning, action <linkauth> does not have a ricardian contract
Warning, action <unlinkauth> does not have a ricardian contract
Warning, action <canceldelay> does not have a ricardian contract
Warning, action <onerror> does not have a ricardian contract
Warning, action <setabi> does not have a ricardian contract
Warning, action <setcode> does not have a ricardian contract
Warning, action <init> does not have a ricardian contract
Warning, action <onblock> does not have a ricardian contract
Warning, action <setalimits> does not have a ricardian contract
Warning, action <setacctram> does not have a ricardian contract
Warning, action <setacctnet> does not have a ricardian contract
Warning, action <setacctcpu> does not have a ricardian contract
Warning, action <activate> does not have a ricardian contract
Warning, action <delegatebw> does not have a ricardian contract
Warning, action <setrex> does not have a ricardian contract
Warning, action <deposit> does not have a ricardian contract
Warning, action <withdraw> does not have a ricardian contract
Warning, action <buyrex> does not have a ricardian contract
Warning, action <unstaketorex> does not have a ricardian contract
Warning, action <sellrex> does not have a ricardian contract
Warning, action <cnclrexorder> does not have a ricardian contract
Warning, action <rentcpu> does not have a ricardian contract
Warning, action <rentnet> does not have a ricardian contract
Warning, action <fundcpuloan> does not have a ricardian contract
Warning, action <fundnetloan> does not have a ricardian contract
Warning, action <defcpuloan> does not have a ricardian contract
Warning, action <defnetloan> does not have a ricardian contract
Warning, action <updaterex> does not have a ricardian contract
Warning, action <rexexec> does not have a ricardian contract
Warning, action <consolidate> does not have a ricardian contract
Warning, action <mvtosavings> does not have a ricardian contract
Warning, action <mvfrsavings> does not have a ricardian contract
Warning, action <closerex> does not have a ricardian contract
Warning, action <undelegatebw> does not have a ricardian contract
Warning, action <buyram> does not have a ricardian contract
Warning, action <buyrambytes> does not have a ricardian contract
Warning, action <sellram> does not have a ricardian contract
Warning, action <refund> does not have a ricardian contract
Warning, action <regproducer> does not have a ricardian contract
Warning, action <regproducer2> does not have a ricardian contract
Warning, action <unregprod> does not have a ricardian contract
Warning, action <setram> does not have a ricardian contract
Warning, action <setramrate> does not have a ricardian contract
Warning, action <voteproducer> does not have a ricardian contract
Warning, action <regproxy> does not have a ricardian contract
Warning, action <setparams> does not have a ricardian contract
Warning, action <claimrewards> does not have a ricardian contract
Warning, action <setpriv> does not have a ricardian contract
Warning, action <rmvproducer> does not have a ricardian contract
Warning, action <updtrevision> does not have a ricardian contract
Warning, action <bidname> does not have a ricardian contract
Warning, action <bidrefund> does not have a ricardian contract
Warning, action <setinflation> does not have a ricardian contract
Warning, action <setram> does not have a ricardian contract
Warning, action <setramrate> does not have a ricardian contract
Warning, action <setparams> does not have a ricardian contract
Warning, action <setpriv> does not have a ricardian contract
Warning, action <setalimits> does not have a ricardian contract
Warning, action <setacctram> does not have a ricardian contract
Warning, action <setacctnet> does not have a ricardian contract
Warning, action <setacctcpu> does not have a ricardian contract
Warning, action <activate> does not have a ricardian contract
Warning, action <rmvproducer> does not have a ricardian contract
Warning, action <updtrevision> does not have a ricardian contract
Warning, action <setinflation> does not have a ricardian contract
Warning, action <newaccount> does not have a ricardian contract
Warning, action <setabi> does not have a ricardian contract
Warning, action <init> does not have a ricardian contract
14 errors generated.
Error while processing /home/allenbroady/eosio.contracts/contracts/eosio.system/src/eosio.system.cpp.
abigen error