Monero C++ Library
Loading...
Searching...
No Matches
monero::monero_wallet_full Class Reference

#include <monero_wallet_full.h>

Inheritance diagram for monero::monero_wallet_full:
monero::monero_wallet

Public Member Functions

 ~monero_wallet_full ()
 
bool is_view_only () const override
 
void set_daemon_connection (const std::string &uri, const std::string &username="", const std::string &password="") override
 
void set_daemon_connection (const boost::optional< monero_rpc_connection > &connection) override
 
void set_daemon_proxy (const std::string &uri="") override
 
boost::optional< monero_rpc_connectionget_daemon_connection () const override
 
bool is_connected_to_daemon () const override
 
bool is_daemon_synced () const override
 
bool is_daemon_trusted () const override
 
bool is_synced () const override
 
monero_version get_version () const override
 
std::string get_path () const override
 
monero_network_type get_network_type () const override
 
std::string get_seed () const override
 
std::string get_seed_language () const override
 
std::string get_public_view_key () const override
 
std::string get_private_view_key () const override
 
std::string get_public_spend_key () const override
 
std::string get_private_spend_key () const override
 
std::string get_address (const uint32_t account_idx, const uint32_t subaddress_idx) const override
 
monero_subaddress get_address_index (const std::string &address) const override
 
monero_integrated_address get_integrated_address (const std::string &standard_address="", const std::string &payment_id="") const override
 
monero_integrated_address decode_integrated_address (const std::string &integrated_address) const override
 
uint64_t get_height () const override
 
uint64_t get_restore_height () const override
 
void set_restore_height (uint64_t restore_height) override
 
uint64_t get_daemon_height () const override
 
uint64_t get_daemon_max_peer_height () const override
 
uint64_t get_height_by_date (uint16_t year, uint8_t month, uint8_t day) const override
 
void add_listener (monero_wallet_listener &listener) override
 
void remove_listener (monero_wallet_listener &listener) override
 
std::set< monero_wallet_listener * > get_listeners () override
 
monero_sync_result sync () override
 
monero_sync_result sync (monero_wallet_listener &listener) override
 
monero_sync_result sync (uint64_t start_height) override
 
monero_sync_result sync (uint64_t start_height, monero_wallet_listener &listener) override
 
void start_syncing (uint64_t sync_period_in_ms) override
 
void stop_syncing () override
 
void scan_txs (const std::vector< std::string > &tx_hashes) override
 
void rescan_spent () override
 
void rescan_blockchain () override
 
uint64_t get_balance () const override
 
uint64_t get_balance (uint32_t account_idx) const override
 
uint64_t get_balance (uint32_t account_idx, uint32_t subaddress_idx) const override
 
uint64_t get_unlocked_balance () const override
 
uint64_t get_unlocked_balance (uint32_t account_idx) const override
 
uint64_t get_unlocked_balance (uint32_t account_idx, uint32_t subaddress_idx) const override
 
std::vector< monero_accountget_accounts (bool include_subaddresses, const std::string &tag) const override
 
monero_account get_account (const uint32_t account_idx, bool include_subaddresses) const override
 
monero_account create_account (const std::string &label="") override
 
std::vector< monero_subaddressget_subaddresses (const uint32_t account_idx, const std::vector< uint32_t > &subaddress_indices) const override
 
monero_subaddress create_subaddress (uint32_t account_idx, const std::string &label="") override
 
void set_subaddress_label (uint32_t account_idx, uint32_t subaddress_idx, const std::string &label="") override
 
std::vector< std::shared_ptr< monero_tx_wallet > > get_txs () const override
 
std::vector< std::shared_ptr< monero_tx_wallet > > get_txs (const monero_tx_query &query) const override
 
std::vector< std::shared_ptr< monero_transfer > > get_transfers (const monero_transfer_query &query) const override
 
std::vector< std::shared_ptr< monero_output_wallet > > get_outputs (const monero_output_query &query) const override
 
std::string export_outputs (bool all=false) const override
 
int import_outputs (const std::string &outputs_hex) override
 
std::vector< std::shared_ptr< monero_key_image > > export_key_images (bool all=false) const override
 
std::shared_ptr< monero_key_image_import_resultimport_key_images (const std::vector< std::shared_ptr< monero_key_image > > &key_images) override
 
void freeze_output (const std::string &key_image) override
 
void thaw_output (const std::string &key_image) override
 
bool is_output_frozen (const std::string &key_image) override
 
std::vector< std::shared_ptr< monero_tx_wallet > > create_txs (const monero_tx_config &config) override
 
std::vector< std::shared_ptr< monero_tx_wallet > > sweep_unlocked (const monero_tx_config &config) override
 
std::shared_ptr< monero_tx_walletsweep_output (const monero_tx_config &config) override
 
std::vector< std::shared_ptr< monero_tx_wallet > > sweep_dust (bool relay=false) override
 
std::vector< std::string > relay_txs (const std::vector< std::string > &tx_metadatas) override
 
monero_tx_set describe_tx_set (const monero_tx_set &tx_set) override
 
monero_tx_set sign_txs (const std::string &unsigned_tx_hex) override
 
std::vector< std::string > submit_txs (const std::string &signed_tx_hex) override
 
std::string sign_message (const std::string &msg, monero_message_signature_type signature_type, uint32_t account_idx=0, uint32_t subaddress_idx=0) const override
 
monero_message_signature_result verify_message (const std::string &msg, const std::string &address, const std::string &signature) const override
 
std::string get_tx_key (const std::string &tx_hash) const override
 
std::shared_ptr< monero_check_txcheck_tx_key (const std::string &tx_hash, const std::string &txKey, const std::string &address) const override
 
std::string get_tx_proof (const std::string &tx_hash, const std::string &address, const std::string &message) const override
 
std::shared_ptr< monero_check_txcheck_tx_proof (const std::string &tx_hash, const std::string &address, const std::string &message, const std::string &signature) const override
 
std::string get_spend_proof (const std::string &tx_hash, const std::string &message) const override
 
bool check_spend_proof (const std::string &tx_hash, const std::string &message, const std::string &signature) const override
 
std::string get_reserve_proof_wallet (const std::string &message) const override
 
