Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
sysio::chain Namespace Reference

Namespaces

namespace  config
 
namespace  detail
 
namespace  eosvmoc
 
namespace  impl
 
namespace  legacy
 
namespace  literals
 
namespace  plugin_interface
 
namespace  resource_limits
 
namespace  wasm_constraints
 
namespace  wasm_injections
 
namespace  wasm_ops
 
namespace  wasm_validations
 
namespace  webassembly
 

Classes

struct  abi_def
 
struct  abi_serializer
 
struct  account_delta
 
class  account_metadata_object
 
class  account_object
 
class  account_ram_correction_object
 
struct  action
 
struct  action_base
 
struct  action_def
 
struct  action_notice
 
struct  action_receipt
 
struct  action_result_def
 
struct  action_trace
 
struct  additional_block_signatures_extension
 
class  apply_context
 
struct  assembled_block
 
struct  asset
 
struct  authority
 
class  authority_checker
 namespace detail More...
 
class  authorization_manager
 
struct  basic_type_converter
 
struct  block_header
 
struct  block_header_state
 defines the minimum state necessary to validate transaction headers More...
 
class  block_log
 
struct  block_log_prune_config
 
struct  block_signing_authority_v0
 
struct  block_state
 
class  block_summary_object
 tracks minimal information about past blocks to implement TaPOS More...
 
class  block_timestamp
 
struct  building_block
 
class  builtin_protocol_feature
 
struct  builtin_protocol_feature_spec
 
struct  canceldelay
 
struct  chain_config_v0
 Producer-voted blockchain configuration parameters. More...
 
struct  chain_config_v1
 v1 Producer-voted blockchain configuration parameters More...
 
struct  chain_id_type
 
struct  chain_snapshot_header
 
struct  clause_pair
 
class  code_object
 
struct  completed_block
 
struct  config_entry_validator
 
class  controller
 
struct  controller_impl
 
struct  data_entry
 
struct  data_range
 
class  database_header_object
 tracks the version of the application data stored in the database More...
 
class  deep_mind_handler
 
struct  deferred_transaction_generation_context
 
struct  deleteauth
 
class  dynamic_global_property_object
 Maintains global state information that frequently change. More...
 
class  end_insert_iterator
 
struct  enum_hash
 
struct  error_message
 
struct  extended_asset
 
struct  extended_symbol
 
struct  field_def
 
class  fork_database
 manages light-weight state for all potential unconfirmed forks More...
 
struct  fork_database_impl
 
class  generated_transaction
 
class  generated_transaction_object
 
struct  genesis_state
 
class  global_property_object
 Maintains global state information about block producer schedules and chain configuration parameters. More...
 
class  incremental_merkle_impl
 detail More...
 
class  index_set
 
class  index_set< FirstIndex, RemainingIndices... >
 
class  index_set< Index >
 
class  index_utils
 
class  integrity_hash_snapshot_writer
 
class  istream_snapshot_reader
 
struct  key_value_object
 
struct  key_weight
 
struct  kv_database_config
 limits for a kv database. More...
 
struct  linkauth
 
struct  may_not_exist
 
class  maybe_session
 
struct  memcmp_params
 
struct  memcpy_params
 
struct  memset_params
 
struct  name
 Immutable except for fc::from_variant. More...
 
class  named_thread_pool
 
struct  newaccount
 
struct  null_terminated_ptr
 
struct  object_to_table_id_tag
 
struct  onerror
 
class  ostream_snapshot_writer
 
struct  overloaded
 
struct  packed_transaction
 
struct  pending_block_header_state
 
struct  pending_state
 
struct  permission_level
 
struct  permission_level_weight
 
class  permission_link_object
 The permission_link_object class assigns permission_objects to message types. More...
 
class  permission_object
 
class  permission_usage_object
 
struct  platform_timer
 
struct  producer_authority
 
struct  producer_authority_schedule
 
struct  producer_confirmation
 
struct  producer_schedule_change_extension
 
struct  protocol_feature
 
struct  protocol_feature_activation
 
struct  protocol_feature_activation_set
 
class  protocol_feature_base
 
class  protocol_feature_manager
 
class  protocol_feature_set
 
struct  protocol_feature_subjective_restrictions
 
class  protocol_state_object
 Maintains global state information about consensus protocol rules. More...
 
struct  ram_trace
 
struct  read_limiter
 
struct  s_header
 
struct  s_root_extension
 
struct  secondary_index
 
struct  secondary_key_traits
 
struct  secondary_key_traits< float128_t >
 
struct  secondary_key_traits< float64_t >
 
struct  secondary_key_traits< std::array< uint128_t, N > >
 
struct  setabi
 
struct  setcode
 
struct  sha256_less
 
struct  shared_authority
 
class  shared_blob
 
struct  shared_block_signing_authority_v0
 
struct  shared_key_weight
 
struct  shared_producer_authority
 
struct  shared_producer_authority_schedule
 
struct  shared_public_key
 
struct  signed_block
 
struct  signed_block_header
 
struct  signed_transaction
 
struct  snapshot_global_property_object
 
struct  snapshot_permission_object
 
struct  snapshot_protocol_state_object
 
class  snapshot_reader
 
class  snapshot_writer
 
struct  soft_double_less
 
struct  soft_long_double_less
 
struct  struct_def
 
class  symbol
 
struct  symbol_code
 
struct  table_def
 
class  table_id_object
 The table_id_object class tracks the mapping of (scope, code, table) to an opaque identifier. More...
 
struct  transaction
 
struct  transaction_checktime_timer
 
class  transaction_context
 
struct  transaction_header
 
class  transaction_metadata
 
class  transaction_object
 
struct  transaction_receipt
 
struct  transaction_receipt_header
 
struct  transaction_trace
 
struct  trim_data
 
struct  type_def
 
struct  unapplied_transaction
 
class  unapplied_transaction_queue
 
struct  unlinkauth
 
struct  updateauth
 
struct  variant_def
 
class  variant_snapshot_reader
 
class  variant_snapshot_writer
 
struct  void_t
 
struct  wait_weight
 
struct  wasm_config
 
struct  wasm_exit
 
class  wasm_instantiated_module_interface
 
class  wasm_interface
 
struct  wasm_interface_impl
 
class  wasm_runtime_interface
 

Typedefs

using authorization_index_set
 
using controller_index_set
 
using contract_database_index_set
 
using block_stage_type = std::variant<building_block, assembled_block, completed_block>
 
typedef multi_index_container< block_state_ptr, indexed_by< hashed_unique< tag< by_block_id >, member< block_header_state, block_id_type, &block_header_state::id >, std::hash< block_id_type > >, ordered_non_unique< tag< by_prev >, const_mem_fun< block_header_state, const block_id_type &, &block_header_state::prev > >, ordered_unique< tag< by_lib_block_num >, composite_key< block_state, global_fun< const block_state &, bool, &block_state_is_valid >, member< detail::block_header_state_common, uint32_t, &detail::block_header_state_common::dpos_irreversible_blocknum >, member< detail::block_header_state_common, uint32_t, &detail::block_header_state_common::block_num >, member< block_header_state, block_id_type, &block_header_state::id > >, composite_key_compare< std::greater< bool >, std::greater< uint32_t >, std::greater< uint32_t >, sha256_less > > > > fork_multi_index_type
 
using type_name = string
 
using field_name = string
 
using account_id_type = account_object::id_type
 
using account_index
 
using account_metadata_index
 
using account_ram_correction_index
 
using apply_handler = std::function<void(apply_context&)>
 
using shared_public_key_data = std::variant<fc::ecc::public_key_shim, fc::crypto::r1::public_key_shim, shared_string, fc::em::public_key_shim>
 
using block_extension_types
 
using block_extension = block_extension_types::block_extension_t
 
using signed_block_ptr = std::shared_ptr<signed_block>
 
using block_header_extension_types
 
using block_header_extension = block_header_extension_types::block_header_extension_t
 
using signer_callback_type = std::function<std::vector<signature_type>(const digest_type&)>
 
using block_header_state_ptr = std::shared_ptr<block_header_state>
 
using block_state_ptr = std::shared_ptr<block_state>
 
using branch_type = deque<block_state_ptr>
 
using block_summary_multi_index
 
typedef block_timestamp< config::block_interval_ms, config::block_timestamp_epoch > block_timestamp_type
 
using chain_config = chain_config_v1
 
using config_range = data_range<chain_config, config_entry_validator>
 
using code_index
 
using table_id_multi_index
 
using table_id = table_id_object::id_type
 
using key_value_index
 
typedef secondary_index< uint64_t, index64_object_type >::index_object index64_object
 
typedef secondary_index< uint64_t, index64_object_type >::index_index index64_index
 
typedef secondary_index< uint128_t, index128_object_type >::index_object index128_object
 
typedef secondary_index< uint128_t, index128_object_type >::index_index index128_index
 
typedef std::array< uint128_t, 2 > key256_t
 
typedef secondary_index< key256_t, index256_object_type >::index_object index256_object
 
typedef secondary_index< key256_t, index256_object_type >::index_index index256_index
 
typedef secondary_index< float64_t, index_double_object_type, soft_double_less >::index_object index_double_object
 
typedef secondary_index< float64_t, index_double_object_type, soft_double_less >::index_index index_double_index
 
typedef secondary_index< float128_t, index_long_double_object_type, soft_long_double_less >::index_object index_long_double_object
 
typedef secondary_index< float128_t, index_long_double_object_type, soft_long_double_less >::index_index index_long_double_index
 
template<typename T >
using object_to_table_id_tag_t = typename object_to_table_id_tag<T>::tag_type
 
using action_name = sysio::chain::action_name
 
using forked_branch_callback = std::function<void(const branch_type&)>
 
using trx_meta_cache_lookup = std::function<transaction_metadata_ptr( const transaction_id_type&)>
 
using database_header_multi_index
 
using generated_transaction_multi_index
 
using global_property_multi_index
 
using dynamic_global_property_multi_index
 
typedef incremental_merkle_impl< digest_typeincremental_merkle
 
typedef incremental_merkle_impl< digest_type, shared_vectorshared_incremental_merkle
 
using permission_link_index
 
using permission_usage_index
 
using permission_index
 
using shared_block_signing_authority = std::variant<shared_block_signing_authority_v0>
 
using block_signing_authority = std::variant<block_signing_authority_v0>
 
using protocol_feature_activation_set_ptr = std::shared_ptr<protocol_feature_activation_set>
 
using protocol_state_multi_index
 
using snapshot_writer_ptr = std::shared_ptr<snapshot_writer>
 
using snapshot_reader_ptr = std::shared_ptr<snapshot_reader>
 
using transaction_trace_ptr = std::shared_ptr<transaction_trace>
 
using transaction_extension_types
 
using transaction_extension = transaction_extension_types::transaction_extension_t
 
using packed_transaction_ptr = std::shared_ptr<const packed_transaction>
 
using transaction_metadata_ptr = std::shared_ptr<transaction_metadata>
 
using recover_keys_future = std::future<transaction_metadata_ptr>
 
using transaction_multi_index
 
typedef chainbase::generic_index< transaction_multi_indextransaction_index
 
using public_key_type = fc::crypto::public_key
 
using private_key_type = fc::crypto::private_key
 
using signature_type = fc::crypto::signature
 
using shared_string = chainbase::shared_string
 
template<typename T >
using shared_vector = boost::interprocess::vector<T, allocator<T>>
 
template<typename T >
using shared_set = boost::interprocess::set<T, std::less<T>, allocator<T>>
 
template<typename K , typename V >
using shared_flat_multimap = boost::interprocess::flat_multimap< K, V, std::less<K>, allocator< std::pair<K,V> > >
 
using scope_name = name
 
using account_name = name
 
using permission_name = name
 
using table_name = name
 
using block_id_type = fc::sha256
 
using checksum_type = fc::sha256
 
using checksum256_type = fc::sha256
 
using checksum512_type = fc::sha512
 
using checksum160_type = fc::ripemd160
 
using transaction_id_type = checksum_type
 
using digest_type = checksum_type
 
using weight_type = uint16_t
 
using block_num_type = uint32_t
 
using share_type = int64_t
 
using int128_t = __int128
 
using uint128_t = unsigned __int128
 
using bytes = vector<char>
 
typedef vector< std::pair< uint16_t, vector< char > > > extensions_type
 
using next_func_t = std::function<void(const std::variant<fc::exception_ptr, transaction_trace_ptr>&)>
 
template<typename T , std::size_t Extent = sysio::vm::dynamic_extent>
using span = sysio::vm::span<T, Extent>
 
template<typename T , std::size_t Align = alignof(T)>
using legacy_ptr = sysio::vm::argument_proxy<T*, Align>
 
template<typename T , std::size_t Align = alignof(T)>
using legacy_span = sysio::vm::argument_proxy<sysio::vm::span<T>, Align>
 
using type_converter = basic_type_converter<sysio::vm::execution_interface>
 
using eos_vm_host_functions_t
 
using wasm_size_t = sysio::vm::wasm_size_t
 
template<typename Impl >
using eos_vm_backend_t = sysio::vm::backend<eos_vm_host_functions_t, Impl, webassembly::eos_vm_runtime::apply_options, vm::profile_instr_map>
 
template<typename Options >
using eos_vm_null_backend_t = sysio::vm::backend<eos_vm_host_functions_t, sysio::vm::null_backend, Options>
 
using whitelisted_intrinsics_type = shared_flat_multimap<uint64_t, shared_string>
 

Enumerations

enum class  db_read_mode { SPECULATIVE , HEAD , READ_ONLY , IRREVERSIBLE }
 
enum class  validation_mode { FULL , LIGHT }
 
enum class  system_error_code : uint64_t { generic_system_error = 10000000000000000000ULL , contract_restricted_error_code }
 
enum class  protocol_feature_t : uint32_t { builtin }
 
enum class  builtin_protocol_feature_t : uint32_t {
  preactivate_feature = 0 , only_link_to_existing_permission = 1 , replace_deferred = 2 , no_duplicate_deferred_id = 3 ,
  fix_linkauth_restriction = 4 , disallow_empty_producer_schedule = 5 , restrict_action_to_self = 6 , only_bill_first_authorizer = 7 ,
  forward_setcode = 8 , get_sender = 9 , ram_restrictions = 10 , webauthn_key = 11 ,
  wtmsig_block_signatures = 12 , action_return_value = 13 , blockchain_parameters = 16 , get_code_hash = 17 ,
  configurable_wasm_limits = 18 , crypto_primitives = 19 , get_block_num = 20 , em_key = 21 ,
  reserved_private_fork_protocol_features = 500000
}
 
enum  object_type {
  null_object_type = 0 , account_object_type , account_metadata_object_type , permission_object_type ,
  permission_usage_object_type , permission_link_object_type , UNUSED_action_code_object_type , key_value_object_type ,
  index64_object_type , index128_object_type , index256_object_type , index_double_object_type ,
  index_long_double_object_type , global_property_object_type , dynamic_global_property_object_type , block_summary_object_type ,
  transaction_object_type , generated_transaction_object_type , UNUSED_producer_object_type , UNUSED_chain_property_object_type ,
  account_control_history_object_type , UNUSED_account_transaction_history_object_type , UNUSED_transaction_history_object_type , public_key_history_object_type ,
  UNUSED_balance_object_type , UNUSED_staked_balance_object_type , UNUSED_producer_votes_object_type , UNUSED_producer_schedule_object_type ,
  UNUSED_proxy_vote_object_type , UNUSED_scope_sequence_object_type , table_id_object_type , resource_limits_object_type ,
  resource_usage_object_type , resource_limits_state_object_type , resource_limits_config_object_type , account_history_object_type ,
  action_history_object_type , reversible_block_object_type , protocol_state_object_type , account_ram_correction_object_type ,
  code_object_type , database_header_object_type , OBJECT_TYPE_COUNT
}
 
enum class  trx_enum_type {
  unknown = 0 , persisted = 1 , forked = 2 , aborted = 3 ,
  incoming_persisted = 4 , incoming = 5
}
 

Functions

template<typename T >
fc::variant variant_from_stream (fc::datastream< const char * > &stream)
 
template<typename T >
fc::variant variant_from_stream (fc::datastream< const char * > &stream, const abi_serializer::yield_function_t &yield)
 
template<typename T >
auto pack_function ()
 
template<typename T >
auto pack_unpack ()
 
template<typename T >
auto pack_unpack_deadline ()
 
void noop_checktime ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::preactivate_feature > ()
 Protocol feature activation handlers:
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::get_sender > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::replace_deferred > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::webauthn_key > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::em_key > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::wtmsig_block_signatures > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::action_return_value > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::configurable_wasm_limits > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::blockchain_parameters > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::get_code_hash > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::get_block_num > ()
 
template<>
void controller_impl::on_activation< builtin_protocol_feature_t::crypto_primitives > ()
 
bool block_state_is_valid (const block_state &bs)
 
bool first_preferred (const block_header_state &lhs, const block_header_state &rhs)
 
