Monero
Loading...
Searching...
No Matches
mms::message_store Class Reference

#include <message_store.h>

Collaboration diagram for mms::message_store:

Public Member Functions

 message_store (std::unique_ptr< epee::net_utils::http::abstract_http_client > http_client)
void init (const multisig_wallet_state &state, const std::string &own_label, const std::string &own_transport_address, uint32_t num_authorized_signers, uint32_t num_required_signers)
void set_active (bool active)
void set_auto_send (bool auto_send)
void set_options (const boost::program_options::variables_map &vm)
void set_options (const std::string &bitmessage_address, const epee::wipeable_string &bitmessage_login)
bool get_active () const
bool get_auto_send () const
uint32_t get_num_required_signers () const
uint32_t get_num_authorized_signers () const
void set_signer (const multisig_wallet_state &state, uint32_t index, const boost::optional< std::string > &label, const boost::optional< std::string > &transport_address, const boost::optional< cryptonote::account_public_address > monero_address)
const authorized_signerget_signer (uint32_t index) const
bool get_signer_index_by_monero_address (const cryptonote::account_public_address &monero_address, uint32_t &index) const
bool get_signer_index_by_label (const std::string label, uint32_t &index) const
const std::vector< authorized_signer > & get_all_signers () const
bool signer_config_complete () const
bool signer_labels_complete () const
void get_signer_config (std::string &signer_config)
void unpack_signer_config (const multisig_wallet_state &state, const std::string &signer_config, std::vector< authorized_signer > &signers)
void process_signer_config (const multisig_wallet_state &state, const std::string &signer_config)
void start_auto_config (const multisig_wallet_state &state)
bool check_auto_config_token (const std::string &raw_token, std::string &adjusted_token) const
size_t add_auto_config_data_message (const multisig_wallet_state &state, const std::string &auto_config_token)
void process_auto_config_data_message (uint32_t id)
std::string get_config_checksum () const
void stop_auto_config ()
void process_wallet_created_data (const multisig_wallet_state &state, message_type type, const std::string &content)
bool get_processable_messages (const multisig_wallet_state &state, bool force_sync, std::vector< processing_data > &data_list, std::string &wait_reason)
void set_messages_processed (const processing_data &data)
size_t add_message (const multisig_wallet_state &state, uint32_t signer_index, message_type type, message_direction direction, const std::string &content)
const std::vector< message > & get_all_messages () const
bool get_message_by_id (uint32_t id, message &m) const
message get_message_by_id (uint32_t id) const
void set_message_processed_or_sent (uint32_t id)
void delete_message (uint32_t id)
void delete_all_messages ()
void send_message (const multisig_wallet_state &state, uint32_t id)
bool check_for_messages (const multisig_wallet_state &state, std::vector< message > &messages)
void stop ()
void write_to_file (const multisig_wallet_state &state, const std::string &filename)
void read_from_file (const multisig_wallet_state &state, const std::string &filename, bool load_deprecated_formats=false)
template<class t_archive>
void serialize (t_archive &a, const unsigned int ver)
std::string signer_to_string (const authorized_signer &signer, uint32_t max_width)

Static Public Member Functions

static std::string get_sanitized_text (const std::string &text, size_t max_length)
static const char * message_type_to_string (message_type type)
static const char * message_direction_to_string (message_direction direction)
static const char * message_state_to_string (message_state state)
static const char * tr (const char *str)
static void init_options (boost::program_options::options_description &desc_params)

Private Member Functions

bool get_message_index_by_id (uint32_t id, size_t &index) const
size_t get_message_index_by_id (uint32_t id) const
messageget_message_ref_by_id (uint32_t id)
bool any_message_of_type (message_type type, message_direction direction) const
bool any_message_with_hash (const crypto::hash &hash) const
size_t get_other_signers_id_count (const std::vector< uint32_t > &ids) const
bool message_ids_complete (const std::vector< uint32_t > &ids) const
void encrypt (crypto::public_key public_key, const std::string &plaintext, std::string &ciphertext, crypto::public_key &encryption_public_key, crypto::chacha_iv &iv)
void decrypt (const std::string &ciphertext, const crypto::public_key &encryption_public_key, const crypto::chacha_iv &iv, const crypto::secret_key &view_secret_key, std::string &plaintext)
std::string create_auto_config_token ()
void setup_signer_for_auto_config (uint32_t index, const std::string token, bool receiving)
void delete_transport_message (uint32_t id)
std::string account_address_to_string (const cryptonote::account_public_address &account_address) const
void save (const multisig_wallet_state &state)

Private Attributes

