Проблемы с Eosio System Contract - PullRequest
       35

Проблемы с Eosio System Contract

0 голосов
/ 25 февраля 2020

У меня проблемы с компиляцией системного контракта для 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
...