abi_def sysio_contract_abi (const abi_def &sysio_system_abi)
 
vector< type_defcommon_type_defs ()
 
 FC_RETHROW_EXCEPTIONS (error, "Failed to serialize: ${type}",("type", boost::core::demangle(typeid(o).name()))) template< typename T
 
 FC_RETHROW_EXCEPTIONS (error, "Failed to deserialize variant",("variant", v)) template< typename T
 
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)
 
bool operator>= (const permission_level &lhs, const permission_level &rhs)
 
template<typename Hasher >
auto generate_action_digest (Hasher &&hash, const action &act, const vector< char > &action_output)
 
bool operator< (const asset &a, const asset &b)
 
bool operator<= (const asset &a, const asset &b)
 
template<typename Authority >
bool validate (const Authority &auth)
 
template<typename PermissionToAuthorityFunc >
auto make_auth_checker (PermissionToAuthorityFunc &&pta, uint16_t recursion_depth_limit, const flat_set< public_key_type > &provided_keys, const flat_set< permission_level > &provided_permissions=flat_set< permission_level >(), fc::microseconds provided_delay=fc::microseconds(0), const std::function< void()> &_checktime=std::function< void()>())
 authority_checker
 
template<typename DataStream >
DataStream & operator<< (DataStream &ds, const shared_blob &b)
 