bool m_active
uint32_t m_num_authorized_signers
uint32_t m_num_required_signers
bool m_auto_send
cryptonote::network_type m_nettype
std::vector< authorized_signerm_signers
std::vector< messagem_messages
uint32_t m_next_message_id
std::string m_filename
message_transporter m_transporter
std::atomic< bool > m_run

Constructor & Destructor Documentation

◆ message_store()

mms::message_store::message_store ( std::unique_ptr< epee::net_utils::http::abstract_http_client > http_client)

Member Function Documentation

◆ account_address_to_string()

std::string mms::message_store::account_address_to_string ( const cryptonote::account_public_address & account_address) const
private

◆ add_auto_config_data_message()

size_t mms::message_store::add_auto_config_data_message ( const multisig_wallet_state & state,
const std::string & auto_config_token )

◆ add_message()

size_t mms::message_store::add_message ( const multisig_wallet_state & state,
uint32_t signer_index,
message_type type,
message_direction direction,
const std::string & content )

◆ any_message_of_type()

bool mms::message_store::any_message_of_type ( message_type type,
message_direction direction ) const
private

◆ any_message_with_hash()

bool mms::message_store::any_message_with_hash ( const crypto::hash & hash) const
private

◆ check_auto_config_token()

bool mms::message_store::check_auto_config_token ( const std::string & raw_token,
std::string & adjusted_token ) const

◆ check_for_messages()

bool mms::message_store::check_for_messages ( const multisig_wallet_state & state,
std::vector< message > & messages )

◆ create_auto_config_token()

std::string mms::message_store::create_auto_config_token ( )
private

◆ decrypt()

void mms::message_store::decrypt ( const std::string & ciphertext,
const crypto::public_key & encryption_public_key,
const crypto::chacha_iv & iv,
const crypto::secret_key & view_secret_key,
std::string & plaintext )
private

◆ delete_all_messages()

void mms::message_store::delete_all_messages ( )

◆ delete_message()

void mms::message_store::delete_message ( uint32_t id)

◆ delete_transport_message()

void mms::message_store::delete_transport_message ( uint32_t id)
private

◆ encrypt()

void mms::message_store::encrypt ( crypto::public_key public_key,
const std::string & plaintext,
std::string & ciphertext,
crypto::public_key & encryption_public_key,
crypto::chacha_iv & iv )
private

◆ get_active()

bool mms::message_store::get_active ( ) const
inline

◆ get_all_messages()

const std::vector< message > & mms::message_store::get_all_messages ( ) const
inline

◆ get_all_signers()

const std::vector< authorized_signer > & mms::message_store::get_all_signers ( ) const
inline

◆ get_auto_send()

bool mms::message_store::get_auto_send ( ) const
inline

◆ get_config_checksum()

std::string mms::message_store::get_config_checksum ( ) const

◆ get_message_by_id() [1/2]

message mms::message_store::get_message_by_id ( uint32_t id) const

◆ get_message_by_id() [2/2]

bool mms::message_store::get_message_by_id ( uint32_t id,
message & m ) const

◆ get_message_index_by_id() [1/2]

size_t mms::message_store::get_message_index_by_id ( uint32_t id) const
private

◆ get_message_index_by_id() [2/2]

bool mms::message_store::get_message_index_by_id ( uint32_t id,
size_t & index ) const
private

◆ get_message_ref_by_id()

message & mms::message_store::get_message_ref_by_id ( uint32_t id)
private

◆ get_num_authorized_signers()

uint32_t mms::message_store::get_num_authorized_signers ( ) const
inline

◆ get_num_required_signers()

uint32_t mms::message_store::get_num_required_signers ( ) const
inline

◆ get_other_signers_id_count()

size_t mms::message_store::get_other_signers_id_count ( const std::vector< uint32_t > & ids) const
private

◆ get_processable_messages()

bool mms::message_store::get_processable_messages ( const multisig_wallet_state & state,
bool force_sync,
std::vector< processing_data > & data_list,
std::string & wait_reason )

◆ get_sanitized_text()

std::string mms::message_store::get_sanitized_text ( const std::string & text,
size_t max_length )
static

◆ get_signer()

const authorized_signer & mms::message_store::get_signer ( uint32_t index) const

◆ get_signer_config()

void mms::message_store::get_signer_config ( std::string & signer_config)

◆ get_signer_index_by_label()

bool mms::message_store::get_signer_index_by_label ( const std::string label,
uint32_t & index ) const

◆ get_signer_index_by_monero_address()

bool mms::message_store::get_signer_index_by_monero_address ( const cryptonote::account_public_address & monero_address,
uint32_t & index ) const

