|
Monero
|
#include <wallet2.h>

Classes | |
| struct | multisig_info |
| struct | tx_scan_info_t |
| struct | transfer_details |
| struct | exported_transfer_details |
| struct | payment_details |
| struct | address_tx |
| struct | pool_payment_details |
| struct | unconfirmed_transfer_details |
| struct | confirmed_transfer_details |
| struct | tx_construction_data |
| struct | multisig_sig |
| struct | pending_tx |
| struct | unsigned_tx_set |
| struct | signed_tx_set |
| struct | multisig_tx_set |
| struct | keys_file_data |
| struct | cache_file_data |
| struct | address_book_row |
| struct | reserve_proof_entry |
| struct | background_synced_tx_t |
| struct | background_sync_data_t |
| struct | parsed_block |
| struct | is_out_data |
| struct | tx_cache_data |
| struct | detached_blockchain_data |
| struct | process_tx_entry_t |
| struct | tx_entry_data |
Public Types | |
| enum | RefreshType { RefreshFull , RefreshOptimizeCoinbase , RefreshNoCoinbase , RefreshDefault = RefreshOptimizeCoinbase } |
| enum | AskPasswordType { AskPasswordNever = 0 , AskPasswordOnAction = 1 , AskPasswordToDecrypt = 2 } |
| enum | BackgroundMiningSetupType { BackgroundMiningMaybe = 0 , BackgroundMiningYes = 1 , BackgroundMiningNo = 2 } |
| enum | BackgroundSyncType { BackgroundSyncOff = 0 , BackgroundSyncReusePassword = 1 , BackgroundSyncCustomPassword = 2 } |
| enum | ExportFormat { Binary = 0 , Ascii } |
| enum | message_signature_type_t { sign_with_spend_key , sign_with_view_key } |
| typedef std::vector< uint64_t > | amounts_container |
| typedef std::vector< transfer_details > | transfer_container |
| typedef serializable_unordered_multimap< crypto::hash, payment_details > | payment_container |
| typedef std::set< uint32_t > | unique_index_container |
| typedef std::tuple< uint64_t, crypto::public_key, rct::key > | get_outs_entry |
Public Member Functions | |
| wallet2 (cryptonote::network_type nettype=cryptonote::MAINNET, uint64_t kdf_rounds=1, bool unattended=false, std::unique_ptr< epee::net_utils::http::http_client_factory > http_client_factory=std::unique_ptr< epee::net_utils::http::http_client_factory >(new net::http::client_factory())) | |
| ~wallet2 () | |
| void | generate (const std::string &wallet_, const epee::wipeable_string &password, const epee::wipeable_string &multisig_data, bool create_address_file=false) |
| Generates a wallet or restores one. Assumes the multisig setup has already completed for the provided multisig info. | |
| crypto::secret_key | generate (const std::string &wallet, const epee::wipeable_string &password, const crypto::secret_key &recovery_param=crypto::secret_key(), bool recover=false, bool two_random=false, bool create_address_file=false) |
| Generates a wallet or restores one. | |
| void | generate (const std::string &wallet, const epee::wipeable_string &password, const cryptonote::account_public_address &account_public_address, const crypto::secret_key &spendkey, const crypto::secret_key &viewkey, bool create_address_file=false) |
| Creates a wallet from a public address and a spend/view secret key pair. | |
| void | generate (const std::string &wallet, const epee::wipeable_string &password, const cryptonote::account_public_address &account_public_address, const crypto::secret_key &viewkey=crypto::secret_key(), bool create_address_file=false) |
| Creates a watch only wallet from a public address and a view secret key. | |
| void | restore (const std::string &wallet_, const epee::wipeable_string &password, const std::string &device_name, bool create_address_file=false) |
| Restore a wallet hold by an HW. | |
| std::string | make_multisig (const epee::wipeable_string &password, const std::vector< std::string > &kex_messages, const std::uint32_t threshold) |
| Creates a multisig wallet. | |
| std::string | exchange_multisig_keys (const epee::wipeable_string &password, const std::vector< std::string > &kex_messages, const bool force_update_use_with_caution=false) |
| Increment the multisig key exchange round. | |
| std::string | get_multisig_first_kex_msg () const |
| Get initial message to start multisig key exchange (before 'make_multisig()' is called). | |
| cryptonote::blobdata | export_multisig () |
| size_t | import_multisig (std::vector< cryptonote::blobdata > info, bool refresh_after_import=true) |
| void | rewrite (const std::string &wallet_name, const epee::wipeable_string &password) |
| Rewrites to the wallet file for wallet upgrade (doesn't generate key, assumes it's already there). | |
| void | write_watch_only_wallet (const std::string &wallet_name, const epee::wipeable_string &password, std::string &new_keys_filename) |
| Writes to a file named based on the normal wallet (doesn't generate key, assumes it's already there). | |
| void | load (const std::string &wallet, const epee::wipeable_string &password, const std::string &keys_buf="", const std::string &cache_buf="") |
| void | store () |
| void | store_to (const std::string &path, const epee::wipeable_string &password, bool force_rewrite_keys=false) |
| store_to Stores wallet to another file(s), deleting old ones | |
| boost::optional< wallet2::keys_file_data > | get_keys_file_data (const epee::wipeable_string &password, bool watch_only) |
| get_keys_file_data Get wallet keys data which can be stored to a wallet file. | |
| boost::optional< wallet2::cache_file_data > | get_cache_file_data () |
| get_cache_file_data Get wallet cache data which can be stored to a wallet file. | |
| std::string | path () const |
| bool | has_proxy_option () const |
| has_proxy_option Check the global proxy (–proxy) has been defined or not. | |
| bool | verify_password (const epee::wipeable_string &password) |
| verifies given password is correct for default wallet keys file | |
| bool | verify_password (const epee::wipeable_string &password, crypto::secret_key &spend_key_out) |
| verify password for default wallet keys file. | |
| cryptonote::account_base & | get_account () |
| const cryptonote::account_base & | get_account () const |
| void | encrypt_keys (const crypto::chacha_key &key) |
| void | encrypt_keys (const epee::wipeable_string &password) |
| void | decrypt_keys (const crypto::chacha_key &key) |
| void | decrypt_keys (const epee::wipeable_string &password) |
| void | set_refresh_from_block_height (uint64_t height) |
| uint64_t | get_refresh_from_block_height () const |
| void | explicit_refresh_from_block_height (bool expl) |
| bool | explicit_refresh_from_block_height () const |
| void | max_reorg_depth (uint64_t depth) |
| uint64_t | max_reorg_depth () const |
| bool | deinit () |
| bool | init (std::string daemon_address="http://localhost:8080", boost::optional< epee::net_utils::http::login > daemon_login=boost::none, const std::string &proxy="", uint64_t upper_transaction_weight_limit=0, bool trusted_daemon=true, epee::net_utils::ssl_options_t ssl_options=epee::net_utils::ssl_support_t::e_ssl_support_autodetect) |
| bool | set_daemon (std::string daemon_address="http://localhost:8080", boost::optional< epee::net_utils::http::login > daemon_login=boost::none, bool trusted_daemon=true, epee::net_utils::ssl_options_t ssl_options=epee::net_utils::ssl_support_t::e_ssl_support_autodetect, const std::string &proxy="") |
| bool | set_proxy (const std::string &address) |
| void | stop () |
| i_wallet2_callback * | callback () const |
| void | callback (i_wallet2_callback *callback) |
| bool | is_trusted_daemon () const |
| void | set_trusted_daemon (bool trusted) |
| bool | is_deterministic () const |
| Checks if deterministic wallet. | |
| bool | get_seed (epee::wipeable_string &electrum_words, const epee::wipeable_string &passphrase=epee::wipeable_string()) const |
| bool | light_wallet () const |
| Checks if light wallet. A light wallet sends view key to a server where the blockchain is scanned. | |
| void | set_light_wallet (bool light_wallet) |
| uint64_t | get_light_wallet_scanned_block_height () const |
| uint64_t | get_light_wallet_blockchain_height () const |
| const std::string & | get_seed_language () const |
| Gets the seed language. | |
| void | set_seed_language (const std::string &language) |
| Sets the seed language. | |
| cryptonote::account_public_address | get_subaddress (const cryptonote::subaddress_index &index) const |
| cryptonote::account_public_address | get_address () const |
| boost::optional< cryptonote::subaddress_index > | get_subaddress_index (const cryptonote::account_public_address &address) const |
| crypto::public_key | get_subaddress_spend_public_key (const cryptonote::subaddress_index &index) const |
| std::vector< crypto::public_key > | get_subaddress_spend_public_keys (uint32_t account, uint32_t begin, uint32_t end) const |
| std::string | get_subaddress_as_str (const cryptonote::subaddress_index &index) const |
| std::string | get_address_as_str () const |
| std::string | get_integrated_address_as_str (const crypto::hash8 &payment_id) const |
| void | add_subaddress_account (const std::string &label) |
| size_t | get_num_subaddress_accounts () const |
| size_t | get_num_subaddresses (uint32_t index_major) const |
| void | add_subaddress (uint32_t index_major, const std::string &label) |
| void | expand_subaddresses (const cryptonote::subaddress_index &index) |
| void | create_one_off_subaddress (const cryptonote::subaddress_index &index) |
| std::string | get_subaddress_label (const cryptonote::subaddress_index &index) const |
| void | set_subaddress_label (const cryptonote::subaddress_index &index, const std::string &label) |
| void | set_subaddress_lookahead (size_t major, size_t minor) |
| std::pair< size_t, size_t > | get_subaddress_lookahead () const |
| bool | is_deprecated () const |
| Tells if the wallet file is deprecated. | |
| void | refresh (bool trusted_daemon) |
| void | refresh (bool trusted_daemon, uint64_t start_height, uint64_t &blocks_fetched) |
| void | refresh (bool trusted_daemon, uint64_t start_height, uint64_t &blocks_fetched, bool &received_money, bool check_pool=true, bool try_incremental=true, uint64_t max_blocks=std::numeric_limits< uint64_t >::max()) |
| bool | refresh (bool trusted_daemon, uint64_t &blocks_fetched, bool &received_money, bool &ok) |
| void | set_refresh_type (RefreshType refresh_type) |
| RefreshType | get_refresh_type () const |
| cryptonote::network_type | nettype () const |
| bool | watch_only () const |
| bool | multisig (bool *ready=NULL, uint32_t *threshold=NULL, uint32_t *total=NULL) const |
| bool | is_background_wallet () const |
| bool | has_multisig_partial_key_images () const |
| bool | has_unknown_key_images () const |
| bool | get_multisig_seed (epee::wipeable_string &seed, const epee::wipeable_string &passphrase=std::string()) const |
| bool | key_on_device () const |
| hw::device::device_type | get_device_type () const |
| bool | reconnect_device () |
| uint64_t | balance (uint32_t subaddr_index_major, bool strict) const |
| uint64_t | unlocked_balance (uint32_t subaddr_index_major, bool strict, uint64_t *blocks_to_unlock=NULL, uint64_t *time_to_unlock=NULL) |
| std::map< uint32_t, uint64_t > | balance_per_subaddress (uint32_t subaddr_index_major, bool strict) const |
| std::map< uint32_t, std::pair< uint64_t, std::pair< uint64_t, uint64_t > > > | unlocked_balance_per_subaddress (uint32_t subaddr_index_major, bool strict) |
| uint64_t | balance_all (bool strict) const |
| uint64_t | unlocked_balance_all (bool strict, uint64_t *blocks_to_unlock=NULL, uint64_t *time_to_unlock=NULL) |
| template<typename T> | |
| void | transfer_selected (const std::vector< cryptonote::tx_destination_entry > &dsts, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count, std::vector< std::vector< tools::wallet2::get_outs_entry > > &outs, std::unordered_set< crypto::public_key > &valid_public_keys_cache, uint64_t fee, const std::vector< uint8_t > &extra, T destination_split_strategy, const tx_dust_policy &dust_policy, cryptonote::transaction &tx, pending_tx &ptx, const bool use_view_tags) |
| void | transfer_selected_rct (std::vector< cryptonote::tx_destination_entry > dsts, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count, std::vector< std::vector< tools::wallet2::get_outs_entry > > &outs, std::unordered_set< crypto::public_key > &valid_public_keys_cache, uint64_t fee, const std::vector< uint8_t > &extra, cryptonote::transaction &tx, pending_tx &ptx, const rct::RCTConfig &rct_config, const bool use_view_tags) |
| void | commit_tx (pending_tx &ptx_vector) |
| void | commit_tx (std::vector< pending_tx > &ptx_vector) |
| bool | save_tx (const std::vector< pending_tx > &ptx_vector, const std::string &filename) const |
| std::string | dump_tx_to_str (const std::vector< pending_tx > &ptx_vector) const |
| std::string | save_multisig_tx (multisig_tx_set txs) |
| bool | save_multisig_tx (const multisig_tx_set &txs, const std::string &filename) |
| std::string | save_multisig_tx (const std::vector< pending_tx > &ptx_vector) |
| bool | save_multisig_tx (const std::vector< pending_tx > &ptx_vector, const std::string &filename) |
| multisig_tx_set | make_multisig_tx_set (const std::vector< pending_tx > &ptx_vector) const |
| bool | sign_tx (const std::string &unsigned_filename, const std::string &signed_filename, std::vector< wallet2::pending_tx > &ptx, std::function< bool(const unsigned_tx_set &)> accept_func=NULL, bool export_raw=false) |
| bool | sign_tx (unsigned_tx_set &exported_txs, const std::string &signed_filename, std::vector< wallet2::pending_tx > &ptx, bool export_raw=false) |
| bool | sign_tx (unsigned_tx_set &exported_txs, std::vector< wallet2::pending_tx > &ptx, signed_tx_set &signed_txs) |
| std::string | sign_tx_dump_to_str (unsigned_tx_set &exported_txs, std::vector< wallet2::pending_tx > &ptx, signed_tx_set &signed_txes) |
| bool | load_unsigned_tx (const std::string &unsigned_filename, unsigned_tx_set &exported_txs) const |
| bool | parse_unsigned_tx_from_str (const std::string &unsigned_tx_st, unsigned_tx_set &exported_txs) const |
| bool | load_tx (const std::string &signed_filename, std::vector< tools::wallet2::pending_tx > &ptx, std::function< bool(const signed_tx_set &)> accept_func=NULL) |
| bool | parse_tx_from_str (const std::string &signed_tx_st, std::vector< tools::wallet2::pending_tx > &ptx, std::function< bool(const signed_tx_set &)> accept_func) |
| std::vector< wallet2::pending_tx > | create_transactions_2 (std::vector< cryptonote::tx_destination_entry > dsts, const size_t fake_outs_count, uint32_t priority, const std::vector< uint8_t > &extra, uint32_t subaddr_account, std::set< uint32_t > subaddr_indices, const unique_index_container &subtract_fee_from_outputs={}) |
| std::vector< wallet2::pending_tx > | create_transactions_all (uint64_t below, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector< uint8_t > &extra, uint32_t subaddr_account, std::set< uint32_t > subaddr_indices) |
| std::vector< wallet2::pending_tx > | create_transactions_single (const crypto::key_image &ki, const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, const size_t fake_outs_count, uint32_t priority, const std::vector< uint8_t > &extra) |
| std::vector< wallet2::pending_tx > | create_transactions_from (const cryptonote::account_public_address &address, bool is_subaddress, const size_t outputs, std::vector< size_t > unused_transfers_indices, std::vector< size_t > unused_dust_indices, const size_t fake_outs_count, uint32_t priority, const std::vector< uint8_t > &extra) |
| bool | sanity_check (const std::vector< wallet2::pending_tx > &ptx_vector, const std::vector< cryptonote::tx_destination_entry > &dsts, const unique_index_container &subtract_fee_from_outputs={}) const |
| void | cold_tx_aux_import (const std::vector< pending_tx > &ptx, const std::vector< std::string > &tx_device_aux) |
| void | cold_sign_tx (const std::vector< pending_tx > &ptx_vector, signed_tx_set &exported_txs, std::vector< cryptonote::address_parse_info > &dsts_info, std::vector< std::string > &tx_device_aux) |
| uint64_t | cold_key_image_sync (uint64_t &spent, uint64_t &unspent) |
| void | device_show_address (uint32_t account_index, uint32_t address_index, const boost::optional< crypto::hash8 > &payment_id) |
| bool | parse_multisig_tx_from_str (std::string multisig_tx_st, multisig_tx_set &exported_txs) const |
| bool | load_multisig_tx (cryptonote::blobdata blob, multisig_tx_set &exported_txs, std::function< bool(const multisig_tx_set &)> accept_func=NULL) |
| bool | load_multisig_tx_from_file (const std::string &filename, multisig_tx_set &exported_txs, std::function< bool(const multisig_tx_set &)> accept_func=NULL) |
| bool | sign_multisig_tx_from_file (const std::string &filename, std::vector< crypto::hash > &txids, std::function< bool(const multisig_tx_set &)> accept_func) |
| bool | sign_multisig_tx (multisig_tx_set &exported_txs, std::vector< crypto::hash > &txids) |
| bool | sign_multisig_tx_to_file (multisig_tx_set &exported_txs, const std::string &filename, std::vector< crypto::hash > &txids) |
| std::vector< pending_tx > | create_unmixable_sweep_transactions () |
| void | discard_unmixable_outputs () |
| bool | check_connection (uint32_t *version=NULL, bool *ssl=NULL, uint32_t timeout=200000, bool *wallet_is_outdated=NULL, bool *daemon_is_outdated=NULL) |
| bool | check_version (uint32_t *version, bool *wallet_is_outdated, bool *daemon_is_outdated) |
| bool | check_hard_fork_version (cryptonote::network_type nettype, const std::vector< std::pair< uint8_t, uint64_t > > &daemon_hard_forks, const uint64_t height, const uint64_t target_height, bool *wallet_is_outdated, bool *daemon_is_outdated) |
| void | get_transfers (wallet2::transfer_container &incoming_transfers) const |
| void | get_payments (const crypto::hash &payment_id, std::list< wallet2::payment_details > &payments, uint64_t min_height=0, const boost::optional< uint32_t > &subaddr_account=boost::none, const std::set< uint32_t > &subaddr_indices={}) const |
| void | get_payments (std::list< std::pair< crypto::hash, wallet2::payment_details > > &payments, uint64_t min_height, uint64_t max_height=(uint64_t) -1, const boost::optional< uint32_t > &subaddr_account=boost::none, const std::set< uint32_t > &subaddr_indices={}) const |
| void | get_payments_out (std::list< std::pair< crypto::hash, wallet2::confirmed_transfer_details > > &confirmed_payments, uint64_t min_height, uint64_t max_height=(uint64_t) -1, const boost::optional< uint32_t > &subaddr_account=boost::none, const std::set< uint32_t > &subaddr_indices={}) const |
| void | get_unconfirmed_payments_out (std::list< std::pair< crypto::hash, wallet2::unconfirmed_transfer_details > > &unconfirmed_payments, const boost::optional< uint32_t > &subaddr_account=boost::none, const std::set< uint32_t > &subaddr_indices={}) const |
| void | get_unconfirmed_payments (std::list< std::pair< crypto::hash, wallet2::pool_payment_details > > &unconfirmed_payments, const boost::optional< uint32_t > &subaddr_account=boost::none, const std::set< uint32_t > &subaddr_indices={}) const |
| uint64_t | get_blockchain_current_height () const |
| void | rescan_spent () |
| void | rescan_blockchain (bool hard, bool refresh=true, bool keep_key_images=false) |
| bool | is_transfer_unlocked (const transfer_details &td) |
| bool | is_transfer_unlocked (uint64_t unlock_time, uint64_t block_height) |
| uint64_t | get_last_block_reward () const |
| uint64_t | get_device_last_key_image_sync () const |
| std::vector< cryptonote::public_node > | get_public_nodes (bool white_only=true) |
| template<class t_archive> | |
| void | serialize (t_archive &a, const unsigned int ver) |
| if (version< 1) | |
| if (version< 2) | |
| bool | always_confirm_transfers () const |
| void | always_confirm_transfers (bool always) |
| bool | print_ring_members () const |
| void | print_ring_members (bool value) |
| bool | store_tx_info () const |
| void | store_tx_info (bool store) |
| uint32_t | default_mixin () const |
| void | default_mixin (uint32_t m) |
| uint32_t | get_default_priority () const |
| void | set_default_priority (uint32_t p) |
| bool | auto_refresh () const |
| void | auto_refresh (bool r) |
| AskPasswordType | ask_password () const |
| void | ask_password (AskPasswordType ask) |
| void | set_min_output_count (uint32_t count) |
| uint32_t | get_min_output_count () const |
| void | set_min_output_value (uint64_t value) |
| uint64_t | get_min_output_value () const |
| void | merge_destinations (bool merge) |
| bool | merge_destinations () const |
| bool | confirm_backlog () const |
| void | confirm_backlog (bool always) |
| void | set_confirm_backlog_threshold (uint32_t threshold) |
| uint32_t | get_confirm_backlog_threshold () const |
| bool | confirm_export_overwrite () const |
| void | confirm_export_overwrite (bool always) |
| bool | auto_low_priority () const |
| void | auto_low_priority (bool value) |
| bool | segregate_pre_fork_outputs () const |
| void | segregate_pre_fork_outputs (bool value) |
| bool | key_reuse_mitigation2 () const |
| void | key_reuse_mitigation2 (bool value) |
| uint64_t | segregation_height () const |
| void | segregation_height (uint64_t height) |
| bool | ignore_fractional_outputs () const |
| void | ignore_fractional_outputs (bool value) |
| bool | confirm_non_default_ring_size () const |
| void | confirm_non_default_ring_size (bool always) |
| uint64_t | ignore_outputs_above () const |
| void | ignore_outputs_above (uint64_t value) |
| uint64_t | ignore_outputs_below () const |
| void | ignore_outputs_below (uint64_t value) |
| bool | track_uses () const |
| void | track_uses (bool value) |
| BackgroundSyncType | background_sync_type () const |
| void | setup_background_sync (BackgroundSyncType background_sync_type, const epee::wipeable_string &wallet_password, const boost::optional< epee::wipeable_string > &background_cache_password) |
| bool | is_background_syncing () const |
| bool | show_wallet_name_when_locked () const |
| void | show_wallet_name_when_locked (bool value) |
| BackgroundMiningSetupType | setup_background_mining () const |
| void | setup_background_mining (BackgroundMiningSetupType value) |
| uint32_t | inactivity_lock_timeout () const |
| void | inactivity_lock_timeout (uint32_t seconds) |
| const std::string & | device_name () const |
| void | device_name (const std::string &device_name) |
| const std::string & | device_derivation_path () const |
| void | device_derivation_path (const std::string &device_derivation_path) |
| const ExportFormat & | export_format () const |
| void | set_export_format (const ExportFormat &export_format) |
| bool | load_deprecated_formats () const |
| void | load_deprecated_formats (bool load) |
| bool | persistent_rpc_client_id () const |
| void | persistent_rpc_client_id (bool persistent) |
| void | auto_mine_for_rpc_payment_threshold (float threshold) |
| float | auto_mine_for_rpc_payment_threshold () const |
| crypto::secret_key | get_rpc_client_secret_key () const |
| void | set_rpc_client_secret_key (const crypto::secret_key &key) |
| uint64_t | credits_target () const |
| void | credits_target (uint64_t threshold) |
| bool | is_multisig_enabled () const |
| void | enable_multisig (bool enable) |
| bool | is_mismatched_daemon_version_allowed () const |
| void | allow_mismatched_daemon_version (bool allow_mismatch) |
| bool | get_tx_key_cached (const crypto::hash &txid, crypto::secret_key &tx_key, std::vector< crypto::secret_key > &additional_tx_keys) const |
| void | set_tx_key (const crypto::hash &txid, const crypto::secret_key &tx_key, const std::vector< crypto::secret_key > &additional_tx_keys, const boost::optional< cryptonote::account_public_address > &single_destination_subaddress=boost::none) |
| bool | get_tx_key (const crypto::hash &txid, crypto::secret_key &tx_key, std::vector< crypto::secret_key > &additional_tx_keys) |
| void | check_tx_key (const crypto::hash &txid, const crypto::secret_key &tx_key, const std::vector< crypto::secret_key > &additional_tx_keys, const cryptonote::account_public_address &address, uint64_t &received, bool &in_pool, uint64_t &confirmations) |
| void | check_tx_key_helper (const crypto::hash &txid, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, const cryptonote::account_public_address &address, uint64_t &received, bool &in_pool, uint64_t &confirmations) |
| void | check_tx_key_helper (const cryptonote::transaction &tx, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, const cryptonote::account_public_address &address, uint64_t &received) const |
| bool | is_out_to_acc (const cryptonote::account_public_address &address, const crypto::public_key &out_key, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, const size_t output_index, const boost::optional< crypto::view_tag > &view_tag_opt, crypto::key_derivation &found_derivation) const |
| std::string | get_tx_proof (const crypto::hash &txid, const cryptonote::account_public_address &address, bool is_subaddress, const std::string &message) |
| std::string | get_tx_proof (const cryptonote::transaction &tx, const crypto::secret_key &tx_key, const std::vector< crypto::secret_key > &additional_tx_keys, const cryptonote::account_public_address &address, bool is_subaddress, const std::string &message) const |
| bool | check_tx_proof (const crypto::hash &txid, const cryptonote::account_public_address &address, bool is_subaddress, const std::string &message, const std::string &sig_str, uint64_t &received, bool &in_pool, uint64_t &confirmations) |
| bool | check_tx_proof (const cryptonote::transaction &tx, const cryptonote::account_public_address &address, bool is_subaddress, const std::string &message, const std::string &sig_str, uint64_t &received) const |
| std::string | get_spend_proof (const crypto::hash &txid, const std::string &message) |
| bool | check_spend_proof (const crypto::hash &txid, const std::string &message, const std::string &sig_str) |
| void | scan_tx (const std::unordered_set< crypto::hash > &txids) |
| std::string | get_reserve_proof (const boost::optional< std::pair< uint32_t, uint64_t > > &account_minreserve, const std::string &message) |
| Generates a proof that proves the reserve of unspent funds. | |
| bool | check_reserve_proof (const cryptonote::account_public_address &address, const std::string &message, const std::string &sig_str, uint64_t &total, uint64_t &spent) |
| Verifies a proof of reserve. | |
| std::vector< address_book_row > | get_address_book () const |
| GUI Address book get/store. | |
| bool | add_address_book_row (const cryptonote::account_public_address &address, const crypto::hash8 *payment_id, const std::string &description, bool is_subaddress) |
| bool | set_address_book_row (size_t row_id, const cryptonote::account_public_address &address, const crypto::hash8 *payment_id, const std::string &description, bool is_subaddress) |
| bool | delete_address_book_row (std::size_t row_id) |
| uint64_t | get_num_rct_outputs () |
| size_t | get_num_transfer_details () const |
| const transfer_details & | get_transfer_details (size_t idx) const |
| uint8_t | get_current_hard_fork () |
| void | get_hard_fork_info (uint8_t version, uint64_t &earliest_height) |
| bool | use_fork_rules (uint8_t version, int64_t early_blocks=0) |
| int | get_fee_algorithm () |
| std::string | get_wallet_file () const |
| std::string | get_keys_file () const |
| std::string | get_daemon_address () const |
| const boost::optional< epee::net_utils::http::login > & | get_daemon_login () const |
| std::string | get_daemon_proxy () const |
| uint64_t | get_daemon_blockchain_height (std::string &err) |
| uint64_t | get_daemon_blockchain_target_height (std::string &err) |
| uint64_t | get_daemon_adjusted_time () |
| uint64_t | get_approximate_blockchain_height () const |
| Calculates the approximate blockchain height from current date/time. | |
| uint64_t | estimate_blockchain_height () |
| std::vector< size_t > | select_available_outputs_from_histogram (uint64_t count, bool atleast, bool unlocked, bool allow_rct) |
| std::vector< size_t > | select_available_outputs (const std::function< bool(const transfer_details &td)> &f) |
| std::vector< size_t > | select_available_unmixable_outputs () |
| std::vector< size_t > | select_available_mixable_outputs () |
| size_t | pop_best_value_from (const transfer_container &transfers, std::vector< size_t > &unused_dust_indices, const std::vector< size_t > &selected_transfers, bool smallest=false) const |
| size_t | pop_best_value (std::vector< size_t > &unused_dust_indices, const std::vector< size_t > &selected_transfers, bool smallest=false) const |
| void | set_tx_note (const crypto::hash &txid, const std::string ¬e) |
| std::string | get_tx_note (const crypto::hash &txid) const |
| void | set_tx_device_aux (const crypto::hash &txid, const std::string &aux) |
| std::string | get_tx_device_aux (const crypto::hash &txid) const |
| void | set_description (const std::string &description) |
| std::string | get_description () const |
| const std::pair< serializable_map< std::string, std::string >, std::vector< std::string > > & | get_account_tags () |
| Get the list of registered account tags. | |
| void | set_account_tag (const std::set< uint32_t > &account_indices, const std::string &tag) |
| Set a tag to the given accounts. | |
| void | set_account_tag_description (const std::string &tag, const std::string &description) |
| Set the label of the given tag. | |
| std::string | sign (const std::string &data, message_signature_type_t signature_type, cryptonote::subaddress_index index={0, 0}) const |
| message_signature_result_t | verify (const std::string &data, const cryptonote::account_public_address &address, const std::string &signature) const |
| std::string | sign_multisig_participant (const std::string &data) const |
| sign_multisig_participant signs given message with the multisig public signer key | |
| bool | verify_with_public_key (const std::string &data, const crypto::public_key &public_key, const std::string &signature) const |
| verify_with_public_key verifies message was signed with given public key | |
| std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::exported_transfer_details > > | export_outputs (bool all=false, uint32_t start=0, uint32_t count=0xffffffff) const |
| std::string | export_outputs_to_str (bool all=false, uint32_t start=0, uint32_t count=0xffffffff) const |
| size_t | import_outputs (const std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::exported_transfer_details > > &outputs) |
| size_t | import_outputs (const std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::transfer_details > > &outputs) |
| size_t | import_outputs_from_str (const std::string &outputs_st) |
| payment_container | export_payments () const |
| void | import_payments (const payment_container &payments) |
| void | import_payments_out (const std::list< std::pair< crypto::hash, wallet2::confirmed_transfer_details > > &confirmed_payments) |
| std::tuple< size_t, crypto::hash, std::vector< crypto::hash > > | export_blockchain () const |
| void | import_blockchain (const std::tuple< size_t, crypto::hash, std::vector< crypto::hash > > &bc) |
| bool | export_key_images (const std::string &filename, bool all=false) const |
| std::pair< uint64_t, std::vector< std::pair< crypto::key_image, crypto::signature > > > | export_key_images (bool all=false) const |
| uint64_t | import_key_images (const std::vector< std::pair< crypto::key_image, crypto::signature > > &signed_key_images, size_t offset, uint64_t &spent, uint64_t &unspent, bool check_spent=true) |
| uint64_t | import_key_images (const std::string &filename, uint64_t &spent, uint64_t &unspent) |
| bool | import_key_images (std::vector< crypto::key_image > key_images, size_t offset=0, boost::optional< std::unordered_set< size_t > > selected_transfers=boost::none) |
| bool | import_key_images (signed_tx_set &signed_tx, size_t offset=0, bool only_selected_transfers=false) |
| crypto::public_key | get_tx_pub_key_from_received_outs (const tools::wallet2::transfer_details &td) const |
| void | update_pool_state (std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &process_txs, bool refreshed=false, bool try_incremental=false) |
| void | process_pool_state (const std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &txs) |
| void | remove_obsolete_pool_txs (const std::vector< crypto::hash > &tx_hashes, bool remove_if_found) |
| std::string | encrypt (const char *plaintext, size_t len, const crypto::secret_key &skey, bool authenticated=true) const |
| std::string | encrypt (const epee::span< char > &span, const crypto::secret_key &skey, bool authenticated=true) const |
| std::string | encrypt (const std::string &plaintext, const crypto::secret_key &skey, bool authenticated=true) const |
| std::string | encrypt (const epee::wipeable_string &plaintext, const crypto::secret_key &skey, bool authenticated=true) const |
| std::string | encrypt_with_view_secret_key (const std::string &plaintext, bool authenticated=true) const |
| template<typename T = std::string> | |
| T | decrypt (const std::string &ciphertext, const crypto::secret_key &skey, bool authenticated=true) const |
| std::string | decrypt_with_view_secret_key (const std::string &ciphertext, bool authenticated=true) const |
| std::string | make_uri (const std::string &address, const std::string &payment_id, uint64_t amount, const std::string &tx_description, const std::string &recipient_name, std::string &error) const |
| bool | parse_uri (const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector< std::string > &unknown_parameters, std::string &error) |
| uint64_t | get_blockchain_height_by_date (uint16_t year, uint8_t month, uint8_t day) |
| bool | is_synced () |
| std::vector< std::pair< uint64_t, uint64_t > > | estimate_backlog (const std::vector< std::pair< double, double > > &fee_levels) |
| std::vector< std::pair< uint64_t, uint64_t > > | estimate_backlog (uint64_t min_tx_weight, uint64_t max_tx_weight, const std::vector< uint64_t > &fees) |
| uint64_t | get_fee_multiplier (uint32_t priority, int fee_algorithm=-1) |
| uint64_t | get_base_fee (uint32_t priority) |
| uint64_t | get_base_fee () |
| uint64_t | get_fee_quantization_mask () |
| uint64_t | get_min_ring_size () |
| uint64_t | get_max_ring_size () |
| uint64_t | adjust_mixin (uint64_t mixin) |
| uint32_t | adjust_priority (uint32_t priority) |
| bool | is_unattended () const |
| std::pair< size_t, uint64_t > | estimate_tx_size_and_weight (bool use_rct, int n_inputs, int ring_size, int n_outputs, size_t extra_size) |
| bool | get_rpc_payment_info (bool mining, bool &payment_required, uint64_t &credits, uint64_t &diff, uint64_t &credits_per_hash_found, cryptonote::blobdata &hashing_blob, uint64_t &height, uint64_t &seed_height, crypto::hash &seed_hash, crypto::hash &next_seed_hash, uint32_t &cookie) |
| bool | daemon_requires_payment () |
| bool | make_rpc_payment (uint32_t nonce, uint32_t cookie, uint64_t &credits, uint64_t &balance) |
| bool | search_for_rpc_payment (uint64_t credits_target, uint32_t n_threads, const std::function< bool(uint64_t, uint64_t)> &startfunc, const std::function< bool(unsigned)> &contfunc, const std::function< bool(uint64_t)> &foundfunc=NULL, const std::function< void(const std::string &)> &errorfunc=NULL) |
| template<typename T> | |
| void | handle_payment_changes (const T &res, std::true_type) |
| template<typename T> | |
| void | handle_payment_changes (const T &res, std::false_type) |
| void | light_wallet_get_unspent_outs () |
| void | light_wallet_get_address_txs () |
| bool | light_wallet_get_address_info (tools::COMMAND_RPC_GET_ADDRESS_INFO::response &response) |
| bool | light_wallet_login (bool &new_address) |
| bool | light_wallet_import_wallet_request (tools::COMMAND_RPC_IMPORT_WALLET_REQUEST::response &response) |
| void | light_wallet_get_outs (std::vector< std::vector< get_outs_entry > > &outs, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count) |
| bool | light_wallet_parse_rct_str (const std::string &rct_string, const crypto::public_key &tx_pub_key, uint64_t internal_output_index, rct::key &decrypted_mask, rct::key &rct_commit, bool decrypt) const |
| bool | light_wallet_key_image_is_ours (const crypto::key_image &key_image, const crypto::public_key &tx_public_key, uint64_t out_index) |
| void | set_attribute (const std::string &key, const std::string &value) |
| bool | get_attribute (const std::string &key, std::string &value) const |
| crypto::public_key | get_multisig_signer_public_key () const |
| crypto::public_key | get_multisig_signing_public_key (size_t idx) const |
| crypto::public_key | get_multisig_signing_public_key (const crypto::secret_key &skey) const |
| template<class t_request, class t_response> | |
| bool | invoke_http_json (const boost::string_ref uri, const t_request &req, t_response &res, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST") |
| template<class t_request, class t_response> | |
| bool | invoke_http_bin (const boost::string_ref uri, const t_request &req, t_response &res, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST") |
| template<class t_request, class t_response> | |
| bool | invoke_http_json_rpc (const boost::string_ref uri, const std::string &method_name, const t_request &req, t_response &res, std::chrono::milliseconds timeout=std::chrono::seconds(15), const boost::string_ref http_method="POST", const std::string &req_id="0") |
| bool | set_ring_database (const std::string &filename) |
| const std::string | get_ring_database () const |
| bool | get_ring (const crypto::key_image &key_image, std::vector< uint64_t > &outs) |
| bool | get_rings (const crypto::hash &txid, std::vector< std::pair< crypto::key_image, std::vector< uint64_t > > > &outs) |
| bool | get_rings (const crypto::chacha_key &key, const std::vector< crypto::key_image > &key_images, std::vector< std::vector< uint64_t > > &outs) |
| bool | set_ring (const crypto::key_image &key_image, const std::vector< uint64_t > &outs, bool relative) |
| bool | set_rings (const std::vector< std::pair< crypto::key_image, std::vector< uint64_t > > > &rings, bool relative) |
| bool | unset_ring (const std::vector< crypto::key_image > &key_images) |
| bool | unset_ring (const crypto::hash &txid) |
| bool | find_and_save_rings (bool force=true) |
| bool | blackball_output (const std::pair< uint64_t, uint64_t > &output) |
| bool | set_blackballed_outputs (const std::vector< std::pair< uint64_t, uint64_t > > &outputs, bool add=false) |
| bool | unblackball_output (const std::pair< uint64_t, uint64_t > &output) |
| bool | is_output_blackballed (const std::pair< uint64_t, uint64_t > &output) const |
| void | freeze (size_t idx) |
| void | thaw (size_t idx) |
| bool | frozen (size_t idx) const |
| void | freeze (const crypto::key_image &ki) |
| void | thaw (const crypto::key_image &ki) |
| bool | frozen (const crypto::key_image &ki) const |
| bool | frozen (const transfer_details &td) const |
| bool | frozen (const multisig_tx_set &txs) const |
| bool | save_to_file (const std::string &path_to_file, const std::string &binary, bool is_printable=false) const |
| uint64_t | get_bytes_sent () const |
| uint64_t | get_bytes_received () const |
| void | start_background_sync () |
| void | stop_background_sync (const epee::wipeable_string &wallet_password, const crypto::secret_key &spend_secret_key=crypto::null_skey) |
| mms::message_store & | get_message_store () |
| const mms::message_store & | get_message_store () const |
| mms::multisig_wallet_state | get_multisig_wallet_state () const |
| bool | lock_keys_file () |
| bool | unlock_keys_file () |
| bool | is_keys_file_locked () const |
| void | change_password (const std::string &filename, const epee::wipeable_string &original_password, const epee::wipeable_string &new_password) |
| void | set_tx_notify (const std::shared_ptr< tools::Notify > ¬ify) |
| bool | is_tx_spendtime_unlocked (uint64_t unlock_time, uint64_t block_height) |
| void | hash_m_transfer (const transfer_details &transfer, crypto::hash &hash) const |
| uint64_t | hash_m_transfers (boost::optional< uint64_t > transfer_height, crypto::hash &hash) const |
| void | finish_rescan_bc_keep_key_images (uint64_t transfer_height, const crypto::hash &hash) |
| void | enable_dns (bool enable) |
| void | set_offline (bool offline=true) |
| bool | is_offline () const |
| uint64_t | credits () const |
| void | credit_report (uint64_t &expected_spent, uint64_t &discrepancy) const |
| template<typename T> | |
| void | transfer_selected (const std::vector< cryptonote::tx_destination_entry > &dsts, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count, std::vector< std::vector< tools::wallet2::get_outs_entry > > &outs, std::unordered_set< crypto::public_key > &valid_public_keys_cache, uint64_t fee, const std::vector< uint8_t > &extra, T destination_split_strategy, const tx_dust_policy &dust_policy, cryptonote::transaction &tx, pending_tx &ptx, bool use_view_tags) |
| template<typename T> | |
| T | decrypt (const std::string &ciphertext, const crypto::secret_key &skey, bool authenticated) const |
Static Public Member Functions | |
| static BackgroundSyncType | background_sync_type_from_str (const std::string &background_sync_type_str) |
| static const char * | tr (const char *str) |
| static bool | has_testnet_option (const boost::program_options::variables_map &vm) |
| static bool | has_stagenet_option (const boost::program_options::variables_map &vm) |
| static std::string | device_name_option (const boost::program_options::variables_map &vm) |
| static std::string | device_derivation_path_option (const boost::program_options::variables_map &vm) |
| static void | init_options (boost::program_options::options_description &desc_params) |
| static std::pair< std::unique_ptr< wallet2 >, password_container > | make_from_json (const boost::program_options::variables_map &vm, bool unattended, const std::string &json_file, const std::function< boost::optional< password_container >(const char *, bool)> &password_prompter) |
| Uses stdin and stdout. Returns a wallet2 if no errors. | |
| static std::pair< std::unique_ptr< wallet2 >, password_container > | make_from_file (const boost::program_options::variables_map &vm, bool unattended, const std::string &wallet_file, const std::function< boost::optional< password_container >(const char *, bool)> &password_prompter) |
| Uses stdin and stdout. Returns a wallet2 and password for wallet_file if no errors. | |
| static std::pair< std::unique_ptr< wallet2 >, password_container > | make_new (const boost::program_options::variables_map &vm, bool unattended, const std::function< boost::optional< password_container >(const char *, bool)> &password_prompter) |
| Uses stdin and stdout. Returns a wallet2 and password for wallet with no file if no errors. | |
| static std::unique_ptr< wallet2 > | make_dummy (const boost::program_options::variables_map &vm, bool unattended, const std::function< boost::optional< password_container >(const char *, bool)> &password_prompter) |
| Just parses variables. | |
| static bool | verify_password (const std::string &keys_file_name, const epee::wipeable_string &password, bool no_spend_key, hw::device &hwdev, uint64_t kdf_rounds) |
| static bool | verify_password (const std::string &keys_file_name, const epee::wipeable_string &password, bool no_spend_key, hw::device &hwdev, uint64_t kdf_rounds, crypto::secret_key &spend_key_out) |
| verify password for specified wallet keys file. | |
| static bool | query_device (hw::device::device_type &device_type, const std::string &keys_file_name, const epee::wipeable_string &password, uint64_t kdf_rounds=1) |
| determine the key storage for the specified wallet file | |
| static void | wallet_exists (const std::string &file_path, bool &keys_file_exists, bool &wallet_file_exists) |
| Check if wallet keys and bin files exist. | |
| static bool | wallet_valid_path_format (const std::string &file_path) |
| Check if wallet file path is valid format. | |
| static std::string | make_background_wallet_file_name (const std::string &wallet_file) |
| static std::string | make_background_keys_file_name (const std::string &wallet_file) |
| static bool | parse_long_payment_id (const std::string &payment_id_str, crypto::hash &payment_id) |
| static bool | parse_short_payment_id (const std::string &payment_id_str, crypto::hash8 &payment_id) |
| static bool | parse_payment_id (const std::string &payment_id_str, crypto::hash &payment_id) |
| static uint64_t | estimate_fee (bool use_per_byte_fee, bool use_rct, int n_inputs, int mixin, int n_outputs, size_t extra_size, bool bulletproof, bool clsag, bool bulletproof_plus, bool use_view_tags, uint64_t base_fee, uint64_t fee_quantization_mask) |
| static bool | load_from_file (const std::string &path_to_file, std::string &target_str, size_t max_size=1000000000) |
| static std::string | get_default_daemon_address () |
Public Attributes | |
| const char *const | ATTRIBUTE_DESCRIPTION = "wallet2.description" |
Static Public Attributes | |
| static constexpr const std::chrono::seconds | rpc_timeout = std::chrono::minutes(3) + std::chrono::seconds(30) |
Private Member Functions | |
| bool | store_keys (const std::string &keys_file_name, const epee::wipeable_string &password, bool watch_only=false) |
| Stores wallet information to wallet file. | |
| bool | store_keys (const std::string &keys_file_name, const crypto::chacha_key &key, bool watch_only=false, bool background_keys_file=false) |
| boost::optional< wallet2::keys_file_data > | get_keys_file_data (const crypto::chacha_key &key, bool watch_only=false, bool background_keys_file=false) |
| bool | store_keys_file_data (const std::string &keys_file_name, wallet2::keys_file_data &keys_file_data, bool background_keys_file=false) |
| bool | load_keys (const std::string &keys_file_name, const epee::wipeable_string &password) |
| Load wallet keys information from wallet file. | |
| bool | load_keys_buf (const std::string &keys_buf, const epee::wipeable_string &password) |
| Load wallet keys information from a string buffer. | |
| bool | load_keys_buf (const std::string &keys_buf, const epee::wipeable_string &password, boost::optional< crypto::chacha_key > &keys_to_encrypt) |
| void | load_wallet_cache (const bool use_fs, const std::string &cache_buf="") |
| void | process_new_transaction (const crypto::hash &txid, const cryptonote::transaction &tx, const std::vector< uint64_t > &o_indices, uint64_t height, uint8_t block_version, uint64_t ts, bool miner_tx, bool pool, bool double_spend_seen, const tx_cache_data &tx_cache_data, std::map< std::pair< uint64_t, uint64_t >, size_t > *output_tracker_cache=NULL, bool ignore_callbacks=false) |
| bool | should_skip_block (const cryptonote::block &b, uint64_t height) const |
| void | process_new_blockchain_entry (const cryptonote::block &b, const cryptonote::block_complete_entry &bche, const parsed_block &parsed_block, const crypto::hash &bl_id, uint64_t height, const std::vector< tx_cache_data > &tx_cache_data, size_t tx_cache_data_offset, std::map< std::pair< uint64_t, uint64_t >, size_t > *output_tracker_cache=NULL) |
| detached_blockchain_data | detach_blockchain (uint64_t height, std::map< std::pair< uint64_t, uint64_t >, size_t > *output_tracker_cache=NULL) |
| void | handle_reorg (uint64_t height, std::map< std::pair< uint64_t, uint64_t >, size_t > *output_tracker_cache=NULL) |
| void | get_short_chain_history (std::list< crypto::hash > &ids, uint64_t granularity=1) const |
| bool | clear () |
| void | clear_soft (bool keep_key_images=false) |
| void | clear_user_data () |
| void | pull_blocks (bool first, bool try_incremental, uint64_t start_height, uint64_t &blocks_start_height, const std::list< crypto::hash > &short_chain_history, std::vector< cryptonote::block_complete_entry > &blocks, std::vector< cryptonote::COMMAND_RPC_GET_BLOCKS_FAST::block_output_indices > &o_indices, uint64_t ¤t_height) |
| void | pull_hashes (uint64_t start_height, uint64_t &blocks_start_height, const std::list< crypto::hash > &short_chain_history, std::vector< crypto::hash > &hashes) |
| void | fast_refresh (uint64_t stop_height, uint64_t &blocks_start_height, std::list< crypto::hash > &short_chain_history, bool force=false) |
| void | pull_and_parse_next_blocks (bool first, bool try_incremental, uint64_t start_height, uint64_t &blocks_start_height, std::list< crypto::hash > &short_chain_history, const std::vector< cryptonote::block_complete_entry > &prev_blocks, const std::vector< parsed_block > &prev_parsed_blocks, std::vector< cryptonote::block_complete_entry > &blocks, std::vector< parsed_block > &parsed_blocks, bool &last, bool &error, std::exception_ptr &exception) |
| void | process_parsed_blocks (uint64_t start_height, const std::vector< cryptonote::block_complete_entry > &blocks, const std::vector< parsed_block > &parsed_blocks, uint64_t &blocks_added, std::map< std::pair< uint64_t, uint64_t >, size_t > *output_tracker_cache=NULL) |
| bool | accept_pool_tx_for_processing (const crypto::hash &txid) |
| void | process_unconfirmed_transfer (bool incremental, const crypto::hash &txid, wallet2::unconfirmed_transfer_details &tx_details, bool seen_in_pool, std::chrono::system_clock::time_point now, bool refreshed) |
| void | process_pool_info_extent (const cryptonote::COMMAND_RPC_GET_BLOCKS_FAST::response &res, std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &process_txs, bool refreshed) |
| void | update_pool_state_by_pool_query (std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &process_txs, bool refreshed=false) |
| void | update_pool_state_from_pool_data (bool incremental, const std::vector< crypto::hash > &removed_pool_txids, const std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &added_pool_txs, std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > &process_txs, bool refreshed) |
| uint64_t | select_transfers (uint64_t needed_money, std::vector< size_t > unused_transfers_indices, std::vector< size_t > &selected_transfers) const |
| bool | prepare_file_names (const std::string &file_path) |
| void | process_unconfirmed (const crypto::hash &txid, const cryptonote::transaction &tx, uint64_t height) |
| void | process_outgoing (const crypto::hash &txid, const cryptonote::transaction &tx, uint64_t height, uint64_t ts, uint64_t spent, uint64_t received, uint32_t subaddr_account, const std::set< uint32_t > &subaddr_indices) |
| void | add_unconfirmed_tx (const crypto::hash &txid, const cryptonote::transaction &tx, uint64_t amount_in, const std::vector< cryptonote::tx_destination_entry > &dests, const crypto::hash &payment_id, uint64_t change_amount, uint32_t subaddr_account, const std::set< uint32_t > &subaddr_indices) |
| void | generate_genesis (cryptonote::block &b) const |
| void | check_genesis (const crypto::hash &genesis_hash) const |
| bool | generate_chacha_key_from_secret_keys (crypto::chacha_key &key) const |
| void | generate_chacha_key_from_password (const epee::wipeable_string &pass, crypto::chacha_key &key) const |
| crypto::hash | get_payment_id (const pending_tx &ptx) const |
| void | check_acc_out_precomp (const cryptonote::tx_out &o, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, size_t i, tx_scan_info_t &tx_scan_info) const |
| void | check_acc_out_precomp (const cryptonote::tx_out &o, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, size_t i, const is_out_data *is_out_data, tx_scan_info_t &tx_scan_info) const |
| void | check_acc_out_precomp_once (const cryptonote::tx_out &o, const crypto::key_derivation &derivation, const std::vector< crypto::key_derivation > &additional_derivations, size_t i, const is_out_data *is_out_data, tx_scan_info_t &tx_scan_info, bool &already_seen) const |
| void | parse_block_round (const cryptonote::blobdata &blob, cryptonote::block &bl, crypto::hash &bl_id, bool &error) const |
| uint64_t | get_upper_transaction_weight_limit () |
| std::vector< uint64_t > | get_unspent_amounts_vector (bool strict) |
| uint64_t | get_dynamic_base_fee_estimate () |
| float | get_output_relatedness (const transfer_details &td0, const transfer_details &td1) const |
| std::vector< size_t > | pick_preferred_rct_inputs (uint64_t needed_money, uint32_t subaddr_account, const std::set< uint32_t > &subaddr_indices) |
| void | set_spent (size_t idx, uint64_t height) |
| void | set_unspent (size_t idx) |
| bool | is_spent (const transfer_details &td, bool strict=true) const |
| bool | is_spent (size_t idx, bool strict=true) const |
| void | get_outs (std::vector< std::vector< get_outs_entry > > &outs, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count, bool rct, std::unordered_set< crypto::public_key > &valid_public_keys_cache) |
| void | get_outs (std::vector< std::vector< get_outs_entry > > &outs, const std::vector< size_t > &selected_transfers, size_t fake_outputs_count, std::vector< uint64_t > &rct_offsets, std::unordered_set< crypto::public_key > &valid_public_keys_cache) |
| bool | tx_add_fake_output (std::vector< std::vector< tools::wallet2::get_outs_entry > > &outs, uint64_t global_index, const crypto::public_key &tx_public_key, const rct::key &mask, uint64_t real_index, bool unlocked, std::unordered_set< crypto::public_key > &valid_public_keys_cache) const |
| bool | should_pick_a_second_output (bool use_rct, size_t n_transfers, const std::vector< size_t > &unused_transfers_indices, const std::vector< size_t > &unused_dust_indices) const |
| std::vector< size_t > | get_only_rct (const std::vector< size_t > &unused_dust_indices, const std::vector< size_t > &unused_transfers_indices) const |
| void | scan_output (const cryptonote::transaction &tx, bool miner_tx, const crypto::public_key &tx_pub_key, size_t i, tx_scan_info_t &tx_scan_info, int &num_vouts_received, std::unordered_map< cryptonote::subaddress_index, uint64_t > &tx_money_got_in_outs, std::vector< size_t > &outs, bool pool) |
| void | trim_hashchain () |
| crypto::key_image | get_multisig_composite_key_image (size_t n) const |
| rct::multisig_kLRki | get_multisig_composite_kLRki (size_t n, const std::unordered_set< crypto::public_key > &ignore_set, std::unordered_set< rct::key > &used_L, std::unordered_set< rct::key > &new_used_L) const |
| rct::multisig_kLRki | get_multisig_kLRki (size_t n, const rct::key &k) const |
| void | get_multisig_k (size_t idx, const std::unordered_set< rct::key > &used_L, rct::key &nonce) |
| void | update_multisig_rescan_info (const std::vector< std::vector< rct::key > > &multisig_k, const std::vector< std::vector< tools::wallet2::multisig_info > > &info, size_t n) |
| bool | add_rings (const crypto::chacha_key &key, const cryptonote::transaction_prefix &tx) |
| bool | add_rings (const cryptonote::transaction_prefix &tx) |
| bool | remove_rings (const cryptonote::transaction_prefix &tx) |
| bool | get_ring (const crypto::chacha_key &key, const crypto::key_image &key_image, std::vector< uint64_t > &outs) |
| crypto::chacha_key | get_ringdb_key () |
| void | setup_keys (const epee::wipeable_string &password) |
| const crypto::chacha_key | get_cache_key () |
| void | verify_password_with_cached_key (const epee::wipeable_string &password) |
| void | verify_password_with_cached_key (const crypto::chacha_key &key) |
| size_t | get_transfer_details (const crypto::key_image &ki) const |
| tx_entry_data | get_tx_entries (const std::unordered_set< crypto::hash > &txids) |
| void | sort_scan_tx_entries (std::vector< process_tx_entry_t > &unsorted_tx_entries) |
| void | process_scan_txs (const tx_entry_data &txs_to_scan, const tx_entry_data &txs_to_reprocess, const std::unordered_set< crypto::hash > &tx_hashes_to_reprocess, detached_blockchain_data &dbd) |
| void | write_background_sync_wallet (const epee::wipeable_string &wallet_password, const epee::wipeable_string &background_cache_password) |
| void | process_background_cache_on_open () |
| void | process_background_cache (const background_sync_data_t &background_sync_data, const hashchain &background_chain, uint64_t last_block_reward) |
| void | reset_background_sync_data (background_sync_data_t &background_sync_data) |
| void | store_background_cache (const crypto::chacha_key &custom_background_key, const bool do_reset_background_sync_data=true) |
| void | store_background_keys (const crypto::chacha_key &custom_background_key) |
| bool | lock_background_keys_file (const std::string &background_keys_file) |
| bool | unlock_background_keys_file () |
| bool | is_background_keys_file_locked () const |
| void | register_devices () |
| hw::device & | lookup_device (const std::string &device_descriptor) |
| bool | get_rct_distribution (uint64_t &start_height, std::vector< uint64_t > &distribution) |
| uint64_t | get_segregation_fork_height () const |
| void | cache_tx_data (const cryptonote::transaction &tx, const crypto::hash &txid, tx_cache_data &tx_cache_data) const |
| std::shared_ptr< std::map< std::pair< uint64_t, uint64_t >, size_t > > | create_output_tracker_cache () const |
| void | init_type (hw::device::device_type device_type) |
| void | setup_new_blockchain () |
| void | create_keys_file (const std::string &wallet_, bool watch_only, const epee::wipeable_string &password, bool create_address_file) |
| wallet_device_callback * | get_device_callback () |
| void | on_device_button_request (uint64_t code) |
| void | on_device_button_pressed () |
| boost::optional< epee::wipeable_string > | on_device_pin_request () |
| boost::optional< epee::wipeable_string > | on_device_passphrase_request (bool &on_device) |
| void | on_device_progress (const hw::device_progress &event) |
| std::string | get_rpc_status (const std::string &s) const |
| void | throw_on_rpc_response_error (bool r, const epee::json_rpc::error &error, const std::string &status, const char *method) const |
| std::string | get_client_signature () const |
| void | check_rpc_cost (const char *call, uint64_t post_call_credits, uint64_t pre_credits, double expected_cost) |
| bool | should_expand (const cryptonote::subaddress_index &index) const |
| bool | spends_one_of_ours (const cryptonote::transaction &tx) const |
Static Private Attributes | |
| static boost::mutex | default_daemon_address_lock |
| static std::string | default_daemon_address = "" |
Friends | |
| class | ::Serialization_portability_wallet_Test |
| class | ::wallet_accessor_test |
| class | wallet_keys_unlocker |
| class | wallet_device_callback |
| typedef std::vector<uint64_t> tools::wallet2::amounts_container |
| typedef std::tuple<uint64_t, crypto::public_key, rct::key> tools::wallet2::get_outs_entry |
| typedef serializable_unordered_multimap<crypto::hash, payment_details> tools::wallet2::payment_container |
| typedef std::vector<transfer_details> tools::wallet2::transfer_container |
| typedef std::set<uint32_t> tools::wallet2::unique_index_container |
| tools::wallet2::wallet2 | ( | cryptonote::network_type | nettype = cryptonote::MAINNET, |
| uint64_t | kdf_rounds = 1, | ||
| bool | unattended = false, | ||
| std::unique_ptr< epee::net_utils::http::http_client_factory > | http_client_factory = std::unique_ptr<epee::net_utils::http::http_client_factory>(new net::http::client_factory()) ) |
| tools::wallet2::~wallet2 | ( | ) |
|
private |
| bool tools::wallet2::add_address_book_row | ( | const cryptonote::account_public_address & | address, |
| const crypto::hash8 * | payment_id, | ||
| const std::string & | description, | ||
| bool | is_subaddress ) |
|
private |
|
private |
| void tools::wallet2::add_subaddress | ( | uint32_t | index_major, |
| const std::string & | label ) |
| void tools::wallet2::add_subaddress_account | ( | const std::string & | label | ) |
|
private |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
| std::map< uint32_t, uint64_t > tools::wallet2::balance_per_subaddress | ( | uint32_t | subaddr_index_major, |
| bool | strict ) const |
|
private |
|
inline |
|
inline |
| void tools::wallet2::change_password | ( | const std::string & | filename, |
| const epee::wipeable_string & | original_password, | ||
| const epee::wipeable_string & | new_password ) |
|
private |
|
private |
|
private |
| bool tools::wallet2::check_connection | ( | uint32_t * | version = NULL, |
| bool * | ssl = NULL, | ||
| uint32_t | timeout = 200000, | ||
| bool * | wallet_is_outdated = NULL, | ||
| bool * | daemon_is_outdated = NULL ) |
|
private |
| bool tools::wallet2::check_hard_fork_version | ( | cryptonote::network_type | nettype, |
| const std::vector< std::pair< uint8_t, uint64_t > > & | daemon_hard_forks, | ||
| const uint64_t | height, | ||
| const uint64_t | target_height, | ||
| bool * | wallet_is_outdated, | ||
| bool * | daemon_is_outdated ) |
| bool tools::wallet2::check_reserve_proof | ( | const cryptonote::account_public_address & | address, |
| const std::string & | message, | ||
| const std::string & | sig_str, | ||
| uint64_t & | total, | ||
| uint64_t & | spent ) |
Verifies a proof of reserve.
| address | The signer's address |
| message | Challenge message used for signing |
| sig_str | Signature string |
| total | [OUT] the sum of funds included in the signature |
| spent | [OUT] the sum of spent funds included in the signature |
|
private |
| bool tools::wallet2::check_spend_proof | ( | const crypto::hash & | txid, |
| const std::string & | message, | ||
| const std::string & | sig_str ) |
| void tools::wallet2::check_tx_key | ( | const crypto::hash & | txid, |
| const crypto::secret_key & | tx_key, | ||
| const std::vector< crypto::secret_key > & | additional_tx_keys, | ||
| const cryptonote::account_public_address & | address, | ||
| uint64_t & | received, | ||
| bool & | in_pool, | ||
| uint64_t & | confirmations ) |
| void tools::wallet2::check_tx_key_helper | ( | const crypto::hash & | txid, |
| const crypto::key_derivation & | derivation, | ||
| const std::vector< crypto::key_derivation > & | additional_derivations, | ||
| const cryptonote::account_public_address & | address, | ||
| uint64_t & | received, | ||
| bool & | in_pool, | ||
| uint64_t & | confirmations ) |
| void tools::wallet2::check_tx_key_helper | ( | const cryptonote::transaction & | tx, |
| const crypto::key_derivation & | derivation, | ||
| const std::vector< crypto::key_derivation > & | additional_derivations, | ||
| const cryptonote::account_public_address & | address, | ||
| uint64_t & | received ) const |
| bool tools::wallet2::check_tx_proof | ( | const crypto::hash & | txid, |
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const std::string & | message, | ||
| const std::string & | sig_str, | ||
| uint64_t & | received, | ||
| bool & | in_pool, | ||
| uint64_t & | confirmations ) |
| bool tools::wallet2::check_tx_proof | ( | const cryptonote::transaction & | tx, |
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const std::string & | message, | ||
| const std::string & | sig_str, | ||
| uint64_t & | received ) const |
| bool tools::wallet2::check_version | ( | uint32_t * | version, |
| bool * | wallet_is_outdated, | ||
| bool * | daemon_is_outdated ) |
|
private |
|
private |
| void tools::wallet2::cold_sign_tx | ( | const std::vector< pending_tx > & | ptx_vector, |
| signed_tx_set & | exported_txs, | ||
| std::vector< cryptonote::address_parse_info > & | dsts_info, | ||
| std::vector< std::string > & | tx_device_aux ) |
| void tools::wallet2::cold_tx_aux_import | ( | const std::vector< pending_tx > & | ptx, |
| const std::vector< std::string > & | tx_device_aux ) |
| void tools::wallet2::commit_tx | ( | pending_tx & | ptx_vector | ) |
| void tools::wallet2::commit_tx | ( | std::vector< pending_tx > & | ptx_vector | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
| void tools::wallet2::create_one_off_subaddress | ( | const cryptonote::subaddress_index & | index | ) |
|
private |
| std::vector< wallet2::pending_tx > tools::wallet2::create_transactions_2 | ( | std::vector< cryptonote::tx_destination_entry > | dsts, |
| const size_t | fake_outs_count, | ||
| uint32_t | priority, | ||
| const std::vector< uint8_t > & | extra, | ||
| uint32_t | subaddr_account, | ||
| std::set< uint32_t > | subaddr_indices, | ||
| const unique_index_container & | subtract_fee_from_outputs = {} ) |
| std::vector< wallet2::pending_tx > tools::wallet2::create_transactions_all | ( | uint64_t | below, |
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const size_t | outputs, | ||
| const size_t | fake_outs_count, | ||
| uint32_t | priority, | ||
| const std::vector< uint8_t > & | extra, | ||
| uint32_t | subaddr_account, | ||
| std::set< uint32_t > | subaddr_indices ) |
| std::vector< wallet2::pending_tx > tools::wallet2::create_transactions_from | ( | const cryptonote::account_public_address & | address, |
| bool | is_subaddress, | ||
| const size_t | outputs, | ||
| std::vector< size_t > | unused_transfers_indices, | ||
| std::vector< size_t > | unused_dust_indices, | ||
| const size_t | fake_outs_count, | ||
| uint32_t | priority, | ||
| const std::vector< uint8_t > & | extra ) |
| std::vector< wallet2::pending_tx > tools::wallet2::create_transactions_single | ( | const crypto::key_image & | ki, |
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const size_t | outputs, | ||
| const size_t | fake_outs_count, | ||
| uint32_t | priority, | ||
| const std::vector< uint8_t > & | extra ) |
| std::vector< wallet2::pending_tx > tools::wallet2::create_unmixable_sweep_transactions | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
| bool tools::wallet2::daemon_requires_payment | ( | ) |
| template epee::wipeable_string tools::wallet2::decrypt | ( | const std::string & | ciphertext, |
| const crypto::secret_key & | skey, | ||
| bool | authenticated ) const |
| T tools::wallet2::decrypt | ( | const std::string & | ciphertext, |
| const crypto::secret_key & | skey, | ||
| bool | authenticated = true ) const |
| void tools::wallet2::decrypt_keys | ( | const crypto::chacha_key & | key | ) |
| void tools::wallet2::decrypt_keys | ( | const epee::wipeable_string & | password | ) |
| std::string tools::wallet2::decrypt_with_view_secret_key | ( | const std::string & | ciphertext, |
| bool | authenticated = true ) const |
|
inline |
|
inline |
| bool tools::wallet2::deinit | ( | ) |
| bool tools::wallet2::delete_address_book_row | ( | std::size_t | row_id | ) |
|
private |
|
inline |
|
inline |
|
static |
|
inline |
|
inline |
|
static |
| void tools::wallet2::device_show_address | ( | uint32_t | account_index, |
| uint32_t | address_index, | ||
| const boost::optional< crypto::hash8 > & | payment_id ) |
| void tools::wallet2::discard_unmixable_outputs | ( | ) |
| std::string tools::wallet2::dump_tx_to_str | ( | const std::vector< pending_tx > & | ptx_vector | ) | const |
|
inline |
|
inline |
| std::string tools::wallet2::encrypt | ( | const char * | plaintext, |
| size_t | len, | ||
| const crypto::secret_key & | skey, | ||
| bool | authenticated = true ) const |
| std::string tools::wallet2::encrypt | ( | const epee::span< char > & | span, |
| const crypto::secret_key & | skey, | ||
| bool | authenticated = true ) const |
| std::string tools::wallet2::encrypt | ( | const epee::wipeable_string & | plaintext, |
| const crypto::secret_key & | skey, | ||
| bool | authenticated = true ) const |
| std::string tools::wallet2::encrypt | ( | const std::string & | plaintext, |
| const crypto::secret_key & | skey, | ||
| bool | authenticated = true ) const |
| void tools::wallet2::encrypt_keys | ( | const crypto::chacha_key & | key | ) |
| void tools::wallet2::encrypt_keys | ( | const epee::wipeable_string & | password | ) |
| std::string tools::wallet2::encrypt_with_view_secret_key | ( | const std::string & | plaintext, |
| bool | authenticated = true ) const |
| std::vector< std::pair< uint64_t, uint64_t > > tools::wallet2::estimate_backlog | ( | const std::vector< std::pair< double, double > > & | fee_levels | ) |
| std::vector< std::pair< uint64_t, uint64_t > > tools::wallet2::estimate_backlog | ( | uint64_t | min_tx_weight, |
| uint64_t | max_tx_weight, | ||
| const std::vector< uint64_t > & | fees ) |
| uint64_t tools::wallet2::estimate_blockchain_height | ( | ) |
|
static |
| std::pair< size_t, uint64_t > tools::wallet2::estimate_tx_size_and_weight | ( | bool | use_rct, |
| int | n_inputs, | ||
| int | ring_size, | ||
| int | n_outputs, | ||
| size_t | extra_size ) |
| std::string tools::wallet2::exchange_multisig_keys | ( | const epee::wipeable_string & | password, |
| const std::vector< std::string > & | kex_messages, | ||
| const bool | force_update_use_with_caution = false ) |
Increment the multisig key exchange round.
| void tools::wallet2::expand_subaddresses | ( | const cryptonote::subaddress_index & | index | ) |
brief: expand subaddress labels up to index, and scanning map to highest labeled index plus current lookahead param: index -
All calls to expand_subaddresses() will always expand the subaddress map if the lookahead values have been increased since the last call.
|
inline |
|
inline |
| std::tuple< size_t, crypto::hash, std::vector< crypto::hash > > tools::wallet2::export_blockchain | ( | ) | const |
|
inline |
| std::pair< uint64_t, std::vector< std::pair< crypto::key_image, crypto::signature > > > tools::wallet2::export_key_images | ( | bool | all = false | ) | const |
| cryptonote::blobdata tools::wallet2::export_multisig | ( | ) |
Export multisig info This will generate and remember new k values
| std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::exported_transfer_details > > tools::wallet2::export_outputs | ( | bool | all = false, |
| uint32_t | start = 0, | ||
| uint32_t | count = 0xffffffff ) const |
| std::string tools::wallet2::export_outputs_to_str | ( | bool | all = false, |
| uint32_t | start = 0, | ||
| uint32_t | count = 0xffffffff ) const |
| wallet2::payment_container tools::wallet2::export_payments | ( | ) | const |
|
private |
| void tools::wallet2::finish_rescan_bc_keep_key_images | ( | uint64_t | transfer_height, |
| const crypto::hash & | hash ) |
| void tools::wallet2::freeze | ( | const crypto::key_image & | ki | ) |
| void tools::wallet2::freeze | ( | size_t | idx | ) |
| bool tools::wallet2::frozen | ( | const crypto::key_image & | ki | ) | const |
| bool tools::wallet2::frozen | ( | const multisig_tx_set & | txs | ) | const |
| bool tools::wallet2::frozen | ( | const transfer_details & | td | ) | const |
| bool tools::wallet2::frozen | ( | size_t | idx | ) | const |
| crypto::secret_key tools::wallet2::generate | ( | const std::string & | wallet, |
| const epee::wipeable_string & | password, | ||
| const crypto::secret_key & | recovery_param = crypto::secret_key(), | ||
| bool | recover = false, | ||
| bool | two_random = false, | ||
| bool | create_address_file = false ) |
Generates a wallet or restores one.
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| recovery_param | If it is a restore, the recovery key |
| recover | Whether it is a restore |
| two_random | Whether it is a non-deterministic wallet |
| create_address_file | Whether to create an address file |
| void tools::wallet2::generate | ( | const std::string & | wallet, |
| const epee::wipeable_string & | password, | ||
| const cryptonote::account_public_address & | account_public_address, | ||
| const crypto::secret_key & | spendkey, | ||
| const crypto::secret_key & | viewkey, | ||
| bool | create_address_file = false ) |
Creates a wallet from a public address and a spend/view secret key pair.
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| account_public_address | The account's public address |
| spendkey | spend secret key |
| viewkey | view secret key |
| create_address_file | Whether to create an address file |
| void tools::wallet2::generate | ( | const std::string & | wallet, |
| const epee::wipeable_string & | password, | ||
| const cryptonote::account_public_address & | account_public_address, | ||
| const crypto::secret_key & | viewkey = crypto::secret_key(), | ||
| bool | create_address_file = false ) |
Creates a watch only wallet from a public address and a view secret key.
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| account_public_address | The account's public address |
| viewkey | view secret key |
| create_address_file | Whether to create an address file |
| void tools::wallet2::generate | ( | const std::string & | wallet_, |
| const epee::wipeable_string & | password, | ||
| const epee::wipeable_string & | multisig_data, | ||
| bool | create_address_file = false ) |
Generates a wallet or restores one. Assumes the multisig setup has already completed for the provided multisig info.
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| multisig_data | The multisig restore info and keys |
| create_address_file | Whether to create an address file |
|
private |
|
private |
|
private |
|
inline |
|
inline |
| const std::pair< serializable_map< std::string, std::string >, std::vector< std::string > > & tools::wallet2::get_account_tags | ( | ) |
Get the list of registered account tags.
|
inline |
|
inline |
|
inline |
GUI Address book get/store.
| uint64_t tools::wallet2::get_approximate_blockchain_height | ( | ) | const |
Calculates the approximate blockchain height from current date/time.
| bool tools::wallet2::get_attribute | ( | const std::string & | key, |
| std::string & | value ) const |
| uint64_t tools::wallet2::get_base_fee | ( | ) |
|
inline |
| uint64_t tools::wallet2::get_blockchain_height_by_date | ( | uint16_t | year, |
| uint8_t | month, | ||
| uint8_t | day ) |
| uint64_t tools::wallet2::get_bytes_received | ( | ) | const |
| uint64_t tools::wallet2::get_bytes_sent | ( | ) | const |
| boost::optional< wallet2::cache_file_data > tools::wallet2::get_cache_file_data | ( | ) |
get_cache_file_data Get wallet cache data which can be stored to a wallet file.
|
private |
|
private |
|
inline |
| uint8_t tools::wallet2::get_current_hard_fork | ( | ) |
| std::string tools::wallet2::get_daemon_address | ( | ) | const |
| uint64_t tools::wallet2::get_daemon_adjusted_time | ( | ) |
| uint64_t tools::wallet2::get_daemon_blockchain_height | ( | std::string & | err | ) |
| uint64_t tools::wallet2::get_daemon_blockchain_target_height | ( | std::string & | err | ) |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
| std::string tools::wallet2::get_description | ( | ) | const |
|
private |
|
inline |
|
inline |
|
private |
| int tools::wallet2::get_fee_algorithm | ( | ) |
| uint64_t tools::wallet2::get_fee_quantization_mask | ( | ) |
| std::string tools::wallet2::get_integrated_address_as_str | ( | const crypto::hash8 & | payment_id | ) | const |
| std::string tools::wallet2::get_keys_file | ( | ) | const |
|
private |
| boost::optional< wallet2::keys_file_data > tools::wallet2::get_keys_file_data | ( | const epee::wipeable_string & | password, |
| bool | watch_only ) |
get_keys_file_data Get wallet keys data which can be stored to a wallet file.
| password | Password that currently locks the wallet |
| watch_only | true to include only view key, false to include both spend and view keys |
| error::invalid_password | if password does not match current wallet |
|
inline |
|
inline |
|
inline |
| uint64_t tools::wallet2::get_max_ring_size | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
| uint64_t tools::wallet2::get_min_ring_size | ( | ) |
|
private |
|
private |
| std::string tools::wallet2::get_multisig_first_kex_msg | ( | ) | const |
Get initial message to start multisig key exchange (before 'make_multisig()' is called).
|
private |
|
private |
| bool tools::wallet2::get_multisig_seed | ( | epee::wipeable_string & | seed, |
| const epee::wipeable_string & | passphrase = std::string() ) const |
| crypto::public_key tools::wallet2::get_multisig_signer_public_key | ( | ) | const |
| crypto::public_key tools::wallet2::get_multisig_signing_public_key | ( | const crypto::secret_key & | skey | ) | const |
| crypto::public_key tools::wallet2::get_multisig_signing_public_key | ( | size_t | idx | ) | const |
| mms::multisig_wallet_state tools::wallet2::get_multisig_wallet_state | ( | ) | const |
| uint64_t tools::wallet2::get_num_rct_outputs | ( | ) |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
| void tools::wallet2::get_payments | ( | const crypto::hash & | payment_id, |
| std::list< wallet2::payment_details > & | payments, | ||
| uint64_t | min_height = 0, | ||
| const boost::optional< uint32_t > & | subaddr_account = boost::none, | ||
| const std::set< uint32_t > & | subaddr_indices = {} ) const |
| void tools::wallet2::get_payments | ( | std::list< std::pair< crypto::hash, wallet2::payment_details > > & | payments, |
| uint64_t | min_height, | ||
| uint64_t | max_height = (uint64_t)-1, | ||
| const boost::optional< uint32_t > & | subaddr_account = boost::none, | ||
| const std::set< uint32_t > & | subaddr_indices = {} ) const |
| void tools::wallet2::get_payments_out | ( | std::list< std::pair< crypto::hash, wallet2::confirmed_transfer_details > > & | confirmed_payments, |
| uint64_t | min_height, | ||
| uint64_t | max_height = (uint64_t)-1, | ||
| const boost::optional< uint32_t > & | subaddr_account = boost::none, | ||
| const std::set< uint32_t > & | subaddr_indices = {} ) const |
| std::vector< cryptonote::public_node > tools::wallet2::get_public_nodes | ( | bool | white_only = true | ) |
|
private |
|
inline |
|
inline |
| std::string tools::wallet2::get_reserve_proof | ( | const boost::optional< std::pair< uint32_t, uint64_t > > & | account_minreserve, |
| const std::string & | message ) |
Generates a proof that proves the reserve of unspent funds.
| account_minreserve | When specified, collect outputs only belonging to the given account and prove the smallest reserve above the given amount When unspecified, proves for all unspent outputs across all accounts |
| message | Arbitrary challenge message to be signed together |
|
private |
| bool tools::wallet2::get_ring | ( | const crypto::key_image & | key_image, |
| std::vector< uint64_t > & | outs ) |
|
inline |
|
private |
| bool tools::wallet2::get_rings | ( | const crypto::chacha_key & | key, |
| const std::vector< crypto::key_image > & | key_images, | ||
| std::vector< std::vector< uint64_t > > & | outs ) |
| bool tools::wallet2::get_rings | ( | const crypto::hash & | txid, |
| std::vector< std::pair< crypto::key_image, std::vector< uint64_t > > > & | outs ) |
|
inline |
| bool tools::wallet2::get_rpc_payment_info | ( | bool | mining, |
| bool & | payment_required, | ||
| uint64_t & | credits, | ||
| uint64_t & | diff, | ||
| uint64_t & | credits_per_hash_found, | ||
| cryptonote::blobdata & | hashing_blob, | ||
| uint64_t & | height, | ||
| uint64_t & | seed_height, | ||
| crypto::hash & | seed_hash, | ||
| crypto::hash & | next_seed_hash, | ||
| uint32_t & | cookie ) |
|
private |
| bool tools::wallet2::get_seed | ( | epee::wipeable_string & | electrum_words, |
| const epee::wipeable_string & | passphrase = epee::wipeable_string() ) const |
| const std::string & tools::wallet2::get_seed_language | ( | ) | const |
Gets the seed language.
|
private |
|
private |
| std::string tools::wallet2::get_spend_proof | ( | const crypto::hash & | txid, |
| const std::string & | message ) |
| cryptonote::account_public_address tools::wallet2::get_subaddress | ( | const cryptonote::subaddress_index & | index | ) | const |
| std::string tools::wallet2::get_subaddress_as_str | ( | const cryptonote::subaddress_index & | index | ) | const |
| boost::optional< cryptonote::subaddress_index > tools::wallet2::get_subaddress_index | ( | const cryptonote::account_public_address & | address | ) | const |
| std::string tools::wallet2::get_subaddress_label | ( | const cryptonote::subaddress_index & | index | ) | const |
|
inline |
| crypto::public_key tools::wallet2::get_subaddress_spend_public_key | ( | const cryptonote::subaddress_index & | index | ) | const |
| std::vector< crypto::public_key > tools::wallet2::get_subaddress_spend_public_keys | ( | uint32_t | account, |
| uint32_t | begin, | ||
| uint32_t | end ) const |
|
private |
| const wallet2::transfer_details & tools::wallet2::get_transfer_details | ( | size_t | idx | ) | const |
| void tools::wallet2::get_transfers | ( | wallet2::transfer_container & | incoming_transfers | ) | const |
| std::string tools::wallet2::get_tx_device_aux | ( | const crypto::hash & | txid | ) | const |
|
private |
| bool tools::wallet2::get_tx_key | ( | const crypto::hash & | txid, |
| crypto::secret_key & | tx_key, | ||
| std::vector< crypto::secret_key > & | additional_tx_keys ) |
| bool tools::wallet2::get_tx_key_cached | ( | const crypto::hash & | txid, |
| crypto::secret_key & | tx_key, | ||
| std::vector< crypto::secret_key > & | additional_tx_keys ) const |
| std::string tools::wallet2::get_tx_note | ( | const crypto::hash & | txid | ) | const |
| std::string tools::wallet2::get_tx_proof | ( | const crypto::hash & | txid, |
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const std::string & | message ) |
| std::string tools::wallet2::get_tx_proof | ( | const cryptonote::transaction & | tx, |
| const crypto::secret_key & | tx_key, | ||
| const std::vector< crypto::secret_key > & | additional_tx_keys, | ||
| const cryptonote::account_public_address & | address, | ||
| bool | is_subaddress, | ||
| const std::string & | message ) const |
| crypto::public_key tools::wallet2::get_tx_pub_key_from_received_outs | ( | const tools::wallet2::transfer_details & | td | ) | const |
| void tools::wallet2::get_unconfirmed_payments | ( | std::list< std::pair< crypto::hash, wallet2::pool_payment_details > > & | unconfirmed_payments, |
| const boost::optional< uint32_t > & | subaddr_account = boost::none, | ||
| const std::set< uint32_t > & | subaddr_indices = {} ) const |
| void tools::wallet2::get_unconfirmed_payments_out | ( | std::list< std::pair< crypto::hash, wallet2::unconfirmed_transfer_details > > & | unconfirmed_payments, |
| const boost::optional< uint32_t > & | subaddr_account = boost::none, | ||
| const std::set< uint32_t > & | subaddr_indices = {} ) const |
|
private |
| std::string tools::wallet2::get_wallet_file | ( | ) | const |
|
inline |
|
inline |
|
private |
| bool tools::wallet2::has_multisig_partial_key_images | ( | ) | const |
| bool tools::wallet2::has_proxy_option | ( | ) | const |
has_proxy_option Check the global proxy (–proxy) has been defined or not.
|
static |
|
static |
| bool tools::wallet2::has_unknown_key_images | ( | ) | const |
| void tools::wallet2::hash_m_transfer | ( | const transfer_details & | transfer, |
| crypto::hash & | hash ) const |
| uint64_t tools::wallet2::hash_m_transfers | ( | boost::optional< uint64_t > | transfer_height, |
| crypto::hash & | hash ) const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void tools::wallet2::import_blockchain | ( | const std::tuple< size_t, crypto::hash, std::vector< crypto::hash > > & | bc | ) |
| uint64_t tools::wallet2::import_key_images | ( | const std::string & | filename, |
| uint64_t & | spent, | ||
| uint64_t & | unspent ) |
| uint64_t tools::wallet2::import_key_images | ( | const std::vector< std::pair< crypto::key_image, crypto::signature > > & | signed_key_images, |
| size_t | offset, | ||
| uint64_t & | spent, | ||
| uint64_t & | unspent, | ||
| bool | check_spent = true ) |
| bool tools::wallet2::import_key_images | ( | signed_tx_set & | signed_tx, |
| size_t | offset = 0, | ||
| bool | only_selected_transfers = false ) |
| bool tools::wallet2::import_key_images | ( | std::vector< crypto::key_image > | key_images, |
| size_t | offset = 0, | ||
| boost::optional< std::unordered_set< size_t > > | selected_transfers = boost::none ) |
| size_t tools::wallet2::import_multisig | ( | std::vector< cryptonote::blobdata > | info, |
| bool | refresh_after_import = true ) |
Import a set of multisig info from multisig partners
| info | Multisig info from other participants |
| refresh_after_import | Whether to refresh the wallet and rescan spent outputs after importing |
| size_t tools::wallet2::import_outputs | ( | const std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::exported_transfer_details > > & | outputs | ) |
| size_t tools::wallet2::import_outputs | ( | const std::tuple< uint64_t, uint64_t, std::vector< tools::wallet2::transfer_details > > & | outputs | ) |
| size_t tools::wallet2::import_outputs_from_str | ( | const std::string & | outputs_st | ) |
| void tools::wallet2::import_payments | ( | const payment_container & | payments | ) |
| void tools::wallet2::import_payments_out | ( | const std::list< std::pair< crypto::hash, wallet2::confirmed_transfer_details > > & | confirmed_payments | ) |
|
inline |
|
inline |
| bool tools::wallet2::init | ( | std::string | daemon_address = "http://localhost:8080", |
| boost::optional< epee::net_utils::http::login > | daemon_login = boost::none, | ||
| const std::string & | proxy = "", | ||
| uint64_t | upper_transaction_weight_limit = 0, | ||
| bool | trusted_daemon = true, | ||
| epee::net_utils::ssl_options_t | ssl_options = epee::net_utils::ssl_support_t::e_ssl_support_autodetect ) |
|
static |
|
private |
|
inline |
|
inline |
|
inline |
|
private |
|
inline |
|
inline |
| bool tools::wallet2::is_deprecated | ( | ) | const |
Tells if the wallet file is deprecated.
| bool tools::wallet2::is_deterministic | ( | ) | const |
Checks if deterministic wallet.
| bool tools::wallet2::is_keys_file_locked | ( | ) | const |
|
inline |
|
inline |
|
inline |
| bool tools::wallet2::is_out_to_acc | ( | const cryptonote::account_public_address & | address, |
| const crypto::public_key & | out_key, | ||
| const crypto::key_derivation & | derivation, | ||
| const std::vector< crypto::key_derivation > & | additional_derivations, | ||
| const size_t | output_index, | ||
| const boost::optional< crypto::view_tag > & | view_tag_opt, | ||
| crypto::key_derivation & | found_derivation ) const |
|
private |
| bool tools::wallet2::is_synced | ( | ) |
| bool tools::wallet2::is_transfer_unlocked | ( | const transfer_details & | td | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Checks if light wallet. A light wallet sends view key to a server where the blockchain is scanned.
| bool tools::wallet2::light_wallet_get_address_info | ( | tools::COMMAND_RPC_GET_ADDRESS_INFO::response & | response | ) |
| void tools::wallet2::light_wallet_get_address_txs | ( | ) |
| void tools::wallet2::light_wallet_get_outs | ( | std::vector< std::vector< get_outs_entry > > & | outs, |
| const std::vector< size_t > & | selected_transfers, | ||
| size_t | fake_outputs_count ) |
| void tools::wallet2::light_wallet_get_unspent_outs | ( | ) |
| bool tools::wallet2::light_wallet_import_wallet_request | ( | tools::COMMAND_RPC_IMPORT_WALLET_REQUEST::response & | response | ) |
| bool tools::wallet2::light_wallet_key_image_is_ours | ( | const crypto::key_image & | key_image, |
| const crypto::public_key & | tx_public_key, | ||
| uint64_t | out_index ) |
| bool tools::wallet2::light_wallet_parse_rct_str | ( | const std::string & | rct_string, |
| const crypto::public_key & | tx_pub_key, | ||
| uint64_t | internal_output_index, | ||
| rct::key & | decrypted_mask, | ||
| rct::key & | rct_commit, | ||
| bool | decrypt ) const |
| void tools::wallet2::load | ( | const std::string & | wallet, |
| const epee::wipeable_string & | password, | ||
| const std::string & | keys_buf = "", | ||
| const std::string & | cache_buf = "" ) |
|
inline |
|
inline |
|
static |
|
private |
Load wallet keys information from wallet file.
Load wallet information from wallet file.
| keys_file_name | Name of wallet file |
| password | Password of wallet file |
|
private |
Load wallet keys information from a string buffer.
| keys_buf | Keys buffer to load |
| password | Password of keys buffer |
|
private |
| bool tools::wallet2::load_multisig_tx | ( | cryptonote::blobdata | blob, |
| multisig_tx_set & | exported_txs, | ||
| std::function< bool(const multisig_tx_set &)> | accept_func = NULL ) |
| bool tools::wallet2::load_multisig_tx_from_file | ( | const std::string & | filename, |
| multisig_tx_set & | exported_txs, | ||
| std::function< bool(const multisig_tx_set &)> | accept_func = NULL ) |
| bool tools::wallet2::load_tx | ( | const std::string & | signed_filename, |
| std::vector< tools::wallet2::pending_tx > & | ptx, | ||
| std::function< bool(const signed_tx_set &)> | accept_func = NULL ) |
| bool tools::wallet2::load_unsigned_tx | ( | const std::string & | unsigned_filename, |
| unsigned_tx_set & | exported_txs ) const |
|
private |
|
private |
| bool tools::wallet2::lock_keys_file | ( | ) |
|
private |
|
static |
|
static |
|
static |
Just parses variables.
|
static |
Uses stdin and stdout. Returns a wallet2 and password for wallet_file if no errors.
|
static |
Uses stdin and stdout. Returns a wallet2 if no errors.
| std::string tools::wallet2::make_multisig | ( | const epee::wipeable_string & | password, |
| const std::vector< std::string > & | kex_messages, | ||
| const std::uint32_t | threshold ) |
Creates a multisig wallet.
| wallet2::multisig_tx_set tools::wallet2::make_multisig_tx_set | ( | const std::vector< pending_tx > & | ptx_vector | ) | const |
|
static |
Uses stdin and stdout. Returns a wallet2 and password for wallet with no file if no errors.
| bool tools::wallet2::make_rpc_payment | ( | uint32_t | nonce, |
| uint32_t | cookie, | ||
| uint64_t & | credits, | ||
| uint64_t & | balance ) |
| std::string tools::wallet2::make_uri | ( | const std::string & | address, |
| const std::string & | payment_id, | ||
| uint64_t | amount, | ||
| const std::string & | tx_description, | ||
| const std::string & | recipient_name, | ||
| std::string & | error ) const |
|
inline |
|
inline |
|
inline |
|
inline |
| bool tools::wallet2::multisig | ( | bool * | ready = NULL, |
| uint32_t * | threshold = NULL, | ||
| uint32_t * | total = NULL ) const |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
static |
| bool tools::wallet2::parse_multisig_tx_from_str | ( | std::string | multisig_tx_st, |
| multisig_tx_set & | exported_txs ) const |
|
static |
|
static |
| bool tools::wallet2::parse_tx_from_str | ( | const std::string & | signed_tx_st, |
| std::vector< tools::wallet2::pending_tx > & | ptx, | ||
| std::function< bool(const signed_tx_set &)> | accept_func ) |
| bool tools::wallet2::parse_unsigned_tx_from_str | ( | const std::string & | unsigned_tx_st, |
| unsigned_tx_set & | exported_txs ) const |
| bool tools::wallet2::parse_uri | ( | const std::string & | uri, |
| std::string & | address, | ||
| std::string & | payment_id, | ||
| uint64_t & | amount, | ||
| std::string & | tx_description, | ||
| std::string & | recipient_name, | ||
| std::vector< std::string > & | unknown_parameters, | ||
| std::string & | error ) |
| std::string tools::wallet2::path | ( | ) | const |
|
inline |
|
inline |
|
private |
| size_t tools::wallet2::pop_best_value | ( | std::vector< size_t > & | unused_dust_indices, |
| const std::vector< size_t > & | selected_transfers, | ||
| bool | smallest = false ) const |
| size_t tools::wallet2::pop_best_value_from | ( | const transfer_container & | transfers, |
| std::vector< size_t > & | unused_dust_indices, | ||
| const std::vector< size_t > & | selected_transfers, | ||
| bool | smallest = false ) const |
|
private |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
| void tools::wallet2::process_pool_state | ( | const std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > & | txs | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
static |
determine the key storage for the specified wallet file
| device_type | (OUT) wallet backend as enumerated in hw::device::device_type |
| keys_file_name | Keys file to verify password for |
| password | Password to verify |
for verification only - determines key storage hardware
| bool tools::wallet2::reconnect_device | ( | ) |
| void tools::wallet2::refresh | ( | bool | trusted_daemon | ) |
| bool tools::wallet2::refresh | ( | bool | trusted_daemon, |
| uint64_t & | blocks_fetched, | ||
| bool & | received_money, | ||
| bool & | ok ) |
| void tools::wallet2::refresh | ( | bool | trusted_daemon, |
| uint64_t | start_height, | ||
| uint64_t & | blocks_fetched ) |
| void tools::wallet2::refresh | ( | bool | trusted_daemon, |
| uint64_t | start_height, | ||
| uint64_t & | blocks_fetched, | ||
| bool & | received_money, | ||
| bool | check_pool = true, | ||
| bool | try_incremental = true, | ||
| uint64_t | max_blocks = std::numeric_limits<uint64_t>::max() ) |
|
private |
| void tools::wallet2::remove_obsolete_pool_txs | ( | const std::vector< crypto::hash > & | tx_hashes, |
| bool | remove_if_found ) |
|
private |
| void tools::wallet2::rescan_blockchain | ( | bool | hard, |
| bool | refresh = true, | ||
| bool | keep_key_images = false ) |
| void tools::wallet2::rescan_spent | ( | ) |
|
private |
| void tools::wallet2::restore | ( | const std::string & | wallet_, |
| const epee::wipeable_string & | password, | ||
| const std::string & | device_name, | ||
| bool | create_address_file = false ) |
Restore a wallet hold by an HW.
Creates a wallet from a device.
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| device_name | name of HW to use |
| create_address_file | Whether to create an address file |
| wallet_ | Name of wallet file |
| password | Password of wallet file |
| device_name | device string address |
| void tools::wallet2::rewrite | ( | const std::string & | wallet_name, |
| const epee::wipeable_string & | password ) |
Rewrites to the wallet file for wallet upgrade (doesn't generate key, assumes it's already there).
| wallet_name | Name of wallet file (should exist) |
| password | Password for wallet file |
| bool tools::wallet2::sanity_check | ( | const std::vector< wallet2::pending_tx > & | ptx_vector, |
| const std::vector< cryptonote::tx_destination_entry > & | dsts, | ||
| const unique_index_container & | subtract_fee_from_outputs = {} ) const |
| bool tools::wallet2::save_multisig_tx | ( | const multisig_tx_set & | txs, |
| const std::string & | filename ) |
| std::string tools::wallet2::save_multisig_tx | ( | const std::vector< pending_tx > & | ptx_vector | ) |
| bool tools::wallet2::save_multisig_tx | ( | const std::vector< pending_tx > & | ptx_vector, |
| const std::string & | filename ) |
| std::string tools::wallet2::save_multisig_tx | ( | multisig_tx_set | txs | ) |
| bool tools::wallet2::save_to_file | ( | const std::string & | path_to_file, |
| const std::string & | binary, | ||
| bool | is_printable = false ) const |
| bool tools::wallet2::save_tx | ( | const std::vector< pending_tx > & | ptx_vector, |
| const std::string & | filename ) const |
|
private |
| void tools::wallet2::scan_tx | ( | const std::unordered_set< crypto::hash > & | txids | ) |
| bool tools::wallet2::search_for_rpc_payment | ( | uint64_t | credits_target, |
| uint32_t | n_threads, | ||
| const std::function< bool(uint64_t, uint64_t)> & | startfunc, | ||
| const std::function< bool(unsigned)> & | contfunc, | ||
| const std::function< bool(uint64_t)> & | foundfunc = NULL, | ||
| const std::function< void(const std::string &)> & | errorfunc = NULL ) |
|
inline |
|
inline |
|
inline |
|
inline |
| std::vector< size_t > tools::wallet2::select_available_mixable_outputs | ( | ) |
| std::vector< size_t > tools::wallet2::select_available_outputs | ( | const std::function< bool(const transfer_details &td)> & | f | ) |
| std::vector< size_t > tools::wallet2::select_available_outputs_from_histogram | ( | uint64_t | count, |
| bool | atleast, | ||
| bool | unlocked, | ||
| bool | allow_rct ) |
| std::vector< size_t > tools::wallet2::select_available_unmixable_outputs | ( | ) |
|
private |
|
inline |
| void tools::wallet2::set_account_tag | ( | const std::set< uint32_t > & | account_indices, |
| const std::string & | tag ) |
Set a tag to the given accounts.
| account_indices | Indices of accounts. |
| tag | Tag's name. If empty, the accounts become untagged. |
| void tools::wallet2::set_account_tag_description | ( | const std::string & | tag, |
| const std::string & | description ) |
Set the label of the given tag.
| tag | Tag's name (which must be non-empty). |
| description | Tag's description. |
| bool tools::wallet2::set_address_book_row | ( | size_t | row_id, |
| const cryptonote::account_public_address & | address, | ||
| const crypto::hash8 * | payment_id, | ||
| const std::string & | description, | ||
| bool | is_subaddress ) |
| void tools::wallet2::set_attribute | ( | const std::string & | key, |
| const std::string & | value ) |
| bool tools::wallet2::set_blackballed_outputs | ( | const std::vector< std::pair< uint64_t, uint64_t > > & | outputs, |
| bool | add = false ) |
|
inline |
| bool tools::wallet2::set_daemon | ( | std::string | daemon_address = "http://localhost:8080", |
| boost::optional< epee::net_utils::http::login > | daemon_login = boost::none, | ||
| bool | trusted_daemon = true, | ||
| epee::net_utils::ssl_options_t | ssl_options = epee::net_utils::ssl_support_t::e_ssl_support_autodetect, | ||
| const std::string & | proxy = "" ) |
|
inline |
| void tools::wallet2::set_description | ( | const std::string & | description | ) |
|
inline |
|
inline |
|
inline |
|
inline |
| bool tools::wallet2::set_proxy | ( | const std::string & | address | ) |
|
inline |
|
inline |
| bool tools::wallet2::set_ring | ( | const crypto::key_image & | key_image, |
| const std::vector< uint64_t > & | outs, | ||
| bool | relative ) |
| bool tools::wallet2::set_ring_database | ( | const std::string & | filename | ) |
| bool tools::wallet2::set_rings | ( | const std::vector< std::pair< crypto::key_image, std::vector< uint64_t > > > & | rings, |
| bool | relative ) |
|
inline |
| void tools::wallet2::set_seed_language | ( | const std::string & | language | ) |
Sets the seed language.
| language | Seed language to set to |
|
private |
| void tools::wallet2::set_subaddress_label | ( | const cryptonote::subaddress_index & | index, |
| const std::string & | label ) |
| void tools::wallet2::set_subaddress_lookahead | ( | size_t | major, |
| size_t | minor ) |
|
inline |
| void tools::wallet2::set_tx_device_aux | ( | const crypto::hash & | txid, |
| const std::string & | aux ) |
| void tools::wallet2::set_tx_key | ( | const crypto::hash & | txid, |
| const crypto::secret_key & | tx_key, | ||
| const std::vector< crypto::secret_key > & | additional_tx_keys, | ||
| const boost::optional< cryptonote::account_public_address > & | single_destination_subaddress = boost::none ) |
| void tools::wallet2::set_tx_note | ( | const crypto::hash & | txid, |
| const std::string & | note ) |
|
inline |
|
private |
|
inline |
|
inline |
| void tools::wallet2::setup_background_sync | ( | BackgroundSyncType | background_sync_type, |
| const epee::wipeable_string & | wallet_password, | ||
| const boost::optional< epee::wipeable_string > & | background_cache_password ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
inline |
| std::string tools::wallet2::sign | ( | const std::string & | data, |
| message_signature_type_t | signature_type, | ||
| cryptonote::subaddress_index | index = {0, 0} ) const |
| std::string tools::wallet2::sign_multisig_participant | ( | const std::string & | data | ) | const |
| bool tools::wallet2::sign_multisig_tx | ( | multisig_tx_set & | exported_txs, |
| std::vector< crypto::hash > & | txids ) |
| bool tools::wallet2::sign_multisig_tx_from_file | ( | const std::string & | filename, |
| std::vector< crypto::hash > & | txids, | ||
| std::function< bool(const multisig_tx_set &)> | accept_func ) |
| bool tools::wallet2::sign_multisig_tx_to_file | ( | multisig_tx_set & | exported_txs, |
| const std::string & | filename, | ||
| std::vector< crypto::hash > & | txids ) |
| bool tools::wallet2::sign_tx | ( | const std::string & | unsigned_filename, |
| const std::string & | signed_filename, | ||
| std::vector< wallet2::pending_tx > & | ptx, | ||
| std::function< bool(const unsigned_tx_set &)> | accept_func = NULL, | ||
| bool | export_raw = false ) |
| bool tools::wallet2::sign_tx | ( | unsigned_tx_set & | exported_txs, |
| const std::string & | signed_filename, | ||
| std::vector< wallet2::pending_tx > & | ptx, | ||
| bool | export_raw = false ) |
| bool tools::wallet2::sign_tx | ( | unsigned_tx_set & | exported_txs, |
| std::vector< wallet2::pending_tx > & | ptx, | ||
| signed_tx_set & | signed_txs ) |
| std::string tools::wallet2::sign_tx_dump_to_str | ( | unsigned_tx_set & | exported_txs, |
| std::vector< wallet2::pending_tx > & | ptx, | ||
| signed_tx_set & | signed_txes ) |
|
private |
|
private |
| void tools::wallet2::start_background_sync | ( | ) |
|
inline |
| void tools::wallet2::stop_background_sync | ( | const epee::wipeable_string & | wallet_password, |
| const crypto::secret_key & | spend_secret_key = crypto::null_skey ) |
| void tools::wallet2::store | ( | ) |
|
private |
|
private |
|
private |
|
private |
Stores wallet information to wallet file.
| keys_file_name | Name of wallet file |
| password | Password of wallet file |
| watch_only | true to save only view key, false to save both spend and view keys |
|
private |
| void tools::wallet2::store_to | ( | const std::string & | path, |
| const epee::wipeable_string & | password, | ||
| bool | force_rewrite_keys = false ) |
store_to Stores wallet to another file(s), deleting old ones
| path | Path to the wallet file (keys and address filenames will be generated based on this filename) |
| password | Password that currently locks the wallet |
| force_rewrite_keys | if true, always rewrite keys file |
Leave both "path" and "password" blank to restore the cache file to the current position in the disk (which is the same as calling store()). If you want to store the wallet with a new password, use the method change_password().
Normally the keys file is not overwritten when storing, except when force_rewrite_keys is true or when path is a new wallet file.
| error::invalid_password | If storing keys file and old password is incorrect |
|
inline |
|
inline |
| void tools::wallet2::thaw | ( | const crypto::key_image & | ki | ) |
| void tools::wallet2::thaw | ( | size_t | idx | ) |
|
private |
|
static |
|
inline |
|
inline |
| void tools::wallet2::transfer_selected | ( | const std::vector< cryptonote::tx_destination_entry > & | dsts, |
| const std::vector< size_t > & | selected_transfers, | ||
| size_t | fake_outputs_count, | ||
| std::vector< std::vector< tools::wallet2::get_outs_entry > > & | outs, | ||
| std::unordered_set< crypto::public_key > & | valid_public_keys_cache, | ||
| uint64_t | fee, | ||
| const std::vector< uint8_t > & | extra, | ||
| T | destination_split_strategy, | ||
| const tx_dust_policy & | dust_policy, | ||
| cryptonote::transaction & | tx, | ||
| pending_tx & | ptx, | ||
| bool | use_view_tags ) |
| void tools::wallet2::transfer_selected | ( | const std::vector< cryptonote::tx_destination_entry > & | dsts, |
| const std::vector< size_t > & | selected_transfers, | ||
| size_t | fake_outputs_count, | ||
| std::vector< std::vector< tools::wallet2::get_outs_entry > > & | outs, | ||
| std::unordered_set< crypto::public_key > & | valid_public_keys_cache, | ||
| uint64_t | fee, | ||
| const std::vector< uint8_t > & | extra, | ||
| T | destination_split_strategy, | ||
| const tx_dust_policy & | dust_policy, | ||
| cryptonote::transaction & | tx, | ||
| pending_tx & | ptx, | ||
| const bool | use_view_tags ) |
| void tools::wallet2::transfer_selected_rct | ( | std::vector< cryptonote::tx_destination_entry > | dsts, |
| const std::vector< size_t > & | selected_transfers, | ||
| size_t | fake_outputs_count, | ||
| std::vector< std::vector< tools::wallet2::get_outs_entry > > & | outs, | ||
| std::unordered_set< crypto::public_key > & | valid_public_keys_cache, | ||
| uint64_t | fee, | ||
| const std::vector< uint8_t > & | extra, | ||
| cryptonote::transaction & | tx, | ||
| pending_tx & | ptx, | ||
| const rct::RCTConfig & | rct_config, | ||
| const bool | use_view_tags ) |
|
private |
|
private |
|
private |
| bool tools::wallet2::unlock_keys_file | ( | ) |
| uint64_t tools::wallet2::unlocked_balance | ( | uint32_t | subaddr_index_major, |
| bool | strict, | ||
| uint64_t * | blocks_to_unlock = NULL, | ||
| uint64_t * | time_to_unlock = NULL ) |
| uint64_t tools::wallet2::unlocked_balance_all | ( | bool | strict, |
| uint64_t * | blocks_to_unlock = NULL, | ||
| uint64_t * | time_to_unlock = NULL ) |
| std::map< uint32_t, std::pair< uint64_t, std::pair< uint64_t, uint64_t > > > tools::wallet2::unlocked_balance_per_subaddress | ( | uint32_t | subaddr_index_major, |
| bool | strict ) |
| bool tools::wallet2::unset_ring | ( | const crypto::hash & | txid | ) |
| bool tools::wallet2::unset_ring | ( | const std::vector< crypto::key_image > & | key_images | ) |
|
private |
| void tools::wallet2::update_pool_state | ( | std::vector< std::tuple< cryptonote::transaction, crypto::hash, bool > > & | process_txs, |
| bool | refreshed = false, | ||
| bool | try_incremental = false ) |
|
private |
|
private |
| tools::wallet2::message_signature_result_t tools::wallet2::verify | ( | const std::string & | data, |
| const cryptonote::account_public_address & | address, | ||
| const std::string & | signature ) const |
|
inline |
verifies given password is correct for default wallet keys file
| bool tools::wallet2::verify_password | ( | const epee::wipeable_string & | password, |
| crypto::secret_key & | spend_key_out ) |
verify password for default wallet keys file.
| password | Password to verify |
for verification only should not mutate state, unlike load_keys() can be used prior to rewriting wallet keys file, to ensure user has entered the correct password
|
inlinestatic |
|
static |
verify password for specified wallet keys file.
| keys_file_name | Keys file to verify password for |
| password | Password to verify |
| no_spend_key | If set = only verify view keys, otherwise also spend keys |
| hwdev | The hardware device to use |
for verification only should not mutate state, unlike load_keys() can be used prior to rewriting wallet keys file, to ensure user has entered the correct password
|
private |
|
private |
| bool tools::wallet2::verify_with_public_key | ( | const std::string & | data, |
| const crypto::public_key & | public_key, | ||
| const std::string & | signature ) const |
verify_with_public_key verifies message was signed with given public key
| data | message |
| public_key | public key to check signature |
| signature | signature of the message |
|
static |
Check if wallet keys and bin files exist.
| file_path | Wallet file path |
| keys_file_exists | Whether keys file exists |
| wallet_file_exists | Whether bin file exists |
|
static |
Check if wallet file path is valid format.
| file_path | Wallet file path |
|
inline |
|
private |
| void tools::wallet2::write_watch_only_wallet | ( | const std::string & | wallet_name, |
| const epee::wipeable_string & | password, | ||
| std::string & | new_keys_filename ) |
Writes to a file named based on the normal wallet (doesn't generate key, assumes it's already there).
| wallet_name | Base name of wallet file |
| password | Password for wallet file |
| new_keys_filename | [OUT] Name of new keys file |
|
friend |
|
friend |
|
friend |
|
friend |
| const char* const tools::wallet2::ATTRIBUTE_DESCRIPTION = "wallet2.description" |
|
staticprivate |
|
staticprivate |
|
private |
Whether the wallet file is of an old file format
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
if > 1 spend secret key will not match spend public key
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
request txkey to be returned in RPC, and store in the wallet cache file
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
no spend key
|
staticconstexpr |
|
private |
Language of the mnemonics (seed).