OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
cbdc Namespace Reference

Namespaces

namespace  address
 
namespace  archiver
 
namespace  atomizer
 
namespace  config
 
namespace  coordinator
 
namespace  hashing
 
namespace  locking_shard
 
namespace  logging
 
namespace  network
 
namespace  parsec
 
namespace  raft
 
namespace  rpc
 
namespace  sentinel
 
namespace  sentinel_2pc
 
namespace  shard
 
namespace  transaction
 
namespace  watchtower
 

Data Structures

class  atomizer_client
 Client for interacting with the atomizer architecture. More...
 
class  blocking_queue_internal
 Thread-safe producer-consumer FIFO queue supporting multiple concurrent producers and consumers. More...
 
class  buffer
 Buffer to store and retrieve byte data. More...
 
class  buffer_serializer
 Serializer implementation for buffer. More...
 
class  cache_set
 Thread-safe set with a maximum size. More...
 
class  client
 External client for sending new transactions to the system. More...
 
class  istream_serializer
 Implementation of serializer for reading from a std::istream. More...
 
class  nuraft_serializer
 Implements serializer for nuraft::buffer. More...
 
class  ostream_serializer
 Implementation of serializer for writing to a std::ostream. More...
 
struct  overloaded
 Variant handler template. More...
 
class  random_source
 Generates pseudo-random numbers from a given entropy source. More...
 
class  rlp_value
 This class contains a value that can be serialized into, or was deserialized from, a Recursive Length Prefix (RLP) encoded representation. More...
 
class  serializer
 Interface for serializing objects into and out of raw bytes representations. More...
 
class  size_serializer
 Utility class for determining the size of a buffer needed to serialize a sequence of objects. More...
 
class  stream_serializer
 Implementation of serializer for std::ios. More...
 
class  thread_pool
 
class  twophase_client
 Client for interacting with the 2PC architecture. More...
 

Typedefs

template<typename T >
using blocking_queue = blocking_queue_internal<T, std::queue<T>>
 
template<typename T , typename C = std::less<T>>
using blocking_priority_queue
 
using hash_t = std::array<unsigned char, cbdc::hash_size>
 SHA256 hash container.
 
using privkey_t = std::array<unsigned char, pubkey_len>
 A private key of a public/private keypair.
 
using pubkey_t = std::array<unsigned char, pubkey_len>
 A public key of a public/private keypair.
 
using witness_t = std::vector<std::byte>
 A witness commitment.
 
using signature_t = std::array<unsigned char, sig_len>
 A signature.
 

Enumerations

enum class  rlp_value_type { array , buffer }
 Possible types for an RLP value. More...
 

Functions

auto operator<< (serializer &ser, const parsec::agent::rpc::request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::rpc::request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_account &acc) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_account &acc) -> serializer &
 
auto operator<< (serializer &ser, const evmc::address &addr) -> serializer &
 
auto operator>> (serializer &deser, evmc::address &addr) -> serializer &
 
auto operator<< (serializer &ser, const evmc::bytes32 &b) -> serializer &
 
auto operator>> (serializer &deser, evmc::bytes32 &b) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_sig &s) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_sig &s) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_access_tuple &at) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_access_tuple &at) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_tx &tx) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_tx &tx) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_dryrun_tx &tx) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_dryrun_tx &tx) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_log &l) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_log &l) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_tx_receipt &r) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_tx_receipt &r) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::code_key &k) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::code_key &k) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::storage_key &k) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::storage_key &k) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_pretend_block &b) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_pretend_block &b) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_log_query &lq) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_log_query &lq) -> serializer &
 
auto operator>> (serializer &deser, parsec::agent::runner::evm_log_index &idx) -> serializer &
 
auto operator<< (serializer &ser, const parsec::agent::runner::evm_log_index &idx) -> serializer &
 
auto keccak_data (const void *data, size_t len) -> hash_t
 Calculates the Keccak256 hash of the specified data.
 
template<typename T >
auto make_rlp_value (const T &obj, bool trim_leading_zeroes=false) -> rlp_value
 Turns an existing value into an rlp_value by first serializing it as a cbdc::buffer, and then turning that into an rlp_value.
 
template<typename... Args>
auto make_rlp_array (const Args &... values) -> rlp_value
 Turns multiple rlp_value objects into an rlp_value of type array.
 
void serialize_rlp_length (serializer &ser, size_t len, unsigned char offset)
 Serializes the passed len from the given offset as RLP compatible size representation as documented in https://eth.wiki/fundamentals/rlp.
 
auto serialize_size (size_t size) -> std::vector< std::byte >
 Creates a binary representation for sizes that exceed the single-byte presentation.
 
auto rlp_encode_access_list (const parsec::agent::runner::evm_access_list &access_list) -> rlp_value
 RLP encodes an access list.
 
auto rlp_decode_access_list (const rlp_value &rlp) -> std::optional< parsec::agent::runner::evm_access_list >
 Decodes an access list from and rlp_value of type rlp_value_type::array.
 
auto deserialize_size (const cbdc::buffer &buf) -> size_t
 Decodes a binary representation for sizes that exceed the single-byte presentation into size_t.
 
auto operator<< (serializer &ser, const rlp_value &v) -> serializer &
 
auto operator>> (serializer &ser, cbdc::rlp_value &v) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::try_lock_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::try_lock_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::commit_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::commit_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::prepare_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::prepare_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::rollback_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::rollback_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::finish_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::finish_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::get_tickets_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::get_tickets_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::shard_error &err) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::shard_error &err) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::wounded_details &det) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::wounded_details &det) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::replicated_prepare_request &req) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::replicated_prepare_request &req) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::rpc::replicated_get_tickets_request &) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::rpc::replicated_get_tickets_request &) -> serializer &
 
auto operator<< (serializer &ser, const parsec::runtime_locking_shard::replicated_shard_interface::ticket_type &t) -> serializer &
 
auto operator>> (serializer &deser, parsec::runtime_locking_shard::replicated_shard_interface::ticket_type &t) -> serializer &
 
auto operator<< (serializer &packet, const cbdc::atomizer::block &blk) -> serializer &
 
auto operator>> (serializer &packet, cbdc::atomizer::block &blk) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::state_machine::snapshot &snp) -> serializer &
 
auto operator>> (serializer &deser, atomizer::state_machine::snapshot &snp) -> serializer &
 
auto operator<< (serializer &packet, const cbdc::atomizer::tx_notify_request &msg) -> serializer &
 
auto operator>> (serializer &packet, cbdc::atomizer::tx_notify_request &msg) -> serializer &
 
auto operator<< (serializer &packet, const cbdc::atomizer::aggregate_tx_notification &msg) -> serializer &
 
auto operator>> (serializer &packet, cbdc::atomizer::aggregate_tx_notification &msg) -> serializer &
 
auto operator<< (serializer &packet, const cbdc::atomizer::aggregate_tx_notify_request &msg) -> serializer &
 
auto operator>> (serializer &packet, cbdc::atomizer::aggregate_tx_notify_request &msg) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::prune_request &r) -> serializer &
 
auto operator>> (serializer &deser, atomizer::prune_request &r) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::make_block_request &) -> serializer &
 