◆ init()

void mms::message_store::init ( const multisig_wallet_state & state,
const std::string & own_label,
const std::string & own_transport_address,
uint32_t num_authorized_signers,
uint32_t num_required_signers )

◆ init_options()

void mms::message_store::init_options ( boost::program_options::options_description & desc_params)
static

◆ message_direction_to_string()

const char * mms::message_store::message_direction_to_string ( message_direction direction)
static

◆ message_ids_complete()

bool mms::message_store::message_ids_complete ( const std::vector< uint32_t > & ids) const
private

◆ message_state_to_string()

const char * mms::message_store::message_state_to_string ( message_state state)
static

◆ message_type_to_string()

const char * mms::message_store::message_type_to_string ( message_type type)
static

◆ process_auto_config_data_message()

void mms::message_store::process_auto_config_data_message ( uint32_t id)

◆ process_signer_config()

void mms::message_store::process_signer_config ( const multisig_wallet_state & state,
const std::string & signer_config )

◆ process_wallet_created_data()

void mms::message_store::process_wallet_created_data ( const multisig_wallet_state & state,
message_type type,
const std::string & content )

◆ read_from_file()

void mms::message_store::read_from_file ( const multisig_wallet_state & state,
const std::string & filename,
bool load_deprecated_formats = false )

◆ save()

void mms::message_store::save ( const multisig_wallet_state & state)
private

◆ send_message()

void mms::message_store::send_message ( const multisig_wallet_state & state,
uint32_t id )

◆ serialize()

template<class t_archive>
void mms::message_store::serialize ( t_archive & a,
const unsigned int ver )
inline

◆ set_active()

void mms::message_store::set_active ( bool active)
inline

◆ set_auto_send()

void mms::message_store::set_auto_send ( bool auto_send)
inline

◆ set_message_processed_or_sent()

void mms::message_store::set_message_processed_or_sent ( uint32_t id)

◆ set_messages_processed()

void mms::message_store::set_messages_processed ( const processing_data & data)

◆ set_options() [1/2]

void mms::message_store::set_options ( const boost::program_options::variables_map & vm)

◆ set_options() [2/2]

void mms::message_store::set_options ( const std::string & bitmessage_address,
const epee::wipeable_string & bitmessage_login )

◆ set_signer()

void mms::message_store::set_signer ( const multisig_wallet_state & state,
uint32_t index,
const boost::optional< std::string > & label,
const boost::optional< std::string > & transport_address,
const boost::optional< cryptonote::account_public_address > monero_address )

◆ setup_signer_for_auto_config()

void mms::message_store::setup_signer_for_auto_config ( uint32_t index,
const std::string token,
bool receiving )
private

◆ signer_config_complete()

bool mms::message_store::signer_config_complete ( ) const

◆ signer_labels_complete()

bool mms::message_store::signer_labels_complete ( ) const

◆ signer_to_string()

std::string mms::message_store::signer_to_string ( const authorized_signer & signer,
uint32_t max_width )

◆ start_auto_config()

void mms::message_store::start_auto_config ( const multisig_wallet_state & state)

◆ stop()

void mms::message_store::stop ( )
inline

◆ stop_auto_config()

void mms::message_store::stop_auto_config ( )

◆ tr()

const char * mms::message_store::tr ( const char * str)
inlinestatic

◆ unpack_signer_config()

void mms::message_store::unpack_signer_config ( const multisig_wallet_state & state,
const std::string & signer_config,
std::vector< authorized_signer > & signers )

◆ write_to_file()

void mms::message_store::write_to_file ( const multisig_wallet_state & state,
const std::string & filename )

Member Data Documentation

◆ m_active

bool mms::message_store::m_active
private

◆ m_auto_send

bool mms::message_store::m_auto_send
private

◆ m_filename

std::string mms::message_store::m_filename
private

◆ m_messages

std::vector<message> mms::message_store::m_messages
private

◆ m_nettype

cryptonote::network_type mms::message_store::m_nettype
private

◆ m_next_message_id

uint32_t mms::message_store::m_next_message_id
private

◆ m_num_authorized_signers

uint32_t mms::message_store::m_num_authorized_signers
private

◆ m_num_required_signers

uint32_t mms::message_store::m_num_required_signers
private

◆ m_run

std::atomic<bool> mms::message_store::m_run
private

◆ m_signers

std::vector<authorized_signer> mms::message_store::m_signers
private

◆ m_transporter

message_transporter mms::message_store::m_transporter
private

The documentation for this class was generated from the following files: