Monero C++ Library
Loading...
Searching...
No Matches
monero Namespace Reference

Classes

class  block_notifier
 
struct  key_image_list
 
struct  key_value
 
struct  monero_account
 
struct  monero_account_tag
 
struct  monero_account_tag_params
 
struct  monero_address_book_entry
 
struct  monero_address_book_entry_params
 
struct  monero_alt_chain
 
struct  monero_ban
 
struct  monero_bandwidth_limits
 
struct  monero_block
 
struct  monero_block_header
 
struct  monero_block_template
 
struct  monero_change_wallet_password_params
 
struct  monero_check
 
struct  monero_check_reserve
 
struct  monero_check_tx
 
struct  monero_check_tx_key_params
 
struct  monero_close_wallet_params
 
struct  monero_connection_span
 
struct  monero_create_edit_subaddress_params
 
struct  monero_create_open_wallet_params
 
class  monero_daemon
 
struct  monero_daemon_info
 
class  monero_daemon_listener
 
class  monero_daemon_poller
 
class  monero_daemon_rpc
 
struct  monero_daemon_sync_info
 
struct  monero_daemon_update_check_result
 
struct  monero_daemon_update_download_result
 
struct  monero_decoded_address
 
struct  monero_destination
 
struct  monero_download_update_params
 
class  monero_error
 
struct  monero_fee_estimate
 
struct  monero_generate_blocks_params
 
struct  monero_generate_blocks_result
 
struct  monero_get_address_params
 
struct  monero_get_balance_params
 
struct  monero_get_balance_response
 
struct  monero_get_block_hash_params
 
struct  monero_get_block_params
 
struct  monero_get_block_result
 
struct  monero_get_blocks_by_height_request
 
struct  monero_get_fee_estimate_params
 
struct  monero_get_incoming_transfers_params
 
struct  monero_get_miner_tx_sum_params
 
struct  monero_get_output_distribution_params
 
struct  monero_get_output_histogram_params
 
struct  monero_get_transfers_params
 
struct  monero_get_txs_params
 
struct  monero_hard_fork_info
 
struct  monero_incoming_transfer
 
struct  monero_incoming_transfer_comparator
 
struct  monero_integrated_address
 
struct  monero_integrated_address_params
 
struct  monero_is_key_image_spent_params
 
struct  monero_key_image
 
struct  monero_key_image_export_result
 
struct  monero_key_image_import_result
 
struct  monero_message_signature_result
 
struct  monero_miner_tx_sum
 
struct  monero_mining_status
 
struct  monero_multisig_info
 
struct  monero_multisig_init_result
 
struct  monero_multisig_params
 
struct  monero_multisig_response
 
struct  monero_multisig_sign_result
 
struct  monero_outgoing_transfer
 
struct  monero_output
 
struct  monero_output_comparator
 
struct  monero_output_distribution_entry
 
struct  monero_output_histogram_entry
 
struct  monero_output_query
 
struct  monero_output_wallet
 
struct  monero_payment_uri_params
 
struct  monero_peer
 
struct  monero_peer_limits_params
 
struct  monero_prune_blockchain_params
 
struct  monero_prune_result
 
struct  monero_query_key_params
 
struct  monero_query_output_params
 
struct  monero_request_params
 
struct  monero_reserve_proof_params
 
struct  monero_rpc_ban
 
class  monero_rpc_connection
 
class  monero_rpc_error
 
struct  monero_rpc_key_image
 
struct  monero_rpc_payment_info
 
struct  monero_rpc_request
 
struct  monero_rpc_response
 
struct  monero_set_bans_params
 
struct  monero_set_daemon_params
 
struct  monero_sign_describe_transfer_params
 
struct  monero_start_mining_params
 
struct  monero_subaddress
 
struct  monero_submit_blocks_params
 
struct  monero_submit_tx_params
 
struct  monero_submit_tx_result
 
struct  monero_sweep_params
 
struct  monero_sync_result
 
struct  monero_transfer
 
struct  monero_transfer_params
 
struct  monero_transfer_query
 
struct  monero_tx
 
struct  monero_tx_backlog_entry
 
struct  monero_tx_config
 
struct  monero_tx_height_comparator
 
struct  monero_tx_notes_params
 
struct  monero_tx_pool_stats
 
