Action C++ API

Defines type-safe C++ wrapers for querying action and sending action. More...

Classes

Type Name
struct eosio::permission_level
Packed representation of a permission level (Authorization)
struct eosio::action
Packed representation of an action.

Functions

Defines

Detailed Description

Note:

There are some methods from the Action C++ API that can be used directly from C++

Functions Documentation

function unpack_action_data

template<typename T>
T eosio::unpack_action_data()

Interpret the action body as type T.

Returns:

Unpacked action data casted as T.

Example:

struct dummy_action {
  char a; //1
  unsigned long long b; //8
  int  c; //4

  EOSLIB_SERIALIZE( dummy_action, (a)(b)(c) )
};
dummy_action msg = unpack_action_data<dummy_action>();

function require_recipient

void eosio::require_recipient(
    name notify_account
)

Add the specified account to set of accounts to be notified.

Add the specified account to set of accounts to be notified

Parameters:

  • notify_account - name of the account to be verified

function require_recipient

template<typename... accounts>
void eosio::require_recipient(
    name notify_account,
    accounts... remaining_accounts
)

Notify an account for this action.

All of the listed accounts will be added to the set of accounts to be notified This helper method enables you to add multiple accounts to accounts to be notified list with a single call rather than having to call the similar C API multiple times.

Note:

action.code is also considered as part of the set of notified accounts

Parameters:

  • notify_account account to be notified
  • remaining_accounts accounts to be notified

Example:

require_recipient("Account1"_n, "Account2"_n, "Account3"_n); // throws exception if any of them not in set.

function require_auth

void eosio::require_auth(
    name n
)

Verify specified account exists in the set of provided auths.

Verifies that Name exists in the set of provided auths on a action. Fails if not found.

Parameters:

  • name - name of the account to be verified

function require_auth

void eosio::require_auth(
    const permission_level & level
)

Require the specified authorization for this action.

Require the specified authorization for this action. If this action doesn't contain the specified auth, it will fail.

Parameters:

  • level - Authorization to be required

function has_auth

bool eosio::has_auth(
    name n
)

Verifies that n has auth.

Verifies that n has auth.

Parameters:

  • n - name of the account to be verified

function is_account

bool eosio::is_account(
    name n
)

Verifies that n is an existing account.

Verifies that n is an existing account.

Parameters:

  • n - name of the account to check

Defines Documentation

define SEND_INLINE_ACTION

#define SEND_INLINE_ACTION(CONTRACT, NAME, ...)\
INLINE_ACTION_SENDER(std::decay_t<decltype(CONTRACT)>, NAME)( (CONTRACT).get_self(),\
BOOST_PP_TUPLE_ENUM(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), BOOST_PP_VARIADIC_TO_TUPLE(__VA_ARGS__)) );

Send inline action.

Send inline action

Parameters:

  • CONTRACT - The account this action is intended for
  • NAME - The name of the action
  • ... - The member of the action specified as ("action_member1_name", action_member1_value)("action_member2_name", action_member2_value)