6namespace sysio {
namespace chain {
74 template<typename T, std::enable_if_t<std::is_base_of<bytes, T>::value,
int> = 1>
80 template<typename T, std::enable_if_t<!std::is_base_of<bytes, T>::value,
int> = 1>
92 SYS_ASSERT( account == T::get_account(), action_type_exception,
"account is not consistent with action struct" );
93 SYS_ASSERT(
name == T::get_name(), action_type_exception,
"action name is not consistent with action struct" );
98 template <
typename Hasher>
100 using hash_type =
decltype(hash(
nullptr, 0));
106 const auto rhs_size = action_input_size + action_output_size;
107 std::vector<char> buff;
108 buff.reserve(std::max(action_base_size, rhs_size));
110 buff.resize(action_base_size);
113 hashes[0] = hash(buff.data(), action_base_size);
116 buff.resize(rhs_size);
120 hashes[1] = hash(buff.data(), rhs_size);
123 buff.resize(hashes_size);
127 return hash(buff.data(), hashes_size);
#define SYS_ASSERT(expr, exc_type, FORMAT,...)
void unpack(Stream &s, std::deque< T > &value)
void pack(Stream &s, const std::deque< T > &value)
size_t pack_size(const T &v)
bool operator<(const permission_level &lhs, const permission_level &rhs)
bool operator<=(const permission_level &lhs, const permission_level &rhs)
bool operator==(const permission_level &lhs, const permission_level &rhs)
bool operator!=(const permission_level &lhs, const permission_level &rhs)
bool operator>(const permission_level &lhs, const permission_level &rhs)
auto generate_action_digest(Hasher &&hash, const action &act, const vector< char > &action_output)
sysio::chain::action_name action_name
bool operator>=(const permission_level &lhs, const permission_level &rhs)
#define T(meth, val, expected)
void get_account(const string &accountName, const string &coresym, bool json_format)
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
#define FC_REFLECT_DERIVED(TYPE, INHERITS, MEMBERS)
Specializes fc::reflector for TYPE where type inherits other reflected classes.
vector< permission_level > authorization
action_base(account_name acnt, action_name act, vector< permission_level > &&auth)
action_base(account_name acnt, action_name act, const vector< permission_level > &auth)
action(vector< permission_level > auth, account_name account, action_name name, const bytes &data)
action(vector< permission_level > auth, const T &value)
Immutable except for fc::from_variant.
permission_name permission