struct  monero_tx_query
 
struct  monero_tx_set
 
struct  monero_tx_wallet
 
struct  monero_verify_sign_message_params
 
struct  monero_version
 
class  monero_wallet
 
struct  monero_wallet_config
 
struct  monero_wallet_data_params
 
class  monero_wallet_full
 
class  monero_wallet_keys
 
class  monero_wallet_listener
 
class  monero_wallet_poller
 
struct  monero_wallet_refresh_params
 
struct  monero_wallet_relay_tx_params
 
class  monero_wallet_rpc
 
struct  serializable_struct
 
struct  ssl_options
 
struct  wallet2_listener
 

Enumerations

enum  monero_connection_type : uint8_t {
  INVALID = 0 , IPV4 , IPV6 , TOR ,
  I2P
}
 
enum  monero_network_type : uint8_t { MAINNET = 0 , TESTNET , STAGENET }
 
enum  monero_key_image_spent_status : uint8_t { NOT_SPENT = 0 , CONFIRMED , TX_POOL }
 
enum  monero_tx_priority : uint8_t { DEFAULT = 0 , UNIMPORTANT , NORMAL , ELEVATED }
 
enum  monero_message_signature_type : uint8_t { SIGN_WITH_SPEND_KEY = 0 , SIGN_WITH_VIEW_KEY }
 
enum  monero_address_type : uint8_t { PRIMARY_ADDRESS = 0 , INTEGRATED_ADDRESS , SUBADDRESS }
 

Functions

void raise_rpc_error (const boost::property_tree::ptree &error_node, const boost::string_ref uri, const std::string &method)
 
void deserialize_rpc_response (const std::string &json, monero_rpc_response &response, const boost::string_ref uri, const std::string &method)
 
void merge_tx (std::vector< std::shared_ptr< monero_tx > > &txs, const std::shared_ptr< monero_tx > &tx)
 
void check_response_status (const boost::property_tree::ptree &node)
 
void deserialize_version (const boost::property_tree::ptree &node, monero_version &version)
 
void deserialize_output (const boost::property_tree::ptree &node, const std::shared_ptr< monero_output > &output)
 
void deserialize_tx (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx > &tx)
 
void deserialize_txs (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_tx > > &txs)
 
void deserialize_tx_hashes (const boost::property_tree::ptree &node, std::vector< std::string > &tx_hashes)
 
void deserialize_block_header (const boost::property_tree::ptree &node, const std::shared_ptr< monero_block_header > &header)
 
void deserialize_block_headers (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_block_header > > &headers)
 
void deserialize_block (const boost::property_tree::ptree &node, const std::shared_ptr< monero_block > &block, bool is_nested)
 
void deserialize_blocks (const boost::property_tree::ptree &node, const std::vector< uint64_t > &heights, std::vector< std::shared_ptr< monero_block > > &blocks)
 
void deserialize_alt_block_hashes (const boost::property_tree::ptree &node, std::vector< std::string > &block_hashes)
 
void deserialize_key_image_spent_status (const boost::property_tree::ptree &node, std::vector< monero_key_image_spent_status > &statuses)
 
void deserialize_payment_info (const boost::property_tree::ptree &node, const std::shared_ptr< monero_rpc_payment_info > &rpc_payment_info)
 
void deserialize_alt_chain (const boost::property_tree::ptree &node, const std::shared_ptr< monero_alt_chain > &alt_chain)
 
void deserialize_alt_chains (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_alt_chain > > &alt_chains)
 
void deserialize_ban (const boost::property_tree::ptree &node, const std::shared_ptr< monero_ban > &ban)
 
void deserialize_bans (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_ban > > &bans)
 
void deserialize_prune_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_prune_result > &result)
 
void deserialize_mining_status (const boost::property_tree::ptree &node, const std::shared_ptr< monero_mining_status > &status)
 
void deserialize_generate_blocks_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_generate_blocks_result > &result)
 
void deserialize_miner_tx_sum (const boost::property_tree::ptree &node, const std::shared_ptr< monero_miner_tx_sum > &sum)
 
void deserialize_block_template (const boost::property_tree::ptree &node, const std::shared_ptr< monero_block_template > &tmplt)
 