auto operator>> (serializer &deser, atomizer::make_block_request &) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::get_block_request &r) -> serializer &
 
auto operator>> (serializer &deser, atomizer::get_block_request &r) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::make_block_response &r) -> serializer &
 
auto operator>> (serializer &deser, atomizer::make_block_response &r) -> serializer &
 
auto operator<< (serializer &ser, const atomizer::get_block_response &r) -> serializer &
 
auto operator>> (serializer &deser, atomizer::get_block_response &r) -> serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::best_block_height_response &bbh_res) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::best_block_height_response &bbh_res) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::request &req) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::response &res) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::status_update_request &su_req) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::status_update_request &su_req) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::status_update_state &state) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::status_update_state &state) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::status_request_check_success &chs) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::status_request_check_success &chs) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::tx_error_inputs_dne &err) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::tx_error_inputs_dne &err) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::tx_error_inputs_spent &err) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::tx_error_inputs_spent &err) -> cbdc::serializer &
 
auto operator<< (cbdc::serializer &packet, const cbdc::watchtower::tx_error &err) -> cbdc::serializer &
 
auto operator>> (cbdc::serializer &packet, cbdc::watchtower::tx_error &err) -> cbdc::serializer &
 
auto operator<< (serializer &packet, const sentinel::execute_response &r) -> serializer &
 
auto operator>> (serializer &packet, sentinel::execute_response &r) -> serializer &
 
auto operator<< (serializer &packet, const transaction::out_point &op) -> serializer &
 Serializes an out_point.
 
auto operator>> (serializer &packet, transaction::out_point &op) -> serializer &
 Deserializes an out_point.
 
auto operator<< (serializer &packet, const transaction::output &out) -> serializer &
 Serializes an output.
 
auto operator>> (serializer &packet, transaction::output &out) -> serializer &
 Deserializes an output.
 
auto operator<< (serializer &packet, const transaction::input &inp) -> serializer &
 Serializes an input.
 
auto operator>> (serializer &packet, transaction::input &inp) -> serializer &
 Deserializes an input.
 
auto operator<< (serializer &packet, const transaction::full_tx &tx) -> serializer &
 Serializes a full transaction.
 
auto operator>> (serializer &packet, transaction::full_tx &tx) -> serializer &
 Deserializes a full transaction.
 
auto operator<< (serializer &packet, const transaction::compact_tx &tx) -> serializer &
 Serializes a compact transaction.
 
auto operator>> (serializer &packet, transaction::compact_tx &tx) -> serializer &
 Deserializes a compact transaction.
 
auto operator>> (serializer &packet, transaction::validation::input_error &e) -> serializer &
 Deserializes an input error.
 
auto operator<< (serializer &packet, const transaction::validation::input_error &e) -> serializer &
 Serializes an input error.
 
auto operator>> (serializer &packet, transaction::validation::output_error &e) -> serializer &
 Deserializes an output error.
 
auto operator<< (serializer &packet, const transaction::validation::output_error &e) -> serializer &
 Serializes an output error.
 
auto operator>> (serializer &packet, transaction::validation::witness_error &e) -> serializer &
 Deserializes a witness error.
 
auto operator<< (serializer &packet, const transaction::validation::witness_error &e) -> serializer &
 Serializes a witness error.
 
auto operator<< (serializer &ser, const coordinator::state_machine::coordinator_state &s) -> serializer &
 
auto operator>> (serializer &deser, coordinator::controller::coordinator_state &s) -> serializer &
 
auto operator<< (serializer &ser, const coordinator::controller::sm_command &c) -> serializer &
 
auto operator<< (serializer &ser, const coordinator::controller::sm_command_header &c) -> serializer &
 
auto operator>> (serializer &deser, coordinator::controller::sm_command_header &c) -> serializer &
 
auto operator<< (serializer &packet, const locking_shard::tx &tx) -> serializer &
 
auto operator>> (serializer &packet, locking_shard::tx &tx) -> serializer &
 
auto operator<< (serializer &packet, const locking_shard::rpc::request &p) -> serializer &
 
auto operator>> (serializer &packet, locking_shard::rpc::request &p) -> serializer &
 
auto operator<< (serializer &packet, const locking_shard::rpc::tx_status_request &p) -> serializer &
 
auto operator>> (serializer &packet, locking_shard::rpc::tx_status_request &p) -> serializer &
 
auto operator<< (serializer &packet, const locking_shard::rpc::uhs_status_request &p) -> serializer &
 
auto operator>> (serializer &packet, locking_shard::rpc::uhs_status_request &p) -> serializer &
 
auto to_string (const hash_t &val) -> std::string
 Converts a hash to a hexadecimal string.
 
auto hash_from_hex (const std::string &val) -> hash_t
 Parses a hexadecimal representation of a hash.
 
auto hash_data (const std::byte *data, size_t len) -> hash_t
 Calculates the SHA256 hash of the specified data.
 
auto pubkey_from_privkey (const privkey_t &privkey, secp256k1_context *ctx) -> pubkey_t
 Generates a public key from the specified private key.
 
template<size_t S>
auto to_vector (const std::array< unsigned char, S > &arr) -> std::vector< std::byte >
 Converts an std::array into an std::vector of the same size via copy.
 
template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 
template<typename... Ts>
auto expand_type (size_t i) -> std::variant< Ts... >
 Default-constructs a std::variant from a template parameter pack.
 
auto operator<< (serializer &ser, const nuraft::ptr< nuraft::buffer > &buf) -> serializer &
 
template<typename T , typename B >
auto make_buffer (const T &obj) -> std::enable_if_t< std::is_same_v< B, nuraft::ptr< nuraft::buffer > >, nuraft::ptr< nuraft::buffer > >
 Serialize object into nuraft::buffer using a cbdc::nuraft_serializer.
 
template<typename T >
auto from_buffer (nuraft::buffer &buf) -> std::optional< T >
 Deserialize object of given type from a nuraft::buffer.
 
auto operator<< (serializer &ser, const rpc::header &header) -> serializer &
 
auto operator>> (serializer &deser, rpc::header &header) -> serializer &
 
template<typename T >
auto operator<< (serializer &ser, const rpc::request< T > &req) -> serializer &
 
template<typename T >
auto operator>> (serializer &deser, rpc::request< T > &req) -> serializer &
 
template<typename T >
auto operator<< (serializer &ser, const rpc::response< T > &resp) -> serializer &
 
template<typename T >
auto operator>> (serializer &deser, rpc::response< T > &resp) -> serializer &
 
auto operator<< (serializer &packet, std::byte b) -> serializer &
 Serializes the std::byte as a std::uint8_t.
 
auto operator>> (serializer &packet, std::byte &b) -> serializer &
 Deserializes a single std::byte.
 
auto operator<< (serializer &ser, const buffer &b) -> serializer &
 Serializes a raw byte buffer.
 
auto operator>> (serializer &deser, buffer &b) -> serializer &
 Deserializes a raw byte buffer.
 
template<typename T >
auto operator<< (serializer &s, T) -> typename std::enable_if_t< std::is_empty_v< T >, serializer & >
 Serializes nothing if T is an empty type.
 
