56#include <boost/property_tree/ptree.hpp>
57#include <boost/property_tree/json_parser.hpp>
58#include "rapidjson/document.h"
59#include "rapidjson/writer.h"
60#include "rapidjson/stringbuffer.h"
87 virtual rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const = 0;
94 boost::optional<std::string> m_ssl_private_key_path;
95 boost::optional<std::string> m_ssl_certificate_path;
96 boost::optional<std::string> m_ssl_ca_file;
97 std::vector<std::string> m_ssl_allowed_fingerprints;
98 boost::optional<bool> m_ssl_allow_any_cert;
100 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
101 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<ssl_options>& options);
102 static std::shared_ptr<ssl_options> deserialize(
const std::string& json);
129 boost::optional<int> m_up;
130 boost::optional<int> m_down;
132 monero_bandwidth_limits() { }
133 monero_bandwidth_limits(
int up,
int down): m_up(up), m_down(down) { }
135 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
136 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_bandwidth_limits>& limits);
143 boost::optional<uint32_t> m_number;
144 boost::optional<bool> m_is_release;
146 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
147 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_version>& version);
148 static std::shared_ptr<monero_version> deserialize(
const std::string& json);
161 boost::optional<std::string> m_hash;
162 boost::optional<uint64_t> m_height;
163 boost::optional<uint64_t> m_timestamp;
164 boost::optional<uint64_t> m_size;
165 boost::optional<uint64_t> m_weight;
166 boost::optional<uint64_t> m_long_term_weight;
167 boost::optional<uint64_t> m_depth;
168 boost::optional<uint64_t> m_difficulty_low;
169 boost::optional<uint64_t> m_difficulty_high;
170 boost::optional<uint64_t> m_cumulative_difficulty_low;
171 boost::optional<uint64_t> m_cumulative_difficulty_high;
172 boost::optional<uint32_t> m_major_version;
173 boost::optional<uint32_t> m_minor_version;
174 boost::optional<uint32_t> m_nonce;
175 boost::optional<std::string> m_miner_tx_hash;
176 boost::optional<uint32_t> m_num_txs;
177 boost::optional<bool> m_orphan_status;
178 boost::optional<std::string> m_prev_hash;
179 boost::optional<uint64_t> m_reward;
180 boost::optional<std::string> m_pow_hash;
182 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
183 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_block_header>& header);
184 static std::shared_ptr<monero_block_header> deserialize(
const std::string& json);
185 std::shared_ptr<monero_block_header> copy(
const std::shared_ptr<monero_block_header>& src,
const std::shared_ptr<monero_block_header>& tgt)
const;
186 virtual void merge(
const std::shared_ptr<monero_block_header>& self,
const std::shared_ptr<monero_block_header>& other);
193 boost::optional<std::string> m_hex;
194 std::shared_ptr<monero_tx> m_miner_tx;
195 std::vector<std::shared_ptr<monero_tx>> m_txs;
196 std::vector<std::string> m_tx_hashes;
198 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
199 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_block>& block);
200 static std::shared_ptr<monero_block> deserialize(
const std::string& json);
201 std::shared_ptr<monero_block> copy(
const std::shared_ptr<monero_block>& src,
const std::shared_ptr<monero_block>& tgt)
const;
202 void merge(
const std::shared_ptr<monero_block_header>& self,
const std::shared_ptr<monero_block_header>& other);
203 void merge(
const std::shared_ptr<monero_block>& self,
const std::shared_ptr<monero_block>& other);
210 static const std::string DEFAULT_PAYMENT_ID;
211 static const std::string DEFAULT_ID;
213 std::shared_ptr<monero_block> m_block;
214 boost::optional<std::string> m_hash;
215 boost::optional<uint32_t> m_version;
216 boost::optional<bool> m_is_miner_tx;
217 boost::optional<std::string> m_payment_id;
218 boost::optional<uint64_t> m_fee;
219 boost::optional<uint32_t> m_ring_size;
220 boost::optional<bool> m_relay;
221 boost::optional<bool> m_is_relayed;
222 boost::optional<bool> m_is_confirmed;
223 boost::optional<bool> m_in_tx_pool;
224 boost::optional<bool> m_is_locked;
225 boost::optional<uint64_t> m_num_confirmations;
226 boost::optional<uint64_t> m_unlock_time;
227 boost::optional<uint64_t> m_last_relayed_timestamp;
228 boost::optional<uint64_t> m_received_timestamp;
229 boost::optional<bool> m_is_double_spend_seen;
230 boost::optional<std::string> m_key;
231 boost::optional<std::string> m_full_hex;
232 boost::optional<std::string> m_pruned_hex;
233 boost::optional<std::string> m_prunable_hex;
234 boost::optional<std::string> m_prunable_hash;
235 boost::optional<uint64_t> m_size;
236 boost::optional<uint64_t> m_weight;
237 std::vector<std::shared_ptr<monero_output>> m_inputs;
238 std::vector<std::shared_ptr<monero_output>> m_outputs;
239 std::vector<uint64_t> m_output_indices;
240 boost::optional<std::string> m_metadata;
241 boost::optional<std::string> m_common_tx_sets;
242 std::vector<uint8_t> m_extra;
243 boost::optional<std::string> m_rct_signatures;
244 boost::optional<std::string> m_rct_sig_prunable;
245 boost::optional<bool> m_is_kept_by_block;
246 boost::optional<bool> m_is_failed;
247 boost::optional<uint64_t> m_last_failed_height;
248 boost::optional<std::string> m_last_failed_hash;
249 boost::optional<uint64_t> m_max_used_block_height;
250 boost::optional<std::string> m_max_used_block_hash;
251 std::vector<std::string> m_signatures;
253 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
254 static void from_property_tree(
const boost::property_tree::ptree& node, std::shared_ptr<monero_tx> tx);
255 static std::shared_ptr<monero_tx> deserialize(
const std::string& json);
256 std::shared_ptr<monero_tx> copy(
const std::shared_ptr<monero_tx>& src,
const std::shared_ptr<monero_tx>& tgt)
const;
257 virtual void merge(
const std::shared_ptr<monero_tx>& self,
const std::shared_ptr<monero_tx>& other);
258 boost::optional<uint64_t> get_height()
const;
265 boost::optional<std::string> m_hex;
266 boost::optional<std::string> m_signature;
268 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
269 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_key_image>& key_image);
270 static std::shared_ptr<monero_key_image> deserialize(
const std::string& json);
271 static std::vector<std::shared_ptr<monero_key_image>> deserialize_key_images(
const std::string& key_images_json);
272 std::shared_ptr<monero_key_image> copy(
const std::shared_ptr<monero_key_image>& src,
const std::shared_ptr<monero_key_image>& tgt)
const;
273 void merge(
const std::shared_ptr<monero_key_image>& self,
const std::shared_ptr<monero_key_image>& other);
280 std::shared_ptr<monero_tx> m_tx;
281 std::shared_ptr<monero_key_image> m_key_image;
282 boost::optional<uint64_t> m_amount;
283 boost::optional<uint64_t> m_index;
284 std::vector<uint64_t> m_ring_output_indices;
285 boost::optional<std::string> m_stealth_public_key;
286 boost::optional<std::string> m_mask;
288 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const;
289 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_output>& output);
290 static std::shared_ptr<monero_output> deserialize(
const std::string& json);
291 std::shared_ptr<monero_output> copy(
const std::shared_ptr<monero_output>& src,
const std::shared_ptr<monero_output>& tgt)
const;
292 virtual void merge(
const std::shared_ptr<monero_output>& self,
const std::shared_ptr<monero_output>& other);
308 boost::optional<uint64_t> m_credits;
309 boost::optional<std::string> m_top_block_hash;
311 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
312 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_rpc_payment_info>& rpc_payment_info);
313 static std::shared_ptr<monero_rpc_payment_info> deserialize(
const std::string& json);
320 std::vector<std::string> m_block_hashes;
321 boost::optional<uint64_t> m_difficulty_low;
322 boost::optional<uint64_t> m_difficulty_high;
323 boost::optional<uint64_t> m_height;
324 boost::optional<uint64_t> m_length;
325 boost::optional<std::string> m_main_chain_parent_block_hash;
327 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
328 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_alt_chain>& alt_chain);
329 static std::shared_ptr<monero_alt_chain> deserialize(
const std::string& json);
336 boost::optional<std::string> m_host;
337 boost::optional<uint32_t> m_ip;
338 boost::optional<bool> m_is_banned;
339 boost::optional<uint64_t> m_seconds;
341 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
342 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_ban>& ban);
343 static std::shared_ptr<monero_ban> deserialize(
const std::string& json);
350 boost::optional<bool> m_is_pruned;
351 boost::optional<int> m_pruning_seed;
353 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_prune_result>& result);
354 static std::shared_ptr<monero_prune_result> deserialize(
const std::string& json);
355 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
362 boost::optional<bool> m_is_active;
363 boost::optional<bool> m_is_background;
364 boost::optional<std::string> m_address;
365 boost::optional<uint64_t> m_speed;
366 boost::optional<int> m_num_threads;
368 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_mining_status>& status);
369 static std::shared_ptr<monero_mining_status> deserialize(
const std::string& json);
370 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
377 boost::optional<uint64_t> m_emission_sum_low;
378 boost::optional<uint64_t> m_emission_sum_high;
379 boost::optional<uint64_t> m_fee_sum_low;
380 boost::optional<uint64_t> m_fee_sum_high;
382 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_miner_tx_sum>& sum);
383 static std::shared_ptr<monero_miner_tx_sum> deserialize(
const std::string& json);
384 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
391 boost::optional<std::string> m_block_template_blob;
392 boost::optional<std::string> m_block_hashing_blob;
393 boost::optional<std::string> m_prev_hash;
394 boost::optional<std::string> m_seed_hash;
395 boost::optional<std::string> m_next_seed_hash;
396 boost::optional<uint64_t> m_difficulty_low;
397 boost::optional<uint64_t> m_difficulty_high;
398 boost::optional<uint64_t> m_expected_reward;
399 boost::optional<uint64_t> m_height;
400 boost::optional<uint64_t> m_reserved_offset;
401 boost::optional<uint64_t> m_seed_height;
403 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_block_template>& tmplt);
404 static std::shared_ptr<monero_block_template> deserialize(
const std::string& json);
405 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
413 boost::optional<uint32_t> m_major_version;
414 boost::optional<uint64_t> m_height;
415 boost::optional<std::string> m_prev_hash;
416 boost::optional<std::string> m_seed_hash;
417 boost::optional<std::string> m_difficulty;
418 boost::optional<uint64_t> m_median_weight;
419 boost::optional<uint64_t> m_already_generated_coins;
420 std::vector<std::shared_ptr<monero_tx>> m_tx_pool_backlog;
422 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_miner_data>& data);
423 static std::shared_ptr<monero_miner_data> deserialize(
const std::string& json);
424 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
431 boost::optional<std::string> m_id;
432 boost::optional<std::string> m_hash;
434 monero_auxiliary_pow() { }
435 monero_auxiliary_pow(
const std::string&
id,
const std::string& hash): m_id(
id), m_hash(hash) { }
437 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_auxiliary_pow>& aux_pow);
438 static std::shared_ptr<monero_auxiliary_pow> deserialize(
const std::string& json);
439 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
446 boost::optional<std::string> m_block_template_blob;
447 boost::optional<std::string> m_block_hashing_blob;
448 boost::optional<std::string> m_merkle_root;
449 boost::optional<uint32_t> m_merkle_tree_depth;
450 std::vector<std::shared_ptr<monero_auxiliary_pow>> m_aux_pow;
452 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_add_auxiliary_pow_result>& result);
453 static std::shared_ptr<monero_add_auxiliary_pow_result> deserialize(
const std::string& json);
454 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
461 boost::optional<std::string> m_connection_id;
462 boost::optional<std::string> m_remote_address;
463 boost::optional<uint64_t> m_num_blocks;
464 boost::optional<uint64_t> m_rate;
465 boost::optional<uint64_t> m_speed;
466 boost::optional<uint64_t> m_size;
467 boost::optional<uint64_t> m_start_height;
469 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_connection_span>& span);
470 static std::shared_ptr<monero_connection_span> deserialize(
const std::string& json);
471 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
478 boost::optional<std::string> m_id;
479 boost::optional<std::string> m_address;
480 boost::optional<std::string> m_host;
481 boost::optional<int> m_port;
482 boost::optional<bool> m_is_online;
483 boost::optional<uint64_t> m_last_seen_timestamp;
484 boost::optional<int> m_pruning_seed;
485 boost::optional<int> m_rpc_port;
486 boost::optional<uint64_t> m_rpc_credits_per_hash;
487 boost::optional<std::string> m_hash;
488 boost::optional<uint64_t> m_avg_download;
489 boost::optional<uint64_t> m_avg_upload;
490 boost::optional<uint64_t> m_current_download;
491 boost::optional<uint64_t> m_current_upload;
492 boost::optional<uint64_t> m_height;
493 boost::optional<bool> m_is_incoming;
494 boost::optional<uint64_t> m_live_time;
495 boost::optional<bool> m_is_local_ip;
496 boost::optional<bool> m_is_local_host;
497 boost::optional<uint64_t> m_num_receives;
498 boost::optional<uint64_t> m_num_sends;
499 boost::optional<uint64_t> m_receive_idle_time;
500 boost::optional<uint64_t> m_send_idle_time;
501 boost::optional<std::string> m_state;
502 boost::optional<int> m_num_support_flags;
503 boost::optional<monero_connection_type> m_connection_type;
505 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_peer>& peer);
506 static std::shared_ptr<monero_peer> deserialize(
const std::string& json);
507 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
514 boost::optional<bool> m_has_invalid_input;
515 boost::optional<bool> m_has_invalid_output;
516 boost::optional<bool> m_has_too_few_outputs;
517 boost::optional<bool> m_is_good;
518 boost::optional<bool> m_is_relayed;
519 boost::optional<bool> m_is_double_spend;
520 boost::optional<bool> m_is_fee_too_low;
521 boost::optional<bool> m_is_mixin_too_low;
522 boost::optional<bool> m_is_overspend;
523 boost::optional<bool> m_is_too_big;
524 boost::optional<bool> m_sanity_check_failed;
525 boost::optional<bool> m_is_tx_extra_too_big;
526 boost::optional<bool> m_is_nonzero_unlock_time;
527 boost::optional<std::string> m_reason;
529 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_submit_tx_result>& result);
530 static std::shared_ptr<monero_submit_tx_result> deserialize(
const std::string& json);
531 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
545 boost::optional<uint64_t> m_amount;
546 boost::optional<uint64_t> m_base;
547 std::vector<uint64_t> m_distribution;
548 boost::optional<uint64_t> m_start_height;
550 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_output_distribution_entry>& entry);
551 static std::shared_ptr<monero_output_distribution_entry> deserialize(
const std::string& json);
552 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
559 boost::optional<uint64_t> m_amount;
560 boost::optional<uint64_t> m_num_instances;
561 boost::optional<uint64_t> m_unlocked_instances;
562 boost::optional<uint64_t> m_recent_instances;
564 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_output_histogram_entry>& entry);
565 static std::shared_ptr<monero_output_histogram_entry> deserialize(
const std::string& json);
566 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
573 boost::optional<int> m_num_txs;
574 boost::optional<int> m_num_not_relayed;
575 boost::optional<int> m_num_failing;
576 boost::optional<int> m_num_double_spends;
577 boost::optional<int> m_num10m;
578 boost::optional<uint64_t> m_fee_total;
579 boost::optional<uint64_t> m_bytes_max;
580 boost::optional<uint64_t> m_bytes_med;
581 boost::optional<uint64_t> m_bytes_min;
582 boost::optional<uint64_t> m_bytes_total;
583 std::map<uint64_t, uint64_t> m_histo;
584 boost::optional<uint64_t> m_histo98pc;
585 boost::optional<uint64_t> m_oldest_timestamp;
587 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
588 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_tx_pool_stats>& stats);
589 static std::shared_ptr<monero_tx_pool_stats> deserialize(
const std::string& json);
596 boost::optional<bool> m_is_update_available;
597 boost::optional<std::string> m_version;
598 boost::optional<std::string> m_hash;
599 boost::optional<std::string> m_auto_uri;
600 boost::optional<std::string> m_user_uri;
602 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_daemon_update_check_result>& check);
603 static std::shared_ptr<monero_daemon_update_check_result> deserialize(
const std::string& json);
604 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
611 boost::optional<std::string> m_download_path;
613 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_daemon_update_download_result>& check);
614 static std::shared_ptr<monero_daemon_update_download_result> deserialize(
const std::string& json);
615 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
622 boost::optional<uint64_t> m_quantization_mask;
623 boost::optional<uint64_t> m_fee;
624 std::vector<uint64_t> m_fees;
626 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_fee_estimate>& estimate);
627 static std::shared_ptr<monero_fee_estimate> deserialize(
const std::string& json);
628 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
635 boost::optional<std::string> m_version;
636 boost::optional<uint64_t> m_num_alt_blocks;
637 boost::optional<uint64_t> m_block_size_limit;
638 boost::optional<uint64_t> m_block_size_median;
639 boost::optional<uint64_t> m_block_weight_limit;
640 boost::optional<uint64_t> m_block_weight_median;
641 boost::optional<std::string> m_bootstrap_daemon_address;
642 boost::optional<uint64_t> m_difficulty_low;
643 boost::optional<uint64_t> m_difficulty_high;
644 boost::optional<uint64_t> m_cumulative_difficulty_low;
645 boost::optional<uint64_t> m_cumulative_difficulty_high;
646 boost::optional<uint64_t> m_free_space;
647 boost::optional<int> m_num_offline_peers;
648 boost::optional<int> m_num_online_peers;
649 boost::optional<uint64_t> m_height;
650 boost::optional<uint64_t> m_height_without_bootstrap;
651 boost::optional<monero_network_type> m_network_type;
652 boost::optional<bool> m_is_offline;
653 boost::optional<int> m_num_incoming_connections;
654 boost::optional<int> m_num_outgoing_connections;
655 boost::optional<int> m_num_rpc_connections;
656 boost::optional<uint64_t> m_start_timestamp;
657 boost::optional<uint64_t> m_adjusted_timestamp;
658 boost::optional<uint64_t> m_target;
659 boost::optional<uint64_t> m_target_height;
660 boost::optional<int> m_num_txs;
661 boost::optional<int> m_num_txs_pool;
662 boost::optional<bool> m_was_bootstrap_ever_used;
663 boost::optional<uint64_t> m_database_size;
664 boost::optional<bool> m_update_available;
665 boost::optional<bool> m_is_busy_syncing;
666 boost::optional<bool> m_is_synchronized;
667 boost::optional<bool> m_is_restricted;
668 boost::optional<bool> m_is_regtest;
670 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_daemon_info>& info);
671 static std::shared_ptr<monero_daemon_info> deserialize(
const std::string& json);
672 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
679 boost::optional<std::string> m_overview;
680 boost::optional<uint64_t> m_height;
681 boost::optional<uint64_t> m_target_height;
682 boost::optional<int> m_next_needed_pruning_seed;
683 std::vector<std::shared_ptr<monero_peer>> m_peers;
684 std::vector<std::shared_ptr<monero_connection_span>> m_spans;
686 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_daemon_sync_info>& info);
687 static std::shared_ptr<monero_daemon_sync_info> deserialize(
const std::string& json);
688 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
695 boost::optional<uint64_t> m_start_time;
696 boost::optional<uint64_t> m_total_packets_in;
697 boost::optional<uint64_t> m_total_bytes_in;
698 boost::optional<uint64_t> m_total_packets_out;
699 boost::optional<uint64_t> m_total_bytes_out;
701 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_daemon_network_stats>& stats);
702 static std::shared_ptr<monero_daemon_network_stats> deserialize(
const std::string& json);
703 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
710 boost::optional<bool> m_is_enabled;
711 boost::optional<uint64_t> m_earliest_height;
712 boost::optional<int> m_state;
713 boost::optional<int> m_threshold;
714 boost::optional<int> m_version;
715 boost::optional<int> m_num_votes;
716 boost::optional<int> m_window;
717 boost::optional<int> m_voting;
719 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_hard_fork_info>& info);
720 static std::shared_ptr<monero_hard_fork_info> deserialize(
const std::string& json);
721 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
728 std::vector<std::string> m_block_hashes;
729 boost::optional<uint64_t> m_height;
731 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_generate_blocks_result>& result);
732 static std::shared_ptr<monero_generate_blocks_result> deserialize(
const std::string& json);
733 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
740 std::vector<std::shared_ptr<monero_block>> m_blocks;
741 boost::optional<uint64_t> m_current_height;
743 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_get_blocks_by_hash_result>& result);
744 static std::shared_ptr<monero_get_blocks_by_hash_result> deserialize(
const std::string& json);
745 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
752 std::vector<std::string> m_hashes;
753 boost::optional<uint64_t> m_start_height;
754 boost::optional<uint64_t> m_current_height;
756 static void from_property_tree(
const boost::property_tree::ptree& node,
const std::shared_ptr<monero_get_block_hashes_result>& result);
757 static std::shared_ptr<monero_get_block_hashes_result> deserialize(
const std::string& json);
758 rapidjson::Value
to_rapidjson_val(rapidjson::Document::AllocatorType& allocator)
const override;
Definition monero_error.h:61
monero_key_image_spent_status
Definition monero_daemon_model.h:298
monero_connection_type
Definition monero_daemon_model.h:108
monero_network_type
Definition monero_daemon_model.h:119
Definition monero_daemon_model.h:445
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1202
Definition monero_daemon_model.h:319
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:889
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1164
Definition monero_daemon_model.h:335
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:927
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_rpc_model.cpp:213
Definition monero_daemon_model.h:390
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1073
Definition monero_daemon_model.h:192
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:282
Definition monero_daemon_model.h:460
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1242
Definition monero_daemon_model.h:634
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1690
Definition monero_daemon_model.h:694
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1813
Definition monero_daemon_model.h:678
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1772
Definition monero_daemon_model.h:595
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1554
Definition monero_daemon_model.h:610
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1587
Definition monero_daemon_model.h:621
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1620
Definition monero_daemon_model.h:727
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1888
Definition monero_daemon_model.h:751
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1949
Definition monero_daemon_model.h:739
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1917
Definition monero_daemon_model.h:709
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1851
Definition monero_daemon_model.h:264
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:689
Definition monero_daemon_model.h:412
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1126
Definition monero_daemon_model.h:376
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1035
Definition monero_daemon_model.h:361
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:998
Definition monero_daemon_model.h:544
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1428
Definition monero_daemon_model.h:558
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1461
Definition monero_daemon_model.h:279
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:757
Definition monero_daemon_model.h:477
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1311
Definition monero_daemon_model.h:349
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:961
Definition monero_daemon_model.h:307
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:853
Definition monero_daemon_model.h:513
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1381
Definition monero_daemon_model.h:537
Definition monero_daemon_model.h:572
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1505
Definition monero_daemon_model.h:209
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:394
Definition monero_daemon_model.h:142
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:96
Definition monero_daemon_model.h:70
virtual rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const =0
std::string serialize() const
Definition monero_daemon_model.cpp:86
Definition monero_daemon_model.h:93
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:126