void deserialize_connection_span (const boost::property_tree::ptree &node, const std::shared_ptr< monero_connection_span > &span)
 
void deserialize_connection_spans (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_connection_span > > &spans)
 
void deserialize_peer (const boost::property_tree::ptree &node, const std::shared_ptr< monero_peer > &peer)
 
void deserialize_peers (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_peer > > &peers)
 
void deserialize_peer_infos (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_peer > > &peers)
 
void deserialize_submit_tx_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_submit_tx_result > &result)
 
void deserialize_output_distribution_entry (const boost::property_tree::ptree &node, const std::shared_ptr< monero_output_distribution_entry > &entry)
 
void deserialize_output_distribution_entries (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_output_distribution_entry > > &entries)
 
void deserialize_output_histogram_entry (const boost::property_tree::ptree &node, const std::shared_ptr< monero_output_histogram_entry > &entry)
 
void deserialize_output_histogram_entries (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_output_histogram_entry > > &entries)
 
void deserialize_tx_pool_stats (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_pool_stats > &stats)
 
void deserialize_update_check_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_daemon_update_check_result > &check)
 
void deserialize_update_download_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_daemon_update_download_result > &check)
 
void deserialize_fee_estimate (const boost::property_tree::ptree &node, const std::shared_ptr< monero_fee_estimate > &estimate)
 
void deserialize_daemon_info (const boost::property_tree::ptree &node, const std::shared_ptr< monero_daemon_info > &info)
 
void deserialize_daemon_sync_info (const boost::property_tree::ptree &node, const std::shared_ptr< monero_daemon_sync_info > &info)
 
void deserialize_hard_fork_info (const boost::property_tree::ptree &node, const std::shared_ptr< monero_hard_fork_info > &info)
 
void set_num_confirmations (std::shared_ptr< monero_tx_wallet > &tx, uint64_t blockchain_height)
 
void set_num_suggested_confirmations (std::shared_ptr< monero_incoming_transfer > &incoming_transfer, uint64_t blockchain_height, uint64_t block_reward, uint64_t unlock_time)
 
std::shared_ptr< monero_tx_walletbuild_tx_with_incoming_transfer (tools::wallet2 &m_w2, uint64_t height, const crypto::hash &payment_id, const tools::wallet2::payment_details &pd)
 
std::shared_ptr< monero_tx_walletbuild_tx_with_outgoing_transfer (tools::wallet2 &m_w2, uint64_t height, const crypto::hash &txid, const tools::wallet2::confirmed_transfer_details &pd)
 
std::shared_ptr< monero_tx_walletbuild_tx_with_incoming_transfer_unconfirmed (const tools::wallet2 &m_w2, uint64_t height, const crypto::hash &payment_id, const tools::wallet2::pool_payment_details &ppd)
 
std::shared_ptr< monero_tx_walletbuild_tx_with_outgoing_transfer_unconfirmed (const tools::wallet2 &m_w2, const crypto::hash &txid, const tools::wallet2::unconfirmed_transfer_details &pd)
 
std::shared_ptr< monero_tx_walletbuild_tx_with_vout (tools::wallet2 &m_w2, const tools::wallet2::transfer_details &td)
 
std::string get_default_ringdb_path (cryptonote::network_type nettype)
 
bool validate_transfer (wallet2 *m_w2, const std::list< wallet_rpc::transfer_destination > &destinations, const std::string &payment_id, std::vector< cryptonote::tx_destination_entry > &dsts, std::vector< uint8_t > &extra, bool at_least_one_destination, epee::json_rpc::error &er)
 
template<typename Ts, typename Tu, typename Tk, typename Ta>
bool fill_response (wallet2 *m_w2, std::vector< tools::wallet2::pending_tx > &ptx_vector, bool get_tx_key, Ts &tx_key, Tu &amount, Ta &amounts_by_dest, Tu &fee, Tu &weight, std::string &multisig_txset, std::string &unsigned_txset, bool do_not_relay, Ts &tx_hash, bool get_tx_hex, Ts &tx_blob, bool get_tx_metadata, Ts &tx_metadata, Tk &spent_key_images, epee::json_rpc::error &er)
 
void merge_incoming_transfer (std::vector< std::shared_ptr< monero_incoming_transfer > > &transfers, const std::shared_ptr< monero_incoming_transfer > &transfer)
 