template<typename DataStream >
DataStream & operator>> (DataStream &ds, shared_blob &b)
 
 FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE (chain_exception, fc::exception, 3000000, "blockchain exception") FC_DECLARE_DERIVED_EXCEPTION(chain_type_exception
 
chain type exception FC_DECLARE_DERIVED_EXCEPTION (name_type_exception, chain_type_exception, 3010001, "Invalid name") FC_DECLARE_DERIVED_EXCEPTION(public_key_type_exception
 
key FC_DECLARE_DERIVED_EXCEPTION (private_key_type_exception, chain_type_exception, 3010003, "Invalid private key") FC_DECLARE_DERIVED_EXCEPTION(authority_type_exception
 
key Invalid authority FC_DECLARE_DERIVED_EXCEPTION (action_type_exception, chain_type_exception, 3010005, "Invalid action") FC_DECLARE_DERIVED_EXCEPTION(transaction_type_exception
 
key Invalid authority Invalid transaction FC_DECLARE_DERIVED_EXCEPTION (abi_type_exception, chain_type_exception, 3010007, "Invalid ABI") FC_DECLARE_DERIVED_EXCEPTION(block_id_type_exception
 
key Invalid authority Invalid transaction Invalid block ID FC_DECLARE_DERIVED_EXCEPTION (transaction_id_type_exception, chain_type_exception, 3010009, "Invalid transaction ID") FC_DECLARE_DERIVED_EXCEPTION(packed_transaction_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction FC_DECLARE_DERIVED_EXCEPTION (asset_type_exception, chain_type_exception, 3010011, "Invalid asset") FC_DECLARE_DERIVED_EXCEPTION(chain_id_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID FC_DECLARE_DERIVED_EXCEPTION (fixed_key_type_exception, chain_type_exception, 3010013, "Invalid fixed key") FC_DECLARE_DERIVED_EXCEPTION(symbol_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol FC_DECLARE_DERIVED_EXCEPTION (unactivated_key_type, chain_type_exception, 3010015, "Key type is not a currently activated type") FC_DECLARE_DERIVED_EXCEPTION(unactivated_signature_type
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type FC_DECLARE_DERIVED_EXCEPTION (fork_database_exception, chain_exception, 3020000, "Fork database exception") FC_DECLARE_DERIVED_EXCEPTION(fork_db_block_not_found
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found FC_DECLARE_DERIVED_EXCEPTION (block_validate_exception, chain_exception, 3030000, "Block exception") FC_DECLARE_DERIVED_EXCEPTION(unlinkable_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block FC_DECLARE_DERIVED_EXCEPTION (block_tx_output_exception, block_validate_exception, 3030002, "Transaction outputs in block do not match transaction outputs from applying block") FC_DECLARE_DERIVED_EXCEPTION(block_concurrency_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts FC_DECLARE_DERIVED_EXCEPTION (block_lock_exception, block_validate_exception, 3030004, "Shard locks in block are incorrect or mal-formed") FC_DECLARE_DERIVED_EXCEPTION(block_resource_exhausted
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources FC_DECLARE_DERIVED_EXCEPTION (block_too_old_exception, block_validate_exception, 3030006, "Block is too old to push") FC_DECLARE_DERIVED_EXCEPTION(block_from_the_future
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future FC_DECLARE_DERIVED_EXCEPTION (wrong_signing_key, block_validate_exception, 3030008, "Block is not signed with expected key") FC_DECLARE_DERIVED_EXCEPTION(wrong_producer
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer FC_DECLARE_DERIVED_EXCEPTION (invalid_block_header_extension, block_validate_exception, 3030010, "Invalid block header extension") FC_DECLARE_DERIVED_EXCEPTION(ill_formed_protocol_feature_activation
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension FC_DECLARE_DERIVED_EXCEPTION (invalid_block_extension, block_validate_exception, 3030012, "Invalid block extension") FC_DECLARE_DERIVED_EXCEPTION(ill_formed_additional_block_signatures_extension
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension FC_DECLARE_DERIVED_EXCEPTION (transaction_exception, chain_exception, 3040000, "Transaction exception") FC_DECLARE_DERIVED_EXCEPTION(tx_decompression_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction FC_DECLARE_DERIVED_EXCEPTION (tx_no_action, transaction_exception, 3040002, "Transaction should have at least one normal action") FC_DECLARE_DERIVED_EXCEPTION(tx_no_auths
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority FC_DECLARE_DERIVED_EXCEPTION (cfa_irrelevant_auth, transaction_exception, 3040004, "Context-free action should have no required authority") FC_DECLARE_DERIVED_EXCEPTION(expired_tx_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction FC_DECLARE_DERIVED_EXCEPTION (tx_exp_too_far_exception, transaction_exception, 3040006, "Transaction Expiration Too Far") FC_DECLARE_DERIVED_EXCEPTION(invalid_ref_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block FC_DECLARE_DERIVED_EXCEPTION (tx_duplicate, transaction_exception, 3040008, "Duplicate transaction") FC_DECLARE_DERIVED_EXCEPTION(deferred_tx_duplicate
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction FC_DECLARE_DERIVED_EXCEPTION (cfa_inside_generated_tx, transaction_exception, 3040010, "Context free action is not allowed inside generated transaction") FC_DECLARE_DERIVED_EXCEPTION(tx_not_found
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found FC_DECLARE_DERIVED_EXCEPTION (too_many_tx_at_once, transaction_exception, 3040012, "Pushing too many transactions at once") FC_DECLARE_DERIVED_EXCEPTION(tx_too_big
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big FC_DECLARE_DERIVED_EXCEPTION (unknown_transaction_compression, transaction_exception, 3040014, "Unknown transaction compression") FC_DECLARE_DERIVED_EXCEPTION(invalid_transaction_extension
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension FC_DECLARE_DERIVED_EXCEPTION (ill_formed_deferred_transaction_generation_context, transaction_exception, 3040016, "Transaction includes an ill-formed deferred transaction generation context extension") FC_DECLARE_DERIVED_EXCEPTION(disallowed_transaction_extensions_bad_block_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed extensions (invalid block)" ) FC_DECLARE_DERIVED_EXCEPTION( tx_resource_exhaustion
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit FC_DECLARE_DERIVED_EXCEPTION (action_validate_exception, chain_exception, 3050000, "Action validate exception") FC_DECLARE_DERIVED_EXCEPTION(account_name_exists_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists FC_DECLARE_DERIVED_EXCEPTION (invalid_action_args_exception, action_validate_exception, 3050002, "Invalid Action Arguments") FC_DECLARE_DERIVED_EXCEPTION(sysio_assert_message_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure FC_DECLARE_DERIVED_EXCEPTION (sysio_assert_code_exception, action_validate_exception, 3050004, "sysio_assert_code assertion failure") FC_DECLARE_DERIVED_EXCEPTION(action_not_found_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found FC_DECLARE_DERIVED_EXCEPTION (action_data_and_struct_mismatch, action_validate_exception, 3050006, "Mismatch between action data and its struct") FC_DECLARE_DERIVED_EXCEPTION(unaccessible_api
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API FC_DECLARE_DERIVED_EXCEPTION (abort_called, action_validate_exception, 3050008, "Abort Called") FC_DECLARE_DERIVED_EXCEPTION(inline_action_too_big
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit FC_DECLARE_DERIVED_EXCEPTION (unauthorized_ram_usage_increase, action_validate_exception, 3050010, "Action attempts to increase RAM usage of account without authorization") FC_DECLARE_DERIVED_EXCEPTION(restricted_error_code_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value FC_DECLARE_DERIVED_EXCEPTION (inline_action_too_big_nonprivileged, action_validate_exception, 3050012, "Inline action exceeds maximum size limit for a non-privileged account") FC_DECLARE_DERIVED_EXCEPTION(action_return_value_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big FC_DECLARE_DERIVED_EXCEPTION (database_exception, chain_exception, 3060000, "Database exception") FC_DECLARE_DERIVED_EXCEPTION(permission_query_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception FC_DECLARE_DERIVED_EXCEPTION (account_query_exception, database_exception, 3060002, "Account Query Exception") FC_DECLARE_DERIVED_EXCEPTION(contract_table_query_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception FC_DECLARE_DERIVED_EXCEPTION (contract_query_exception, database_exception, 3060004, "Contract Query Exception") FC_DECLARE_DERIVED_EXCEPTION(bad_database_version_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version FC_DECLARE_DERIVED_EXCEPTION (guard_exception, database_exception, 3060100, "Guard Exception") FC_DECLARE_DERIVED_EXCEPTION(database_guard_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels FC_DECLARE_DERIVED_EXCEPTION (wasm_exception, chain_exception, 3070000, "WASM Exception") FC_DECLARE_DERIVED_EXCEPTION(page_memory_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory FC_DECLARE_DERIVED_EXCEPTION (wasm_execution_error, wasm_exception, 3070002, "Runtime Error Processing WASM") FC_DECLARE_DERIVED_EXCEPTION(wasm_serialization_error
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM FC_DECLARE_DERIVED_EXCEPTION (overlapping_memory_error, wasm_exception, 3070004, "memcpy with overlapping memory") FC_DECLARE_DERIVED_EXCEPTION(binaryen_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception FC_DECLARE_DERIVED_EXCEPTION (resource_exhausted_exception, chain_exception, 3080000, "Resource exhausted exception") FC_DECLARE_DERIVED_EXCEPTION(ram_usage_exceeded
 
bool operator== (const kv_database_config &lhs, const kv_database_config &rhs)
 
bool operator!= (const kv_database_config &lhs, const kv_database_config &rhs)
 
digest_type make_canonical_left (const digest_type &val)
 
digest_type make_canonical_right (const digest_type &val)
 
bool is_canonical_left (const digest_type &val)
 
bool is_canonical_right (const digest_type &val)
 
auto make_canonical_pair (const digest_type &l, const digest_type &r)
 
digest_type merkle (vector< digest_type > ids)
 
constexpr uint64_t char_to_symbol (char c)
 
constexpr uint64_t string_to_uint64_t (std::string_view str)
 
constexpr name string_to_name (std::string_view str)
 
template<typename T , T... Str>
constexpr name operator""_n ()
 
template<typename DataRange , typename MarkerRange , typename Marker >
DataRange filter_data_by_marker (DataRange data, MarkerRange markers, const Marker &markerValue)
 Return values in DataRange corresponding to matching Markers.
 
void compute_and_print_timer_accuracy (platform_timer &t)
 
bool operator== (const producer_authority &pa, const shared_producer_authority &pb)
 
const char * builtin_protocol_feature_codename (builtin_protocol_feature_t)
 
bool operator== (const symbol &lhs, const symbol &rhs)
 
bool operator!= (const symbol &lhs, const symbol &rhs)
 
bool operator< (const symbol &lhs, const symbol &rhs)
 
bool operator> (const symbol &lhs, const symbol &rhs)
 
void apply_sysio_newaccount (apply_context &)
 
void apply_sysio_updateauth (apply_context &)
 
void apply_sysio_deleteauth (apply_context &)
 
void apply_sysio_linkauth (apply_context &)
 
void apply_sysio_unlinkauth (apply_context &)
 
void apply_sysio_setcode (apply_context &)
 
void apply_sysio_setabi (apply_context &)
 
void apply_sysio_canceldelay (apply_context &)
 
template<typename F >
auto async_thread_pool (boost::asio::io_context &thread_pool, F &&f)
 
bool is_onblock (const transaction_trace &tt)
 
uint128_t transaction_id_to_sender_id (const transaction_id_type &tid)
 
auto emplace_extension (extensions_type &exts, uint16_t eid, vector< char > &&data)
 
template<typename Container >
end_insert_iterator< Container > end_inserter (Container &c)
 
template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 
constexpr bool operator== (const wasm_config &lhs, const wasm_config &rhs)
 
constexpr bool operator!= (const wasm_config &lhs, const wasm_config &rhs)
 
std::istream & operator>> (std::istream &in, wasm_interface::vm_type &runtime)
 
std::vector< uint8_twast_to_wasm (const std::string &wast)
 
bool is_intrinsic_whitelisted (const whitelisted_intrinsics_type &whitelisted_intrinsics, std::string_view name)
 
void add_intrinsic_to_whitelist (whitelisted_intrinsics_type &whitelisted_intrinsics, std::string_view name)
 
void remove_intrinsic_from_whitelist (whitelisted_intrinsics_type &whitelisted_intrinsics, std::string_view name)
 
void reset_intrinsic_whitelist (whitelisted_intrinsics_type &whitelisted_intrinsics, const std::set< std::string > &s)
 
std::set< std::string > convert_intrinsic_whitelist_to_set (const whitelisted_intrinsics_type &whitelisted_intrinsics)
 
void validate_authority_precondition (const apply_context &context, const authority &auth)
 
template<typename Iterator >
bool find_intrinsic_helper (uint64_t h, std::string_view name, Iterator &itr, const Iterator &end)
 
whitelisted_intrinsics_type::iterator find_intrinsic (whitelisted_intrinsics_type &whitelisted_intrinsics, uint64_t h, std::string_view name)
 
whitelisted_intrinsics_type::const_iterator find_intrinsic (const whitelisted_intrinsics_type &whitelisted_intrinsics, uint64_t h, std::string_view name)
 
std::ostream & operator<< (std::ostream &osm, sysio::chain::db_read_mode m)
 
void validate (boost::any &v, const std::vector< std::string > &values, sysio::chain::db_read_mode *, int)
 
std::ostream & operator<< (std::ostream &osm, sysio::chain::validation_mode m)
 
void validate (boost::any &v, const std::vector< std::string > &values, sysio::chain::validation_mode *, int)
 
bool operator== (const abi_def &lhs, const abi_def &rhs)
 
bool operator!= (const abi_def &lhs, const abi_def &rhs)
 
std::ostream & operator<< (std::ostream &os, const abi_def &abi)
 

Variables

const std::vector< const char * > genesis_intrinsics
 
unsigned char sysio_abi_bin [2132]
 
 chain_exception
 
chain type exception chain_type_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type fork_database_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found block_validate_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension transaction_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit action_validate_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big database_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version guard_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels wasm_exception
 
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception resource_exhausted_exception
 
const std::unordered_map< builtin_protocol_feature_t, builtin_protocol_feature_spec, enum_hash< builtin_protocol_feature_t > > builtin_protocol_feature_codenames
 

Typedef Documentation

◆ account_id_type

◆ account_index

Initial value:
account_object,
indexed_by<
ordered_unique<tag<by_id>, member<account_object, account_object::id_type, &account_object::id>>,
ordered_unique<tag<by_name>, member<account_object, account_name, &account_object::name>>
>
>
boost::multi_index_container< Object, Args..., chainbase::node_allocator< Object > > shared_multi_index_container

Definition at line 39 of file account_object.hpp.

◆ account_metadata_index

Initial value:
account_metadata_object,
indexed_by<
ordered_unique<tag<by_id>, member<account_metadata_object, account_metadata_object::id_type, &account_metadata_object::id>>,
ordered_unique<tag<by_name>, member<account_metadata_object, account_name, &account_metadata_object::name>>
>
>

Definition at line 75 of file account_object.hpp.

◆ account_name

Definition at line 120 of file types.hpp.

◆ account_ram_correction_index

Initial value:
account_ram_correction_object,
indexed_by<
ordered_unique<tag<by_id>, member<account_ram_correction_object, account_ram_correction_object::id_type, &account_ram_correction_object::id>>,
ordered_unique<tag<by_name>, member<account_ram_correction_object, account_name, &account_ram_correction_object::name>>
>
>

Definition at line 93 of file account_object.hpp.

◆ action_name

◆ apply_handler

typedef std::function< void(apply_context &)> sysio::chain::apply_handler = std::function<void(apply_context&)>

Definition at line 635 of file apply_context.hpp.

◆ authorization_index_set

Initial value:
index_set<
>
chainbase::shared_multi_index_container< permission_link_object, indexed_by< ordered_unique< tag< by_id >, >, ordered_unique< tag< by_action_name >, composite_key< permission_link_object, BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, account), BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, code), > >, ordered_unique< tag< by_permission_name >, composite_key< permission_link_object, BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, account), BOOST_MULTI_INDEX_MEMBER(permission_link_object, permission_name, required_permission), > > > > permission_link_index
chainbase::shared_multi_index_container< permission_object, indexed_by< ordered_unique< tag< by_id >, member< permission_object, permission_object::id_type, &permission_object::id > >, ordered_unique< tag< by_parent >, composite_key< permission_object, member< permission_object, permission_object::id_type, &permission_object::parent >, member< permission_object, permission_object::id_type, &permission_object::id > > >, ordered_unique< tag< by_owner >, composite_key< permission_object, member< permission_object, account_name, &permission_object::owner >, member< permission_object, permission_name, &permission_object::name > > >, ordered_unique< tag< by_name >, composite_key< permission_object, member< permission_object, permission_name, &permission_object::name >, member< permission_object, permission_object::id_type, &permission_object::id > > > > > permission_index
chainbase::shared_multi_index_container< permission_usage_object, indexed_by< ordered_unique< tag< by_id >, member< permission_usage_object, permission_usage_object::id_type, &permission_usage_object::id > > > > permission_usage_index

Definition at line 18 of file authorization_manager.cpp.

◆ block_extension

◆ block_extension_types

Initial value:
detail::block_extension_types<
additional_block_signatures_extension
>

Definition at line 81 of file block.hpp.

◆ block_header_extension

◆ block_header_extension_types

Initial value:
detail::block_header_extension_types<
protocol_feature_activation,
producer_schedule_change_extension,
s_root_extension
>

Definition at line 18 of file block_header.hpp.

◆ block_header_state_ptr

Definition at line 160 of file block_header_state.hpp.

◆ block_id_type

Definition at line 231 of file types.hpp.

◆ block_num_type

Definition at line 239 of file types.hpp.

◆ block_signing_authority

◆ block_stage_type

◆ block_state_ptr

using sysio::chain::block_state_ptr = std::shared_ptr<block_state>

Definition at line 67 of file block_state.hpp.

◆ block_summary_multi_index

Initial value:
block_summary_object,
indexed_by<
ordered_unique<tag<by_id>, BOOST_MULTI_INDEX_MEMBER(block_summary_object, block_summary_object::id_type, id)>
>
>

Definition at line 25 of file block_summary_object.hpp.

◆ block_timestamp_type

typedef block_timestamp<config::block_interval_ms,config::block_timestamp_epoch> sysio::chain::block_timestamp_type

Definition at line 75 of file block_timestamp.hpp.

◆ branch_type

Definition at line 68 of file block_state.hpp.

◆ bytes

using sysio::chain::bytes = vector<char>

Definition at line 243 of file types.hpp.

◆ chain_config

Definition at line 196 of file chain_config.hpp.

◆ checksum160_type

Definition at line 235 of file types.hpp.

◆ checksum256_type

Definition at line 233 of file types.hpp.

◆ checksum512_type

Definition at line 234 of file types.hpp.

◆ checksum_type

Definition at line 232 of file types.hpp.

◆ code_index

Initial value:
code_object,
indexed_by<
ordered_unique<tag<by_id>, member<code_object, code_object::id_type, &code_object::id>>,
ordered_unique<tag<by_code_hash>,
composite_key< code_object,
member<code_object, digest_type, &code_object::code_hash>,
member<code_object, uint8_t, &code_object::vm_type>,
member<code_object, uint8_t, &code_object::vm_version>
>
>
>
>

Definition at line 22 of file code_object.hpp.

◆ config_range

◆ contract_database_index_set

Initial value:
index_set<
>
secondary_index< uint128_t, index128_object_type >::index_index index128_index
secondary_index< float64_t, index_double_object_type, soft_double_less >::index_index index_double_index
secondary_index< uint64_t, index64_object_type >::index_index index64_index
secondary_index< key256_t, index256_object_type >::index_index index256_index
chainbase::shared_multi_index_container< key_value_object, indexed_by< ordered_unique< tag< by_id >, member< key_value_object, key_value_object::id_type, &key_value_object::id > >, ordered_unique< tag< by_scope_primary >, composite_key< key_value_object, member< key_value_object, table_id, &key_value_object::t_id >, member< key_value_object, uint64_t, &key_value_object::primary_key > >, composite_key_compare< std::less< table_id >, std::less< uint64_t > > > > > key_value_index
secondary_index< float128_t, index_long_double_object_type, soft_long_double_less >::index_index index_long_double_index

Definition at line 57 of file controller.cpp.

◆ controller_index_set

Initial value:
index_set<
>
chainbase::shared_multi_index_container< global_property_object, indexed_by< ordered_unique< tag< by_id >, > > > global_property_multi_index
chainbase::shared_multi_index_container< code_object, indexed_by< ordered_unique< tag< by_id >, member< code_object, code_object::id_type, &code_object::id > >, ordered_unique< tag< by_code_hash >, composite_key< code_object, member< code_object, digest_type, &code_object::code_hash >, member< code_object, uint8_t, &code_object::vm_type >, member< code_object, uint8_t, &code_object::vm_version > > > > > code_index
chainbase::shared_multi_index_container< account_object, indexed_by< ordered_unique< tag< by_id >, member< account_object, account_object::id_type, &account_object::id > >, ordered_unique< tag< by_name >, member< account_object, account_name, &account_object::name > > > > account_index
chainbase::shared_multi_index_container< block_summary_object, indexed_by< ordered_unique< tag< by_id >, BOOST_MULTI_INDEX_MEMBER(block_summary_object, block_summary_object::id_type, id)> > > block_summary_multi_index
chainbase::shared_multi_index_container< account_ram_correction_object, indexed_by< ordered_unique< tag< by_id >, member< account_ram_correction_object, account_ram_correction_object::id_type, &account_ram_correction_object::id > >, ordered_unique< tag< by_name >, member< account_ram_correction_object, account_name, &account_ram_correction_object::name > > > > account_ram_correction_index
chainbase::shared_multi_index_container< transaction_object, indexed_by< ordered_unique< tag< by_id >, BOOST_MULTI_INDEX_MEMBER(transaction_object, transaction_object::id_type, id)>, ordered_unique< tag< by_trx_id >, BOOST_MULTI_INDEX_MEMBER(transaction_object, transaction_id_type, trx_id)>, ordered_unique< tag< by_expiration >, composite_key< transaction_object, BOOST_MULTI_INDEX_MEMBER(transaction_object, time_point_sec, expiration), > > > > transaction_multi_index
chainbase::shared_multi_index_container< database_header_object, indexed_by< ordered_unique< tag< by_id >, BOOST_MULTI_INDEX_MEMBER(database_header_object, database_header_object::id_type, id)> > > database_header_multi_index
chainbase::shared_multi_index_container< dynamic_global_property_object, indexed_by< ordered_unique< tag< by_id >, > > > dynamic_global_property_multi_index
chainbase::shared_multi_index_container< generated_transaction_object, indexed_by< ordered_unique< tag< by_id >, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, generated_transaction_object::id_type, id)>, ordered_unique< tag< by_trx_id >, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, transaction_id_type, trx_id)>, ordered_unique< tag< by_expiration >, composite_key< generated_transaction_object, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, time_point, expiration), > >, ordered_unique< tag< by_delay >, composite_key< generated_transaction_object, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, time_point, delay_until), > >, ordered_unique< tag< by_sender_id >, composite_key< generated_transaction_object, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, account_name, sender), > > > > generated_transaction_multi_index
chainbase::shared_multi_index_container< table_id_object, indexed_by< ordered_unique< tag< by_id >, member< table_id_object, table_id_object::id_type, &table_id_object::id > >, ordered_unique< tag< by_code_scope_table >, composite_key< table_id_object, member< table_id_object, account_name, &table_id_object::code >, member< table_id_object, scope_name, &table_id_object::scope >, member< table_id_object, table_name, &table_id_object::table > > > > > table_id_multi_index
chainbase::shared_multi_index_container< protocol_state_object, indexed_by< ordered_unique< tag< by_id >, > > > protocol_state_multi_index
chainbase::shared_multi_index_container< account_metadata_object, indexed_by< ordered_unique< tag< by_id >, member< account_metadata_object, account_metadata_object::id_type, &account_metadata_object::id > >, ordered_unique< tag< by_name >, member< account_metadata_object, account_name, &account_metadata_object::name > > > > account_metadata_index

Definition at line 42 of file controller.cpp.

◆ database_header_multi_index

Initial value:
database_header_object,
indexed_by<
ordered_unique<tag<by_id>, BOOST_MULTI_INDEX_MEMBER(database_header_object, database_header_object::id_type, id)>
>
>

Definition at line 43 of file database_header_object.hpp.

◆ digest_type

Definition at line 237 of file types.hpp.

◆ dynamic_global_property_multi_index

Initial value:
dynamic_global_property_object,
indexed_by<
ordered_unique<tag<by_id>,
>
>
>

Definition at line 158 of file global_property_object.hpp.

◆ eos_vm_backend_t

◆ eos_vm_host_functions_t

◆ eos_vm_null_backend_t

Definition at line 25 of file sys-vm.hpp.

◆ extensions_type

typedef vector<std::pair<uint16_t,vector<char> > > sysio::chain::extensions_type

Extentions are prefixed with type and are a buffer that can be interpreted by code that is aware and ignored by unaware code.

Definition at line 258 of file types.hpp.

◆ field_name

Definition at line 8 of file abi_def.hpp.

◆ fork_multi_index_type

typedef multi_index_container< block_state_ptr, indexed_by< hashed_unique< tag<by_block_id>, member<block_header_state, block_id_type, &block_header_state::id>, std::hash<block_id_type> >, ordered_non_unique< tag<by_prev>, const_mem_fun<block_header_state, const block_id_type&, &block_header_state::prev> >, ordered_unique< tag<by_lib_block_num>, composite_key< block_state, global_fun<const block_state&, bool, &block_state_is_valid>, member<detail::block_header_state_common, uint32_t, &detail::block_header_state_common::dpos_irreversible_blocknum>, member<detail::block_header_state_common, uint32_t, &detail::block_header_state_common::block_num>, member<block_header_state, block_id_type, &block_header_state::id> >, composite_key_compare< std::greater<bool>, std::greater<uint32_t>, std::greater<uint32_t>, sha256_less > > > > sysio::chain::fork_multi_index_type

Definition at line 56 of file fork_database.cpp.

◆ forked_branch_callback

using sysio::chain::forked_branch_callback = std::function<void(const branch_type&)>

Definition at line 45 of file controller.hpp.

◆ generated_transaction_multi_index

Initial value:
generated_transaction_object,
indexed_by<
ordered_unique< tag<by_id>, BOOST_MULTI_INDEX_MEMBER(generated_transaction_object, generated_transaction_object::id_type, id)>,
ordered_unique< tag<by_trx_id>, BOOST_MULTI_INDEX_MEMBER( generated_transaction_object, transaction_id_type, trx_id)>,
ordered_unique< tag<by_expiration>,
composite_key< generated_transaction_object,
BOOST_MULTI_INDEX_MEMBER( generated_transaction_object, time_point, expiration),
>
>,
ordered_unique< tag<by_delay>,
composite_key< generated_transaction_object,
BOOST_MULTI_INDEX_MEMBER( generated_transaction_object, time_point, delay_until),
>
>,
ordered_unique< tag<by_sender_id>,
composite_key< generated_transaction_object,
BOOST_MULTI_INDEX_MEMBER( generated_transaction_object, account_name, sender),
>
>
>
>

Definition at line 52 of file generated_transaction_object.hpp.

◆ global_property_multi_index

Initial value:
global_property_object,
indexed_by<
ordered_unique<tag<by_id>,
>
>
>

Definition at line 105 of file global_property_object.hpp.

◆ incremental_merkle

◆ index128_index

◆ index128_object

◆ index256_index

◆ index256_object

◆ index64_index

◆ index64_object

◆ index_double_index

◆ index_double_object

This index supports a deterministic software implementation of double as the secondary key.

The software double implementation is using the Berkeley softfloat library (release 3).

Definition at line 147 of file contract_table_objects.hpp.

◆ index_long_double_index

◆ index_long_double_object

This index supports a deterministic software implementation of long double as the secondary key.

The software long double implementation is using the Berkeley softfloat library (release 3).

Definition at line 155 of file contract_table_objects.hpp.

◆ int128_t

using sysio::chain::int128_t = __int128

Definition at line 241 of file types.hpp.

◆ key256_t

typedef std::array<uint128_t, 2> sysio::chain::key256_t

Definition at line 125 of file contract_table_objects.hpp.

◆ key_value_index

Initial value:
key_value_object,
indexed_by<
ordered_unique<tag<by_id>, member<key_value_object, key_value_object::id_type, &key_value_object::id>>,
ordered_unique<tag<by_scope_primary>,
composite_key< key_value_object,
member<key_value_object, table_id, &key_value_object::t_id>,
member<key_value_object, uint64_t, &key_value_object::primary_key>
>,
composite_key_compare< std::less<table_id>, std::less<uint64_t> >
>
>
>

Definition at line 64 of file contract_table_objects.hpp.

◆ legacy_ptr

template<typename T , std::size_t Align = alignof(T)>
using sysio::chain::legacy_ptr = sysio::vm::argument_proxy<T*, Align>

Definition at line 29 of file common.hpp.

◆ legacy_span

template<typename T , std::size_t Align = alignof(T)>
using sysio::chain::legacy_span = sysio::vm::argument_proxy<sysio::vm::span<T>, Align>

Definition at line 32 of file common.hpp.

◆ next_func_t

using sysio::chain::next_func_t = std::function<void(const std::variant<fc::exception_ptr, transaction_trace_ptr>&)>

Definition at line 31 of file unapplied_transaction_queue.hpp.

◆ object_to_table_id_tag_t

template<typename T >
using sysio::chain::object_to_table_id_tag_t = typename object_to_table_id_tag<T>::tag_type

Definition at line 238 of file contract_table_objects.hpp.

◆ packed_transaction_ptr

Definition at line 214 of file transaction.hpp.

◆ permission_index

Initial value:
permission_object,
indexed_by<
ordered_unique<tag<by_id>, member<permission_object, permission_object::id_type, &permission_object::id>>,
ordered_unique<tag<by_parent>,
composite_key<permission_object,
member<permission_object, permission_object::id_type, &permission_object::parent>,
member<permission_object, permission_object::id_type, &permission_object::id>
>
>,
ordered_unique<tag<by_owner>,
composite_key<permission_object,
member<permission_object, account_name, &permission_object::owner>,
member<permission_object, permission_name, &permission_object::name>
>
>,
ordered_unique<tag<by_name>,
composite_key<permission_object,
member<permission_object, permission_name, &permission_object::name>,
member<permission_object, permission_object::id_type, &permission_object::id>
>
>
>
>

Definition at line 86 of file permission_object.hpp.

◆ permission_link_index

Initial value:
permission_link_object,
indexed_by<
ordered_unique<tag<by_id>,
>,
ordered_unique<tag<by_action_name>,
composite_key<permission_link_object,
BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, account),
BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, code),
>
>,
ordered_unique<tag<by_permission_name>,
composite_key<permission_link_object,
BOOST_MULTI_INDEX_MEMBER(permission_link_object, account_name, account),
BOOST_MULTI_INDEX_MEMBER(permission_link_object, permission_name, required_permission),
>
>
>
>

Definition at line 44 of file permission_link_object.hpp.

◆ permission_name

Definition at line 121 of file types.hpp.

◆ permission_usage_index

Initial value:
permission_usage_object,
indexed_by<
ordered_unique<tag<by_id>, member<permission_usage_object, permission_usage_object::id_type, &permission_usage_object::id>>
>
>

Definition at line 17 of file permission_object.hpp.

◆ private_key_type

◆ protocol_feature_activation_set_ptr

◆ protocol_state_multi_index

Initial value:
protocol_state_object,
indexed_by<
ordered_unique<tag<by_id>,
>
>
>

Definition at line 46 of file protocol_state_object.hpp.

◆ public_key_type

◆ recover_keys_future

◆ scope_name

Definition at line 119 of file types.hpp.

◆ share_type

Definition at line 240 of file types.hpp.

◆ shared_block_signing_authority

◆ shared_flat_multimap

template<typename K , typename V >
using sysio::chain::shared_flat_multimap = boost::interprocess::flat_multimap< K, V, std::less<K>, allocator< std::pair<K,V> > >

Definition at line 89 of file types.hpp.

◆ shared_incremental_merkle

◆ shared_public_key_data

◆ shared_set

template<typename T >
using sysio::chain::shared_set = boost::interprocess::set<T, std::less<T>, allocator<T>>

Definition at line 87 of file types.hpp.

◆ shared_string

◆ shared_vector

template<typename T >
using sysio::chain::shared_vector = boost::interprocess::vector<T, allocator<T>>

Definition at line 85 of file types.hpp.

◆ signature_type

Definition at line 78 of file types.hpp.

◆ signed_block_ptr

using sysio::chain::signed_block_ptr = std::shared_ptr<signed_block>

Definition at line 105 of file block.hpp.

◆ signer_callback_type

using sysio::chain::signer_callback_type = std::function<std::vector<signature_type>(const digest_type&)>

Definition at line 47 of file block_header_state.hpp.

◆ snapshot_reader_ptr

Definition at line 294 of file snapshot.hpp.

◆ snapshot_writer_ptr

Definition at line 155 of file snapshot.hpp.

◆ span

template<typename T , std::size_t Extent = sysio::vm::dynamic_extent>
using sysio::chain::span = sysio::vm::span<T, Extent>

Definition at line 26 of file common.hpp.

◆ table_id

◆ table_id_multi_index

Initial value:
table_id_object,
indexed_by<
ordered_unique<tag<by_id>,
member<table_id_object, table_id_object::id_type, &table_id_object::id>
>,
ordered_unique<tag<by_code_scope_table>,
composite_key< table_id_object,
member<table_id_object, account_name, &table_id_object::code>,
member<table_id_object, scope_name, &table_id_object::scope>,
member<table_id_object, table_name, &table_id_object::table>
>
>
>
>

Definition at line 28 of file contract_table_objects.hpp.

◆ table_name

Definition at line 122 of file types.hpp.

◆ transaction_extension

◆ transaction_extension_types

Initial value:
detail::transaction_extension_types<
deferred_transaction_generation_context
>

Definition at line 35 of file transaction.hpp.

◆ transaction_id_type

Definition at line 236 of file types.hpp.

◆ transaction_index

◆ transaction_metadata_ptr

Definition at line 14 of file transaction_metadata.hpp.

◆ transaction_multi_index

Initial value:
transaction_object,
indexed_by<
ordered_unique< tag<by_id>, BOOST_MULTI_INDEX_MEMBER(transaction_object, transaction_object::id_type, id)>,
ordered_unique< tag<by_trx_id>, BOOST_MULTI_INDEX_MEMBER(transaction_object, transaction_id_type, trx_id)>,
ordered_unique< tag<by_expiration>,
composite_key< transaction_object,
BOOST_MULTI_INDEX_MEMBER( transaction_object, time_point_sec, expiration ),
>
>
>
>

Definition at line 31 of file transaction_object.hpp.

◆ transaction_trace_ptr

Definition at line 20 of file trace.hpp.

◆ trx_meta_cache_lookup

Definition at line 47 of file controller.hpp.

◆ type_converter

◆ type_name

Definition at line 7 of file abi_def.hpp.

◆ uint128_t

using sysio::chain::uint128_t = unsigned __int128

Definition at line 242 of file types.hpp.

◆ wasm_size_t

Definition at line 121 of file common.hpp.

◆ weight_type

Definition at line 238 of file types.hpp.

◆ whitelisted_intrinsics_type

Enumeration Type Documentation

◆ builtin_protocol_feature_t

Enumerator
preactivate_feature 
only_link_to_existing_permission 
replace_deferred 
no_duplicate_deferred_id 
fix_linkauth_restriction 
disallow_empty_producer_schedule 
restrict_action_to_self 
only_bill_first_authorizer 
forward_setcode 
get_sender 
ram_restrictions 
webauthn_key 
wtmsig_block_signatures 
action_return_value 
blockchain_parameters 
get_code_hash 
configurable_wasm_limits 
crypto_primitives 
get_block_num 
em_key 
reserved_private_fork_protocol_features 

Definition at line 16 of file protocol_feature_manager.hpp.

16 : uint32_t {
26 get_sender = 9,
28 webauthn_key = 11,
31 // 14 reserved
32 // 15 reserved
33 blockchain_parameters = 16, // matches release 2.1 value
34 get_code_hash = 17,
35 configurable_wasm_limits = 18, // configurable_wasm_limits2,
37 get_block_num = 20,
38 em_key = 21,
40};
unsigned int uint32_t
Definition stdint.h:126

◆ db_read_mode

Enumerator
SPECULATIVE 
HEAD 
READ_ONLY 
IRREVERSIBLE 

Definition at line 51 of file controller.hpp.

◆ object_type

List all object types from all namespaces here so they can be easily reflected and displayed in debug output. If a 3rd party wants to extend the core code then they will have to change the packed_object::type field from enum_type to uint16 to avoid warnings when converting packed_objects to/from json.

UNUSED_ enums can be taken for new purposes but otherwise the offsets in this enumeration are potentially shared_memory breaking

Enumerator
null_object_type 
account_object_type 
account_metadata_object_type 
permission_object_type 
permission_usage_object_type 
permission_link_object_type 
UNUSED_action_code_object_type 
key_value_object_type 
index64_object_type 
index128_object_type 
index256_object_type 
index_double_object_type 
index_long_double_object_type 
global_property_object_type 
dynamic_global_property_object_type 
block_summary_object_type 
transaction_object_type 
generated_transaction_object_type 
UNUSED_producer_object_type 
UNUSED_chain_property_object_type 
account_control_history_object_type 

Defined by history_plugin.

UNUSED_account_transaction_history_object_type 
UNUSED_transaction_history_object_type 
public_key_history_object_type 

Defined by history_plugin.

UNUSED_balance_object_type 
UNUSED_staked_balance_object_type 
UNUSED_producer_votes_object_type 
UNUSED_producer_schedule_object_type 
UNUSED_proxy_vote_object_type 
UNUSED_scope_sequence_object_type 
table_id_object_type 
resource_limits_object_type 
resource_usage_object_type 
resource_limits_state_object_type 
resource_limits_config_object_type 
account_history_object_type 

Defined by history_plugin.

action_history_object_type 

Defined by history_plugin.

reversible_block_object_type 
protocol_state_object_type 
account_ram_correction_object_type 
code_object_type 
database_header_object_type 
OBJECT_TYPE_COUNT 

Sentry value which contains the number of different object types.

Definition at line 135 of file types.hpp.

136 {
180 };
@ UNUSED_account_transaction_history_object_type
Definition types.hpp:158
@ block_summary_object_type
Definition types.hpp:152
@ OBJECT_TYPE_COUNT
Sentry value which contains the number of different object types.
Definition types.hpp:179
@ account_control_history_object_type
Defined by history_plugin.
Definition types.hpp:157
@ resource_usage_object_type
Definition types.hpp:169
@ UNUSED_scope_sequence_object_type
Definition types.hpp:166
@ index256_object_type
Definition types.hpp:147
@ index_double_object_type
Definition types.hpp:148
@ action_history_object_type
Defined by history_plugin.
Definition types.hpp:173
@ account_object_type
Definition types.hpp:138
@ key_value_object_type
Definition types.hpp:144
@ UNUSED_proxy_vote_object_type
Definition types.hpp:165
@ account_history_object_type
Defined by history_plugin.
Definition types.hpp:172
@ index_long_double_object_type
Definition types.hpp:149
@ resource_limits_state_object_type
Definition types.hpp:170
@ generated_transaction_object_type
Definition types.hpp:154
@ resource_limits_object_type
Definition types.hpp:168
@ resource_limits_config_object_type
Definition types.hpp:171
@ transaction_object_type
Definition types.hpp:153
@ permission_object_type
Definition types.hpp:140
@ protocol_state_object_type
Definition types.hpp:175
@ database_header_object_type
Definition types.hpp:178
@ UNUSED_producer_votes_object_type
Definition types.hpp:163
@ account_ram_correction_object_type
Definition types.hpp:176
@ reversible_block_object_type
Definition types.hpp:174
@ table_id_object_type
Definition types.hpp:167
@ UNUSED_transaction_history_object_type
Definition types.hpp:159
@ UNUSED_chain_property_object_type
Definition types.hpp:156
@ permission_usage_object_type
Definition types.hpp:141
@ code_object_type
Definition types.hpp:177
@ UNUSED_staked_balance_object_type
Definition types.hpp:162
@ index64_object_type
Definition types.hpp:145
@ public_key_history_object_type
Defined by history_plugin.
Definition types.hpp:160
@ permission_link_object_type
Definition types.hpp:142
@ null_object_type
Definition types.hpp:137
@ index128_object_type
Definition types.hpp:146
@ UNUSED_producer_schedule_object_type
Definition types.hpp:164
@ global_property_object_type
Definition types.hpp:150
@ UNUSED_producer_object_type
Definition types.hpp:155
@ UNUSED_balance_object_type
Definition types.hpp:161
@ UNUSED_action_code_object_type
Definition types.hpp:143
@ account_metadata_object_type
Definition types.hpp:139
@ dynamic_global_property_object_type
Definition types.hpp:151

◆ protocol_feature_t

Enumerator
builtin 

Definition at line 11 of file protocol_feature_manager.hpp.

◆ system_error_code

Enumerator
generic_system_error 
contract_restricted_error_code 

Definition at line 133 of file exceptions.hpp.

133 : uint64_t {
134 generic_system_error = 10000000000000000000ULL,
135 contract_restricted_error_code, //< contract used an error code reserved for system usage
136 };
unsigned __int64 uint64_t
Definition stdint.h:136

◆ trx_enum_type

Enumerator
unknown 
persisted 
forked 
aborted 
incoming_persisted 
incoming 

Definition at line 22 of file unapplied_transaction_queue.hpp.

22 {
23 unknown = 0,
24 persisted = 1,
25 forked = 2,
26 aborted = 3,
28 incoming = 5 // incoming_end() needs to be updated if this changes
29};
@ forked
the peer's irreversible blocks are different
Definition protocol.hpp:52
bool unknown

◆ validation_mode

Enumerator
FULL 
LIGHT 

Definition at line 58 of file controller.hpp.

Function Documentation

◆ add_intrinsic_to_whitelist()

void sysio::chain::add_intrinsic_to_whitelist ( whitelisted_intrinsics_type & whitelisted_intrinsics,
std::string_view name )

Definition at line 51 of file whitelisted_intrinsics.cpp.

52 {
53 uint64_t h = static_cast<uint64_t>( std::hash<std::string_view>{}( name ) );
54 auto itr = find_intrinsic( whitelisted_intrinsics, h, name );
55 SYS_ASSERT( itr == whitelisted_intrinsics.end(), database_exception,
56 "cannot add intrinsic '${name}' since it already exists in the whitelist",
57 ("name", std::string(name))
58 );
59
60 whitelisted_intrinsics.emplace( std::piecewise_construct,
61 std::forward_as_tuple( h ),
62 std::forward_as_tuple( name.data(), name.size(),
63 whitelisted_intrinsics.get_allocator() )
64 );
65 }
std::string name
#define SYS_ASSERT(expr, exc_type, FORMAT,...)
Definition exceptions.hpp:7
whitelisted_intrinsics_type::iterator find_intrinsic(whitelisted_intrinsics_type &whitelisted_intrinsics, uint64_t h, std::string_view name)
Immutable except for fc::from_variant.
Definition name.hpp:43
Here is the call graph for this function:
Here is the caller graph for this function:

◆ async_thread_pool()

template<typename F >
auto sysio::chain::async_thread_pool ( boost::asio::io_context & thread_pool,
F && f )

Definition at line 41 of file thread_utils.hpp.

41 {
42 auto task = std::make_shared<std::packaged_task<decltype( f() )()>>( std::forward<F>( f ) );
43 boost::asio::post( thread_pool, [task]() { (*task)(); } );
44 return task->get_future();
45 }
Here is the caller graph for this function:

◆ block_state_is_valid()

bool sysio::chain::block_state_is_valid ( const block_state & bs)
inline

Definition at line 24 of file fork_database.cpp.

24 {
25 return bs.is_valid();
26 }

◆ builtin_protocol_feature_codename()

const char * sysio::chain::builtin_protocol_feature_codename ( builtin_protocol_feature_t codename)

Definition at line 277 of file protocol_feature_manager.cpp.

277 {
278 auto itr = builtin_protocol_feature_codenames.find( codename );
279 SYS_ASSERT( itr != builtin_protocol_feature_codenames.end(), protocol_feature_validation_exception,
280 "Unsupported builtin_protocol_feature_t passed to builtin_protocol_feature_codename: ${codename}",
281 ("codename", static_cast<uint32_t>(codename)) );
282
283 return itr->second.codename;
284 }
const std::unordered_map< builtin_protocol_feature_t, builtin_protocol_feature_spec, enum_hash< builtin_protocol_feature_t > > builtin_protocol_feature_codenames
Here is the caller graph for this function:

◆ char_to_symbol()

uint64_t sysio::chain::char_to_symbol ( char c)
inlineconstexpr

Definition at line 16 of file name.hpp.

16 {
17 if( c >= 'a' && c <= 'z' )
18 return (c - 'a') + 6;
19 if( c >= '1' && c <= '5' )
20 return (c - '1') + 1;
21 return 0;
22 }
Here is the caller graph for this function:

◆ common_type_defs()

vector< type_def > sysio::chain::common_type_defs ( )

Definition at line 6 of file sysio_contract_abi.cpp.

6 {
8
9 types.push_back( type_def{"account_name", "name"} );
10 types.push_back( type_def{"permission_name", "name"} );
11 types.push_back( type_def{"action_name", "name"} );
12 types.push_back( type_def{"table_name", "name"} );
13 types.push_back( type_def{"transaction_id_type", "checksum256"} );
14 types.push_back( type_def{"block_id_type", "checksum256"} );
15 types.push_back( type_def{"weight_type", "uint16"} );
16
17 return types;
18}
Here is the caller graph for this function:

◆ compute_and_print_timer_accuracy()

void sysio::chain::compute_and_print_timer_accuracy ( platform_timer & t)

Definition at line 21 of file platform_timer_accuracy.cpp.

21 {
22 static std::mutex m;
23 static bool once_is_enough;
24
25 std::lock_guard guard(m);
26
27 if(once_is_enough)
28 return;
29
30 bacc::accumulator_set<int, bacc::stats<bacc::tag::mean, bacc::tag::min, bacc::tag::max, bacc::tag::variance>, float> samples;
31
32 //keep longest first in list. You're effectively going to take test_intervals[0]*sizeof(test_intervals[0])
33 //time to do the the test
34 int test_intervals[] = {50000, 10000, 5000, 1000, 500, 100, 50, 10};
35
36 for(int& interval : test_intervals) {
37 unsigned int loops = test_intervals[0]/interval;
38
39 for(unsigned int i = 0; i < loops; ++i) {
40 auto start = std::chrono::high_resolution_clock::now();
41 timer.start(fc::time_point(fc::time_point::now().time_since_epoch() + fc::microseconds(interval)));
42 while(!timer.expired) {}
43 auto end = std::chrono::high_resolution_clock::now();
44 int timer_slop = std::chrono::duration_cast<std::chrono::microseconds>(end-start).count() - interval;
45
46 //since more samples are run for the shorter expirations, weigh the longer expirations accordingly. This
47 //helps to make a few results more fair. Two such examples: AWS c4&i5 xen instances being rather stable
48 //down to 100us but then struggling with 50us and 10us. MacOS having performance that seems to correlate
49 //with expiry length; that is, long expirations have high error, short expirations have low error.
50 //That said, for these platforms, a tighter tolerance may possibly be achieved by taking performance
51 //metrics in mulitple bins and appliying the slop based on which bin a deadline resides in. Not clear
52 //if that's worth the extra complexity at this point.
53 samples(timer_slop, bacc::weight = interval/(float)test_intervals[0]);
54 }
55 }
56
57 #define TIMER_STATS_FORMAT "min:${min}us max:${max}us mean:${mean}us stddev:${stddev}us"
58 #define TIMER_STATS \
59 ("min", bacc::min(samples))("max", bacc::max(samples)) \
60 ("mean", (int)bacc::mean(samples))("stddev", (int)sqrt(bacc::variance(samples)))
61
62 ilog("Checktime timer accuracy: " TIMER_STATS_FORMAT, TIMER_STATS);
63 if(bacc::mean(samples) + sqrt(bacc::variance(samples))*2 > 250)
64 wlog("Checktime timer accuracy on this platform and hardware combination is poor; accuracy of subjective transaction deadline enforcement will suffer");
65
66 once_is_enough = true;
67}
static time_point now()
Definition time.cpp:14
#define wlog(FORMAT,...)
Definition logger.hpp:124
#define ilog(FORMAT,...)
Definition logger.hpp:118
#define TIMER_STATS_FORMAT
#define TIMER_STATS
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::action_return_value >()

Definition at line 3636 of file controller.cpp.

3636 {
3637 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3638 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "set_action_return_value" );
3639 } );
3640}
Maintains global state information about consensus protocol rules.
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::blockchain_parameters >()

Definition at line 3651 of file controller.cpp.

3651 {
3652 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3653 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "get_parameters_packed" );
3654 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "set_parameters_packed" );
3655 } );
3656}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::configurable_wasm_limits >()

Definition at line 3643 of file controller.cpp.

3643 {
3644 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3645 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "set_wasm_parameters_packed" );
3646 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "get_wasm_parameters_packed" );
3647 } );
3648}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::crypto_primitives >()

Definition at line 3673 of file controller.cpp.

3673 {
3674 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3675 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "alt_bn128_add" );
3676 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "alt_bn128_mul" );
3677 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "alt_bn128_pair" );
3678 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "mod_exp" );
3679 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "blake2_f" );
3680 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "sha3" );
3681 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "k1_recover" );
3682 } );
3683}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::em_key >()

Definition at line 3621 of file controller.cpp.

3621 {
3622 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3623 ps.num_supported_key_types = 4;
3624 } );
3625}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::get_block_num >()

Definition at line 3666 of file controller.cpp.

3666 {
3667 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3668 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "get_block_num" );
3669 } );
3670}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::get_code_hash >()

Definition at line 3659 of file controller.cpp.

3659 {
3660 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3661 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "get_code_hash" );
3662 } );
3663}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::get_sender >()

Definition at line 3586 of file controller.cpp.

3586 {
3587 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3588 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "get_sender" );
3589 } );
3590}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::preactivate_feature >()