std::string get_reserve_proof_account (uint32_t account_idx, uint64_t amount, const std::string &message) const override
 
std::shared_ptr< monero_check_reservecheck_reserve_proof (const std::string &address, const std::string &message, const std::string &signature) const override
 
std::string get_tx_note (const std::string &tx_hash) const override
 
std::vector< std::string > get_tx_notes (const std::vector< std::string > &tx_hashes) const override
 
void set_tx_note (const std::string &tx_hash, const std::string &note) override
 
void set_tx_notes (const std::vector< std::string > &tx_hashes, const std::vector< std::string > &notes) override
 
std::vector< monero_address_book_entryget_address_book_entries (const std::vector< uint64_t > &indices) const override
 
uint64_t add_address_book_entry (const std::string &address, const std::string &description) override
 
void edit_address_book_entry (uint64_t index, bool set_address, const std::string &address, bool set_description, const std::string &description) override
 
void delete_address_book_entry (uint64_t index) override
 
std::string get_payment_uri (const monero_tx_config &config) const override
 
std::shared_ptr< monero_tx_configparse_payment_uri (const std::string &uri) const override
 
bool get_attribute (const std::string &key, std::string &value) const override
 
void set_attribute (const std::string &key, const std::string &val) override
 
void start_mining (boost::optional< uint64_t > num_threads, boost::optional< bool > background_mining, boost::optional< bool > ignore_battery) override
 
void stop_mining () override
 
uint64_t wait_for_next_block () override
 
bool is_multisig_import_needed () const override
 
monero_multisig_info get_multisig_info () const override
 
std::string prepare_multisig () override
 
std::string make_multisig (const std::vector< std::string > &multisig_hexes, int threshold, const std::string &password) override
 
monero_multisig_init_result exchange_multisig_keys (const std::vector< std::string > &mutisig_hexes, const std::string &password) override
 
std::string export_multisig_hex () override
 
int import_multisig_hex (const std::vector< std::string > &multisig_hexes) override
 
monero_multisig_sign_result sign_multisig_tx_hex (const std::string &multisig_tx_hex) override
 
std::vector< std::string > submit_multisig_tx_hex (const std::string &signed_multisig_tx_hex) override
 
void change_password (const std::string &old_password, const std::string &new_password) override
 
void move_to (const std::string &path, const std::string &password) override
 
void save () override
 
void close (bool save=false) override
 
std::string get_keys_file_buffer (const epee::wipeable_string &password, bool view_only) const
 
std::string get_cache_file_buffer () const
 
- Public Member Functions inherited from monero::monero_wallet
virtual ~monero_wallet ()
 
virtual std::string get_primary_address () const
 
virtual std::vector< monero_accountget_accounts () const
 
virtual std::vector< monero_accountget_accounts (bool include_subaddresses) const
 
virtual std::vector< monero_accountget_accounts (const std::string &tag) const
 
virtual monero_account get_account (uint32_t account_idx) const
 
virtual std::vector< monero_subaddressget_subaddresses (const uint32_t account_idx) const
 
virtual monero_subaddress get_subaddress (const uint32_t account_idx, const uint32_t subaddress_idx) const
 
virtual std::shared_ptr< monero_tx_walletcreate_tx (const monero_tx_config &config)
 
virtual std::string relay_tx (const std::string &tx_metadata)
 
virtual std::string relay_tx (const monero_tx_wallet &tx)
 
virtual std::vector< std::string > relay_txs (const std::vector< std::shared_ptr< monero_tx_wallet > > &txs)
 
virtual bool is_multisig () const
 

Static Public Member Functions

static bool wallet_exists (const std::string &path)
 
static monero_wallet_fullopen_wallet (const std::string &path, const std::string &password, const monero_network_type network_type)
 
static monero_wallet_fullopen_wallet_data (const std::string &password, const monero_network_type, const std::string &keys_data, const std::string &cache_data, const monero_rpc_connection &daemon_connection=monero_rpc_connection(), std::unique_ptr< epee::net_utils::http::http_client_factory > http_client_factory=nullptr)
 
static monero_wallet_fullcreate_wallet (const monero_wallet_config &config, std::unique_ptr< epee::net_utils::http::http_client_factory > http_client_factory=nullptr)
 
static std::vector< std::string > get_seed_languages ()
 

Protected Member Functions

void init_common ()
 

Protected Attributes

std::unique_ptr< tools::wallet2 > m_w2
 

Friends

struct wallet2_listener
 

Detailed Description

Monero wallet implementation which uses monero-project's wallet2.

Constructor & Destructor Documentation

◆ ~monero_wallet_full()

monero::monero_wallet_full::~monero_wallet_full ( )

Destruct the wallet.

Member Function Documentation

◆ add_address_book_entry()

uint64_t monero::monero_wallet_full::add_address_book_entry ( const std::string & address,
const std::string & description )
overridevirtual

Add an address book entry.

Parameters
addressis the entry address
descriptionis the entry description (optional)
Returns
the index of the added entry

Reimplemented from monero::monero_wallet.

◆ add_listener()

void monero::monero_wallet_full::add_listener ( monero_wallet_listener & listener)
overridevirtual

Register a listener receive wallet notifications.

Parameters
listeneris the listener to receive wallet notifications

Reimplemented from monero::monero_wallet.

◆ change_password()

void monero::monero_wallet_full::change_password ( const std::string & old_password,
const std::string & new_password )
overridevirtual

Change the wallet password.

Parameters
old_passwordis the wallet's old password
new_passwordis the wallet's new password

Reimplemented from monero::monero_wallet.

◆ check_reserve_proof()

std::shared_ptr< monero_check_reserve > monero::monero_wallet_full::check_reserve_proof ( const std::string & address,
const std::string & message,
const std::string & signature ) const
overridevirtual

Proves a wallet has a disposable reserve using a signature.

Parameters
addressis the public wallet address
messageis a message included with the signature to further authenticate the proof (optional)
signatureis the reserve proof signature to check
Returns
the result of checking the signature proof

Reimplemented from monero::monero_wallet.

◆ check_spend_proof()

bool monero::monero_wallet_full::check_spend_proof ( const std::string & tx_hash,
const std::string & message,
const std::string & signature ) const
overridevirtual

