35 #include <boost/serialization/vector.hpp> 36 #include <boost/program_options/variables_map.hpp> 37 #include <boost/program_options/options_description.hpp> 38 #include <boost/optional/optional.hpp> 48 #undef ELECTRONEUM_DEFAULT_LOG_CATEGORY 49 #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "wallet.mms" 50 #define AUTO_CONFIG_TOKEN_BYTES 4 51 #define AUTO_CONFIG_TOKEN_PREFIX "mms" 156 crypto::chacha_iv
iv;
174 crypto::chacha_iv
iv;
213 void set_options(
const boost::program_options::variables_map& vm);
222 const boost::optional<std::string> &label,
223 const boost::optional<std::string> &transport_address,
224 const boost::optional<cryptonote::account_public_address> etn_address);
234 std::vector<authorized_signer> &signers);
263 std::vector<processing_data> &data_list,
280 void stop() { m_run.store(
false, std::memory_order_relaxed); m_transporter.
stop(); }
285 template <
class t_archive>
289 a & m_num_authorized_signers;
291 a & m_num_required_signers;
294 a & m_next_message_id;
304 static void init_options(boost::program_options::options_description& desc_params);
312 std::vector<authorized_signer> m_signers;
313 std::vector<message> m_messages;
317 std::atomic<bool> m_run;
319 bool get_message_index_by_id(
uint32_t id,
size_t &index)
const;
320 size_t get_message_index_by_id(
uint32_t id)
const;
324 size_t get_other_signers_id_count(
const std::vector<uint32_t> &ids)
const;
325 bool message_ids_complete(
const std::vector<uint32_t> &ids)
const;
331 void setup_signer_for_auto_config(
uint32_t index,
const std::string token,
bool receiving);
332 void delete_transport_message(
uint32_t id);
349 template <
class Archive>
358 template <
class Archive>
377 template <
class Archive>
397 template <
class Archive>
405 template <
class Archive>
414 template <
class Archive>
415 inline void serialize(Archive &
a, crypto::chacha_iv &x,
const boost::serialization::version_type ver)
static void init_options(boost::program_options::options_description &desc_params)
void write_to_file(const multisig_wallet_state &state, const std::string &filename)
crypto::secret_key auto_config_secret_key
static const char * tr(const char *str)
const std::vector< message > & get_all_messages() const
void serialize(t_archive &a, const unsigned int ver)
std::string auto_config_transport_address
void set_messages_processed(const processing_data &data)
const std::vector< authorized_signer > & get_all_signers() const
static const char * message_direction_to_string(message_direction direction)
bool check_for_messages(const multisig_wallet_state &state, std::vector< message > &messages)
uint32_t receiving_signer_index
void unpack_signer_config(const multisig_wallet_state &state, const std::string &signer_config, std::vector< authorized_signer > &signers)
cryptonote::account_public_address sender_address
cryptonote::network_type nettype
void delete_all_messages()
bool check_auto_config_token(const std::string &raw_token, std::string &adjusted_token) const
const char * i18n_translate(const char *s, const std::string &context)
std::string encrypted_data
crypto::public_key encryption_public_key
void send_message(const multisig_wallet_state &state, uint32_t id)
const crypto::secret_key null_skey
void process_auto_config_data_message(uint32_t id)
bool has_multisig_partial_key_images
Simple DSL AAPI based on.
std::string transport_address
cryptonote::account_public_address etn_address
bool serialize(Archive &ar, T &v)
const crypto::public_key null_pkey
size_t add_auto_config_data_message(const multisig_wallet_state &state, const std::string &auto_config_token)
void read_from_file(const multisig_wallet_state &state, const std::string &filename)
size_t num_transfer_details
message_processing processing
std::string auto_config_token
bool signer_labels_complete() const
void delete_message(uint32_t id)
const authorized_signer & get_signer(uint32_t index) const
unsigned __int64 uint64_t
BOOST_CLASS_VERSION(nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< tests::proxy_core > >, 1)
uint32_t multisig_rounds_passed
void get_sanitized_message_text(const message &m, std::string &sanitized_text) const
void get_signer_config(std::string &signer_config)
static const char * message_type_to_string(message_type type)
uint32_t get_num_required_signers() const
bool get_signer_index_by_etn_address(const cryptonote::account_public_address &etn_address, uint32_t &index) const
void start_auto_config(const multisig_wallet_state &state)
std::string message("Message requiring signing")
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
bool get_processable_messages(const multisig_wallet_state &state, bool force_sync, std::vector< processing_data > &data_list, std::string &wait_reason)
bool get_signer_index_by_label(const std::string label, uint32_t &index) const
static const char * message_state_to_string(message_state state)
void set_options(const boost::program_options::variables_map &vm)
cryptonote::account_public_address etn_address
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 > etn_address)
bool get_auto_send() const
crypto::secret_key view_secret_key
void process_signer_config(const multisig_wallet_state &state, const std::string &signer_config)
std::string signer_to_string(const authorized_signer &signer, uint32_t max_width)
bool signer_config_complete() const
bool get_message_by_id(uint32_t id, message &m) const
uint32_t get_num_authorized_signers() const
std::vector< uint32_t > message_ids
void set_message_processed_or_sent(uint32_t id)
std::string transport_address
void set_active(bool active)
void set_auto_send(bool auto_send)
message_direction direction
size_t add_message(const multisig_wallet_state &state, uint32_t signer_index, message_type type, message_direction direction, const std::string &content)
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)
crypto::public_key auto_config_public_key
cryptonote::account_public_address address
void process_wallet_created_data(const multisig_wallet_state &state, message_type type, const std::string &content)