Monero C++ Library
Loading...
Searching...
No Matches
monero_daemon_model.h
1
52
53#pragma once
54
55#include <map>
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"
61
65namespace monero {
66
71
72 virtual ~serializable_struct() = default;
73
79 std::string serialize() const;
80
87 virtual rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const = 0;
88 };
89
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;
99
100 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
101 };
102
106 enum monero_connection_type : uint8_t {
107 INVALID = 0,
108 IPV4,
109 IPV6,
110 TOR,
111 I2P
112 };
113
117 enum monero_network_type : uint8_t {
118 MAINNET = 0,
119 TESTNET,
120 STAGENET
121 };
122
126 struct monero_bandwidth_limits : public serializable_struct {
127 boost::optional<int> m_up;
128 boost::optional<int> m_down;
129
130 monero_bandwidth_limits() { }
131 monero_bandwidth_limits(int up, int down): m_up(up), m_down(down) { }
132
133 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
134 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_bandwidth_limits>& limits);
135 };
136
141 boost::optional<uint32_t> m_number;
142 boost::optional<bool> m_is_release;
143
144 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
145 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_version>& version);
146 };
147
148 // forward declarations
149 struct monero_tx;
150 struct monero_output;
151
158 boost::optional<std::string> m_hash;
159 boost::optional<uint64_t> m_height;
160 boost::optional<uint64_t> m_timestamp;
161 boost::optional<uint64_t> m_size;
162 boost::optional<uint64_t> m_weight;
163 boost::optional<uint64_t> m_long_term_weight;
164 boost::optional<uint64_t> m_depth;
165 boost::optional<uint64_t> m_difficulty_low;
166 boost::optional<uint64_t> m_difficulty_high;
167 boost::optional<uint64_t> m_cumulative_difficulty_low;
168 boost::optional<uint64_t> m_cumulative_difficulty_high;
169 boost::optional<uint32_t> m_major_version;
170 boost::optional<uint32_t> m_minor_version;
171 boost::optional<uint32_t> m_nonce;
172 boost::optional<std::string> m_miner_tx_hash;
173 boost::optional<uint32_t> m_num_txs;
174 boost::optional<bool> m_orphan_status;
175 boost::optional<std::string> m_prev_hash;
176 boost::optional<uint64_t> m_reward;
177 boost::optional<std::string> m_pow_hash;
178
179 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
180 std::shared_ptr<monero_block_header> copy(const std::shared_ptr<monero_block_header>& src, const std::shared_ptr<monero_block_header>& tgt) const;
181 virtual void merge(const std::shared_ptr<monero_block_header>& self, const std::shared_ptr<monero_block_header>& other);
182 };
183
188 boost::optional<std::string> m_hex;
189 std::shared_ptr<monero_tx> m_miner_tx;
190 std::vector<std::shared_ptr<monero_tx>> m_txs;
191 std::vector<std::string> m_tx_hashes;
192
193 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
194 std::shared_ptr<monero_block> copy(const std::shared_ptr<monero_block>& src, const std::shared_ptr<monero_block>& tgt) const;
195 void merge(const std::shared_ptr<monero_block_header>& self, const std::shared_ptr<monero_block_header>& other);
196 void merge(const std::shared_ptr<monero_block>& self, const std::shared_ptr<monero_block>& other);
197 };
198
203 static const std::string DEFAULT_PAYMENT_ID; // default payment id "0000000000000000"
204 static const std::string DEFAULT_ID;
205
206 std::shared_ptr<monero_block> m_block;
207 boost::optional<std::string> m_hash;
208 boost::optional<uint32_t> m_version;
209 boost::optional<bool> m_is_miner_tx;
210 boost::optional<std::string> m_payment_id;
211 boost::optional<uint64_t> m_fee;
212 boost::optional<uint32_t> m_ring_size;
213 boost::optional<bool> m_relay;
214 boost::optional<bool> m_is_relayed;
215 boost::optional<bool> m_is_confirmed;
216 boost::optional<bool> m_in_tx_pool;
217 boost::optional<uint64_t> m_num_confirmations;
218 boost::optional<uint64_t> m_unlock_time;
219 boost::optional<uint64_t> m_last_relayed_timestamp;
220 boost::optional<uint64_t> m_received_timestamp;
221 boost::optional<bool> m_is_double_spend_seen;
222 boost::optional<std::string> m_key;
223 boost::optional<std::string> m_full_hex;
224 boost::optional<std::string> m_pruned_hex;
225 boost::optional<std::string> m_prunable_hex;
226 boost::optional<std::string> m_prunable_hash;
227 boost::optional<uint64_t> m_size;
228 boost::optional<uint64_t> m_weight;
229 std::vector<std::shared_ptr<monero_output>> m_inputs;
230 std::vector<std::shared_ptr<monero_output>> m_outputs;
231 std::vector<uint64_t> m_output_indices;
232 boost::optional<std::string> m_metadata;
233 boost::optional<std::string> m_common_tx_sets;
234 std::vector<uint8_t> m_extra;
235 boost::optional<std::string> m_rct_signatures; // TODO: implement
236 boost::optional<std::string> m_rct_sig_prunable; // TODO: implement
237 boost::optional<bool> m_is_kept_by_block;
238 boost::optional<bool> m_is_failed;
239 boost::optional<uint64_t> m_last_failed_height;
240 boost::optional<std::string> m_last_failed_hash;
241 boost::optional<uint64_t> m_max_used_block_height;
242 boost::optional<std::string> m_max_used_block_hash;
243 std::vector<std::string> m_signatures;
244
245 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
246 static void from_property_tree(const boost::property_tree::ptree& node, std::shared_ptr<monero_tx> tx);
247 std::shared_ptr<monero_tx> copy(const std::shared_ptr<monero_tx>& src, const std::shared_ptr<monero_tx>& tgt) const;
248 virtual void merge(const std::shared_ptr<monero_tx>& self, const std::shared_ptr<monero_tx>& other);
249 boost::optional<uint64_t> get_height() const;
250 };
251
256 boost::optional<std::string> m_hex;
257 boost::optional<std::string> m_signature;
258
259 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
260 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_key_image>& key_image);
261 static std::vector<std::shared_ptr<monero_key_image>> deserialize_key_images(const std::string& key_images_json); // TODO: remove this specialty util used once
262 std::shared_ptr<monero_key_image> copy(const std::shared_ptr<monero_key_image>& src, const std::shared_ptr<monero_key_image>& tgt) const;
263 void merge(const std::shared_ptr<monero_key_image>& self, const std::shared_ptr<monero_key_image>& other);
264 };
265
270 std::shared_ptr<monero_tx> m_tx;
271 std::shared_ptr<monero_key_image> m_key_image;
272 boost::optional<uint64_t> m_amount;
273 boost::optional<uint64_t> m_index;
274 std::vector<uint64_t> m_ring_output_indices;
275 boost::optional<std::string> m_stealth_public_key;
276
277 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const;
278 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_output>& output);
279 std::shared_ptr<monero_output> copy(const std::shared_ptr<monero_output>& src, const std::shared_ptr<monero_output>& tgt) const;
280 virtual void merge(const std::shared_ptr<monero_output>& self, const std::shared_ptr<monero_output>& other);
281 };
282
287 NOT_SPENT = 0,
288 CONFIRMED,
289 TX_POOL
290 };
291
296 boost::optional<uint64_t> m_credits;
297 boost::optional<std::string> m_top_block_hash;
298
299 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
300 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_rpc_payment_info>& rpc_payment_info);
301 };
302
307 std::vector<std::string> m_block_hashes;
308 boost::optional<uint64_t> m_difficulty_low;
309 boost::optional<uint64_t> m_difficulty_high;
310 boost::optional<uint64_t> m_height;
311 boost::optional<uint64_t> m_length;
312 boost::optional<std::string> m_main_chain_parent_block_hash;
313
314 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
315 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_alt_chain>& alt_chain);
316 };
317
322 boost::optional<std::string> m_host;
323 boost::optional<uint32_t> m_ip;
324 boost::optional<bool> m_is_banned;
325 boost::optional<uint64_t> m_seconds;
326
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_ban>& ban);
329 };
330
335 boost::optional<bool> m_is_pruned;
336 boost::optional<int> m_pruning_seed;
337
338 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_prune_result>& result);
339 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
340 };
341
346 boost::optional<bool> m_is_active;
347 boost::optional<bool> m_is_background;
348 boost::optional<std::string> m_address;
349 boost::optional<uint64_t> m_speed;
350 boost::optional<int> m_num_threads;
351
352 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_mining_status>& status);
353 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
354 };
355
360 boost::optional<uint64_t> m_emission_sum_low;
361 boost::optional<uint64_t> m_emission_sum_high;
362 boost::optional<uint64_t> m_fee_sum_low;
363 boost::optional<uint64_t> m_fee_sum_high;
364
365 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_miner_tx_sum>& sum);
366 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
367 };
368
373 boost::optional<std::string> m_block_template_blob;
374 boost::optional<std::string> m_block_hashing_blob;
375 boost::optional<std::string> m_prev_hash;
376 boost::optional<std::string> m_seed_hash;
377 boost::optional<std::string> m_next_seed_hash;
378 boost::optional<uint64_t> m_difficulty_low;
379 boost::optional<uint64_t> m_difficulty_high;
380 boost::optional<uint64_t> m_expected_reward;
381 boost::optional<uint64_t> m_height;
382 boost::optional<uint64_t> m_reserved_offset;
383 boost::optional<uint64_t> m_seed_height;
384
385 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_block_template>& tmplt);
386 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
387 };
388
393 boost::optional<std::string> m_connection_id;
394 boost::optional<std::string> m_remote_address;
395 boost::optional<uint64_t> m_num_blocks;
396 boost::optional<uint64_t> m_rate;
397 boost::optional<uint64_t> m_speed;
398 boost::optional<uint64_t> m_size;
399 boost::optional<uint64_t> m_start_height;
400
401 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_connection_span>& span);
402 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
403 };
404
409 boost::optional<std::string> m_id;
410 boost::optional<std::string> m_address;
411 boost::optional<std::string> m_host;
412 boost::optional<int> m_port;
413 boost::optional<bool> m_is_online;
414 boost::optional<uint64_t> m_last_seen_timestamp;
415 boost::optional<int> m_pruning_seed;
416 boost::optional<int> m_rpc_port;
417 boost::optional<uint64_t> m_rpc_credits_per_hash;
418 boost::optional<std::string> m_hash;
419 boost::optional<uint64_t> m_avg_download;
420 boost::optional<uint64_t> m_avg_upload;
421 boost::optional<uint64_t> m_current_download;
422 boost::optional<uint64_t> m_current_upload;
423 boost::optional<uint64_t> m_height;
424 boost::optional<bool> m_is_incoming;
425 boost::optional<uint64_t> m_live_time;
426 boost::optional<bool> m_is_local_ip;
427 boost::optional<bool> m_is_local_host;
428 boost::optional<uint64_t> m_num_receives;
429 boost::optional<uint64_t> m_num_sends;
430 boost::optional<uint64_t> m_receive_idle_time;
431 boost::optional<uint64_t> m_send_idle_time;
432 boost::optional<std::string> m_state;
433 boost::optional<int> m_num_support_flags;
434 boost::optional<monero_connection_type> m_connection_type;
435
436 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_peer>& peer);
437 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
438 };
439
444 boost::optional<bool> m_has_invalid_input;
445 boost::optional<bool> m_has_invalid_output;
446 boost::optional<bool> m_has_too_few_outputs;
447 boost::optional<bool> m_is_good;
448 boost::optional<bool> m_is_relayed;
449 boost::optional<bool> m_is_double_spend;
450 boost::optional<bool> m_is_fee_too_low;
451 boost::optional<bool> m_is_mixin_too_low;
452 boost::optional<bool> m_is_overspend;
453 boost::optional<bool> m_is_too_big;
454 boost::optional<bool> m_sanity_check_failed;
455 boost::optional<bool> m_is_tx_extra_too_big;
456 boost::optional<bool> m_is_nonzero_unlock_time;
457 boost::optional<std::string> m_reason;
458
459 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_submit_tx_result>& result);
460 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
461 };
462
467 // TODO
468 };
469
474 boost::optional<uint64_t> m_amount;
475 boost::optional<uint64_t> m_base;
476 std::vector<uint64_t> m_distribution;
477 boost::optional<uint64_t> m_start_height;
478
479 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_output_distribution_entry>& entry);
480 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
481 };
482
487 boost::optional<uint64_t> m_amount;
488 boost::optional<uint64_t> m_num_instances;
489 boost::optional<uint64_t> m_unlocked_instances;
490 boost::optional<uint64_t> m_recent_instances;
491
492 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_output_histogram_entry>& entry);
493 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
494 };
495
500 boost::optional<int> m_num_txs;
501 boost::optional<int> m_num_not_relayed;
502 boost::optional<int> m_num_failing;
503 boost::optional<int> m_num_double_spends;
504 boost::optional<int> m_num10m;
505 boost::optional<uint64_t> m_fee_total;
506 boost::optional<uint64_t> m_bytes_max;
507 boost::optional<uint64_t> m_bytes_med;
508 boost::optional<uint64_t> m_bytes_min;
509 boost::optional<uint64_t> m_bytes_total;
510 std::map<uint64_t, uint64_t> m_histo;
511 boost::optional<uint64_t> m_histo98pc;
512 boost::optional<uint64_t> m_oldest_timestamp;
513
514 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
515 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_tx_pool_stats>& stats);
516 };
517
522 boost::optional<bool> m_is_update_available;
523 boost::optional<std::string> m_version;
524 boost::optional<std::string> m_hash;
525 boost::optional<std::string> m_auto_uri;
526 boost::optional<std::string> m_user_uri;
527
528 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_daemon_update_check_result>& check);
529 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
530 };
531
536 boost::optional<std::string> m_download_path;
537
538 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_daemon_update_download_result>& check);
539 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
540 };
541
546 boost::optional<uint64_t> m_quantization_mask;
547 boost::optional<uint64_t> m_fee;
548 std::vector<uint64_t> m_fees;
549
550 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_fee_estimate>& estimate);
551 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
552 };
553
558 boost::optional<std::string> m_version;
559 boost::optional<uint64_t> m_num_alt_blocks;
560 boost::optional<uint64_t> m_block_size_limit;
561 boost::optional<uint64_t> m_block_size_median;
562 boost::optional<uint64_t> m_block_weight_limit;
563 boost::optional<uint64_t> m_block_weight_median;
564 boost::optional<std::string> m_bootstrap_daemon_address;
565 boost::optional<uint64_t> m_difficulty_low;
566 boost::optional<uint64_t> m_difficulty_high;
567 boost::optional<uint64_t> m_cumulative_difficulty_low;
568 boost::optional<uint64_t> m_cumulative_difficulty_high;
569 boost::optional<uint64_t> m_free_space;
570 boost::optional<int> m_num_offline_peers;
571 boost::optional<int> m_num_online_peers;
572 boost::optional<uint64_t> m_height;
573 boost::optional<uint64_t> m_height_without_bootstrap;
574 boost::optional<monero_network_type> m_network_type;
575 boost::optional<bool> m_is_offline;
576 boost::optional<int> m_num_incoming_connections;
577 boost::optional<int> m_num_outgoing_connections;
578 boost::optional<int> m_num_rpc_connections;
579 boost::optional<uint64_t> m_start_timestamp;
580 boost::optional<uint64_t> m_adjusted_timestamp;
581 boost::optional<uint64_t> m_target;
582 boost::optional<uint64_t> m_target_height;
583 boost::optional<int> m_num_txs;
584 boost::optional<int> m_num_txs_pool;
585 boost::optional<bool> m_was_bootstrap_ever_used;
586 boost::optional<uint64_t> m_database_size;
587 boost::optional<bool> m_update_available;
588 boost::optional<bool> m_is_busy_syncing;
589 boost::optional<bool> m_is_synchronized;
590 boost::optional<bool> m_is_restricted;
591
592 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_daemon_info>& info);
593 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
594 };
595
600 boost::optional<std::string> m_overview;
601 boost::optional<uint64_t> m_height;
602 boost::optional<uint64_t> m_target_height;
603 boost::optional<int> m_next_needed_pruning_seed;
604 std::vector<std::shared_ptr<monero_peer>> m_peers;
605 std::vector<std::shared_ptr<monero_connection_span>> m_spans;
606
607 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_daemon_sync_info>& info);
608 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
609 };
610
615 boost::optional<bool> m_is_enabled;
616 boost::optional<uint64_t> m_earliest_height;
617 boost::optional<int> m_state;
618 boost::optional<int> m_threshold;
619 boost::optional<int> m_version;
620 boost::optional<int> m_num_votes;
621 boost::optional<int> m_window;
622 boost::optional<int> m_voting;
623
624 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_hard_fork_info>& info);
625 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
626 };
627
632 std::vector<std::string> m_block_hashes;
633 boost::optional<uint64_t> m_height;
634
635 static void from_property_tree(const boost::property_tree::ptree& node, const std::shared_ptr<monero_generate_blocks_result>& result);
636 rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType& allocator) const override;
637 };
638
639}
Definition monero_error.h:61
monero_key_image_spent_status
Definition monero_daemon_model.h:286
monero_connection_type
Definition monero_daemon_model.h:106
monero_network_type
Definition monero_daemon_model.h:117
Definition monero_daemon_model.h:306
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:747
Definition monero_daemon_model.h:321
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:781
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_rpc_model.cpp:133
Definition monero_daemon_model.h:157
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:141
Definition monero_daemon_model.h:372
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:911
Definition monero_daemon_model.h:187
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:231
Definition monero_daemon_model.h:392
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:951
Definition monero_daemon_model.h:557
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1357
Definition monero_daemon_model.h:599
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1420
Definition monero_daemon_model.h:521
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1234
Definition monero_daemon_model.h:535
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1263
Definition monero_daemon_model.h:545
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1292
Definition monero_daemon_model.h:631
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1493
Definition monero_daemon_model.h:614
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1460
Definition monero_daemon_model.h:255
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:576
Definition monero_daemon_model.h:359
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:877
Definition monero_daemon_model.h:345
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:844
Definition monero_daemon_model.h:473
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1122
Definition monero_daemon_model.h:486
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1151
Definition monero_daemon_model.h:269
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:640
Definition monero_daemon_model.h:408
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1015
Definition monero_daemon_model.h:334
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:811
Definition monero_daemon_model.h:295
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:715
Definition monero_daemon_model.h:443
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1079
Definition monero_daemon_model.h:466
Definition monero_daemon_model.h:499
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const override
Definition monero_daemon_model.cpp:1189
Definition monero_daemon_model.h:202
rapidjson::Value to_rapidjson_val(rapidjson::Document::AllocatorType &allocator) const
Definition monero_daemon_model.cpp:312
Definition monero_daemon_model.h:140
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:122