std::shared_ptr< monero_blocknode_to_block_query (const boost::property_tree::ptree &node)
 
void handle_create_wallet_error (const monero_rpc_error &ex, const std::string &path)
 
void normalize_wallet_error (const monero_rpc_error &ex)
 
void deserialize_subaddress (const boost::property_tree::ptree &node, const std::shared_ptr< monero_subaddress > &subaddress)
 
void deserialize_subaddresses (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_subaddress > > &subaddresses)
 
void deserialize_account (const boost::property_tree::ptree &node, monero_account &account)
 
void deserialize_accounts (const boost::property_tree::ptree &node, std::vector< monero_account > &accounts)
 
bool decode_rpc_tx_type (const std::string &rpc_type, const std::shared_ptr< monero_tx_wallet > &tx)
 
void init_sent_tx (const monero_tx_config &config, std::shared_ptr< monero_tx_wallet > &tx, bool copy_destinations)
 
void deserialize_tx_with_transfer (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_wallet > &tx, boost::optional< bool > &is_outgoing, const monero_tx_config &config)
 
void deserialize_tx_with_transfer (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_wallet > &tx, boost::optional< bool > &is_outgoing)
 
void deserialize_tx_with_transfer (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_wallet > &tx)
 
void deserialize_tx_with_output (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_wallet > &tx)
 
void deserialize_tx_with_output_and_merge (const boost::property_tree::ptree &node, std::map< std::string, std::shared_ptr< monero_tx_wallet > > &tx_map, std::map< uint64_t, std::shared_ptr< monero_block > > &block_map)
 
void deserialize_tx_with_transfer_and_merge (const boost::property_tree::ptree &node, std::map< std::string, std::shared_ptr< monero_tx_wallet > > &tx_map, std::map< uint64_t, std::shared_ptr< monero_block > > &block_map)
 
void deserialize_tx_set (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_set > &set)
 
void deserialize_tx_set (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_set > &set, const std::shared_ptr< monero_tx_wallet > &tx, bool is_outgoing, const monero_tx_config &config)
 
void deserialize_sent_tx_set (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_set > &set)
 
void deserialize_sent_tx_set (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_set > &set, std::vector< std::shared_ptr< monero_tx_wallet > > &txs, const boost::optional< monero_tx_config > &conf)
 
void deserialize_described_tx_set (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_set > &set)
 
void deserialize_submitted_tx_hashes (const boost::property_tree::ptree &node, std::vector< std::string > &tx_hashes)
 
void deserialize_relayed_tx_hash (const boost::property_tree::ptree &node, std::vector< std::string > &tx_hashes)
 
int deserialize_num_created_txs (const boost::property_tree::ptree &node, bool can_split)
 
std::string deserialize_tx_key (const boost::property_tree::ptree &node)
 
void deserialize_tx_notes (const boost::property_tree::ptree &node, std::vector< std::string > &tx_notes)
 
void deserialize_integrated_address (const boost::property_tree::ptree &node, monero_integrated_address &subaddress)
 
void deserialize_key_image (const boost::property_tree::ptree &node, const std::shared_ptr< monero_key_image > &key_image)
 
void deserialize_key_image_export_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_key_image_export_result > &result)
 
void deserialize_key_image_import_result (const boost::property_tree::ptree &node, const std::shared_ptr< monero_key_image_import_result > &result)
 
void deserialize_message_signature_result (const boost::property_tree::ptree &node, monero_message_signature_result &result)
 
void deserialize_check_tx (const boost::property_tree::ptree &node, const std::shared_ptr< monero_check_tx > &check)
 
void deserialize_check_reserve (const boost::property_tree::ptree &node, const std::shared_ptr< monero_check_reserve > &check)
 
void deserialize_multisig_info (const boost::property_tree::ptree &node, monero_multisig_info &info)
 
void deserialize_multisig_init_result (const boost::property_tree::ptree &node, monero_multisig_init_result &info)
 
void deserialize_multisig_sign_result (const boost::property_tree::ptree &node, monero_multisig_sign_result &res)
 
void deserialize_address_book_entry (const boost::property_tree::ptree &node, const std::shared_ptr< monero_address_book_entry > &entry)
 