Definition at line 3578 of file controller.cpp.

3578 {
3579 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3580 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "preactivate_feature" );
3581 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "is_feature_activated" );
3582 } );
3583}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::replace_deferred >()

Definition at line 3593 of file controller.cpp.

3593 {
3594 const auto& indx = db.get_index<account_ram_correction_index, by_id>();
3595 for( auto itr = indx.begin(); itr != indx.end(); itr = indx.begin() ) {
3596 int64_t current_ram_usage = resource_limits.get_account_ram_usage( itr->name );
3597 int64_t ram_delta = -static_cast<int64_t>(itr->ram_correction);
3598 if( itr->ram_correction > static_cast<uint64_t>(current_ram_usage) ) {
3599 ram_delta = -current_ram_usage;
3600 elog( "account ${name} was to be reduced by ${adjust} bytes of RAM despite only using ${current} bytes of RAM",
3601 ("name", itr->name)("adjust", itr->ram_correction)("current", current_ram_usage) );
3602 }
3603
3604 if (auto dm_logger = get_deep_mind_logger()) {
3605 dm_logger->on_ram_trace(RAM_EVENT_ID("${id}", ("id", itr->id._id)), "deferred_trx", "correction", "deferred_trx_ram_correction");
3606 }
3607
3608 resource_limits.add_pending_ram_usage( itr->name, ram_delta );
3609 db.remove( *itr );
3610 }
3611}
#define RAM_EVENT_ID(FORMAT,...)
Definition deep_mind.hpp:27
#define elog(FORMAT,...)
Definition logger.hpp:130
signed __int64 int64_t
Definition stdint.h:135
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::webauthn_key >()