Prove a spend using a signature. Unlike proving a transaction, it does not require the destination public address.

Parameters
tx_hashspecifies the transaction to prove
messageis a message included with the signature to further authenticate the proof (optional)
signatureis the transaction signature to confirm
Returns
true if the signature is good, false otherwise

Reimplemented from monero::monero_wallet.

◆ check_tx_key()

std::shared_ptr< monero_check_tx > monero::monero_wallet_full::check_tx_key ( const std::string & tx_hash,
const std::string & tx_key,
const std::string & address ) const
overridevirtual

Check a transaction in the blockchain with its secret key.

Parameters
tx_hashspecifies the transaction to check
tx_keyis the transaction's secret key
addressis the destination public address of the transaction
Returns
the result of the check

Reimplemented from monero::monero_wallet.

◆ check_tx_proof()

std::shared_ptr< monero_check_tx > monero::monero_wallet_full::check_tx_proof ( const std::string & tx_hash,
const std::string & address,
const std::string & message,
const std::string & signature ) const
overridevirtual

Prove a transaction by checking its signature.

Parameters
tx_hashspecifies the transaction to prove
addressis the destination public address of the transaction
messageis a message included with the signature to further authenticate the proof (optional)
signatureis the transaction signature to confirm
Returns
the result of the check

Reimplemented from monero::monero_wallet.

◆ close()

void monero::monero_wallet_full::close ( bool save = false)
overridevirtual

Optionally save then close the wallet.

Parameters
savespecifies if the wallet should be saved before being closed (default false)

Reimplemented from monero::monero_wallet.

◆ create_account()

monero_account monero::monero_wallet_full::create_account ( const std::string & label = "")
overridevirtual

Create a new account with a label for the first subaddress.

Parameters
labelspecifies the label for the account's first subaddress (optional)
Returns
the created account

Reimplemented from monero::monero_wallet.

◆ create_subaddress()

monero_subaddress monero::monero_wallet_full::create_subaddress ( uint32_t account_idx,
const std::string & label = "" )
overridevirtual

Create a subaddress within an account.

Parameters
account_idxspecifies the index of the account to create the subaddress within
labelspecifies the the label for the subaddress (defaults to empty std::string)
Returns
the created subaddress

Reimplemented from monero::monero_wallet.

◆ create_txs()

std::vector< std::shared_ptr< monero_tx_wallet > > monero::monero_wallet_full::create_txs ( const monero_tx_config & config)
overridevirtual

Create one or more transactions to transfer funds from this wallet.