template<typename T >
auto operator>> (serializer &s, T &) -> typename std::enable_if_t< std::is_empty_v< T >, serializer & >
 Deserializes nothing if T is an empty type.
 
template<typename T , size_t len>
auto operator<< (serializer &packet, const std::array< T, len > &arr) -> typename std::enable_if_t< std::is_integral_v< T >, serializer & >
 Serializes the array of integral values in-order.
 
template<typename T , size_t len>
auto operator>> (serializer &packet, std::array< T, len > &arr) -> typename std::enable_if_t< std::is_integral_v< T >, serializer & >
 Deserializes the array of integral values in-order.
 
template<typename T >
auto operator>> (serializer &deser, std::optional< T > &val) -> serializer &
 Deserializes an optional value.
 
template<typename T >
auto operator<< (serializer &ser, const std::optional< T > &val) -> serializer &
 Serializes val.has_value(), and if val.has_value() == true, serializes the value itself.
 
template<typename A , typename B >
auto operator<< (serializer &ser, const std::pair< A, B > &p) -> serializer &
 Serializes a pair of values: first, then second.
 
template<typename A , typename B >
auto operator>> (serializer &deser, std::pair< A, B > &p) -> serializer &
 Deserializes a pair of values.
 
template<typename T >
auto operator<< (serializer &packet, const std::vector< T > &vec) -> serializer &
 Serializes the count of elements in the vector, and then each element in-order.
 
template<typename T >
auto operator>> (serializer &packet, std::vector< T > &vec) -> serializer &
 Deserializes a vector of elements.
 
template<typename K , typename V , typename... Ts>
auto operator<< (serializer &ser, const std::unordered_map< K, V, Ts... > &map) -> serializer &
 Serializes the count of key-value pairs, and then each key and value, statically-casted.
 
template<typename K , typename V , typename... Ts>
auto operator>> (serializer &deser, std::unordered_map< K, V, Ts... > &map) -> serializer &
 Deserializes an unordered map of key-value pairs.
 
template<typename K , typename... Ts>
auto operator<< (serializer &ser, const std::set< K, Ts... > &set) -> serializer &
 Serializes the count of items, and then each item statically-casted.
 
template<typename K , typename... Ts>
auto operator>> (serializer &deser, std::set< K, Ts... > &set) -> serializer &
 Deserializes a set of items.
 
template<typename K , typename... Ts>
auto operator<< (serializer &ser, const std::unordered_set< K, Ts... > &set) -> serializer &
 Serializes the count of items, and then each item statically-casted.
 
template<typename K , typename... Ts>
auto operator>> (serializer &deser, std::unordered_set< K, Ts... > &set) -> serializer &
 Deserializes an unordered set of items.
 
template<typename... Ts>
auto operator<< (serializer &ser, const std::variant< Ts... > &var) -> serializer &
 Serializes the variant index of the value, and then the value itself.
 
template<typename... Ts>
auto operator>> (serializer &deser, std::variant< Ts... > &var) -> std::enable_if_t<(std::is_default_constructible_v< Ts > &&...), serializer & >
 Deserializes a variant whose alternatives are default-constructible.
 
template<typename... Ts>
auto get_variant (serializer &deser) -> std::variant< Ts... >
 Deserializes a variant where the alternatives are all default constructible or all are not default constructible If all alternatives are default constructible , each type must provide a constructor of the form T(serializer&) which deserializes the type from its argument.
 
template<typename T >
auto serialized_size (const T &obj) -> size_t
 Calculates the serialized size in bytes of the given object when serialized using serializer.
 
template<typename T >
auto make_shared_buffer (const T &obj) -> std::shared_ptr< cbdc::buffer >
 Serialize object into std::shared_ptr<cbdc::buffer> using a cbdc::buffer_serializer.
 
template<typename T >
auto from_buffer (cbdc::buffer &buf) -> std::optional< T >
 Deserialize object of given type from a cbdc::buffer.
 

Typedef Documentation

◆ blocking_priority_queue

template<typename T , typename C = std::less<T>>
using cbdc::blocking_priority_queue
Initial value:
blocking_queue_internal<T,
std::priority_queue<T, std::vector<T>, C>>

Definition at line 123 of file blocking_queue.hpp.

◆ blocking_queue

template<typename T >
using cbdc::blocking_queue = blocking_queue_internal<T, std::queue<T>>

Definition at line 120 of file blocking_queue.hpp.

◆ hash_t

using cbdc::hash_t = std::array<unsigned char, cbdc::hash_size>

SHA256 hash container.

Definition at line 19 of file util/common/hash.hpp.

◆ privkey_t

using cbdc::privkey_t = std::array<unsigned char, pubkey_len>

A private key of a public/private keypair.

Definition at line 23 of file keys.hpp.

◆ pubkey_t

using cbdc::pubkey_t = std::array<unsigned char, pubkey_len>

A public key of a public/private keypair.

Definition at line 25 of file keys.hpp.

◆ signature_t

using cbdc::signature_t = std::array<unsigned char, sig_len>

A signature.

Definition at line 29 of file keys.hpp.

◆ witness_t

using cbdc::witness_t = std::vector<std::byte>

A witness commitment.

Definition at line 27 of file keys.hpp.

Enumeration Type Documentation

◆ rlp_value_type

enum class cbdc::rlp_value_type
strong

Possible types for an RLP value.

Enumerator
array 

A collection of RLP values.

buffer 

A singular RLP value (byte array)

Definition at line 22 of file rlp.hpp.

Function Documentation

◆ deserialize_size()

auto cbdc::deserialize_size ( const cbdc::buffer & buf) -> size_t

Decodes a binary representation for sizes that exceed the single-byte presentation into size_t.

Parameters
bufbuffer containing the binary representation to decode
Returns
size_t that was decoded

Definition at line 80 of file rlp_reader.cpp.

Referenced by cbdc::rlp_value::read_from().

◆ expand_type()

template<typename... Ts>
auto cbdc::expand_type ( size_t i) -> std::variant<Ts...>
nodiscard

Default-constructs a std::variant from a template parameter pack.

Particularly helpful as a helper for deserialization of variants

Template Parameters
Tsthe template parameter pack containing the variant's alternative types
Parameters
ithe index of the alternative type for the variant to hold
Returns
the default-constructed variant

Definition at line 48 of file variant_overloaded.hpp.

Referenced by operator>>().

◆ from_buffer() [1/2]

template<typename T >
auto cbdc::from_buffer ( cbdc::buffer & buf) -> std::optional<T>

Deserialize object of given type from a cbdc::buffer.

Template Parameters
Ttype of object to deserialize from the buffer.
Parameters
bufbuffer from which to deserialize the object.
Returns
deserialized object, or std::nullopt if the deserialization failed.

Definition at line 63 of file util/serialization/util.hpp.

◆ from_buffer() [2/2]

◆ get_variant()

template<typename... Ts>
auto cbdc::get_variant ( serializer & deser) -> std::variant<Ts...>
nodiscard

Deserializes a variant where the alternatives are all default constructible or all are not default constructible If all alternatives are default constructible , each type must provide a constructor of the form T(serializer&) which deserializes the type from its argument.

See also
cbdc::operator<<(serializer&, const std::variant<Ts...>&)

