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源代码”的主要内容,如果未能解决你的问题,请参考以下文章