Parameters
configconfigures the transactions to create
Returns
the created transactions (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ create_wallet()

monero_wallet_full * monero::monero_wallet_full::create_wallet ( const monero_wallet_config & config,
std::unique_ptr< epee::net_utils::http::http_client_factory > http_client_factory = nullptr )
static

Create a new wallet with the given configuration.

Parameters
configis the wallet configuration
http_client_factoryallows use of custom http clients
Returns
a pointer to the wallet instance

◆ decode_integrated_address()

monero_integrated_address monero::monero_wallet_full::decode_integrated_address ( const std::string & integrated_address) const
overridevirtual

Decode an integrated address to get its standard address and payment id.

Parameters
integrated_addressis an integrated address to decode
Returns
the decoded integrated address including standard address and payment id

Reimplemented from monero::monero_wallet.

◆ delete_address_book_entry()

void monero::monero_wallet_full::delete_address_book_entry ( uint64_t index)
overridevirtual

Delete an address book entry.

Parameters
indexis the index of the entry to delete

Reimplemented from monero::monero_wallet.

◆ describe_tx_set()

monero_tx_set monero::monero_wallet_full::describe_tx_set ( const monero_tx_set & tx_set)
overridevirtual

Describes a tx set containing unsigned or multisig tx hex to a new tx set containing structured transactions.

Parameters
tx_setis a tx set containing unsigned or multisig tx hex
Returns
the tx set containing structured transactions

Reimplemented from monero::monero_wallet.

◆ edit_address_book_entry()

void monero::monero_wallet_full::edit_address_book_entry ( uint64_t index,
bool set_address,
const std::string & address,
bool set_description,
const std::string & description )
overridevirtual

Edit an address book entry.

Parameters
indexis the index of the address book entry to edit
set_addressspecifies if the address should be updated
addressis the updated address
set_descriptionspecifies if the description should be updated
descriptionis the updated description

Reimplemented from monero::monero_wallet.

◆ exchange_multisig_keys()

monero_multisig_init_result monero::monero_wallet_full::exchange_multisig_keys ( const std::vector< std::string > & mutisig_hexes,
const std::string & password )
overridevirtual

Exchange multisig hex with participants in a M/N multisig wallet.

This process must be repeated with participants exactly N-M times.

Parameters
multisig_hexesare multisig hex from each participant
passwordis the wallet's password // TODO monero-project: redundant? wallet is created with password
Returns
the result which has the multisig's address xor this wallet's multisig hex to share with participants iff not done

Reimplemented from monero::monero_wallet.

◆ export_key_images()

std::vector< std::shared_ptr< monero_key_image > > monero::monero_wallet_full::export_key_images ( bool all = false) const
overridevirtual

Export signed key images.

Parameters
all- export all key images if true, else export key images since the last export
Returns
the wallet's signed key images

Reimplemented from monero::monero_wallet.

◆ export_multisig_hex()

std::string monero::monero_wallet_full::export_multisig_hex ( )
overridevirtual

Export this wallet's multisig info as hex for other participants.

Returns
this wallet's multisig info as hex for other participants

Reimplemented from monero::monero_wallet.

◆ export_outputs()

std::string monero::monero_wallet_full::export_outputs ( bool all = false) const
overridevirtual

Export outputs in hex format.

Parameters
all- export all outputs if true, else export outputs since the last export
Returns
outputs in hex format, empty std::string if no outputs

Reimplemented from monero::monero_wallet.

◆ freeze_output()

void monero::monero_wallet_full::freeze_output ( const std::string & key_image)
overridevirtual

Freeze an output.

Parameters
key_imagekey image of the output to freeze

Reimplemented from monero::monero_wallet.

◆ get_account()

monero_account monero::monero_wallet_full::get_account ( const uint32_t account_idx,
bool include_subaddresses ) const
overridevirtual

Get an account.

Parameters
account_idxspecifies the account to get
include_subaddressesspecifies if subaddresses should be included
Returns
the retrieved account

Reimplemented from monero::monero_wallet.

◆ get_accounts()

std::vector< monero_account > monero::monero_wallet_full::get_accounts ( bool include_subaddresses,
const std::string & tag ) const
overridevirtual

Get accounts with a given tag.

Parameters
include_subaddressesspecifies if subaddresses should be included
tagis the tag for filtering accounts, all accounts if null
Returns
List<monero_account> are all accounts for the wallet with the given tag

Reimplemented from monero::monero_wallet.

◆ get_address()

std::string monero::monero_wallet_full::get_address ( const uint32_t account_idx,
const uint32_t subaddress_idx ) const
overridevirtual

Get the address of a specific subaddress.

Parameters
account_idxspecifies the account index of the address's subaddress
subaddress_idxspecifies the subaddress index within the account
Returns
the receive address of the specified subaddress

Reimplemented from monero::monero_wallet.

◆ get_address_book_entries()

std::vector< monero_address_book_entry > monero::monero_wallet_full::get_address_book_entries ( const std::vector< uint64_t > & indices) const
overridevirtual

Get all address book entries.

Parameters
indicesare indices of the entries to get
Returns
the address book entries

Reimplemented from monero::monero_wallet.

◆ get_address_index()

monero_subaddress monero::monero_wallet_full::get_address_index ( const std::string & address) const
overridevirtual

Get the account and subaddress index of the given address.

Parameters
addressis the address to get the account and subaddress index from
Returns
the account and subaddress indices
Exceptions
exceptionif address is not a wallet address

Reimplemented from monero::monero_wallet.

◆ get_attribute()

bool monero::monero_wallet_full::get_attribute ( const std::string & key,
std::string & value ) const
overridevirtual

Get an attribute.

Parameters
keyis the attribute to get the value of
valueis set to the key's value if set
Returns
true if the key's value has been set, false otherwise

Reimplemented from monero::monero_wallet.

◆ get_balance() [1/3]

uint64_t monero::monero_wallet_full::get_balance ( ) const
overridevirtual

Get the wallet's balance.

Returns
the wallet's balance

Reimplemented from monero::monero_wallet.

◆ get_balance() [2/3]

uint64_t monero::monero_wallet_full::get_balance ( uint32_t account_idx) const
overridevirtual

Get an account's balance.

Parameters
account_idxis the index of the account to get the balance of
Returns
the account's balance

Reimplemented from monero::monero_wallet.

◆ get_balance() [3/3]

uint64_t monero::monero_wallet_full::get_balance ( uint32_t account_idx,
uint32_t subaddress_idx ) const
overridevirtual

Get a subaddress's balance.

Parameters
account_idxis the index of the subaddress's account to get the balance of
subaddress_idxis the index of the subaddress to get the balance of
Returns
the subaddress's balance

Reimplemented from monero::monero_wallet.

◆ get_daemon_connection()

boost::optional< monero_rpc_connection > monero::monero_wallet_full::get_daemon_connection ( ) const
overridevirtual

Get the wallet's daemon connection.

Returns
the wallet's daemon connection

Reimplemented from monero::monero_wallet.

◆ get_daemon_height()

uint64_t monero::monero_wallet_full::get_daemon_height ( ) const
overridevirtual

Get the height that the wallet's daemon is synced to.

Returns
the height that the wallet's daemon is synced to

Reimplemented from monero::monero_wallet.

◆ get_daemon_max_peer_height()

uint64_t monero::monero_wallet_full::get_daemon_max_peer_height ( ) const
overridevirtual

Get the maximum height of the peers the wallet's daemon is connected to.

Returns
the maximum height of the peers the wallet's daemon is connected to

Reimplemented from monero::monero_wallet.

◆ get_height()

uint64_t monero::monero_wallet_full::get_height ( ) const
overridevirtual

Get the height of the last block processed by the wallet (its index + 1).

Returns
the height of the last block processed by the wallet

Reimplemented from monero::monero_wallet.

◆ get_height_by_date()

uint64_t monero::monero_wallet_full::get_height_by_date ( uint16_t year,
uint8_t month,
uint8_t day ) const
overridevirtual

Get the blockchain's height by date as a conservative estimate for scanning.

Parameters
year- year of the height to get
month- month of the height to get as a number between 1 and 12
day- day of the height to get as a number between 1 and 31
Returns
the blockchain's approximate height at the given date

Reimplemented from monero::monero_wallet.

◆ get_integrated_address()

monero_integrated_address monero::monero_wallet_full::get_integrated_address ( const std::string & standard_address = "",
const std::string & payment_id = "" ) const
overridevirtual

Get an integrated address from a standard address and a payment id.

Parameters
standard_addressis the integrated addresse's standard address (defaults to wallet's primary address)
payment_idis the integrated addresse's payment id (defaults to randomly generating new payment id)
Returns
the integrated address

Reimplemented from monero::monero_wallet.

◆ get_keys_file_buffer()

std::string monero::monero_wallet_full::get_keys_file_buffer ( const epee::wipeable_string & password,
bool view_only ) const

Wallet import and export using buffers and not the file system.

◆ get_listeners()

std::set< monero_wallet_listener * > monero::monero_wallet_full::get_listeners ( )
overridevirtual

Get the listeners registered with the wallet.

Reimplemented from monero::monero_wallet.

◆ get_multisig_info()

monero_multisig_info monero::monero_wallet_full::get_multisig_info ( ) const
overridevirtual

Get multisig info about this wallet.

Returns
multisig info about this wallet

Reimplemented from monero::monero_wallet.

◆ get_network_type()

monero_network_type monero::monero_wallet_full::get_network_type ( ) const
overridevirtual

Get the wallet's network type (mainnet, testnet, or stagenet).

Returns
the wallet's network type

Reimplemented from monero::monero_wallet.

◆ get_outputs()

std::vector< std::shared_ptr< monero_output_wallet > > monero::monero_wallet_full::get_outputs ( const monero_output_query & query) const
overridevirtual

