8#include "../../core/eosio/crypto.hpp"
9#include "../../core/eosio/name.hpp"
10#include "../../core/eosio/time.hpp"
16 namespace internal_use_do_not_use {
19 int32_t check_transaction_authorization(
const char*,
uint32_t,
31 int64_t get_account_creation_time(
uint64_t);
49 check_transaction_authorization(
const char* trx_data,
uint32_t trx_size,
50 const char* pubkeys_data,
uint32_t pubkeys_size,
51 const char* perms_data,
uint32_t perms_size ) {
52 return internal_use_do_not_use::check_transaction_authorization( trx_data, trx_size, pubkeys_data, pubkeys_size, perms_data, perms_size );
70 check_permission_authorization( name account,
72 const char* pubkeys_data,
uint32_t pubkeys_size,
73 const char* perms_data,
uint32_t perms_size,
74 microseconds delay ) {
75 int64_t delay_us = delay.count();
76 check(delay_us >= 0,
"negative delay is not allowed");
77 return internal_use_do_not_use::check_permission_authorization( account.value,
permission.value, pubkeys_data, pubkeys_size, perms_data, perms_size,
static_cast<uint64_t>(delay_us) );
99 check_transaction_authorization(
const transaction& trx,
100 const std::set<permission_level>& provided_permissions ,
101 const std::set<public_key>& provided_keys = std::set<public_key>()
104 auto packed_trx =
pack(trx);
106 std::vector<char> packed_keys;
107 auto nkeys = provided_keys.size();
109 packed_keys =
pack(provided_keys);
112 std::vector<char> packed_perms;
113 auto nperms = provided_permissions.size();
115 packed_perms =
pack(provided_permissions);
118 auto res = internal_use_do_not_use::check_transaction_authorization( packed_trx.data(),
120 (nkeys > 0) ? packed_keys.data() : (
const char*)0,
121 (nkeys > 0) ? packed_keys.size() : 0,
122 (nperms > 0) ? packed_perms.data() : (
const char*)0,
123 (nperms > 0) ? packed_perms.size() : 0
143 check_permission_authorization( name account,
145 const std::set<public_key>& provided_keys,
146 const std::set<permission_level>& provided_permissions = std::set<permission_level>(),
147 microseconds provided_delay = microseconds{std::numeric_limits<int64_t>::max()}
150 int64_t provided_delay_us = provided_delay.count();
151 check(provided_delay_us >= 0,
"negative delay is not allowed");
152 std::vector<char> packed_keys;
153 auto nkeys = provided_keys.size();
155 packed_keys =
pack(provided_keys);
158 std::vector<char> packed_perms;
159 auto nperms = provided_permissions.size();
161 packed_perms =
pack(provided_permissions);
164 auto res = internal_use_do_not_use::check_permission_authorization( account.value,
166 (nkeys > 0) ? packed_keys.data() : (
const char*)0,
167 (nkeys > 0) ? packed_keys.size() : 0,
168 (nperms > 0) ? packed_perms.data() : (
const char*)0,
169 (nperms > 0) ? packed_perms.size() : 0,
170 static_cast<uint64_t>(provided_delay_us)
186 time_point get_permission_last_used( name account, name
permission ) {
189 internal_use_do_not_use::get_permission_last_used(account.value,
permission.value)));
202 time_point get_account_creation_time( name account ) {
205 internal_use_do_not_use::get_account_creation_time(account.value)));