Definition at line 409 of file util/serialization/format.hpp.

Referenced by operator>>().

◆ hash_data()

auto cbdc::hash_data ( const std::byte * data,
size_t len ) -> hash_t

Calculates the SHA256 hash of the specified data.

Parameters
databyte array containing data to hash.
lenthe number of bytes of the data to hash.
Returns
the hash of the data.

Definition at line 40 of file util/common/hash.cpp.

Referenced by cbdc::transaction::validation::check_p2pk_witness_commitment(), and cbdc::transaction::validation::get_p2pk_witness_commitment().

◆ hash_from_hex()

auto cbdc::hash_from_hex ( const std::string & val) -> hash_t

Parses a hexadecimal representation of a hash.

Parameters
valstring with a hex representation of a hash.
Returns
hash value of the string.

Definition at line 26 of file util/common/hash.cpp.

Referenced by confirmtx_command(), cbdc::config::read_sentinel_options(), and cbdc::config::read_shard_options().

◆ keccak_data()

auto cbdc::keccak_data ( const void * data,
size_t len ) -> hash_t

Calculates the Keccak256 hash of the specified data.

Parameters
databyte array containing data to hash.
lenthe number of bytes of the data to hash.
Returns
the hash of the data.

Definition at line 14 of file parsec/agent/runners/evm/hash.cpp.

Referenced by cbdc::parsec::agent::runner::add_to_bloom(), cbdc::parsec::agent::runner::contract_address(), cbdc::parsec::agent::runner::contract_address2(), cbdc::parsec::agent::runner::eth_addr(), cbdc::parsec::agent::runner::sig_hash(), and cbdc::parsec::agent::runner::tx_id().

◆ make_buffer()

template<typename T , typename B >
auto cbdc::make_buffer ( const T & obj) -> std::enable_if_t<std::is_same_v<B, nuraft::ptr<nuraft::buffer>>, nuraft::ptr<nuraft::buffer>>

Serialize object into nuraft::buffer using a cbdc::nuraft_serializer.

Serialize object into cbdc::buffer using a cbdc::buffer_serializer.

Template Parameters
Ttype of object to serialize.
Btype of buffer to return, must be nuraft::ptr<nuraft::buffer>> for this template to be enabled.
Parameters
objobject to serialize.
Returns
a serialized buffer of the object.
Template Parameters
Ttype of object to serialize.
Btype of buffer to return, must be cbdc::buffer for this template to be enabled.
Returns
a serialized buffer of the object.

Definition at line 20 of file util/raft/util.hpp.

References serialized_size().

Referenced by cbdc::parsec::agent::runner::add_to_bloom(), cbdc::atomizer::state_machine::commit(), cbdc::parsec::runtime_locking_shard::state_machine::commit(), cbdc::parsec::agent::runner::contract_address(), cbdc::archiver::controller::digest_block(), cbdc::parsec::agent::runner::evm_host::get_state_updates(), cbdc::transaction::compact_tx::hash(), cbdc::transaction::input::hash(), cbdc::parsec::agent::runner::evm_host::log_index_key(), cbdc::atomizer::atomizer_raft::make_request(), make_rlp_value(), cbdc::parsec::agent::runner::mint_initial_accounts(), print_tx_result(), cbdc::network::tcp_socket::send(), cbdc::rpc::server< Request, Response, InBuffer, OutBuffer >::serialize_response(), serialize_size(), cbdc::archiver::controller::server_handler(), cbdc::parsec::agent::runner::evm_host::ticket_number_key(), cbdc::transaction::tx_id(), cbdc::parsec::agent::runner::tx_receipt_to_json(), and cbdc::transaction::uhs_id_from_output().

Here is the call graph for this function:

◆ make_rlp_array()

template<typename... Args>
auto cbdc::make_rlp_array ( const Args &... values) -> rlp_value

Turns multiple rlp_value objects into an rlp_value of type array.

Parameters
valuesvalues to add to the array
Returns
rlp_value of type array with the passed objects as contents

Definition at line 153 of file rlp.hpp.

References array.

Referenced by cbdc::parsec::agent::runner::contract_address(), and rlp_encode_access_list().

◆ make_rlp_value()

template<typename T >
auto cbdc::make_rlp_value ( const T & obj,
bool trim_leading_zeroes = false ) -> rlp_value

Turns an existing value into an rlp_value by first serializing it as a cbdc::buffer, and then turning that into an rlp_value.

Parameters
objobject to serialize and wrap in rlp_value
trim_leading_zeroesif true, removes leading 0x00 bytes in the resulting sequence after making a cbdc::buffer out of the passed obj before turning it into an rlp_value
Returns
rlp_value of type buffer with the passed object as contents

Definition at line 126 of file rlp.hpp.

References buffer, and make_buffer().

Referenced by cbdc::parsec::agent::runner::contract_address(), rlp_encode_access_list(), and cbdc::parsec::agent::runner::tx_encode().

Here is the call graph for this function:

◆ make_shared_buffer()

template<typename T >
auto cbdc::make_shared_buffer ( const T & obj) -> std::shared_ptr<cbdc::buffer>

◆ operator<<() [1/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::best_block_height_response & bbh_res ) -> cbdc::serializer &

Definition at line 12 of file uhs/atomizer/watchtower/messages.cpp.

◆ operator<<() [2/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::request & req ) -> cbdc::serializer &

Definition at line 25 of file uhs/atomizer/watchtower/messages.cpp.

◆ operator<<() [3/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::response & res ) -> cbdc::serializer &

Definition at line 31 of file uhs/atomizer/watchtower/messages.cpp.

◆ operator<<() [4/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::status_request_check_success & chs ) -> cbdc::serializer &

Definition at line 38 of file status_update_messages.cpp.

◆ operator<<() [5/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::status_update_request & su_req ) -> cbdc::serializer &

Definition at line 10 of file status_update_messages.cpp.

◆ operator<<() [6/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::status_update_state & state ) -> cbdc::serializer &

Definition at line 22 of file status_update_messages.cpp.

◆ operator<<() [7/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::tx_error & err ) -> cbdc::serializer &

Definition at line 167 of file tx_error_messages.cpp.

◆ operator<<() [8/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::tx_error_inputs_dne & err ) -> cbdc::serializer &

Definition at line 139 of file tx_error_messages.cpp.

◆ operator<<() [9/77]

auto cbdc::operator<< ( cbdc::serializer & packet,
const cbdc::watchtower::tx_error_inputs_spent & err ) -> cbdc::serializer &

Definition at line 153 of file tx_error_messages.cpp.

◆ operator<<() [10/77]

auto cbdc::operator<< ( serializer & packet,
const cbdc::atomizer::aggregate_tx_notification & msg ) -> serializer &

Definition at line 63 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [11/77]

auto cbdc::operator<< ( serializer & packet,
const cbdc::atomizer::aggregate_tx_notify_request & msg ) -> serializer &

Definition at line 77 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [12/77]

auto cbdc::operator<< ( serializer & packet,
const cbdc::atomizer::block & blk ) -> serializer &

Definition at line 14 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [13/77]

auto cbdc::operator<< ( serializer & packet,
const cbdc::atomizer::tx_notify_request & msg ) -> serializer &