Definition at line 3614 of file controller.cpp.

3614 {
3615 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3616 ps.num_supported_key_types = 3;
3617 } );
3618}
Here is the call graph for this function:

◆ controller_impl::on_activation< builtin_protocol_feature_t::wtmsig_block_signatures >()

Definition at line 3629 of file controller.cpp.

3629 {
3630 db.modify( db.get<protocol_state_object>(), [&]( auto& ps ) {
3631 add_intrinsic_to_whitelist( ps.whitelisted_intrinsics, "set_proposed_producers_ex" );
3632 } );
3633}
Here is the call graph for this function:

◆ convert_intrinsic_whitelist_to_set()

std::set< std::string > sysio::chain::convert_intrinsic_whitelist_to_set ( const whitelisted_intrinsics_type & whitelisted_intrinsics)

Definition at line 94 of file whitelisted_intrinsics.cpp.

94 {
95 std::set<std::string> s;
96
97 for( const auto& p : whitelisted_intrinsics ) {
98 s.emplace( p.second.data(), p.second.size() );
99 }
100
101 return s;
102 }
const mie::Vuint & p
Definition bn.cpp:27
size_t size() const
Definition zm.h:519
char * s
Here is the call graph for this function:
Here is the caller graph for this function:

◆ emplace_extension()

auto sysio::chain::emplace_extension ( extensions_type & exts,
uint16_t eid,
vector< char > && data )
inline

emplace an extension into the extensions type such that it is properly ordered by extension id this assumes exts is already sorted by extension id

Definition at line 264 of file types.hpp.

264 {
265 auto insert_itr = std::upper_bound(exts.begin(), exts.end(), eid, [](uint16_t id, const auto& ext){
266 return id < ext.first;
267 });
268
269 return exts.emplace(insert_itr, eid, std::move(data));
270 }
unsigned short uint16_t
Definition stdint.h:125
Here is the caller graph for this function:

◆ end_inserter()

template<typename Container >
end_insert_iterator< Container > sysio::chain::end_inserter ( Container & c)
inline

Definition at line 303 of file types.hpp.

Here is the caller graph for this function:

◆ extensions()

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed sysio::chain::extensions ( invalid block)

◆ FC_DECLARE_DERIVED_EXCEPTION() [1/40]