Get outputs created from previous transactions that belong to the wallet (i.e. that the wallet can spend one time). Outputs are part of transactions which are stored in blocks on the blockchain.

Results can be configured by passing a monero_output_query. Outputs must meet every criteria defined in the query in order to be returned. All filtering is optional and no filtering is applied when not defined.

Parameters
queryspecifies query options (optional)
Returns
wallet outputs per the query (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ get_path()

std::string monero::monero_wallet_full::get_path ( ) const
overridevirtual

Get the path of this wallet's file on disk.

Returns
the path of this wallet's file on disk

Reimplemented from monero::monero_wallet.

◆ get_payment_uri()

std::string monero::monero_wallet_full::get_payment_uri ( const monero_tx_config & config) const
overridevirtual

Creates a payment URI from a tx configuration.

Parameters
configspecifies configuration for a potential tx
Returns
is the payment uri

Reimplemented from monero::monero_wallet.

◆ get_private_spend_key()

std::string monero::monero_wallet_full::get_private_spend_key ( ) const
overridevirtual

Get the wallet's private spend key.

Returns
the wallet's private spend key

Reimplemented from monero::monero_wallet.

◆ get_private_view_key()

std::string monero::monero_wallet_full::get_private_view_key ( ) const
overridevirtual

Get the wallet's private view key.

Returns
the wallet's private view key

Reimplemented from monero::monero_wallet.

◆ get_public_spend_key()

std::string monero::monero_wallet_full::get_public_spend_key ( ) const
overridevirtual

Get the wallet's public spend key.

Returns
the wallet's public spend key

Reimplemented from monero::monero_wallet.

◆ get_public_view_key()

std::string monero::monero_wallet_full::get_public_view_key ( ) const
overridevirtual

Get the wallet's public view key.

Returns
the wallet's public view key

Reimplemented from monero::monero_wallet.

◆ get_reserve_proof_account()

std::string monero::monero_wallet_full::get_reserve_proof_account ( uint32_t account_idx,
uint64_t amount,
const std::string & message ) const
overridevirtual

Generate a signature to prove an available amount in an account.

Parameters
account_idxspecifies the account to prove ownership of the amount
amountis the minimum amount to prove as available in the account
messageis a message to include with the signature to further authenticate the proof (optional)
Returns
the reserve proof signature

Reimplemented from monero::monero_wallet.

◆ get_reserve_proof_wallet()

std::string monero::monero_wallet_full::get_reserve_proof_wallet ( const std::string & message) const
overridevirtual

Generate a signature to prove the entire balance of the wallet.

Parameters
messageis a message included with the signature to further authenticate the proof (optional)
Returns
the reserve proof signature

Reimplemented from monero::monero_wallet.

◆ get_restore_height()

uint64_t monero::monero_wallet_full::get_restore_height ( ) const
overridevirtual

Get the height of the first block that the wallet scans.

Returns
the height of the first block that the wallet scans

Reimplemented from monero::monero_wallet.

◆ get_seed()

std::string monero::monero_wallet_full::get_seed ( ) const
overridevirtual

Get the wallet's mnemonic phrase or seed.

Returns
the wallet's mnemonic phrase or seed.

Reimplemented from monero::monero_wallet.

◆ get_seed_language()

std::string monero::monero_wallet_full::get_seed_language ( ) const
overridevirtual

Get the language of the wallet's mnemonic phrase or seed.

Returns
the language of the wallet's mnemonic phrase or seed.

Reimplemented from monero::monero_wallet.

◆ get_seed_languages()

std::vector< std::string > monero::monero_wallet_full::get_seed_languages ( )
static

Get a list of available languages for the wallet's seed.

Returns
the available languages for the wallet's seed

◆ get_spend_proof()

std::string monero::monero_wallet_full::get_spend_proof ( const std::string & tx_hash,
const std::string & message ) const
overridevirtual

Generate a signature to prove a spend. Unlike proving a transaction, it does not require the destination public address.

Parameters
tx_hashspecifies the transaction to prove
messageis a message to include with the signature to further authenticate the proof (optional)
Returns
the transaction signature

Reimplemented from monero::monero_wallet.

◆ get_subaddresses()

std::vector< monero_subaddress > monero::monero_wallet_full::get_subaddresses ( const uint32_t account_idx,
const std::vector< uint32_t > & subaddress_indices ) const
overridevirtual

Get subaddresses in an account.

Parameters
account_idxspecifies the account to get subaddresses within
subaddress_indicesare specific subaddresses to get (optional)
Returns
the retrieved subaddresses

Reimplemented from monero::monero_wallet.

◆ get_transfers()

std::vector< std::shared_ptr< monero_transfer > > monero::monero_wallet_full::get_transfers ( const monero_transfer_query & query) const
overridevirtual

Get incoming and outgoing transfers to and from this wallet. An outgoing transfer represents a total amount sent from one or more subaddresses within an account to individual destination addresses, each with their own amount. An incoming transfer represents a total amount received into a subaddress within an account. Transfers belong to transactions which are stored on the blockchain.

Query results can be filtered by passing in a monero_transfer_query. Transfers must meet every criteria defined in the query in order to be returned. All filtering is optional and no filtering is applied when not defined.

Parameters
queryfilters query results (optional)
Returns
wallet transfers per the query (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ get_tx_key()

std::string monero::monero_wallet_full::get_tx_key ( const std::string & tx_hash) const
overridevirtual

Get a transaction's secret key from its hash.

Parameters
tx_hashis the transaction's hash
Returns
is the transaction's secret key

Reimplemented from monero::monero_wallet.

◆ get_tx_note()

std::string monero::monero_wallet_full::get_tx_note ( const std::string & tx_hash) const
overridevirtual

Get a transaction note.

Parameters
tx_hashspecifies the transaction to get the note of
Returns
the tx note

Reimplemented from monero::monero_wallet.

◆ get_tx_notes()

std::vector< std::string > monero::monero_wallet_full::get_tx_notes ( const std::vector< std::string > & tx_hashes) const
overridevirtual

Get notes for multiple transactions.

Parameters
tx_hashesidentify the transactions to get notes for @preturns notes for the transactions

Reimplemented from monero::monero_wallet.

◆ get_tx_proof()

std::string monero::monero_wallet_full::get_tx_proof ( const std::string & tx_hash,
const std::string & address,
const std::string & message ) const
overridevirtual

Get a transaction signature to prove it.

Parameters
tx_hashspecifies the transaction to prove
addressis the destination public address of the transaction
messageis a message to include with the signature to further authenticate the proof (optional)
Returns
the transaction signature

Reimplemented from monero::monero_wallet.

◆ get_txs() [1/2]

std::vector< std::shared_ptr< monero_tx_wallet > > monero::monero_wallet_full::get_txs ( ) const
overridevirtual

Get all wallet transactions. Wallet transactions contain one or more transfers that are either incoming or outgoing to the wallet.

Returns
all wallet transactions (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ get_txs() [2/2]

std::vector< std::shared_ptr< monero_tx_wallet > > monero::monero_wallet_full::get_txs ( const monero_tx_query & query) const
overridevirtual

Get wallet transactions. Wallet transactions contain one or more transfers that are either incoming or outgoing to the wallet.

Query results can be filtered by passing in a transaction query. Transactions must meet every criteria defined in the query in order to be returned. All filtering is optional and no filtering is applied when not defined.

Parameters
queryfilters query results (optional)
Returns
wallet transactions per the query (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ get_unlocked_balance() [1/3]

uint64_t monero::monero_wallet_full::get_unlocked_balance ( ) const
overridevirtual

Get the wallet's unlocked balance.

Returns
the wallet's unlocked balance

Reimplemented from monero::monero_wallet.

◆ get_unlocked_balance() [2/3]

uint64_t monero::monero_wallet_full::get_unlocked_balance ( uint32_t account_idx) const
overridevirtual

Get an account's unlocked balance.

Parameters
account_idxis the index of the account to get the unlocked balance of
Returns
the account's unlocked balance

Reimplemented from monero::monero_wallet.

◆ get_unlocked_balance() [3/3]

uint64_t monero::monero_wallet_full::get_unlocked_balance ( uint32_t account_idx,
uint32_t subaddress_idx ) const
overridevirtual

Get a subaddress's unlocked balance.

Parameters
account_idxis the index of the subaddress's account to get the unlocked balance of
subaddress_idxis the index of the subaddress to get the unlocked balance of
Returns
the subaddress's balance

Reimplemented from monero::monero_wallet.

◆ get_version()

monero_version monero::monero_wallet_full::get_version ( ) const
overridevirtual

Get the wallet's version.

Returns
the wallet's version

Reimplemented from monero::monero_wallet.

◆ import_key_images()

std::shared_ptr< monero_key_image_import_result > monero::monero_wallet_full::import_key_images ( const std::vector< std::shared_ptr< monero_key_image > > & key_images)
overridevirtual

Import signed key images and verify their spent status.

Parameters
key_imagesare key images to import and verify (requires hex and signature)
Returns
results of the import

Reimplemented from monero::monero_wallet.

◆ import_multisig_hex()

int monero::monero_wallet_full::import_multisig_hex ( const std::vector< std::string > & multisig_hexes)
overridevirtual

Import multisig info as hex from other participants.

Note: If the daemon is not trusted, this method will not automatically update the spent status after importing peer multisig hex. In that case, the

Parameters
multisig_hexesare multisig hex from each participant
Returns
the number of outputs signed with the given multisig hex

Reimplemented from monero::monero_wallet.

◆ import_outputs()

int monero::monero_wallet_full::import_outputs ( const std::string & outputs_hex)
overridevirtual

Import outputs in hex format.

Parameters
outputs_hexare outputs in hex format
Returns
the number of outputs imported

Reimplemented from monero::monero_wallet.

◆ is_connected_to_daemon()

bool monero::monero_wallet_full::is_connected_to_daemon ( ) const
overridevirtual

Indicates if the wallet is connected a daemon.

Returns
true if the wallet is connected to a daemon, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_daemon_synced()

bool monero::monero_wallet_full::is_daemon_synced ( ) const
overridevirtual

Indicates if the wallet's daemon is synced with the network.

Returns
true if the daemon is synced with the network, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_daemon_trusted()

bool monero::monero_wallet_full::is_daemon_trusted ( ) const
overridevirtual

Indicates if the daemon is trusted or untrusted.

Returns
true if the daemon is trusted, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_multisig_import_needed()

bool monero::monero_wallet_full::is_multisig_import_needed ( ) const
overridevirtual

Indicates if importing multisig data is needed for returning a correct balance.

Returns
true if importing multisig data is needed for returning a correct balance, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_output_frozen()

bool monero::monero_wallet_full::is_output_frozen ( const std::string & key_image)
overridevirtual

Check if an output is frozen.

Parameters
key_imagekey image of the output to check if frozen
Returns
true if the output is frozen, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_synced()

bool monero::monero_wallet_full::is_synced ( ) const
overridevirtual

Indicates if the wallet is synced with the daemon.

Returns
true if the wallet is synced with the daemon, false otherwise

Reimplemented from monero::monero_wallet.

◆ is_view_only()

bool monero::monero_wallet_full::is_view_only ( ) const
inlineoverridevirtual

Supported wallet methods.

Reimplemented from monero::monero_wallet.

◆ make_multisig()

std::string monero::monero_wallet_full::make_multisig ( const std::vector< std::string > & multisig_hexes,
int threshold,
const std::string & password )
overridevirtual

Make this wallet multisig by importing multisig hex from participants.

Parameters
multisig_hexesare multisig hex from each participant
thresholdis the number of signatures needed to sign transfers @password is the wallet password
Returns
this wallet's multisig hex to share with participants

Reimplemented from monero::monero_wallet.

◆ move_to()

void monero::monero_wallet_full::move_to ( const std::string & path,
const std::string & password )
overridevirtual

Move the wallet from its current path to the given path.

Parameters
pathis the new wallet's path
passwordis the new wallet's password

Reimplemented from monero::monero_wallet.

◆ open_wallet()

monero_wallet_full * monero::monero_wallet_full::open_wallet ( const std::string & path,
const std::string & password,
const monero_network_type network_type )
static

Open an existing wallet from disk.

Parameters
pathis the path to the wallet file to open
passwordis the password of the wallet file to open
network_typeis the wallet's network type
Returns
a pointer to the wallet instance

◆ open_wallet_data()

monero_wallet_full * monero::monero_wallet_full::open_wallet_data ( const std::string & password,
const monero_network_type network_type,
const std::string & keys_data,
const std::string & cache_data,
const monero_rpc_connection & daemon_connection = monero_rpc_connection(),
std::unique_ptr< epee::net_utils::http::http_client_factory > http_client_factory = nullptr )
static

Open an in-memory wallet from existing data buffers.

Parameters
passwordis the password of the wallet file to open
network_typeis the wallet's network type
keys_datacontains the contents of the ".keys" file
cache_datacontains the contents of the wallet cache file (no extension)
daemon_connectionis connection information to a daemon (default = an unconnected wallet)
http_client_factoryallows use of custom http clients
Returns
a pointer to the wallet instance

◆ parse_payment_uri()

std::shared_ptr< monero_tx_config > monero::monero_wallet_full::parse_payment_uri ( const std::string & uri) const
overridevirtual

Parses a payment URI to a tx configuration.

Parameters
uriis the payment uri to parse
Returns
the tx configuration parsed from the uri

Reimplemented from monero::monero_wallet.

◆ prepare_multisig()

std::string monero::monero_wallet_full::prepare_multisig ( )
overridevirtual

Get multisig info as hex to share with participants to begin creating a multisig wallet.

Returns
this wallet's multisig hex to share with participants

Reimplemented from monero::monero_wallet.

◆ relay_txs()

std::vector< std::string > monero::monero_wallet_full::relay_txs ( const std::vector< std::string > & tx_metadatas)
overridevirtual

Relay transactions previously created without relaying.

Parameters
tx_metadatasare transaction metadata previously created without relaying
Returns
the hashes of the relayed txs

Reimplemented from monero::monero_wallet.

◆ remove_listener()

void monero::monero_wallet_full::remove_listener ( monero_wallet_listener & listener)
overridevirtual

Unregister a listener to receive wallet notifications.

Parameters
listeneris the listener to unregister

Reimplemented from monero::monero_wallet.

◆ rescan_blockchain()

void monero::monero_wallet_full::rescan_blockchain ( )
overridevirtual

Rescan the blockchain from scratch, losing any information which cannot be recovered from the blockchain itself.

WARNING: This method discards local wallet data like destination addresses, tx secret keys, tx notes, etc.

Reimplemented from monero::monero_wallet.

◆ rescan_spent()

void monero::monero_wallet_full::rescan_spent ( )
overridevirtual

Rescan the blockchain for spent outputs.

Note: this can only be called with a trusted daemon.

Example use case: peer multisig hex is import when connected to an untrusted daemon, so the wallet will not rescan spent outputs. Then the wallet connects to a trusted daemon. This method should be manually invoked to rescan outputs.

Reimplemented from monero::monero_wallet.

◆ save()

void monero::monero_wallet_full::save ( )
overridevirtual

Save the wallet at its current path.

Reimplemented from monero::monero_wallet.

◆ scan_txs()

void monero::monero_wallet_full::scan_txs ( const std::vector< std::string > & tx_hashes)
overridevirtual

Scan transactions by their hash/id.

Parameters
txHashes- tx hashes to scan

Reimplemented from monero::monero_wallet.

◆ set_attribute()

void monero::monero_wallet_full::set_attribute ( const std::string & key,
const std::string & val )
overridevirtual

Set an arbitrary attribute.

Parameters
keyis the attribute key
valis the attribute value

Reimplemented from monero::monero_wallet.

◆ set_daemon_connection() [1/2]

void monero::monero_wallet_full::set_daemon_connection ( const boost::optional< monero_rpc_connection > & connection)
overridevirtual

Set the wallet's daemon connection.

Parameters
connectionis the connection to set

Reimplemented from monero::monero_wallet.

◆ set_daemon_connection() [2/2]

void monero::monero_wallet_full::set_daemon_connection ( const std::string & uri,
const std::string & username = "",
const std::string & password = "" )
overridevirtual

Set the wallet's daemon connection.

Parameters
uriis the daemon's URI
usernameis the username to authenticate with the daemon (optional)
passwordis the password to authenticate with the daemon (optional)

Reimplemented from monero::monero_wallet.

◆ set_daemon_proxy()

void monero::monero_wallet_full::set_daemon_proxy ( const std::string & uri = "")
overridevirtual

Set the Tor proxy to the daemon.

Reimplemented from monero::monero_wallet.

◆ set_restore_height()

void monero::monero_wallet_full::set_restore_height ( uint64_t restore_height)
overridevirtual

Set the height of the first block that the wallet scans.

Parameters
restore_heightis the height of the first block that the wallet scans

Reimplemented from monero::monero_wallet.

◆ set_subaddress_label()

void monero::monero_wallet_full::set_subaddress_label ( uint32_t account_idx,
uint32_t subaddress_idx,
const std::string & label = "" )
overridevirtual

Set a subaddress label.

Parameters
account_idxindex of the account to set the label for
subaddress_idxindex of the subaddress to set the label for
labelthe label to set

Reimplemented from monero::monero_wallet.

◆ set_tx_note()

void monero::monero_wallet_full::set_tx_note ( const std::string & tx_hash,
const std::string & note )
overridevirtual

Set a note for a specific transaction.

Parameters
tx_hashspecifies the transaction
notespecifies the note

Reimplemented from monero::monero_wallet.

◆ set_tx_notes()

void monero::monero_wallet_full::set_tx_notes ( const std::vector< std::string > & tx_hashes,
const std::vector< std::string > & notes )
overridevirtual

Set notes for multiple transactions.

Parameters
tx_hashesspecify the transactions to set notes for
notesare the notes to set for the transactions

Reimplemented from monero::monero_wallet.

◆ sign_message()

std::string monero::monero_wallet_full::sign_message ( const std::string & msg,
monero_message_signature_type signature_type,
uint32_t account_idx = 0,
uint32_t subaddress_idx = 0 ) const
overridevirtual

Sign a message.

Parameters
msg- the message to sign
signature_type- sign with spend key or spend key
account_idx- the account index of the message signature (default 0)
subaddress_idx- the subaddress index of the message signature (default 0)
Returns
the message signature

Reimplemented from monero::monero_wallet.

◆ sign_multisig_tx_hex()

monero_multisig_sign_result monero::monero_wallet_full::sign_multisig_tx_hex ( const std::string & multisig_tx_hex)
overridevirtual

Sign previously created multisig transactions as represented by hex.

Parameters
multisig_tx_hexis the hex shared among the multisig transactions when they were created
Returns
the result of signing the multisig transactions

Reimplemented from monero::monero_wallet.

◆ sign_txs()

monero_tx_set monero::monero_wallet_full::sign_txs ( const std::string & unsigned_tx_hex)
overridevirtual

Sign unsigned transactions from a view-only wallet.

Parameters
unsigned_tx_hexis unsigned transaction hex from when the transactions were created
Returns
the signed transaction set

Reimplemented from monero::monero_wallet.

◆ start_mining()

void monero::monero_wallet_full::start_mining ( boost::optional< uint64_t > num_threads,
boost::optional< bool > background_mining,
boost::optional< bool > ignore_battery )
overridevirtual

Start mining.

Parameters
num_threadsis the number of threads created for mining (optional)
background_miningspecifies if mining should occur in the background (optional)
ignore_batteryspecifies if the battery should be ignored for mining (optional)

Reimplemented from monero::monero_wallet.

◆ start_syncing()

void monero::monero_wallet_full::start_syncing ( uint64_t sync_period_in_ms)
overridevirtual

Start background synchronizing with a maximum period between syncs.

Parameters
syncPeriodInMs- maximum period between syncs in milliseconds

Reimplemented from monero::monero_wallet.

◆ stop_mining()

void monero::monero_wallet_full::stop_mining ( )
overridevirtual

Stop mining.

Reimplemented from monero::monero_wallet.

◆ stop_syncing()

void monero::monero_wallet_full::stop_syncing ( )
overridevirtual

Stop the asynchronous thread to continuously synchronize the wallet with the daemon.

Reimplemented from monero::monero_wallet.

◆ submit_multisig_tx_hex()

std::vector< std::string > monero::monero_wallet_full::submit_multisig_tx_hex ( const std::string & signed_multisig_tx_hex)
overridevirtual

Submit signed multisig transactions as represented by a hex std::string.

Parameters
signed_multisig_tx_hexis the signed multisig hex returned from signMultisigTxs()
Returns
the resulting transaction hashes

Reimplemented from monero::monero_wallet.

◆ submit_txs()

std::vector< std::string > monero::monero_wallet_full::submit_txs ( const std::string & signed_tx_hex)
overridevirtual

Submit signed transactions from a view-only wallet.

Parameters
signed_tx_hexis signed transaction hex from sign_txs()
Returns
the resulting transaction hashes

Reimplemented from monero::monero_wallet.

◆ sweep_dust()

std::vector< std::shared_ptr< monero_tx_wallet > > monero::monero_wallet_full::sweep_dust ( bool relay = false)
overridevirtual

Sweep all unmixable dust outputs back to the wallet to make them easier to spend and mix.

Parameters
relayspecifies if the resulting transaction should be relayed (default false)
Returns
the created transactions (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ sweep_output()

std::shared_ptr< monero_tx_wallet > monero::monero_wallet_full::sweep_output ( const monero_tx_config & config)
overridevirtual

Sweep an output with a given key image.

Parameters
configconfigures the sweep transaction
Returns
the created transaction (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ sweep_unlocked()

std::vector< std::shared_ptr< monero_tx_wallet > > monero::monero_wallet_full::sweep_unlocked ( const monero_tx_config & config)
overridevirtual

Sweep unlocked funds according to the given config.

Parameters
configis the sweep configuration
Returns
the created transactions (free memory using monero_utils::free)

Reimplemented from monero::monero_wallet.

◆ sync() [1/4]

monero_sync_result monero::monero_wallet_full::sync ( )
overridevirtual

Synchronize the wallet with the daemon as a one-time synchronous process.

Returns
the sync result

Reimplemented from monero::monero_wallet.

◆ sync() [2/4]

monero_sync_result monero::monero_wallet_full::sync ( monero_wallet_listener & listener)
overridevirtual

Synchronize the wallet with the daemon as a one-time synchronous process.

Parameters
listener- listener to receive notifications during synchronization
Returns
the sync result

Reimplemented from monero::monero_wallet.

◆ sync() [3/4]

monero_sync_result monero::monero_wallet_full::sync ( uint64_t start_height)
overridevirtual

Synchronize the wallet with the daemon as a one-time synchronous process.

Parameters
start_heightis the start height to sync from (ignored if less than last processed block)
Returns
the sync result

Reimplemented from monero::monero_wallet.

◆ sync() [4/4]

monero_sync_result monero::monero_wallet_full::sync ( uint64_t start_height,
monero_wallet_listener & listener )
overridevirtual

Synchronizes the wallet with the blockchain.

Parameters
start_height- start height to sync from (ignored if less than last processed block)
listener- listener to receive notifications during synchronization
Returns
the sync result

Reimplemented from monero::monero_wallet.

◆ thaw_output()

void monero::monero_wallet_full::thaw_output ( const std::string & key_image)
overridevirtual

Thaw a frozen output.

Parameters
key_imagekey image of the output to thaw

Reimplemented from monero::monero_wallet.

◆ verify_message()

monero_message_signature_result monero::monero_wallet_full::verify_message ( const std::string & msg,
const std::string & address,
const std::string & signature ) const
overridevirtual

Verify a message signature.

Parameters
msg- the signed message
address- signing address
signature- signature
Returns
the message signature result

Reimplemented from monero::monero_wallet.

◆ wait_for_next_block()

uint64_t monero::monero_wallet_full::wait_for_next_block ( )
overridevirtual

Wait for the next block to be added to the chain.

Returns
the height of the next block when it is added to the chain

Reimplemented from monero::monero_wallet.

◆ wallet_exists()

bool monero::monero_wallet_full::wallet_exists ( const std::string & path)
static

Indicates if a wallet exists at the given path.

Parameters
pathis the path to check for a wallet
Returns
true if a wallet exists at the given path, false otherwise

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