EOS 智能合约源代码解读 (11)wrap合约“wrap源代码”

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS 智能合约源代码解读 (11)wrap合约“wrap源代码”相关的知识,希望对你有一定的参考价值。

wrap.hpp

class [[eossys::contract("eossys.wrap")]] wrap : public contract {
      public:
         using contract::contract;

         [[eossys::action]]
         void exec( ignore<text_name> executer, ignore<transaction> trx );
         using exec_action = eossys::action_wrapper<"exec"_n, &wrap::exec>;
}

wrap.cpp

void wrap::exec( ignore<text_name>, ignore<transaction> ) {
   require_auth( get_self() );

   text_name executer_str;
   _ds >> executer_str;

   name executer(get_account_id(executer_str.c_str(), executer_str.size()));
   require_auth( executer );

   send_deferred( (uint128_t(executer.value) << 64) | 
                  (uint64_t)current_time_point().time_since_epoch().count(), 
                  executer_str, _ds.pos(), _ds.remaining());
}

wasm_interface.cpp:

 void send_deferred( const uint128_t& sender_id, array_ptr<char> payer, 
 uint32_t payer_len, array_ptr<char> data, uint32_t data_len, uint32_t replace_existing) 
 {
     transaction trx;
     fc::raw::unpack<transaction>(data, data_len, trx);
     text_name text_payer(payer, payer_len);
     context.schedule_deferred_transaction(sender_id, text_payer, 
                                           std::move(trx), replace_existing);
  }

以上是关于EOS 智能合约源代码解读 (11)wrap合约“wrap源代码”的主要内容,如果未能解决你的问题,请参考以下文章

EOS 智能合约源代码解读 合约之action

EOS 智能合约源代码解读 boot合约

EOS 智能合约源代码解读 总体说明

EOS 智能合约源代码解读 合约开发示例

EOS 智能合约源代码解读 bios合约

EOS 智能合约源代码解读 (10)token合约“简介”