Definition at line 50 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [14/77]

auto cbdc::operator<< ( serializer & packet,
const locking_shard::rpc::request & p ) -> serializer &

Definition at line 21 of file uhs/twophase/locking_shard/format.cpp.

◆ operator<<() [15/77]

auto cbdc::operator<< ( serializer & packet,
const locking_shard::rpc::tx_status_request & p ) -> serializer &

Definition at line 31 of file uhs/twophase/locking_shard/format.cpp.

◆ operator<<() [16/77]

auto cbdc::operator<< ( serializer & packet,
const locking_shard::rpc::uhs_status_request & p ) -> serializer &

Definition at line 42 of file uhs/twophase/locking_shard/format.cpp.

◆ operator<<() [17/77]

auto cbdc::operator<< ( serializer & packet,
const locking_shard::tx & tx ) -> serializer &

Definition at line 12 of file uhs/twophase/locking_shard/format.cpp.

◆ operator<<() [18/77]

auto cbdc::operator<< ( serializer & packet,
const sentinel::execute_response & r ) -> serializer &

Definition at line 12 of file uhs/sentinel/format.cpp.

◆ operator<<() [19/77]

template<typename T , size_t len>
auto cbdc::operator<< ( serializer & packet,
const std::array< T, len > & arr ) -> typename std::enable_if_t<std::is_integral_v<T>, serializer&>

Serializes the array of integral values in-order.

See also
cbdc::operator<<(serializer&, T)
Template Parameters
Tthe underlying integral type
lenthe length of the array to be serialized
Parameters
packetthe serializer to receive the data
arrthe array of data to be serialized

Definition at line 102 of file util/serialization/format.hpp.

◆ operator<<() [20/77]

template<typename T >
auto cbdc::operator<< ( serializer & packet,
const std::vector< T > & vec ) -> serializer&

Serializes the count of elements in the vector, and then each element in-order.

See also
cbdc::operator<<(serializer&, T)

Definition at line 186 of file util/serialization/format.hpp.

◆ operator<<() [21/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::compact_tx & tx ) -> serializer &

Serializes a compact transaction.

Serializes the transaction id, then the input hashes, and then the output hashes.

See also
cbdc::operator<<(serializer&, const std::array<T, len>&)
cbdc::operator<<(serializer&, const std::vector<T>&)

Definition at line 53 of file uhs/transaction/messages.cpp.

◆ operator<<() [22/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::full_tx & tx ) -> serializer &

◆ operator<<() [23/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::input & inp ) -> serializer &

Serializes an input.

Serializes the out_point and then the output.

See also
cbdc::operator<<(serializer&, const transaction::out_point&)
cbdc::operator<<(serializer&, const transaction::output&)

Definition at line 33 of file uhs/transaction/messages.cpp.

◆ operator<<() [24/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::out_point & op ) -> serializer &

Serializes an out_point.

First serializes the transaction id, and then the index of the identified output in that transaction's output vector.

See also
cbdc::operator<<(serializer&, const std::array<T, len>&)
cbdc::operator<<(serializer&, T)

Definition at line 13 of file uhs/transaction/messages.cpp.

◆ operator<<() [25/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::output & out ) -> serializer &

Serializes an output.

Serializes the witness program commitment, and then the value.

See also
cbdc::operator<<(serializer&, const std::array<T, len>&)
cbdc::operator<<(serializer&, T)

Definition at line 23 of file uhs/transaction/messages.cpp.

◆ operator<<() [26/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::validation::input_error & e ) -> serializer &

Serializes an input error.

Serializes the error code, then the optional error data, and then the input's index.

See also
cbdc::operator<<(serializer&, T)
cbdc::operator<<(serializer&, const std::optional<T>&)

Definition at line 70 of file uhs/transaction/messages.cpp.

◆ operator<<() [27/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::validation::output_error & e ) -> serializer &

Serializes an output error.

Serializes the error code and then the output's index.

See also
cbdc::operator<<(serializer&, T)

Definition at line 81 of file uhs/transaction/messages.cpp.

◆ operator<<() [28/77]

auto cbdc::operator<< ( serializer & packet,
const transaction::validation::witness_error & e ) -> serializer &

Serializes a witness error.

Serializes the error code and then the witness's index.

See also
cbdc::operator<<(serializer&, T)

Definition at line 92 of file uhs/transaction/messages.cpp.

◆ operator<<() [29/77]

auto cbdc::operator<< ( serializer & packet,
std::byte b ) -> serializer &

Serializes the std::byte as a std::uint8_t.

Definition at line 9 of file util/serialization/format.cpp.

◆ operator<<() [30/77]

template<typename T >
auto cbdc::operator<< ( serializer & s,
T t ) -> typename std::enable_if_t<std::is_empty_v<T>, serializer&>

Serializes nothing if T is an empty type.

Serializes an enum via its underlying type.

Serializes the integral argument.

Template Parameters
Tan empty type
Parameters
sthe serializer (to which nothing will be written)

Copies sizeof(T) bytes from t following machine endianness.

Template Parameters
Tthe integral type of the value to serialize
Parameters
tthe value to serialize

Definition at line 53 of file util/serialization/format.hpp.

◆ operator<<() [31/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::get_block_request & r ) -> serializer &

Definition at line 108 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [32/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::get_block_response & r ) -> serializer &

Definition at line 126 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [33/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::make_block_request &  ) -> serializer &

Definition at line 98 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [34/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::make_block_response & r ) -> serializer &

Definition at line 117 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [35/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::prune_request & r ) -> serializer &

Definition at line 89 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [36/77]

auto cbdc::operator<< ( serializer & ser,
const atomizer::state_machine::snapshot & snp ) -> serializer &

Definition at line 24 of file uhs/atomizer/atomizer/format.cpp.

◆ operator<<() [37/77]

auto cbdc::operator<< ( serializer & ser,
const buffer & b ) -> serializer &

Serializes a raw byte buffer.

Writes the size of the buffer as a 64-bit uint, followed by the actual buffer data.

See also
cbdc::operator>>(serializer&, buffer&)

Definition at line 24 of file util/serialization/format.cpp.

◆ operator<<() [38/77]

◆ operator<<() [39/77]

auto cbdc::operator<< ( serializer & ser,
const coordinator::controller::sm_command_header & c ) -> serializer &

Definition at line 56 of file uhs/twophase/coordinator/format.cpp.

◆ operator<<() [40/77]

auto cbdc::operator<< ( serializer & ser,
const coordinator::state_machine::coordinator_state & s ) -> serializer &

Definition at line 15 of file uhs/twophase/coordinator/format.cpp.

◆ operator<<() [41/77]

auto cbdc::operator<< ( serializer & ser,
const evmc::address & addr ) -> serializer &

Definition at line 22 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [42/77]

auto cbdc::operator<< ( serializer & ser,
const evmc::bytes32 & b ) -> serializer &

Definition at line 33 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [43/77]

auto cbdc::operator<< ( serializer & ser,
const nuraft::ptr< nuraft::buffer > & buf ) -> serializer &

Definition at line 9 of file util/raft/messages.cpp.

◆ operator<<() [44/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::rpc::request & req ) -> serializer &