void deserialize_address_book_entries (const boost::property_tree::ptree &node, std::vector< monero_address_book_entry > &entries)
 
void deserialize_seed_languages (const boost::property_tree::ptree &node, std::vector< std::string > &languages)
 
uint64_t deserialize_address_book_index (const boost::property_tree::ptree &node)
 
void deserialize_account_tag (const boost::property_tree::ptree &node, const std::shared_ptr< monero_account_tag > &account_tag)
 
void deserialize_account_tags (const boost::property_tree::ptree &node, std::vector< std::shared_ptr< monero_account_tag > > &account_tags)
 
std::string deserialize_signature (const boost::property_tree::ptree &node)
 
std::string deserialize_exported_outputs (const boost::property_tree::ptree &node)
 
int deserialize_num_imported_outputs (const boost::property_tree::ptree &node)
 
bool deserialize_frozen_output_info (const boost::property_tree::ptree &node)
 
monero_tx_priority deserialize_tx_priority (const boost::property_tree::ptree &node)
 
uint64_t deserialize_block_height (const boost::property_tree::ptree &node)
 
std::string deserialize_payment_uri (const boost::property_tree::ptree &node)
 
void deserialize_payment_uri (const boost::property_tree::ptree &node, const std::shared_ptr< monero_tx_config > &tx_config)
 
void deserialize_sync_result (const boost::property_tree::ptree &node, monero_sync_result &sync_result)
 

Detailed Description

Copyright (c) woodser

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Public interface for libmonero-cpp library.

Copyright (c) woodser

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Public library intereface.

Copyright (c) woodser

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Public library interface.

Copyright (c) everoddandeven

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2025-2026 woodser

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Implements a monero_daemon.h using monero-project's monerod.

Copyright (c) everoddandeven

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2025-2026 woodser

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers

Copyright (c) everoddandeven

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2025-2026 woodser

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Internal data model for monero_daemon_rpc.h.

Public library interface.

Implements a monero_wallet.h by wrapping wallet2.h.

Copyright (c) woodser

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Implements a monero_wallet.h by wrapping monero-project's wallet2.

Copyright (c) everoddandeven

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2025-2026 woodser

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Implements a monero_wallet.h by wrapping monero-project's monero-wallet-rpc.

Copyright (c) everoddandeven

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Parts of this file are originally copyright (c) 2025-2026 woodser

Parts of this file are originally copyright (c) 2014-2019, The Monero Project

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

All rights reserved.

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers Internal data model for monero_wallet_rpc.

Enumeration Type Documentation

◆ monero_address_type

Models a Monero address type.

◆ monero_connection_type

Enumerates Monero connection types.

◆ monero_key_image_spent_status

Models the status of a Monero key image.

◆ monero_message_signature_type

Enumerates message verification results.

◆ monero_network_type

Enumerates Monero network types.

◆ monero_tx_priority

Enumerates Monero network types.

Function Documentation

◆ check_response_status()

void monero::check_response_status ( const boost::property_tree::ptree & node)

Validate RPC response status.

◆ validate_transfer()

bool monero::validate_transfer ( wallet2 * m_w2,
const std::list< wallet_rpc::transfer_destination > & destinations,
const std::string & payment_id,
std::vector< cryptonote::tx_destination_entry > & dsts,
std::vector< uint8_t > & extra,
bool at_least_one_destination,
epee::json_rpc::error & er )

-------------— DUPLICATED WALLET RPC TRANSFER CODE ------------------—

These functions are duplicated from private functions in wallet rpc on_transfer/on_transfer_split, with minor modifications to not be class members.

This code is used to generate and send transactions with equivalent functionality as wallet rpc.

Duplicated code is not ideal. Solutions considered:

(1) Duplicate wallet rpc code as done here. (2) Modify monero-wallet-rpc on_transfer() / on_transfer_split() to be public. (3) Modify monero-wallet-rpc to make this class a friend. (4) Move all logic in monero-wallet-rpc to wallet2 so all users can access.

Options 2-4 require modification of monero-project C++. Of those, (4) is probably ideal. TODO: open patch on monero-project which moves common wallet rpc logic (e.g. on_transfer, on_transfer_split) to m_w2.

Until then, option (1) is used because it allows monero-project binaries to be used without modification, it's easy, and anything other than (4) is temporary.