key Invalid authority Invalid transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( abi_type_exception ,
chain_type_exception ,
3010007 ,
"Invalid ABI"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [2/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( abort_called ,
action_validate_exception ,
3050008 ,
"Abort Called"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [3/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( account_query_exception ,
database_exception ,
3060002 ,
"Account Query Exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [4/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( action_data_and_struct_mismatch ,
action_validate_exception ,
3050006 ,
"Mismatch between action data and its struct"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [5/40]

key Invalid authority sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( action_type_exception ,
chain_type_exception ,
3010005 ,
"Invalid action"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [6/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( action_validate_exception ,
chain_exception ,
3050000 ,
"Action validate exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [7/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( asset_type_exception ,
chain_type_exception ,
3010011 ,
"Invalid asset"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [8/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( block_lock_exception ,
block_validate_exception ,
3030004 ,
"Shard locks in block are incorrect or mal-formed"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [9/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( block_too_old_exception ,
block_validate_exception ,
3030006 ,
"Block is too old to push"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [10/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( block_tx_output_exception ,
block_validate_exception ,
3030002 ,
"Transaction outputs in block do not match transaction outputs from applying block"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [11/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( block_validate_exception ,
chain_exception ,
3030000 ,
"Block exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [12/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( cfa_inside_generated_tx ,
transaction_exception ,
3040010 ,
"Context free action is not allowed inside generated transaction"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [13/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( cfa_irrelevant_auth ,
transaction_exception ,
3040004 ,
"Context-free action should have no required authority"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [14/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( contract_query_exception ,
database_exception ,
3060004 ,
"Contract Query Exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [15/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( database_exception ,
chain_exception ,
3060000 ,
"Database exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [16/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( fixed_key_type_exception ,
chain_type_exception ,
3010013 ,
"Invalid fixed key"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [17/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( fork_database_exception ,
chain_exception ,
3020000 ,
"Fork database exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [18/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( guard_exception ,
database_exception ,
3060100 ,
"Guard Exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [19/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( ill_formed_deferred_transaction_generation_context ,
transaction_exception ,
3040016 ,
"Transaction includes an ill-formed deferred transaction generation context extension"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [20/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( inline_action_too_big_nonprivileged ,
action_validate_exception ,
3050012 ,
"Inline action exceeds maximum size limit for a non-privileged account"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [21/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( invalid_action_args_exception ,
action_validate_exception ,
3050002 ,
"Invalid Action Arguments"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [22/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( invalid_block_extension ,
block_validate_exception ,
3030012 ,
"Invalid block extension"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [23/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( invalid_block_header_extension ,
block_validate_exception ,
3030010 ,
"Invalid block header extension"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [24/40]

chain type exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( name_type_exception ,
chain_type_exception ,
3010001 ,
"Invalid name"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [25/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( overlapping_memory_error ,
wasm_exception ,
3070004 ,
"memcpy with overlapping memory"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [26/40]

key sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( private_key_type_exception ,
chain_type_exception ,
3010003 ,
"Invalid private key"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [27/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( resource_exhausted_exception ,
chain_exception ,
3080000 ,
"Resource exhausted exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [28/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( sysio_assert_code_exception ,
action_validate_exception ,
3050004 ,
"sysio_assert_code assertion failure"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [29/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( too_many_tx_at_once ,
transaction_exception ,
3040012 ,
"Pushing too many transactions at once"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [30/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( transaction_exception ,
chain_exception ,
3040000 ,
"Transaction exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [31/40]

key Invalid authority Invalid transaction Invalid block ID sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( transaction_id_type_exception ,
chain_type_exception ,
3010009 ,
"Invalid transaction ID"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [32/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( tx_duplicate ,
transaction_exception ,
3040008 ,
"Duplicate transaction"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [33/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( tx_exp_too_far_exception ,
transaction_exception ,
3040006 ,
"Transaction Expiration Too Far"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [34/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( tx_no_action ,
transaction_exception ,
3040002 ,
"Transaction should have at least one normal action"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [35/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( unactivated_key_type ,
chain_type_exception ,
3010015 ,
"Key type is not a currently activated type"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [36/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( unauthorized_ram_usage_increase ,
action_validate_exception ,
3050010 ,
"Action attempts to increase RAM usage of account without authorization"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [37/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( unknown_transaction_compression ,
transaction_exception ,
3040014 ,
"Unknown transaction compression"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [38/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( wasm_exception ,
chain_exception ,
3070000 ,
"WASM Exception"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [39/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( wasm_execution_error ,
wasm_exception ,
3070002 ,
"Runtime Error Processing WASM"  )

◆ FC_DECLARE_DERIVED_EXCEPTION() [40/40]

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future sysio::chain::FC_DECLARE_DERIVED_EXCEPTION ( wrong_signing_key ,
block_validate_exception ,
3030008 ,
"Block is not signed with expected key"  )

◆ FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE()

sysio::chain::FC_DECLARE_DERIVED_EXCEPTION_WITH_ERROR_CODE ( chain_exception ,
fc::exception ,
3000000 ,
"blockchain exception"  )

chain_exception |- chain_type_exception |- fork_database_exception |- block_validate_exception |- transaction_exception |- action_validate_exception |- database_exception |- wasm_exception |- resource_exhausted_exception |- misc_exception |- plugin_exception |- wallet_exception |- whitelist_blacklist_exception |- controller_emit_signal_exception |- abi_exception |- contract_exception |- producer_exception |- reversible_blocks_exception |- block_log_exception |- resource_limit_exception |- contract_api_exception

◆ FC_RETHROW_EXCEPTIONS() [1/2]

sysio::chain::FC_RETHROW_EXCEPTIONS ( error ,
"Failed to deserialize variant" ,
("variant", v)  )

◆ FC_RETHROW_EXCEPTIONS() [2/2]

sysio::chain::FC_RETHROW_EXCEPTIONS ( error ,
"Failed to serialize: ${type}" ,
("type", boost::core::demangle(typeid(o).name()))  )

◆ filter_data_by_marker()

template<typename DataRange , typename MarkerRange , typename Marker >
DataRange sysio::chain::filter_data_by_marker ( DataRange data,
MarkerRange markers,
const Marker & markerValue )

Takes two parallel ranges, a Data range containing data values, and a Marker range containing markers on the corresponding data values. Returns a new Data range containing only the values corresponding to markers which match markerValue

For example:

vector<char> data = {'A', 'B', 'C'};
vector<bool> markers = {true, false, true};
auto markedData = FilterDataByMarker(data, markers, true);
// markedData contains {'A', 'C'}

Definition at line 25 of file parallel_markers.hpp.

25 {
26 auto remove_mismatched_markers = boost::adaptors::filtered([&markerValue](const auto& tuple) {
27 return boost::get<0>(tuple) == markerValue;
28 });
29 auto ToData = boost::adaptors::transformed([](const auto& tuple) {
30 return boost::get<1>(tuple);
31 });
32
33 // Zip the ranges together, filter out data with markers that don't match, and return the data without the markers
34 auto range = boost::combine(markers, data) | remove_mismatched_markers | ToData;
35 return {range.begin(), range.end()};
36}
Here is the caller graph for this function:

◆ find_intrinsic() [1/2]

whitelisted_intrinsics_type::const_iterator sysio::chain::find_intrinsic ( const whitelisted_intrinsics_type & whitelisted_intrinsics,
uint64_t h,
std::string_view name )

Definition at line 30 of file whitelisted_intrinsics.cpp.

31 {
32 auto itr = whitelisted_intrinsics.lower_bound( h );
33 const auto end = whitelisted_intrinsics.end();
34
35 if( !find_intrinsic_helper( h, name, itr, end ) )
36 return end;
37
38 return itr;
39 }
bool find_intrinsic_helper(uint64_t h, std::string_view name, Iterator &itr, const Iterator &end)
Here is the call graph for this function:

◆ find_intrinsic() [2/2]

whitelisted_intrinsics_type::iterator sysio::chain::find_intrinsic ( whitelisted_intrinsics_type & whitelisted_intrinsics,
uint64_t h,
std::string_view name )

Definition at line 18 of file whitelisted_intrinsics.cpp.

19 {
20 auto itr = whitelisted_intrinsics.lower_bound( h );
21 const auto end = whitelisted_intrinsics.end();
22
23 if( !find_intrinsic_helper( h, name, itr, end ) )
24 return end;
25
26 return itr;
27 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ find_intrinsic_helper()

template<typename Iterator >
bool sysio::chain::find_intrinsic_helper ( uint64_t h,
std::string_view name,
Iterator & itr,
const Iterator & end )

Definition at line 7 of file whitelisted_intrinsics.cpp.

7 {
8 for( ; itr != end && itr->first == h; ++itr ) {
9 if( itr->second.compare( 0, itr->second.size(), name.data(), name.size() ) == 0 ) {
10 return true;
11 }
12 }
13
14 return false;
15 }
Here is the caller graph for this function:

◆ first_preferred()

bool sysio::chain::first_preferred ( const block_header_state & lhs,
const block_header_state & rhs )

Definition at line 58 of file fork_database.cpp.

Here is the caller graph for this function:

◆ generate_action_digest()

template<typename Hasher >
auto sysio::chain::generate_action_digest ( Hasher && hash,
const action & act,
const vector< char > & action_output )

Definition at line 99 of file action.hpp.

99 {
100 using hash_type = decltype(hash(nullptr, 0));
101 hash_type hashes[2];
102 const action_base* base = &act;
103 const auto action_base_size = fc::raw::pack_size(*base);
104 const auto action_input_size = fc::raw::pack_size(act.data);
105 const auto action_output_size = fc::raw::pack_size(action_output);
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));
109 {
110 buff.resize(action_base_size);
111 fc::datastream<char*> ds(buff.data(), action_base_size);
112 fc::raw::pack(ds, *base);
113 hashes[0] = hash(buff.data(), action_base_size);
114 }
115 {
116 buff.resize(rhs_size);
117 fc::datastream<char*> ds(buff.data(), rhs_size);
118 fc::raw::pack(ds, act.data);
119 fc::raw::pack(ds, action_output);
120 hashes[1] = hash(buff.data(), rhs_size);
121 }
122 auto hashes_size = fc::raw::pack_size(hashes[0]) + fc::raw::pack_size(hashes[1]);
123 buff.resize(hashes_size); // may cause reallocation but in practice will be unlikely
124 fc::datastream<char*> ds(buff.data(), hashes_size);
125 fc::raw::pack(ds, hashes[0]);
126 fc::raw::pack(ds, hashes[1]);
127 return hash(buff.data(), hashes_size);
128 }
void pack(Stream &s, const std::deque< T > &value)
Definition raw.hpp:531
size_t pack_size(const T &v)
Definition raw.hpp:671
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_canonical_left()

bool sysio::chain::is_canonical_left ( const digest_type & val)

Definition at line 26 of file merkle.cpp.

26 {
27 return (val._hash[0] & 0x0000000000000080ULL) == 0;
28}
uint64_t _hash[4]
Definition sha256.hpp:100

◆ is_canonical_right()

bool sysio::chain::is_canonical_right ( const digest_type & val)

Definition at line 30 of file merkle.cpp.

30 {
31 return (val._hash[0] & 0x0000000000000080ULL) != 0;
32}

◆ is_intrinsic_whitelisted()

bool sysio::chain::is_intrinsic_whitelisted ( const whitelisted_intrinsics_type & whitelisted_intrinsics,
std::string_view name )

Definition at line 41 of file whitelisted_intrinsics.cpp.

42 {
43 uint64_t h = static_cast<uint64_t>( std::hash<std::string_view>{}( name ) );
44 auto itr = whitelisted_intrinsics.lower_bound( h );
45 const auto end = whitelisted_intrinsics.end();
46
47 return find_intrinsic_helper( h, name, itr, end );
48 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_onblock()

bool sysio::chain::is_onblock ( const transaction_trace & tt)
inline

Deduce if transaction_trace is the trace of an onblock system transaction

Definition at line 71 of file trace.hpp.

71 {
72 if (tt.action_traces.empty())
73 return false;
74 const auto& act = tt.action_traces[0].act;
75 if (act.account != sysio::chain::config::system_account_name || act.name != "onblock"_n ||
76 act.authorization.size() != 1)
77 return false;
78 const auto& auth = act.authorization[0];
79 return auth.actor == sysio::chain::config::system_account_name &&
80 auth.permission == sysio::chain::config::active_name;
81 }
vector< action_trace > action_traces
Definition trace.hpp:59
Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_auth_checker()

template<typename PermissionToAuthorityFunc >
auto sysio::chain::make_auth_checker ( PermissionToAuthorityFunc && pta,
uint16_t recursion_depth_limit,
const flat_set< public_key_type > & provided_keys,
const flat_set< permission_level > & provided_permissions = flat_set<permission_level>(),
fc::microseconds provided_delay = fc::microseconds(0),
const std::function< void()> & _checktime = std::function<void()>() )

Definition at line 259 of file authority_checker.hpp.

266 {
267 auto noop_checktime = []() {};
268 const auto& checktime = ( static_cast<bool>(_checktime) ? _checktime : noop_checktime );
269 return authority_checker< PermissionToAuthorityFunc>( std::forward<PermissionToAuthorityFunc>(pta),
270 recursion_depth_limit,
271 provided_keys,
272 provided_permissions,
273 provided_delay,
274 checktime );
275 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_canonical_left()

digest_type sysio::chain::make_canonical_left ( const digest_type & val)

in order to keep proofs concise, before hashing we set the first bit of the previous hashes to 0 or 1 to indicate the side it is on

this relieves our proofs from having to indicate left vs right contactenation as the node values will imply it

Definition at line 14 of file merkle.cpp.

14 {
15 digest_type canonical_l = val;
16 canonical_l._hash[0] &= 0xFFFFFFFFFFFFFF7FULL;
17 return canonical_l;
18}
Here is the caller graph for this function:

◆ make_canonical_pair()

auto sysio::chain::make_canonical_pair ( const digest_type & l,
const digest_type & r )
inline

Definition at line 13 of file merkle.hpp.

13 {
14 return make_pair(make_canonical_left(l), make_canonical_right(r));
15 };
const mie::Vuint & r
Definition bn.cpp:28
digest_type make_canonical_right(const digest_type &val)
Definition merkle.cpp:20
digest_type make_canonical_left(const digest_type &val)
Definition merkle.cpp:14
int l
Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_canonical_right()

digest_type sysio::chain::make_canonical_right ( const digest_type & val)

Definition at line 20 of file merkle.cpp.

20 {
21 digest_type canonical_r = val;
22 canonical_r._hash[0] |= 0x0000000000000080ULL;
23 return canonical_r;
24}
Here is the caller graph for this function:

◆ merkle()

digest_type sysio::chain::merkle ( vector< digest_type > ids)

Calculates the merkle root of a set of digests, if ids is odd it will duplicate the last id.

Definition at line 35 of file merkle.cpp.

35 {
36 if( 0 == ids.size() ) { return digest_type(); }
37
38 while( ids.size() > 1 ) {
39 if( ids.size() % 2 )
40 ids.push_back(ids.back());
41
42 for (size_t i = 0; i < ids.size() / 2; i++) {
43 ids[i] = digest_type::hash(make_canonical_pair(ids[2 * i], ids[(2 * i) + 1]));
44 }
45
46 ids.resize(ids.size() / 2);
47 }
48
49 return ids.front();
50}
auto make_canonical_pair(const digest_type &l, const digest_type &r)
Definition merkle.hpp:13
Here is the call graph for this function:
Here is the caller graph for this function:

◆ noop_checktime()

void sysio::chain::noop_checktime ( )

Definition at line 466 of file authorization_manager.cpp.

466{}
Here is the caller graph for this function:

◆ operator!=() [1/5]

bool sysio::chain::operator!= ( const abi_def & lhs,
const abi_def & rhs )

Definition at line 266 of file test_common.hpp.

266 {
267 return !(lhs == rhs);
268 }

◆ operator!=() [2/5]

bool sysio::chain::operator!= ( const kv_database_config & lhs,
const kv_database_config & rhs )
inline

Definition at line 24 of file kv_config.hpp.

24 {
25 return !(lhs == rhs);
26 }

◆ operator!=() [3/5]

bool sysio::chain::operator!= ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 17 of file action.hpp.

17 {
18 return std::tie(lhs.actor, lhs.permission) != std::tie(rhs.actor, rhs.permission);
19 }
permission_name permission
Definition action.hpp:10

◆ operator!=() [4/5]

bool sysio::chain::operator!= ( const symbol & lhs,
const symbol & rhs )
inline

Definition at line 155 of file symbol.hpp.

156 {
157 return lhs.value() != rhs.value();
158 }
uint64_t value() const
Definition symbol.hpp:82
Here is the call graph for this function:

◆ operator!=() [5/5]

bool sysio::chain::operator!= ( const wasm_config & lhs,
const wasm_config & rhs )
inlineconstexpr

Definition at line 37 of file wasm_config.hpp.

37 {
38 return !(lhs == rhs);
39}

◆ operator<() [1/3]

bool sysio::chain::operator< ( const asset & a,
const asset & b )

Definition at line 59 of file asset.hpp.

60 {
61 SYS_ASSERT(a.get_symbol() == b.get_symbol(), asset_type_exception, "logical operation between two different asset is not allowed");
62 return std::tie(a.amount,a.get_symbol()) < std::tie(b.amount,b.get_symbol());
63 }
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1181
const symbol & get_symbol() const
Definition asset.hpp:34

◆ operator<() [2/3]

bool sysio::chain::operator< ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 21 of file action.hpp.

21 {
22 return std::tie(lhs.actor, lhs.permission) < std::tie(rhs.actor, rhs.permission);
23 }

◆ operator<() [3/3]

bool sysio::chain::operator< ( const symbol & lhs,
const symbol & rhs )
inline

Definition at line 159 of file symbol.hpp.

160 {
161 return lhs.value() < rhs.value();
162 }
Here is the call graph for this function:

◆ operator<<() [1/4]

template<typename DataStream >
DataStream & sysio::chain::operator<< ( DataStream & ds,
const shared_blob & b )

Definition at line 84 of file database_utils.hpp.

84 {
85 fc::raw::pack(ds, static_cast<const shared_string&>(b));
86 return ds;
87 }
Here is the call graph for this function:

◆ operator<<() [2/4]

std::ostream & sysio::chain::operator<< ( std::ostream & os,
const abi_def & abi )

Definition at line 270 of file test_common.hpp.

270 {
272 return os;
273 }
static string to_string(const variant &v, const yield_function_t &yield, const output_formatting format=output_formatting::stringify_large_ints_and_doubles)
Definition json.cpp:674
static constexpr time_point maximum()
Definition time.hpp:46
os_t os
Here is the call graph for this function:

◆ operator<<() [3/4]

std::ostream & sysio::chain::operator<< ( std::ostream & osm,
sysio::chain::db_read_mode m )

Definition at line 51 of file chain_plugin.cpp.

51 {
53 osm << "speculative";
54 } else if ( m == sysio::chain::db_read_mode::HEAD ) {
55 osm << "head";
56 } else if ( m == sysio::chain::db_read_mode::READ_ONLY ) { // deprecated
57 osm << "read-only";
59 osm << "irreversible";
60 }
61
62 return osm;
63}

◆ operator<<() [4/4]

std::ostream & sysio::chain::operator<< ( std::ostream & osm,
sysio::chain::validation_mode m )

Definition at line 92 of file chain_plugin.cpp.

92 {
94 osm << "full";
95 } else if ( m == sysio::chain::validation_mode::LIGHT ) {
96 osm << "light";
97 }
98
99 return osm;
100}

◆ operator<=() [1/2]

bool sysio::chain::operator<= ( const asset & a,
const asset & b )

Definition at line 64 of file asset.hpp.

64{ return (a == b) || (a < b); }

◆ operator<=() [2/2]

bool sysio::chain::operator<= ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 25 of file action.hpp.

25 {
26 return std::tie(lhs.actor, lhs.permission) <= std::tie(rhs.actor, rhs.permission);
27 }

◆ operator==() [1/6]

bool sysio::chain::operator== ( const abi_def & lhs,
const abi_def & rhs )

Definition at line 262 of file test_common.hpp.

262 {
263 return fc::raw::pack(lhs) == fc::raw::pack(rhs);
264 }
Here is the call graph for this function:

◆ operator==() [2/6]

bool sysio::chain::operator== ( const kv_database_config & lhs,
const kv_database_config & rhs )
inline

Definition at line 20 of file kv_config.hpp.

20 {
21 return std::tie(lhs.max_key_size, lhs.max_value_size, lhs.max_iterators)
22 == std::tie(rhs.max_key_size, rhs.max_value_size, rhs.max_iterators);
23 }
std::uint32_t max_value_size
the maximum size in bytes of a value
Definition kv_config.hpp:17
std::uint32_t max_key_size
the maximum size in bytes of a key
Definition kv_config.hpp:16
std::uint32_t max_iterators
the maximum number of iterators that a contract can have simultaneously.
Definition kv_config.hpp:18

◆ operator==() [3/6]

bool sysio::chain::operator== ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 13 of file action.hpp.

13 {
14 return std::tie(lhs.actor, lhs.permission) == std::tie(rhs.actor, rhs.permission);
15 }

◆ operator==() [4/6]

bool sysio::chain::operator== ( const producer_authority & pa,
const shared_producer_authority & pb )
inline

Definition at line 310 of file producer_schedule.hpp.

311 {
312 if(pa.producer_name != pb.producer_name) return false;
313 if(pa.authority.index() != pb.authority.index()) return false;
314
315 bool authority_matches = std::visit([&pb]( const auto& lhs ){
316 return std::visit( [&lhs](const auto& rhs ) {
317 if (lhs.threshold != rhs.threshold) return false;
318 return std::equal(lhs.keys.cbegin(), lhs.keys.cend(), rhs.keys.cbegin(), rhs.keys.cend());
319 }, pb.authority);
320 }, pa.authority);
321
322 if (!authority_matches) return false;
323 return true;
324 }
shared_block_signing_authority authority

◆ operator==() [5/6]

bool sysio::chain::operator== ( const symbol & lhs,
const symbol & rhs )
inline

Definition at line 151 of file symbol.hpp.

152 {
153 return lhs.value() == rhs.value();
154 }
Here is the call graph for this function:

◆ operator==() [6/6]

bool sysio::chain::operator== ( const wasm_config & lhs,
const wasm_config & rhs )
inlineconstexpr

Definition at line 24 of file wasm_config.hpp.

24 {
33 lhs.max_code_bytes == rhs.max_code_bytes &&
34 lhs.max_pages == rhs.max_pages &&
36}
std::uint32_t max_symbol_bytes
std::uint32_t max_linear_memory_init
std::uint32_t max_table_elements
std::uint32_t max_func_local_bytes
std::uint32_t max_section_elements
std::uint32_t max_nested_structures
std::uint32_t max_module_bytes
std::uint32_t max_mutable_global_bytes

◆ operator>() [1/2]

bool sysio::chain::operator> ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 29 of file action.hpp.

29 {
30 return std::tie(lhs.actor, lhs.permission) > std::tie(rhs.actor, rhs.permission);
31 }

◆ operator>() [2/2]

bool sysio::chain::operator> ( const symbol & lhs,
const symbol & rhs )
inline

Definition at line 163 of file symbol.hpp.

164 {
165 return lhs.value() > rhs.value();
166 }
Here is the call graph for this function:

◆ operator>=()

bool sysio::chain::operator>= ( const permission_level & lhs,
const permission_level & rhs )
inline

Definition at line 33 of file action.hpp.

33 {
34 return std::tie(lhs.actor, lhs.permission) >= std::tie(rhs.actor, rhs.permission);
35 }

◆ operator>>() [1/2]

template<typename DataStream >
DataStream & sysio::chain::operator>> ( DataStream & ds,
shared_blob & b )

Definition at line 90 of file database_utils.hpp.

90 {
91 fc::raw::unpack(ds, static_cast<shared_string &>(b));
92 return ds;
93 }
void unpack(Stream &s, std::deque< T > &value)
Definition raw.hpp:540
Here is the call graph for this function:

◆ operator>>() [2/2]

std::istream & sysio::chain::operator>> ( std::istream & in,
wasm_interface::vm_type & runtime )

Definition at line 114 of file wasm_interface.cpp.

114 {
115 std::string s;
116 in >> s;
117 if (s == "sys-vm")
118 runtime = sysio::chain::wasm_interface::vm_type::eos_vm;
119 else if (s == "sys-vm-jit")
120 runtime = sysio::chain::wasm_interface::vm_type::eos_vm_jit;
121 else if (s == "sys-vm-oc")
122 runtime = sysio::chain::wasm_interface::vm_type::eos_vm_oc;
123 else
124 in.setstate(std::ios_base::failbit);
125 return in;
126}

◆ overloaded()

template<class... Ts>
sysio::chain::overloaded ( Ts... ) -> overloaded< Ts... >

◆ pack_function()

template<typename T >
auto sysio::chain::pack_function ( )

Definition at line 34 of file abi_serializer.cpp.

34 {
35 return []( const fc::variant& var, fc::datastream<char*>& ds, bool is_array, bool is_optional, const abi_serializer::yield_function_t& yield ){
36 if( is_array )
37 fc::raw::pack( ds, var.as<vector<T>>() );
38 else if ( is_optional )
39 fc::raw::pack( ds, var.as<std::optional<T>>() );
40 else
41 fc::raw::pack( ds, var.as<T>());
42 };
43 }
stores null, int64, uint64, double, bool, string, std::vector<variant>, and variant_object's.
Definition variant.hpp:191
T as() const
Definition variant.hpp:327
#define T(meth, val, expected)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pack_unpack()

template<typename T >
auto sysio::chain::pack_unpack ( )

Definition at line 46 of file abi_serializer.cpp.

46 {
47 return std::make_pair<abi_serializer::unpack_function, abi_serializer::pack_function>(
48 []( fc::datastream<const char*>& stream, bool is_array, bool is_optional, const abi_serializer::yield_function_t& yield) {
49 if( is_array )
50 return variant_from_stream<vector<T>>(stream);
51 else if ( is_optional )
52 return variant_from_stream<std::optional<T>>(stream);
53 return variant_from_stream<T>(stream);
54 },
55 pack_function<T>()
56 );
57 }
Here is the call graph for this function:

◆ pack_unpack_deadline()

template<typename T >
auto sysio::chain::pack_unpack_deadline ( )

Definition at line 60 of file abi_serializer.cpp.

60 {
61 return std::make_pair<abi_serializer::unpack_function, abi_serializer::pack_function>(
62 []( fc::datastream<const char*>& stream, bool is_array, bool is_optional, const abi_serializer::yield_function_t& yield) {
63 if( is_array )
64 return variant_from_stream<vector<T>>(stream);
65 else if ( is_optional )
66 return variant_from_stream<std::optional<T>>(stream);
67 return variant_from_stream<T>(stream, yield);
68 },
69 pack_function<T>()
70 );
71 }
Here is the call graph for this function:

◆ remove_intrinsic_from_whitelist()

void sysio::chain::remove_intrinsic_from_whitelist ( whitelisted_intrinsics_type & whitelisted_intrinsics,
std::string_view name )

Definition at line 67 of file whitelisted_intrinsics.cpp.

68 {
69 uint64_t h = static_cast<uint64_t>( std::hash<std::string_view>{}( name ) );
70 auto itr = find_intrinsic( whitelisted_intrinsics, h, name );
71 SYS_ASSERT( itr != whitelisted_intrinsics.end(), database_exception,
72 "cannot remove intrinsic '${name}' since it does not exist in the whitelist",
73 ("name", std::string(name))
74 );
75
76 whitelisted_intrinsics.erase( itr );
77 }
Here is the call graph for this function:

◆ reset_intrinsic_whitelist()

void sysio::chain::reset_intrinsic_whitelist ( whitelisted_intrinsics_type & whitelisted_intrinsics,
const std::set< std::string > & s )

Definition at line 79 of file whitelisted_intrinsics.cpp.

81 {
82 whitelisted_intrinsics.clear();
83
84 for( const auto& name : s ) {
85 uint64_t h = static_cast<uint64_t>( std::hash<std::string_view>{}( name ) );
86 whitelisted_intrinsics.emplace( std::piecewise_construct,
87 std::forward_as_tuple( h ),
88 std::forward_as_tuple( name.data(), name.size(),
89 whitelisted_intrinsics.get_allocator() )
90 );
91 }
92 }
Here is the caller graph for this function:

◆ string_to_name()

name sysio::chain::string_to_name ( std::string_view str)
inlineconstexpr

Definition at line 84 of file name.hpp.

85 {
86 return name( string_to_uint64_t( str ) );
87 }
constexpr uint64_t string_to_uint64_t(std::string_view str)
Definition name.hpp:24
Here is the call graph for this function:

◆ string_to_uint64_t()

uint64_t sysio::chain::string_to_uint64_t ( std::string_view str)
inlineconstexpr

Definition at line 24 of file name.hpp.

24 {
25 uint64_t n = 0;
26 size_t i = 0;
27 for ( ; i < str.size() && i < 12; ++i) {
28 // NOTE: char_to_symbol() returns char type, and without this explicit
29 // expansion to uint64 type, the compilation fails at the point of usage
30 // of string_to_name(), where the usage requires constant (compile time) expression.
31 n |= (char_to_symbol(str[i]) & 0x1f) << (64 - 5 * (i + 1));
32 }
33
34 // The for-loop encoded up to 60 high bits into uint64 'name' variable,
35 // if (strlen(str) > 12) then encode str[12] into the low (remaining)
36 // 4 bits of 'name'
37 if (i < str.size() && i == 12)
38 n |= char_to_symbol(str[12]) & 0x0F;
39 return n;
40 }
constexpr uint64_t char_to_symbol(char c)
Definition name.hpp:16
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sysio_contract_abi()

abi_def sysio::chain::sysio_contract_abi ( const abi_def & sysio_system_abi)

Definition at line 20 of file sysio_contract_abi.cpp.

21{
22 abi_def eos_abi(sysio_system_abi);
23
24 if( eos_abi.version.size() == 0 ) {
25 eos_abi.version = "sysio::abi/1.0";
26 }
27
28 fc::move_append(eos_abi.types, common_type_defs());
29
30 // transaction
31 eos_abi.structs.emplace_back( struct_def {
32 "permission_level", "", {
33 {"actor", "account_name"},
34 {"permission", "permission_name"}
35 }
36 });
37
38 eos_abi.structs.emplace_back( struct_def {
39 "action", "", {
40 {"account", "account_name"},
41 {"name", "action_name"},
42 {"authorization", "permission_level[]"},
43 {"data", "bytes"}
44 }
45 });
46
47 eos_abi.structs.emplace_back( struct_def {
48 "extension", "", {
49 {"type", "uint16"},
50 {"data", "bytes"}
51 }
52 });
53
54 eos_abi.structs.emplace_back( struct_def {
55 "transaction_header", "", {
56 {"expiration", "time_point_sec"},
57 {"ref_block_num", "uint16"},
58 {"ref_block_prefix", "uint32"},
59 {"max_net_usage_words", "varuint32"},
60 {"max_cpu_usage_ms", "uint8"},
61 {"delay_sec", "varuint32"}
62 }
63 });
64
65 eos_abi.structs.emplace_back( struct_def {
66 "transaction", "transaction_header", {
67 {"context_free_actions", "action[]"},
68 {"actions", "action[]"},
69 {"transaction_extensions", "extension[]"}
70 }
71 });
72
73 // block_header
74
75 eos_abi.structs.emplace_back( struct_def {
76 "producer_key", "", {
77 {"producer_name", "account_name"},
78 {"block_signing_key", "public_key"}
79 }
80 });
81
82 eos_abi.structs.emplace_back( struct_def {
83 "producer_schedule", "", {
84 {"version", "uint32"},
85 {"producers", "producer_key[]"}
86 }
87 });
88
89 eos_abi.structs.emplace_back( struct_def {
90 "block_header", "", {
91 {"timestamp", "uint32"},
92 {"producer", "account_name"},
93 {"confirmed", "uint16"},
94 {"previous", "block_id_type"},
95 {"transaction_mroot", "checksum256"},
96 {"action_mroot", "checksum256"},
97 {"schedule_version", "uint32"},
98 {"new_producers", "producer_schedule?"},
99 {"header_extensions", "extension[]"}
100 }
101 });
102
103 // authority
104 eos_abi.structs.emplace_back( struct_def {
105 "key_weight", "", {
106 {"key", "public_key"},
107 {"weight", "weight_type"}
108 }
109 });
110
111 eos_abi.structs.emplace_back( struct_def {
112 "permission_level_weight", "", {
113 {"permission", "permission_level"},
114 {"weight", "weight_type"}
115 }
116 });
117
118 eos_abi.structs.emplace_back( struct_def {
119 "wait_weight", "", {
120 {"wait_sec", "uint32"},
121 {"weight", "weight_type"}
122 }
123 });
124
125 eos_abi.structs.emplace_back( struct_def {
126 "authority", "", {
127 {"threshold", "uint32"},
128 {"keys", "key_weight[]"},
129 {"accounts", "permission_level_weight[]"},
130 {"waits", "wait_weight[]"}
131 }
132 });
133
134 // TODO add any ricardian_clauses
135 //
136 // ACTION PAYLOADS
137
138 eos_abi.structs.emplace_back( struct_def {
139 "newaccount", "", {
140 {"creator", "account_name"},
141 {"name", "account_name"},
142 {"owner", "authority"},
143 {"active", "authority"},
144 }
145 });
146
147 eos_abi.structs.emplace_back( struct_def {
148 "setcode", "", {
149 {"account", "account_name"},
150 {"vmtype", "uint8"},
151 {"vmversion", "uint8"},
152 {"code", "bytes"}
153 }
154 });
155
156 eos_abi.structs.emplace_back( struct_def {
157 "setabi", "", {
158 {"account", "account_name"},
159 {"abi", "bytes"}
160 }
161 });
162
163 eos_abi.structs.emplace_back( struct_def {
164 "updateauth", "", {
165 {"account", "account_name"},
166 {"permission", "permission_name"},
167 {"parent", "permission_name"},
168 {"auth", "authority"}
169 }
170 });
171
172 eos_abi.structs.emplace_back( struct_def {
173 "deleteauth", "", {
174 {"account", "account_name"},
175 {"permission", "permission_name"},
176 }
177 });
178
179 eos_abi.structs.emplace_back( struct_def {
180 "linkauth", "", {
181 {"account", "account_name"},
182 {"code", "account_name"},
183 {"type", "action_name"},
184 {"requirement", "permission_name"},
185 }
186 });
187
188 eos_abi.structs.emplace_back( struct_def {
189 "unlinkauth", "", {
190 {"account", "account_name"},
191 {"code", "account_name"},
192 {"type", "action_name"},
193 }
194 });
195
196 eos_abi.structs.emplace_back( struct_def {
197 "canceldelay", "", {
198 {"canceling_auth", "permission_level"},
199 {"trx_id", "transaction_id_type"},
200 }
201 });
202
203 eos_abi.structs.emplace_back( struct_def {
204 "onerror", "", {
205 {"sender_id", "uint128"},
206 {"sent_trx", "bytes"}
207 }
208 });
209
210 eos_abi.structs.emplace_back( struct_def {
211 "onblock", "", {
212 {"header", "block_header"}
213 }
214 });
215
216 // TODO add ricardian contracts
217 eos_abi.actions.push_back( action_def{name("newaccount"), "newaccount",""} );
218 eos_abi.actions.push_back( action_def{name("setcode"), "setcode",""} );
219 eos_abi.actions.push_back( action_def{name("setabi"), "setabi",""} );
220 eos_abi.actions.push_back( action_def{name("updateauth"), "updateauth",""} );
221 eos_abi.actions.push_back( action_def{name("deleteauth"), "deleteauth",""} );
222 eos_abi.actions.push_back( action_def{name("linkauth"), "linkauth",""} );
223 eos_abi.actions.push_back( action_def{name("unlinkauth"), "unlinkauth",""} );
224 eos_abi.actions.push_back( action_def{name("canceldelay"), "canceldelay",""} );
225 eos_abi.actions.push_back( action_def{name("onerror"), "onerror",""} );
226 eos_abi.actions.push_back( action_def{name("onblock"), "onblock",""} );
227
228 return eos_abi;
229}
void move_append(Container &dest, Container &&src)
Definition utility.hpp:151
vector< type_def > common_type_defs()
Here is the call graph for this function:

◆ transaction_id_to_sender_id()

uint128_t sysio::chain::transaction_id_to_sender_id ( const transaction_id_type & tid)

Definition at line 28 of file sysio_contract.cpp.

28 {
29 fc::uint128 _id(tid._hash[3], tid._hash[2]);
30 return (unsigned __int128)_id;
31}
an implementation of 128 bit unsigned integer
Definition uint128.hpp:22
Here is the caller graph for this function:

◆ validate() [1/3]

void sysio::chain::validate ( boost::any & v,
const std::vector< std::string > & values,
sysio::chain::db_read_mode * ,
int  )

Definition at line 65 of file chain_plugin.cpp.

69{
70 using namespace boost::program_options;
71
72 // Make sure no previous assignment to 'v' was made.
73 validators::check_first_occurrence(v);
74
75 // Extract the first string from 'values'. If there is more than
76 // one string, it's an error, and exception will be thrown.
77 std::string const& s = validators::get_single_string(values);
78
79 if ( s == "speculative" ) {
81 } else if ( s == "head" ) {
83 } else if ( s == "read-only" ) {
85 } else if ( s == "irreversible" ) {
87 } else {
88 throw validation_error(validation_error::invalid_option_value);
89 }
90}

◆ validate() [2/3]

void sysio::chain::validate ( boost::any & v,
const std::vector< std::string > & values,
sysio::chain::validation_mode * ,
int  )

Definition at line 102 of file chain_plugin.cpp.

106{
107 using namespace boost::program_options;
108
109 // Make sure no previous assignment to 'v' was made.
110 validators::check_first_occurrence(v);
111
112 // Extract the first string from 'values'. If there is more than
113 // one string, it's an error, and exception will be thrown.
114 std::string const& s = validators::get_single_string(values);
115
116 if ( s == "full" ) {
118 } else if ( s == "light" ) {
120 } else {
121 throw validation_error(validation_error::invalid_option_value);
122 }
123}

◆ validate() [3/3]

template<typename Authority >
bool sysio::chain::validate ( const Authority & auth)
inline

Makes sure all keys are unique and sorted and all account permissions are unique and sorted and that authority can be satisfied

Definition at line 262 of file authority.hpp.

262 {
263 decltype(auth.threshold) total_weight = 0;
264
265 static_assert( std::is_same<decltype(auth.threshold), uint32_t>::value &&
266 std::is_same<weight_type, uint16_t>::value &&
267 std::is_same<typename decltype(auth.keys)::value_type, key_weight>::value &&
268 std::is_same<typename decltype(auth.accounts)::value_type, permission_level_weight>::value &&
269 std::is_same<typename decltype(auth.waits)::value_type, wait_weight>::value,
270 "unexpected type for threshold and/or weight in authority" );
271
272 if( ( auth.keys.size() + auth.accounts.size() + auth.waits.size() ) > (1 << 16) )
273 return false; // overflow protection (assumes weight_type is uint16_t and threshold is of type uint32_t)
274
275 if( auth.threshold == 0 )
276 return false;
277
278 {
279 const key_weight* prev = nullptr;
280 for( const auto& k : auth.keys ) {
281 if( prev && !(prev->key < k.key) ) return false; // TODO: require keys to be sorted in ascending order rather than descending (requires modifying many tests)
282 total_weight += k.weight;
283 prev = &k;
284 }
285 }
286 {
287 const permission_level_weight* prev = nullptr;
288 for( const auto& a : auth.accounts ) {
289 if( prev && ( prev->permission >= a.permission ) ) return false; // TODO: require permission_levels to be sorted in ascending order rather than descending (requires modifying many tests)
290 total_weight += a.weight;
291 prev = &a;
292 }
293 }
294 {
295 const wait_weight* prev = nullptr;
296 if( auth.waits.size() > 0 && auth.waits.front().wait_sec == 0 )
297 return false;
298 for( const auto& w : auth.waits ) {
299 if( prev && ( prev->wait_sec >= w.wait_sec ) ) return false;
300 total_weight += w.weight;
301 prev = &w;
302 }
303 }
304
305 return total_weight >= auth.threshold;
306}
#define value
Definition pkcs11.h:157
public_key_type key
Definition authority.hpp:96
Here is the caller graph for this function:

◆ validate_authority_precondition()

void sysio::chain::validate_authority_precondition ( const apply_context & context,
const authority & auth )

Definition at line 33 of file sysio_contract.cpp.

33 {
34 for(const auto& a : auth.accounts) {
35 auto* acct = context.db.find<account_object, by_name>(a.permission.actor);
36 SYS_ASSERT( acct != nullptr, action_validate_exception,
37 "account '${account}' does not exist",
38 ("account", a.permission.actor)
39 );
40
41 if( a.permission.permission == config::owner_name || a.permission.permission == config::active_name )
42 continue; // account was already checked to exist, so its owner and active permissions should exist
43
44 if( a.permission.permission == config::sysio_code_name ) // virtual sysio.code permission does not really exist but is allowed
45 continue;
46
47 try {
48 context.control.get_authorization_manager().get_permission({a.permission.actor, a.permission.permission});
49 } catch( const permission_query_exception& ) {
50 SYS_THROW( action_validate_exception,
51 "permission '${perm}' does not exist",
52 ("perm", a.permission)
53 );
54 }
55 }
56
57 if( context.trx_context.enforce_whiteblacklist && context.control.is_producing_block() ) {
58 for( const auto& p : auth.keys ) {
59 context.control.check_key_list( p.key );
60 }
61 }
62}
#define SYS_THROW(exc_type, FORMAT,...)
vector< permission_level_weight > accounts
vector< key_weight > keys
Here is the caller graph for this function:

◆ variant_from_stream() [1/2]

template<typename T >
fc::variant sysio::chain::variant_from_stream ( fc::datastream< const char * > & stream)
inline

Definition at line 18 of file abi_serializer.cpp.

18 {
19 T temp;
20 fc::raw::unpack( stream, temp );
21 return fc::variant(temp);
22 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ variant_from_stream() [2/2]

template<typename T >
fc::variant sysio::chain::variant_from_stream ( fc::datastream< const char * > & stream,
const abi_serializer::yield_function_t & yield )
inline

Definition at line 25 of file abi_serializer.cpp.

25 {
26 fc::yield_function_t y = [&yield](){ yield(0); }; // create yield function matching fc::variant requirements, 0 for recursive depth
27 T temp;
28 fc::raw::unpack( stream, temp );
29 y();
30 return fc::variant( temp, y );
31 }
uint64_t y
Definition sha3.cpp:34
Here is the call graph for this function:

◆ wast_to_wasm()

std::vector< uint8_t > sysio::chain::wast_to_wasm ( const std::string & wast)

Definition at line 15 of file wast_to_wasm.cpp.

16 {
17 std::stringstream ss;
18
19 try {
20 IR::Module module;
21 std::vector<WAST::Error> parse_errors;
22 WAST::parseModule(wast.c_str(),wast.size(),module,parse_errors);
23 if(parse_errors.size())
24 {
25 // Print any parse errors;
26 ss << "Error parsing WebAssembly text file:" << std::endl;
27 for(auto& error : parse_errors)
28 {
29 ss << ":" << error.locus.describe() << ": " << error.message.c_str() << std::endl;
30 ss << error.locus.sourceLine << std::endl;
31 ss << std::setw(error.locus.column(8)) << "^" << std::endl;
32 }
33 SYS_ASSERT( false, wasm_exception, "error parsing wast: ${msg}", ("msg",ss.str()) );
34 }
35
36 for(auto sectionIt = module.userSections.begin();sectionIt != module.userSections.end();++sectionIt)
37 {
38 if(sectionIt->name == "name") { module.userSections.erase(sectionIt); break; }
39 }
40
41 try
42 {
43 // Serialize the WebAssembly module.
45 WASM::serialize(stream,module);
46 return stream.getBytes();
47 }
48 catch(const Serialization::FatalSerializationException& exception)
49 {
50 ss << "Error serializing WebAssembly binary file:" << std::endl;
51 ss << exception.message << std::endl;
52 SYS_ASSERT( false, wasm_exception, "error converting to wasm: ${msg}", ("msg",ss.get()) );
53 } catch(const IR::ValidationException& e) {
54 ss << "Error validating WebAssembly binary file:" << std::endl;
55 ss << e.message << std::endl;
56 SYS_ASSERT( false, wasm_exception, "error converting to wasm: ${msg}", ("msg",ss.get()) );
57 }
58
59 } FC_CAPTURE_AND_RETHROW( (wast) ) }
#define FC_CAPTURE_AND_RETHROW(...)
void serialize(Stream &stream, U8 &i)
WAST_API bool parseModule(const char *string, Uptr stringLength, IR::Module &outModule, std::vector< Error > &outErrors)
static const Segment ss(Segment::ss)
std::string message
Definition Validate.h:15
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ action_validate_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value sysio::chain::action_validate_exception

Definition at line 284 of file exceptions.hpp.

◆ block_validate_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension sysio::chain::block_validate_exception

Definition at line 212 of file exceptions.hpp.

◆ builtin_protocol_feature_codenames

const std::unordered_map< builtin_protocol_feature_t, builtin_protocol_feature_spec, enum_hash< builtin_protocol_feature_t > > sysio::chain::builtin_protocol_feature_codenames

Definition at line 14 of file protocol_feature_manager.cpp.

◆ chain_exception

sysio::chain::chain_exception

Definition at line 165 of file exceptions.hpp.

◆ chain_type_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol sysio::chain::chain_type_exception

Definition at line 170 of file exceptions.hpp.

◆ database_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception sysio::chain::database_exception

Definition at line 314 of file exceptions.hpp.

◆ fork_database_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type sysio::chain::fork_database_exception

Definition at line 205 of file exceptions.hpp.

◆ genesis_intrinsics

const std::vector< const char * > sysio::chain::genesis_intrinsics

Definition at line 5 of file genesis_intrinsics.cpp.

5 {
6 "__ashrti3",
7 "__lshlti3",
8 "__lshrti3",
9 "__ashlti3",
10 "__divti3",
11 "__udivti3",
12 "__modti3",
13 "__umodti3",
14 "__multi3",
15 "__addtf3",
16 "__subtf3",
17 "__multf3",
18 "__divtf3",
19 "__eqtf2",
20 "__netf2",
21 "__getf2",
22 "__gttf2",
23 "__lttf2",
24 "__letf2",
25 "__cmptf2",
26 "__unordtf2",
27 "__negtf2",
28 "__floatsitf",
29 "__floatunsitf",
30 "__floatditf",
31 "__floatunditf",
32 "__floattidf",
33 "__floatuntidf",
34 "__floatsidf",
35 "__extendsftf2",
36 "__extenddftf2",
37 "__fixtfti",
38 "__fixtfdi",
39 "__fixtfsi",
40 "__fixunstfti",
41 "__fixunstfdi",
42 "__fixunstfsi",
43 "__fixsfti",
44 "__fixdfti",
45 "__fixunssfti",
46 "__fixunsdfti",
47 "__trunctfdf2",
48 "__trunctfsf2",
49 "is_feature_active",
50 "activate_feature",
51 "get_resource_limits",
52 "set_resource_limits",
53 "set_proposed_producers",
54 "get_blockchain_parameters_packed",
55 "set_blockchain_parameters_packed",
56 "is_privileged",
57 "set_privileged",
58 "get_active_producers",
59 "db_idx64_store",
60 "db_idx64_remove",
61 "db_idx64_update",
62 "db_idx64_find_primary",
63 "db_idx64_find_secondary",
64 "db_idx64_lowerbound",
65 "db_idx64_upperbound",
66 "db_idx64_end",
67 "db_idx64_next",
68 "db_idx64_previous",
69 "db_idx128_store",
70 "db_idx128_remove",
71 "db_idx128_update",
72 "db_idx128_find_primary",
73 "db_idx128_find_secondary",
74 "db_idx128_lowerbound",
75 "db_idx128_upperbound",
76 "db_idx128_end",
77 "db_idx128_next",
78 "db_idx128_previous",
79 "db_idx256_store",
80 "db_idx256_remove",
81 "db_idx256_update",
82 "db_idx256_find_primary",
83 "db_idx256_find_secondary",
84 "db_idx256_lowerbound",
85 "db_idx256_upperbound",
86 "db_idx256_end",
87 "db_idx256_next",
88 "db_idx256_previous",
89 "db_idx_double_store",
90 "db_idx_double_remove",
91 "db_idx_double_update",
92 "db_idx_double_find_primary",
93 "db_idx_double_find_secondary",
94 "db_idx_double_lowerbound",
95 "db_idx_double_upperbound",
96 "db_idx_double_end",
97 "db_idx_double_next",
98 "db_idx_double_previous",
99 "db_idx_long_double_store",
100 "db_idx_long_double_remove",
101 "db_idx_long_double_update",
102 "db_idx_long_double_find_primary",
103 "db_idx_long_double_find_secondary",
104 "db_idx_long_double_lowerbound",
105 "db_idx_long_double_upperbound",
106 "db_idx_long_double_end",
107 "db_idx_long_double_next",
108 "db_idx_long_double_previous",
109 "db_store_i64",
110 "db_update_i64",
111 "db_remove_i64",
112 "db_get_i64",
113 "db_next_i64",
114 "db_previous_i64",
115 "db_find_i64",
116 "db_lowerbound_i64",
117 "db_upperbound_i64",
118 "db_end_i64",
119 "assert_recover_key",
120 "recover_key",
121 "assert_sha256",
122 "assert_sha1",
123 "assert_sha512",
124 "assert_ripemd160",
125 "sha1",
126 "sha256",
127 "sha512",
128 "ripemd160",
129 "check_transaction_authorization",
130 "check_permission_authorization",
131 "get_permission_last_used",
132 "get_account_creation_time",
133 "current_time",
134 "publication_time",
135 "abort",
136 "sysio_assert",
137 "sysio_assert_message",
138 "sysio_assert_code",
139 "sysio_exit",
140 "read_action_data",
141 "action_data_size",
142 "current_receiver",
143 "require_recipient",
144 "require_auth",
145 "require_auth2",
146 "has_auth",
147 "is_account",
148 "prints",
149 "prints_l",
150 "printi",
151 "printui",
152 "printi128",
153 "printui128",
154 "printsf",
155 "printdf",
156 "printqf",
157 "printn",
158 "printhex",
159 "read_transaction",
160 "transaction_size",
161 "expiration",
162 "tapos_block_prefix",
163 "tapos_block_num",
164 "get_action",
165 "send_inline",
166 "send_context_free_inline",
167 "send_deferred",
168 "cancel_deferred",
169 "get_context_free_data",
170 "memcpy",
171 "memmove",
172 "memcmp",
173 "memset"
174};

◆ guard_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version sysio::chain::guard_exception

Definition at line 328 of file exceptions.hpp.

◆ resource_exhausted_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM binaryen exception sysio::chain::resource_exhausted_exception

Definition at line 348 of file exceptions.hpp.

◆ sysio_abi_bin

unsigned char sysio::chain::sysio_abi_bin

Definition at line 9 of file sysio_contract_abi_bin.cpp.

9 {
10 0x0e, 0x65, 0x6f, 0x73, 0x69, 0x6f, 0x3a, 0x3a, 0x61, 0x62, 0x69, 0x2f,
11 0x31, 0x2e, 0x30, 0x07, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
12 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x0f, 0x70,
13 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61,
14 0x6d, 0x65, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x0b, 0x61, 0x63, 0x74, 0x69,
15 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x6e, 0x61, 0x6d, 0x65,
16 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04,
17 0x6e, 0x61, 0x6d, 0x65, 0x13, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
18 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65,
19 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x32, 0x35, 0x36,
20 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79,
21 0x70, 0x65, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x32,
22 0x35, 0x36, 0x0b, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x74, 0x79,
23 0x70, 0x65, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x31, 0x36, 0x16, 0x10, 0x70,
24 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65,
25 0x76, 0x65, 0x6c, 0x00, 0x02, 0x05, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x0c,
26 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
27 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0f,
28 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
29 0x61, 0x6d, 0x65, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x04,
30 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63,
31 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x6e, 0x61,
32 0x6d, 0x65, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61,
33 0x6d, 0x65, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
34 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
35 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5b, 0x5d, 0x04,
36 0x64, 0x61, 0x74, 0x61, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x09, 0x65,
37 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x02, 0x04, 0x74,
38 0x79, 0x70, 0x65, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x31, 0x36, 0x04, 0x64,
39 0x61, 0x74, 0x61, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x74, 0x72,
40 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65,
41 0x61, 0x64, 0x65, 0x72, 0x00, 0x06, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72,
42 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70,
43 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x0d, 0x72, 0x65, 0x66,
44 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x06, 0x75,
45 0x69, 0x6e, 0x74, 0x31, 0x36, 0x10, 0x72, 0x65, 0x66, 0x5f, 0x62, 0x6c,
46 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x06, 0x75,
47 0x69, 0x6e, 0x74, 0x33, 0x32, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x65,
48 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x64,
49 0x73, 0x09, 0x76, 0x61, 0x72, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x10,
50 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67,
51 0x65, 0x5f, 0x6d, 0x73, 0x05, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x09, 0x64,
52 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x09, 0x76, 0x61, 0x72,
53 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73,
54 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73,
55 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
56 0x72, 0x03, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x66,
57 0x72, 0x65, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x08,
58 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5b, 0x5d, 0x07, 0x61, 0x63, 0x74,
59 0x69, 0x6f, 0x6e, 0x73, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5b,
60 0x5d, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
61 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
62 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5b, 0x5d,
63 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6b, 0x65,
64 0x79, 0x00, 0x02, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72,
65 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
66 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
67 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79,
68 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x11,
69 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68,
70 0x65, 0x64, 0x75, 0x6c, 0x65, 0x00, 0x02, 0x07, 0x76, 0x65, 0x72, 0x73,
71 0x69, 0x6f, 0x6e, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x09, 0x70,
72 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x73, 0x0e, 0x70, 0x72, 0x6f,
73 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5b, 0x5d, 0x0c,
74 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
75 0x00, 0x09, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
76 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x08, 0x70, 0x72, 0x6f, 0x64,
77 0x75, 0x63, 0x65, 0x72, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
78 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72,
79 0x6d, 0x65, 0x64, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x31, 0x36, 0x08, 0x70,
80 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x0d, 0x62, 0x6c, 0x6f, 0x63,
81 0x6b, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x11, 0x74, 0x72,
82 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x72,
83 0x6f, 0x6f, 0x74, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d,
84 0x32, 0x35, 0x36, 0x0c, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d,
85 0x72, 0x6f, 0x6f, 0x74, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75,
86 0x6d, 0x32, 0x35, 0x36, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
87 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x06, 0x75, 0x69,
88 0x6e, 0x74, 0x33, 0x32, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f,
89 0x64, 0x75, 0x63, 0x65, 0x72, 0x73, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75,
90 0x63, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
91 0x3f, 0x11, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74,
92 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0b, 0x65, 0x78, 0x74, 0x65,
93 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5b, 0x5d, 0x0a, 0x6b, 0x65, 0x79, 0x5f,
94 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x02, 0x03, 0x6b, 0x65, 0x79,
95 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x06,
96 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x0b, 0x77, 0x65, 0x69, 0x67, 0x68,
97 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x17, 0x70, 0x65, 0x72, 0x6d, 0x69,
98 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f,
99 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x02, 0x0a, 0x70, 0x65, 0x72,
100 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x70, 0x65, 0x72, 0x6d,
101 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c,
102 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x0b, 0x77, 0x65, 0x69, 0x67,
103 0x68, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x0b, 0x77, 0x61, 0x69, 0x74,
104 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x02, 0x08, 0x77, 0x61,
105 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33,
106 0x32, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x0b, 0x77, 0x65, 0x69,
107 0x67, 0x68, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x09, 0x61, 0x75, 0x74,
108 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x00, 0x04, 0x09, 0x74, 0x68, 0x72,
109 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x06, 0x75, 0x69, 0x6e, 0x74, 0x33,
110 0x32, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x0c, 0x6b, 0x65, 0x79, 0x5f, 0x77,
111 0x65, 0x69, 0x67, 0x68, 0x74, 0x5b, 0x5d, 0x08, 0x61, 0x63, 0x63, 0x6f,
112 0x75, 0x6e, 0x74, 0x73, 0x19, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
113 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x77, 0x65,
114 0x69, 0x67, 0x68, 0x74, 0x5b, 0x5d, 0x05, 0x77, 0x61, 0x69, 0x74, 0x73,
115 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74,
116 0x5b, 0x5d, 0x0a, 0x6e, 0x65, 0x77, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
117 0x74, 0x00, 0x04, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x0c,
118 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
119 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
120 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
121 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x06, 0x61,
122 0x63, 0x74, 0x69, 0x76, 0x65, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
123 0x69, 0x74, 0x79, 0x07, 0x73, 0x65, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x00,
124 0x04, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63,
125 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x06, 0x76,
126 0x6d, 0x74, 0x79, 0x70, 0x65, 0x05, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x09,
127 0x76, 0x6d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x05, 0x75, 0x69,
128 0x6e, 0x74, 0x38, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x05, 0x62, 0x79, 0x74,
129 0x65, 0x73, 0x06, 0x73, 0x65, 0x74, 0x61, 0x62, 0x69, 0x00, 0x02, 0x07,
130 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63, 0x6f,
131 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x03, 0x61, 0x62, 0x69,
132 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
133 0x65, 0x61, 0x75, 0x74, 0x68, 0x00, 0x04, 0x07, 0x61, 0x63, 0x63, 0x6f,
134 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
135 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
136 0x69, 0x6f, 0x6e, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
137 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x06, 0x70, 0x61, 0x72, 0x65,
138 0x6e, 0x74, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
139 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x61, 0x75, 0x74, 0x68, 0x09,
140 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x64, 0x65,
141 0x6c, 0x65, 0x74, 0x65, 0x61, 0x75, 0x74, 0x68, 0x00, 0x02, 0x07, 0x61,
142 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75,
143 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x70, 0x65, 0x72, 0x6d,
144 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69,
145 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x08, 0x6c,
146 0x69, 0x6e, 0x6b, 0x61, 0x75, 0x74, 0x68, 0x00, 0x04, 0x07, 0x61, 0x63,
147 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
148 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x0c,
149 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
150 0x04, 0x74, 0x79, 0x70, 0x65, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
151 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,
152 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73,
153 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x75, 0x6e,
154 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x75, 0x74, 0x68, 0x00, 0x03, 0x07, 0x61,
155 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75,
156 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x04, 0x63, 0x6f, 0x64, 0x65,
157 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
158 0x65, 0x04, 0x74, 0x79, 0x70, 0x65, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f,
159 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65,
160 0x6c, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x00, 0x02, 0x0e, 0x63, 0x61, 0x6e,
161 0x63, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x10,
162 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
163 0x65, 0x76, 0x65, 0x6c, 0x06, 0x74, 0x72, 0x78, 0x5f, 0x69, 0x64, 0x13,
164 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
165 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x07, 0x6f, 0x6e, 0x65, 0x72,
166 0x72, 0x6f, 0x72, 0x00, 0x02, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72,
167 0x5f, 0x69, 0x64, 0x07, 0x75, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x08,
168 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x78, 0x05, 0x62, 0x79, 0x74,
169 0x65, 0x73, 0x07, 0x6f, 0x6e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x00, 0x01,
170 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0c, 0x62, 0x6c, 0x6f, 0x63,
171 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x0a, 0x00, 0x40, 0x9e,
172 0x9a, 0x22, 0x64, 0xb8, 0x9a, 0x0a, 0x6e, 0x65, 0x77, 0x61, 0x63, 0x63,
173 0x6f, 0x75, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x40, 0x25, 0x8a, 0xb2,
174 0xc2, 0x07, 0x73, 0x65, 0x74, 0x63, 0x6f, 0x64, 0x65, 0x00, 0x00, 0x00,
175 0x00, 0x00, 0xb8, 0x63, 0xb2, 0xc2, 0x06, 0x73, 0x65, 0x74, 0x61, 0x62,
176 0x69, 0x00, 0x00, 0x40, 0xcb, 0xda, 0xa8, 0x6c, 0x52, 0xd5, 0x0a, 0x75,
177 0x70, 0x64, 0x61, 0x74, 0x65, 0x61, 0x75, 0x74, 0x68, 0x00, 0x00, 0x40,
178 0xcb, 0xda, 0xa8, 0xac, 0xa2, 0x4a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74,
179 0x65, 0x61, 0x75, 0x74, 0x68, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x6b, 0x03,
180 0xa7, 0x8b, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x75, 0x74, 0x68, 0x00,
181 0x00, 0x40, 0xcb, 0xda, 0xc0, 0xe9, 0xe2, 0xd4, 0x0a, 0x75, 0x6e, 0x6c,
182 0x69, 0x6e, 0x6b, 0x61, 0x75, 0x74, 0x68, 0x00, 0x00, 0xbc, 0x89, 0x2a,
183 0x45, 0x85, 0xa6, 0x41, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x64,
184 0x65, 0x6c, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd2, 0x7b, 0xd5,
185 0xa4, 0x07, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x00, 0x00, 0x00,
186 0x00, 0x00, 0x22, 0x1a, 0xcf, 0xa4, 0x07, 0x6f, 0x6e, 0x62, 0x6c, 0x6f,
187 0x63, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
188};

◆ transaction_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed sysio::chain::transaction_exception

Definition at line 243 of file exceptions.hpp.

◆ wasm_exception

key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels Error in WASM page memory Serialization Error Processing WASM sysio::chain::wasm_exception

Definition at line 333 of file exceptions.hpp.