Definition at line 11 of file parsec/agent/format.cpp.

◆ operator<<() [45/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::code_key & k ) -> serializer &

Definition at line 115 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [46/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_access_tuple & at ) -> serializer &

Definition at line 52 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [47/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_account & acc ) -> serializer &

Definition at line 11 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [48/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_dryrun_tx & tx ) -> serializer &

Definition at line 79 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [49/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_log & l ) -> serializer &

Definition at line 90 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [50/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_log_index & idx ) -> serializer &

Definition at line 163 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [51/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_log_query & lq ) -> serializer &

Definition at line 152 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [52/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_pretend_block & b ) -> serializer &

Definition at line 141 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [53/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_sig & s ) -> serializer &

Definition at line 43 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [54/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_tx & tx ) -> serializer &

Definition at line 64 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [55/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::evm_tx_receipt & r ) -> serializer &

Definition at line 100 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [56/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::agent::runner::storage_key & k ) -> serializer &

Definition at line 126 of file parsec/agent/runners/evm/format.cpp.

◆ operator<<() [57/77]

◆ operator<<() [58/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::commit_request & req ) -> serializer &

Definition at line 25 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [59/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::finish_request & req ) -> serializer &

Definition at line 63 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [60/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::get_tickets_request & req ) -> serializer &

Definition at line 75 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [61/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::prepare_request & req ) -> serializer &

Definition at line 37 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [62/77]

◆ operator<<() [63/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::replicated_prepare_request & req ) -> serializer &

Definition at line 110 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [64/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::rollback_request & req ) -> serializer &

Definition at line 51 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [65/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::rpc::try_lock_request & req ) -> serializer &

Definition at line 11 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [66/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::shard_error & err ) -> serializer &

Definition at line 88 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [67/77]

auto cbdc::operator<< ( serializer & ser,
const parsec::runtime_locking_shard::wounded_details & det ) -> serializer &

Definition at line 99 of file parsec/runtime_locking_shard/format.cpp.

◆ operator<<() [68/77]

auto cbdc::operator<< ( serializer & ser,
const rlp_value & v ) -> serializer&

Definition at line 5 of file rlp_writer.cpp.

◆ operator<<() [69/77]

auto cbdc::operator<< ( serializer & ser,
const rpc::header & header ) -> serializer &

Definition at line 11 of file util/rpc/format.cpp.

◆ operator<<() [70/77]

template<typename T >
auto cbdc::operator<< ( serializer & ser,
const rpc::request< T > & req ) -> serializer&

Definition at line 17 of file util/rpc/format.hpp.

◆ operator<<() [71/77]

template<typename T >
auto cbdc::operator<< ( serializer & ser,
const rpc::response< T > & resp ) -> serializer&

Definition at line 28 of file util/rpc/format.hpp.

◆ operator<<() [72/77]

template<typename T >
auto cbdc::operator<< ( serializer & ser,
const std::optional< T > & val ) -> serializer&

Serializes val.has_value(), and if val.has_value() == true, serializes the value itself.

See also
cbdc::operator<<(serializer&, T)

Definition at line 144 of file util/serialization/format.hpp.

◆ operator<<() [73/77]

template<typename A , typename B >
auto cbdc::operator<< ( serializer & ser,
const std::pair< A, B > & p ) -> serializer&

Serializes a pair of values: first, then second.

See also
cbdc::operator<<(serializer&, T)

Definition at line 158 of file util/serialization/format.hpp.

◆ operator<<() [74/77]

template<typename K , typename... Ts>
auto cbdc::operator<< ( serializer & ser,
const std::set< K, Ts... > & set ) -> serializer&

Serializes the count of items, and then each item statically-casted.

See also
cbdc::operator<<(serializer&, T)

Definition at line 290 of file util/serialization/format.hpp.

◆ operator<<() [75/77]

template<typename K , typename V , typename... Ts>
auto cbdc::operator<< ( serializer & ser,
const std::unordered_map< K, V, Ts... > & map ) -> serializer&

Serializes the count of key-value pairs, and then each key and value, statically-casted.

See also
cbdc::operator<<(serializer&, T)

Definition at line 239 of file util/serialization/format.hpp.

◆ operator<<() [76/77]

template<typename K , typename... Ts>
auto cbdc::operator<< ( serializer & ser,
const std::unordered_set< K, Ts... > & set ) -> serializer&

Serializes the count of items, and then each item statically-casted.

See also
cbdc::operator<<(serializer&, T)

Definition at line 323 of file util/serialization/format.hpp.

◆ operator<<() [77/77]

template<typename... Ts>
auto cbdc::operator<< ( serializer & ser,
const std::variant< Ts... > & var ) -> serializer&

Serializes the variant index of the value, and then the value itself.

See also
cbdc::operator<<(serializer&, T)

Definition at line 364 of file util/serialization/format.hpp.

◆ operator>>() [1/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::best_block_height_response & bbh_res ) -> cbdc::serializer &

Definition at line 19 of file uhs/atomizer/watchtower/messages.cpp.

◆ operator>>() [2/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::status_request_check_success & chs ) -> cbdc::serializer &

Definition at line 44 of file status_update_messages.cpp.

◆ operator>>() [3/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::status_update_request & su_req ) -> cbdc::serializer &

Definition at line 16 of file status_update_messages.cpp.

◆ operator>>() [4/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::status_update_state & state ) -> cbdc::serializer &

Definition at line 29 of file status_update_messages.cpp.

◆ operator>>() [5/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::tx_error & err ) -> cbdc::serializer &

Definition at line 173 of file tx_error_messages.cpp.

References get_variant().

Here is the call graph for this function:

◆ operator>>() [6/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::tx_error_inputs_dne & err ) -> cbdc::serializer &

Definition at line 146 of file tx_error_messages.cpp.

◆ operator>>() [7/73]

auto cbdc::operator>> ( cbdc::serializer & packet,
cbdc::watchtower::tx_error_inputs_spent & err ) -> cbdc::serializer &

Definition at line 160 of file tx_error_messages.cpp.

◆ operator>>() [8/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::get_block_request & r ) -> serializer &

Definition at line 112 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [9/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::get_block_response & r ) -> serializer &

Definition at line 130 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [10/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::make_block_request &  ) -> serializer &

Definition at line 103 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [11/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::make_block_response & r ) -> serializer &

Definition at line 121 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [12/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::prune_request & r ) -> serializer &

Definition at line 93 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [13/73]

auto cbdc::operator>> ( serializer & deser,
atomizer::state_machine::snapshot & snp ) -> serializer &

Definition at line 36 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [14/73]

auto cbdc::operator>> ( serializer & deser,
buffer & b ) -> serializer &

Deserializes a raw byte buffer.

Definition at line 30 of file util/serialization/format.cpp.

◆ operator>>() [15/73]

auto cbdc::operator>> ( serializer & deser,
coordinator::controller::coordinator_state & s ) -> serializer &

Definition at line 21 of file uhs/twophase/coordinator/format.cpp.

◆ operator>>() [16/73]

auto cbdc::operator>> ( serializer & deser,
coordinator::controller::sm_command_header & c ) -> serializer &

