6#ifndef OPENCBDC_TX_SRC_WATCHTOWER_STATUS_UPDATE_H_
7#define OPENCBDC_TX_SRC_WATCHTOWER_STATUS_UPDATE_H_
15#include <unordered_map>
16#include <unordered_set>
103 uint64_t block_height,
118 [[nodiscard]] auto block_height() const -> uint64_t;
122 [[nodiscard]] auto uhs_id() const ->
hash_t;
128 uint64_t m_block_height{};
134 std::vector<status_update_state>,
166 [[nodiscard]]
auto states() const -> const
tx_id_states&;
Interface for serializing objects into and out of raw bytes representations.
Indicates a successful check request, sent with a StatusUpdateResponse.
status_request_check_success()=delete
Network request to interact with the Watchtower's status update service.
auto uhs_ids() const -> const tx_id_uhs_ids &
UHS IDs for which the client would like to search.
auto operator==(const status_update_request &rhs) const -> bool
status_update_request()=delete
Represents the internal state of an ongoing status update request.
search_status
The current status of the Watchtower's progress in searching for a particular UHS ID.
@ invalid_input
The transaction processing system rejected the transaction because the requested UHS ID was already s...
@ spent
The STXO set contains the requested UHS ID.
@ unspent
The UTXO set contains the requested UHS ID.
@ internal_error
The transaction processing system failed to process the transaction containing the requested UHS ID d...
@ tx_rejected
The transaction processing system rejected the requested UHS ID's transaction due to a problem with a...
@ no_history
The Watchtower has finished scanning the block history for the UHS ID in the request and hasn't found...
std::unordered_map< hash_t, std::vector< hash_t >, hashing::const_sip_hash< hash_t > > tx_id_uhs_ids
Set of UHS IDs to query, keyed by Tx IDs.
std::unordered_map< hash_t, std::vector< status_update_state >, hashing::const_sip_hash< hash_t > > tx_id_states
Reported UHS ID states, keyed by Tx IDs.
std::array< unsigned char, cbdc::hash_size > hash_t
SHA256 hash container.
auto operator>>(serializer &deser, parsec::agent::rpc::request &req) -> serializer &
auto operator<<(serializer &ser, const parsec::agent::rpc::request &req) -> serializer &
Watchtower module to process and cache block history.
SipHash function to generate STL data structure hash keys for system IDs.