112 boost::optional<std::string> m_uri;
113 boost::optional<std::string> m_username;
114 boost::optional<std::string> m_password;
115 boost::optional<std::string> m_proxy_uri;
117 monero_rpc_connection(
const std::string& uri =
"",
const std::string& username =
"",
const std::string& password =
"",
const std::string& proxy_uri =
"") : m_uri(uri), m_username(username), m_password(password), m_proxy_uri(proxy_uri) {}
118 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
119 static monero_rpc_connection from_property_tree(
const boost::property_tree::ptree& node);
132 boost::optional<std::string> m_hash;
133 boost::optional<uint64_t> m_height;
134 boost::optional<uint64_t> m_timestamp;
135 boost::optional<uint64_t> m_size;
136 boost::optional<uint64_t> m_weight;
137 boost::optional<uint64_t> m_long_term_weight;
138 boost::optional<uint64_t> m_depth;
139 boost::optional<uint64_t> m_difficulty;
140 boost::optional<uint64_t> m_cumulative_difficulty;
141 boost::optional<uint32_t> m_major_version;
142 boost::optional<uint32_t> m_minor_version;
143 boost::optional<uint32_t> m_nonce;
144 boost::optional<std::string> m_miner_tx_hash;
145 boost::optional<uint32_t> m_num_txs;
146 boost::optional<bool> m_orphan_status;
147 boost::optional<std::string> m_prev_hash;
148 boost::optional<uint64_t> m_reward;
149 boost::optional<std::string> m_pow_hash;
151 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
152 std::shared_ptr<monero_block_header> copy(
const std::shared_ptr<monero_block_header>& src,
const std::shared_ptr<monero_block_header>& tgt)
const;
153 virtual void merge(
const std::shared_ptr<monero_block_header>& self,
const std::shared_ptr<monero_block_header>& other);
160 boost::optional<std::string> m_hex;
161 boost::optional<std::shared_ptr<monero_tx>> m_miner_tx;
162 std::vector<std::shared_ptr<monero_tx>> m_txs;
163 std::vector<std::string> m_tx_hashes;
165 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
166 std::shared_ptr<monero_block> copy(
const std::shared_ptr<monero_block>& src,
const std::shared_ptr<monero_block>& tgt)
const;
167 void merge(
const std::shared_ptr<monero_block_header>& self,
const std::shared_ptr<monero_block_header>& other);
168 void merge(
const std::shared_ptr<monero_block>& self,
const std::shared_ptr<monero_block>& other);
175 static const std::string DEFAULT_PAYMENT_ID;
176 boost::optional<std::shared_ptr<monero_block>> m_block;
177 boost::optional<std::string> m_hash;
178 boost::optional<uint32_t> m_version;
179 boost::optional<bool> m_is_miner_tx;
180 boost::optional<std::string> m_payment_id;
181 boost::optional<uint64_t> m_fee;
182 boost::optional<uint32_t> m_ring_size;
183 boost::optional<bool> m_relay;
184 boost::optional<bool> m_is_relayed;
185 boost::optional<bool> m_is_confirmed;
186 boost::optional<bool> m_in_tx_pool;
187 boost::optional<uint64_t> m_num_confirmations;
188 boost::optional<uint64_t> m_unlock_time;
189 boost::optional<uint64_t> m_last_relayed_timestamp;
190 boost::optional<uint64_t> m_received_timestamp;
191 boost::optional<bool> m_is_double_spend_seen;
192 boost::optional<std::string> m_key;
193 boost::optional<std::string> m_full_hex;
194 boost::optional<std::string> m_pruned_hex;
195 boost::optional<std::string> m_prunable_hex;
196 boost::optional<std::string> m_prunable_hash;
197 boost::optional<uint64_t> m_size;
198 boost::optional<uint64_t> m_weight;
199 std::vector<std::shared_ptr<monero_output>> m_inputs;
200 std::vector<std::shared_ptr<monero_output>> m_outputs;
201 std::vector<uint64_t> m_output_indices;
202 boost::optional<std::string> m_metadata;
203 boost::optional<std::string> m_common_tx_sets;
204 std::vector<uint8_t> m_extra;
205 boost::optional<std::string> m_rct_signatures;
206 boost::optional<std::string> m_rct_sig_prunable;
207 boost::optional<bool> m_is_kept_by_block;
208 boost::optional<bool> m_is_failed;
209 boost::optional<uint64_t> m_last_failed_height;
210 boost::optional<std::string> m_last_failed_hash;
211 boost::optional<uint64_t> m_max_used_block_height;
212 boost::optional<std::string> m_max_used_block_hash;
213 std::vector<std::string> m_signatures;
215 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
216 static void from_property_tree(
const boost::property_tree::ptree& node, std::shared_ptr<monero_tx> tx);
217 std::shared_ptr<monero_tx> copy(
const std::shared_ptr<monero_tx>& src,
const std::shared_ptr<monero_tx>& tgt)
const;
218 virtual void merge(
const std::shared_ptr<monero_tx>& self,
const std::shared_ptr<monero_tx>& other);
219 boost::optional<uint64_t> get_height()
const;
226 boost::optional<std::string> m_hex;
227 boost::optional<std::string> m_signature;
229 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
230 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_key_image>& key_image);
231 static std::vector<std::shared_ptr<monero_key_image>> deserialize_key_images(
const std::string& key_images_json);
232 std::shared_ptr<monero_key_image> copy(
const std::shared_ptr<monero_key_image>& src,
const std::shared_ptr<monero_key_image>& tgt)
const;
233 void merge(
const std::shared_ptr<monero_key_image>& self,
const std::shared_ptr<monero_key_image>& other);
240 std::shared_ptr<monero_tx> m_tx;
241 boost::optional<std::shared_ptr<monero_key_image>> m_key_image;
242 boost::optional<uint64_t> m_amount;
243 boost::optional<uint64_t> m_index;
244 std::vector<uint64_t> m_ring_output_indices;
245 boost::optional<std::string> m_stealth_public_key;
247 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
248 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_output>& output);
249 std::shared_ptr<monero_output> copy(
const std::shared_ptr<monero_output>& src,
const std::shared_ptr<monero_output>& tgt)
const;
250 virtual void merge(
const std::shared_ptr<monero_output>& self,
const std::shared_ptr<monero_output>& other);