Definition at line 62 of file uhs/twophase/coordinator/format.cpp.

◆ operator>>() [17/73]

auto cbdc::operator>> ( serializer & deser,
evmc::address & addr ) -> serializer &

Definition at line 28 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [18/73]

auto cbdc::operator>> ( serializer & deser,
evmc::bytes32 & b ) -> serializer &

Definition at line 38 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [19/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::rpc::request & req ) -> serializer &

Definition at line 16 of file parsec/agent/format.cpp.

◆ operator>>() [20/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::code_key & k ) -> serializer &

Definition at line 120 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [21/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_access_tuple & at ) -> serializer &

Definition at line 58 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [22/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_account & acc ) -> serializer &

Definition at line 17 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [23/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_dryrun_tx & tx ) -> serializer &

Definition at line 85 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [24/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_log & l ) -> serializer &

Definition at line 95 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [25/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_log_index & idx ) -> serializer &

Definition at line 159 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [26/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_log_query & lq ) -> serializer &

Definition at line 147 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [27/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_pretend_block & b ) -> serializer &

Definition at line 136 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [28/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_sig & s ) -> serializer &

Definition at line 47 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [29/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_tx & tx ) -> serializer &

Definition at line 72 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [30/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::evm_tx_receipt & r ) -> serializer &

Definition at line 108 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [31/73]

auto cbdc::operator>> ( serializer & deser,
parsec::agent::runner::storage_key & k ) -> serializer &

Definition at line 131 of file parsec/agent/runners/evm/format.cpp.

◆ operator>>() [32/73]

◆ operator>>() [33/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::commit_request & req ) -> serializer &

Definition at line 31 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [34/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::finish_request & req ) -> serializer &

Definition at line 69 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [35/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::get_tickets_request & req ) -> serializer &

Definition at line 82 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [36/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::prepare_request & req ) -> serializer &

Definition at line 44 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [37/73]

◆ operator>>() [38/73]

◆ operator>>() [39/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::rollback_request & req ) -> serializer &

Definition at line 57 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [40/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::rpc::try_lock_request & req ) -> serializer &

Definition at line 18 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [41/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::shard_error & err ) -> serializer &

Definition at line 93 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [42/73]

auto cbdc::operator>> ( serializer & deser,
parsec::runtime_locking_shard::wounded_details & det ) -> serializer &

Definition at line 104 of file parsec/runtime_locking_shard/format.cpp.

◆ operator>>() [43/73]

auto cbdc::operator>> ( serializer & deser,
rpc::header & header ) -> serializer &

Definition at line 16 of file util/rpc/format.cpp.

◆ operator>>() [44/73]

template<typename T >
auto cbdc::operator>> ( serializer & deser,
rpc::request< T > & req ) -> serializer&

Definition at line 23 of file util/rpc/format.hpp.

◆ operator>>() [45/73]

template<typename T >
auto cbdc::operator>> ( serializer & deser,
rpc::response< T > & resp ) -> serializer&

Definition at line 34 of file util/rpc/format.hpp.

◆ operator>>() [46/73]

template<typename T >
auto cbdc::operator>> ( serializer & deser,
std::optional< T > & val ) -> serializer&

Deserializes an optional value.

See also
cbdc::operator<<(serializer&, const std::optional<T>&)

Definition at line 120 of file util/serialization/format.hpp.

◆ operator>>() [47/73]

template<typename A , typename B >
auto cbdc::operator>> ( serializer & deser,
std::pair< A, B > & p ) -> serializer&

Deserializes a pair of values.

See also
cbdc::operator<<(serializer&, const std::pair<A,B>&)

Definition at line 166 of file util/serialization/format.hpp.

◆ operator>>() [48/73]

template<typename K , typename... Ts>
auto cbdc::operator>> ( serializer & deser,
std::set< K, Ts... > & set ) -> serializer&

Deserializes a set of items.

See also
cbdc::operator<<(serializer&, const std::set<K, Ts...>&)

Definition at line 303 of file util/serialization/format.hpp.

◆ operator>>() [49/73]

template<typename K , typename V , typename... Ts>
auto cbdc::operator>> ( serializer & deser,
std::unordered_map< K, V, Ts... > & map ) -> serializer&

Deserializes an unordered map of key-value pairs.

See also
cbdc::operator<<(serializer&, const std::unordered_map<K, V, Ts...>&)

Definition at line 254 of file util/serialization/format.hpp.

◆ operator>>() [50/73]

template<typename K , typename... Ts>
auto cbdc::operator>> ( serializer & deser,
std::unordered_set< K, Ts... > & set ) -> serializer&

Deserializes an unordered set of items.

See also
cbdc::operator<<(serializer&, const std::unordered_set<K, Ts...>&)

Definition at line 336 of file util/serialization/format.hpp.

◆ operator>>() [51/73]

template<typename... Ts>
auto cbdc::operator>> ( serializer & deser,
std::variant< Ts... > & var ) -> std::enable_if_t<(std::is_default_constructible_v<Ts> && ...), serializer&>

Deserializes a variant whose alternatives are default-constructible.

See also
cbdc::operator<<(serializer&, const std::variant<Ts...>&)

Definition at line 383 of file util/serialization/format.hpp.

References expand_type().

Here is the call graph for this function:

◆ operator>>() [52/73]

auto cbdc::operator>> ( serializer & packet,
cbdc::atomizer::aggregate_tx_notification & msg ) -> serializer &

Definition at line 70 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [53/73]

auto cbdc::operator>> ( serializer & packet,
cbdc::atomizer::aggregate_tx_notify_request & msg ) -> serializer &

Definition at line 83 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [54/73]

auto cbdc::operator>> ( serializer & packet,
cbdc::atomizer::block & blk ) -> serializer &

Definition at line 19 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [55/73]

auto cbdc::operator>> ( serializer & packet,
cbdc::atomizer::tx_notify_request & msg ) -> serializer &

Definition at line 57 of file uhs/atomizer/atomizer/format.cpp.

◆ operator>>() [56/73]

auto cbdc::operator>> ( serializer & packet,
locking_shard::rpc::request & p ) -> serializer &

Definition at line 26 of file uhs/twophase/locking_shard/format.cpp.

◆ operator>>() [57/73]

auto cbdc::operator>> ( serializer & packet,
locking_shard::rpc::tx_status_request & p ) -> serializer &

Definition at line 37 of file uhs/twophase/locking_shard/format.cpp.

◆ operator>>() [58/73]

auto cbdc::operator>> ( serializer & packet,
locking_shard::rpc::uhs_status_request & p ) -> serializer &

Definition at line 48 of file uhs/twophase/locking_shard/format.cpp.

◆ operator>>() [59/73]

auto cbdc::operator>> ( serializer & packet,
locking_shard::tx & tx ) -> serializer &

Definition at line 17 of file uhs/twophase/locking_shard/format.cpp.

◆ operator>>() [60/73]

auto cbdc::operator>> ( serializer & packet,
sentinel::execute_response & r ) -> serializer &

Definition at line 17 of file uhs/sentinel/format.cpp.

◆ operator>>() [61/73]

template<typename T , size_t len>
auto cbdc::operator>> ( serializer & packet,
std::array< T, len > & arr ) -> typename std::enable_if_t<std::is_integral_v<T>, serializer&>

Deserializes the array of integral values in-order.

See also
cbdc::operator<<(serializer&, const std::array<T, len>&)

Definition at line 111 of file util/serialization/format.hpp.

◆ operator>>() [62/73]

auto cbdc::operator>> ( serializer & packet,
std::byte & b ) -> serializer &

Deserializes a single std::byte.

Copies a single byte (CHAR_BIT bits) of data into b.

See also
cbdc::operator<<(serializer&, std::byte)

Definition at line 14 of file util/serialization/format.cpp.

◆ operator>>() [63/73]

template<typename T >
auto cbdc::operator>> ( serializer & packet,
std::vector< T > & vec ) -> serializer&

Deserializes a vector of elements.

See also
cbdc::operator<<(serializer&, const std::vector<T>&)

Definition at line 199 of file util/serialization/format.hpp.

◆ operator>>() [64/73]

auto cbdc::operator>> ( serializer & packet,
transaction::compact_tx & tx ) -> serializer &

Deserializes a compact transaction.

See also
cbdc::operator<<(serializer&, const transaction::compact_tx&)

Definition at line 59 of file uhs/transaction/messages.cpp.

◆ operator>>() [65/73]

auto cbdc::operator>> ( serializer & packet,
transaction::full_tx & tx ) -> serializer &

Deserializes a full transaction.

See also
cbdc::operator<<(serializer&, const transaction::full_tx&)

Definition at line 48 of file uhs/transaction/messages.cpp.

◆ operator>>() [66/73]

auto cbdc::operator>> ( serializer & packet,
transaction::input & inp ) -> serializer &

Deserializes an input.

See also
cbdc::operator<<(serializer&, const transaction::input&)

Definition at line 38 of file uhs/transaction/messages.cpp.

◆ operator>>() [67/73]

auto cbdc::operator>> ( serializer & packet,
transaction::out_point & op ) -> serializer &

Deserializes an out_point.

See also
cbdc::operator<<(serializer&, const transaction::out_point&)

Definition at line 18 of file uhs/transaction/messages.cpp.

◆ operator>>() [68/73]

auto cbdc::operator>> ( serializer & packet,
transaction::output & out ) -> serializer &

Deserializes an output.

See also
cbdc::operator<<(serializer&, const transaction::output&)

Definition at line 28 of file uhs/transaction/messages.cpp.

◆ operator>>() [69/73]

auto cbdc::operator>> ( serializer & packet,
transaction::validation::input_error & e ) -> serializer &

◆ operator>>() [70/73]

auto cbdc::operator>> ( serializer & packet,
transaction::validation::output_error & e ) -> serializer &

Deserializes an output error.

See also
cbdc::operator<<(serializer&, const transaction::validation::output_error&)

Definition at line 76 of file uhs/transaction/messages.cpp.

◆ operator>>() [71/73]

auto cbdc::operator>> ( serializer & packet,
transaction::validation::witness_error & e ) -> serializer &

◆ operator>>() [72/73]

template<typename T >
auto cbdc::operator>> ( serializer & s,
T & t ) -> typename std::enable_if_t<std::is_empty_v<T>, serializer&>

Deserializes nothing if T is an empty type.

Deserializes an enum.

Deserializes the integral argument.

See also
cbdc::operator<<(serializer&, T)

Writes sizeof(T) bytes into t following machine endianness.

See also
cbdc::operator<<(serializer&, T)

Definition at line 61 of file util/serialization/format.hpp.

◆ operator>>() [73/73]

auto cbdc::operator>> ( serializer & ser,
cbdc::rlp_value & v ) -> serializer&

Definition at line 5 of file rlp_reader.cpp.

◆ overloaded()

template<class... Ts>
cbdc::overloaded ( Ts... ) -> overloaded< Ts... >

◆ pubkey_from_privkey()

auto cbdc::pubkey_from_privkey ( const privkey_t & privkey,
secp256k1_context * ctx ) -> pubkey_t

Generates a public key from the specified private key.

Parameters
privkeyprivate key for which to generate the public key.
ctxthe secp context to use.
Returns
the public key.

Definition at line 12 of file keys.cpp.

Referenced by cbdc::transaction::wallet::generate_key(), cbdc::sentinel::controller::init(), cbdc::sentinel_2pc::controller::init(), cbdc::transaction::wallet::seed(), and cbdc::transaction::compact_tx::sign().

◆ rlp_decode_access_list()

auto cbdc::rlp_decode_access_list ( const rlp_value & rlp) -> std::optional<parsec::agent::runner::evm_access_list>

Decodes an access list from and rlp_value of type rlp_value_type::array.

Parameters
rlprlp_value to decode from
Returns
evm_access_list that was decoded or std::nullopt on failure

Definition at line 92 of file rlp_reader.cpp.

References array.

Referenced by cbdc::parsec::agent::runner::tx_decode().

◆ rlp_encode_access_list()

auto cbdc::rlp_encode_access_list ( const parsec::agent::runner::evm_access_list & access_list) -> rlp_value

RLP encodes an access list.

Parameters
access_listthe access list to encode
Returns
rlp_value of type rlp_value_array with the access list as contents

Definition at line 85 of file rlp_writer.cpp.

References array, make_rlp_array(), and make_rlp_value().

Referenced by cbdc::parsec::agent::runner::tx_encode().

Here is the call graph for this function:

◆ serialize_rlp_length()

void cbdc::serialize_rlp_length ( serializer & ser,
size_t len,
unsigned char offset )

Serializes the passed len from the given offset as RLP compatible size representation as documented in https://eth.wiki/fundamentals/rlp.

Parameters
serserializer to write the result to
lenlength to serialize
offsetoffset to base the representation on. In RLP the offset distinguishes between a value or an array

Definition at line 47 of file rlp_writer.cpp.

References serialize_size().

Here is the call graph for this function:

◆ serialize_size()

auto cbdc::serialize_size ( size_t size) -> std::vector<std::byte>

Creates a binary representation for sizes that exceed the single-byte presentation.

Parameters
sizesize value to serialize
Returns
vector of bytes representing the passed in size

Definition at line 63 of file rlp_writer.cpp.

References make_buffer().

Referenced by serialize_rlp_length().

Here is the call graph for this function:

◆ serialized_size()

template<typename T >
auto cbdc::serialized_size ( const T & obj) -> size_t

Calculates the serialized size in bytes of the given object when serialized using serializer.

See also
size_serializer.
Template Parameters
Ttype of object.
Parameters
objobject to serialize.
Returns
serialized size in bytes.

Definition at line 21 of file util/serialization/util.hpp.

Referenced by cbdc::coordinator::state_machine::commit(), make_buffer(), and make_shared_buffer().

◆ to_string()

◆ to_vector()

template<size_t S>
auto cbdc::to_vector ( const std::array< unsigned char, S > & arr) -> std::vector<std::byte>

Converts an std::array into an std::vector of the same size via copy.

Parameters
arrthe array to convert.
Returns
a vector containing the same data as the array.

Definition at line 42 of file keys.hpp.

Referenced by cbdc::transaction::validation::get_p2pk_witness_commitment().