Electroneum
core_rpc_server_commands_defs.h
Go to the documentation of this file.
1 // Copyrights(c) 2017-2020, The Electroneum Project
2 // Copyrights(c) 2014-2019, The Monero Project
3 //
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without modification, are
7 // permitted provided that the following conditions are met:
8 //
9 // 1. Redistributions of source code must retain the above copyright notice, this list of
10 // conditions and the following disclaimer.
11 //
12 // 2. Redistributions in binary form must reproduce the above copyright notice, this list
13 // of conditions and the following disclaimer in the documentation and/or other
14 // materials provided with the distribution.
15 //
16 // 3. Neither the name of the copyright holder nor the names of its contributors may be
17 // used to endorse or promote products derived from this software without specific
18 // prior written permission.
19 //
20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
21 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23 // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 //
30 // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
31 
32 #pragma once
36 #include "crypto/hash.h"
37 #include "rpc/rpc_handler.h"
38 #include "common/varint.h"
39 #include "common/perf_timer.h"
40 
41 namespace
42 {
43  template<typename T>
44  std::string compress_integer_array(const std::vector<T> &v)
45  {
46  std::string s;
47  s.resize(v.size() * (sizeof(T) * 8 / 7 + 1));
48  char *ptr = (char*)s.data();
49  for (const T &t: v)
50  tools::write_varint(ptr, t);
51  s.resize(ptr - s.data());
52  return s;
53  }
54 
55  template<typename T>
56  std::vector<T> decompress_integer_array(const std::string &s)
57  {
58  std::vector<T> v;
59  v.reserve(s.size());
60  int read = 0;
61  const std::string::const_iterator end = s.end();
62  for (std::string::const_iterator i = s.begin(); i != end; std::advance(i, read))
63  {
64  T t;
65  read = tools::read_varint(std::string::const_iterator(i), s.end(), t);
66  CHECK_AND_ASSERT_THROW_MES(read > 0 && read <= 256, "Error decompressing data");
67  v.push_back(t);
68  }
69  return v;
70  }
71 }
72 
73 namespace cryptonote
74 {
75  //-----------------------------------------------
76 #define CORE_RPC_STATUS_OK "OK"
77 #define CORE_RPC_STATUS_BUSY "BUSY"
78 #define CORE_RPC_STATUS_NOT_MINING "NOT MINING"
79 
80 // When making *any* change here, bump minor
81 // If the change is incompatible, then bump major and set minor to 0
82 // This ensures CORE_RPC_VERSION always increases, that every change
83 // has its own version, and that clients can just test major to see
84 // whether they can talk to a given daemon without having to know in
85 // advance which version they will stop working with
86 // Don't go over 32767 for any of these
87 #define CORE_RPC_VERSION_MAJOR 2
88 #define CORE_RPC_VERSION_MINOR 6
89 #define MAKE_CORE_RPC_VERSION(major,minor) (((major)<<16)|(minor))
90 #define CORE_RPC_VERSION MAKE_CORE_RPC_VERSION(CORE_RPC_VERSION_MAJOR, CORE_RPC_VERSION_MINOR)
91 
93  {
94  struct request_t
95  {
96  BEGIN_KV_SERIALIZE_MAP()
97  END_KV_SERIALIZE_MAP()
98  };
99  typedef epee::misc_utils::struct_init<request_t> request;
100 
101  struct response_t
102  {
103  uint64_t height;
104  std::string status;
105  bool untrusted;
106  std::string hash;
107 
108  BEGIN_KV_SERIALIZE_MAP()
109  KV_SERIALIZE(height)
110  KV_SERIALIZE(status)
111  KV_SERIALIZE(untrusted)
112  KV_SERIALIZE(hash)
113  END_KV_SERIALIZE_MAP()
114  };
115  typedef epee::misc_utils::struct_init<response_t> response;
116  };
117 
119  {
120 
121  struct request_t
122  {
123  std::list<crypto::hash> block_ids; //*first 10 blocks id goes sequential, next goes in pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block */
124  uint64_t start_height;
125  bool prune;
127  BEGIN_KV_SERIALIZE_MAP()
128  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids)
129  KV_SERIALIZE(start_height)
130  KV_SERIALIZE(prune)
131  KV_SERIALIZE_OPT(no_miner_tx, false)
132  END_KV_SERIALIZE_MAP()
133  };
134  typedef epee::misc_utils::struct_init<request_t> request;
135 
137  {
138  std::vector<uint64_t> indices;
139 
140  BEGIN_KV_SERIALIZE_MAP()
141  KV_SERIALIZE(indices)
142  END_KV_SERIALIZE_MAP()
143  };
144 
146  {
147  std::vector<tx_output_indices> indices;
148 
149  BEGIN_KV_SERIALIZE_MAP()
150  KV_SERIALIZE(indices)
151  END_KV_SERIALIZE_MAP()
152  };
153 
154  struct response_t
155  {
156  std::vector<block_complete_entry> blocks;
157  uint64_t start_height;
158  uint64_t current_height;
159  std::string status;
160  std::vector<block_output_indices> output_indices;
161  bool untrusted;
162 
163  BEGIN_KV_SERIALIZE_MAP()
164  KV_SERIALIZE(blocks)
165  KV_SERIALIZE(start_height)
166  KV_SERIALIZE(current_height)
167  KV_SERIALIZE(status)
168  KV_SERIALIZE(output_indices)
169  KV_SERIALIZE(untrusted)
170  END_KV_SERIALIZE_MAP()
171  };
172  typedef epee::misc_utils::struct_init<response_t> response;
173  };
174 
176  {
177  struct request_t
178  {
179  std::vector<uint64_t> heights;
180  BEGIN_KV_SERIALIZE_MAP()
181  KV_SERIALIZE(heights)
182  END_KV_SERIALIZE_MAP()
183  };
184  typedef epee::misc_utils::struct_init<request_t> request;
185 
186  struct response_t
187  {
188  std::vector<block_complete_entry> blocks;
189  std::string status;
190  bool untrusted;
191 
192  BEGIN_KV_SERIALIZE_MAP()
193  KV_SERIALIZE(blocks)
194  KV_SERIALIZE(status)
195  KV_SERIALIZE(untrusted)
196  END_KV_SERIALIZE_MAP()
197  };
198  typedef epee::misc_utils::struct_init<response_t> response;
199  };
200 
202  {
203  struct request_t
204  {
205  BEGIN_KV_SERIALIZE_MAP()
206  END_KV_SERIALIZE_MAP()
207  };
208  typedef epee::misc_utils::struct_init<request_t> request;
209 
210  struct response_t
211  {
212  std::vector<std::string> blks_hashes;
213  std::string status;
214  bool untrusted;
215 
216  BEGIN_KV_SERIALIZE_MAP()
217  KV_SERIALIZE(blks_hashes)
218  KV_SERIALIZE(status)
219  KV_SERIALIZE(untrusted)
220  END_KV_SERIALIZE_MAP()
221  };
222  typedef epee::misc_utils::struct_init<response_t> response;
223  };
225  {
226 
227  struct request_t
228  {
229  std::list<crypto::hash> block_ids; //*first 10 blocks id goes sequential, next goes in pow(2,n) offset, like 2, 4, 8, 16, 32, 64 and so on, and the last one is always genesis block */
230  uint64_t start_height;
231  BEGIN_KV_SERIALIZE_MAP()
232  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(block_ids)
233  KV_SERIALIZE(start_height)
234  END_KV_SERIALIZE_MAP()
235  };
236  typedef epee::misc_utils::struct_init<request_t> request;
237 
238  struct response_t
239  {
240  std::vector<crypto::hash> m_block_ids;
241  uint64_t start_height;
242  uint64_t current_height;
243  std::string status;
244  bool untrusted;
245 
246  BEGIN_KV_SERIALIZE_MAP()
247  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_ids)
248  KV_SERIALIZE(start_height)
249  KV_SERIALIZE(current_height)
250  KV_SERIALIZE(status)
251  KV_SERIALIZE(untrusted)
252  END_KV_SERIALIZE_MAP()
253  };
254  typedef epee::misc_utils::struct_init<response_t> response;
255  };
256 
257  //-----------------------------------------------
259  {
260  struct request_t
261  {
262  std::vector<std::string> amounts;
263  uint32_t count;
264 
265  BEGIN_KV_SERIALIZE_MAP()
266  KV_SERIALIZE(amounts)
267  KV_SERIALIZE(count)
268  END_KV_SERIALIZE_MAP()
269  };
270  typedef epee::misc_utils::struct_init<request_t> request;
271 
272 
273  struct output {
274  std::string public_key;
275  uint64_t global_index;
276  std::string rct; // 64+64+64 characters long (<rct commit> + <encrypted mask> + <rct amount>)
277 
278  BEGIN_KV_SERIALIZE_MAP()
279  KV_SERIALIZE(public_key)
280  KV_SERIALIZE(global_index)
281  KV_SERIALIZE(rct)
282  END_KV_SERIALIZE_MAP()
283  };
284 
285  struct amount_out {
286  uint64_t amount;
287  std::vector<output> outputs;
288  BEGIN_KV_SERIALIZE_MAP()
289  KV_SERIALIZE(amount)
290  KV_SERIALIZE(outputs)
291  END_KV_SERIALIZE_MAP()
292 
293  };
294 
295  struct response_t
296  {
297  std::vector<amount_out> amount_outs;
298  std::string Error;
299  BEGIN_KV_SERIALIZE_MAP()
300  KV_SERIALIZE(amount_outs)
301  KV_SERIALIZE(Error)
302  END_KV_SERIALIZE_MAP()
303  };
304  typedef epee::misc_utils::struct_init<response_t> response;
305  };
306  //-----------------------------------------------
308  {
309  struct request_t
310  {
311  std::string address;
312  std::string view_key;
313  std::string tx;
314 
315  BEGIN_KV_SERIALIZE_MAP()
316  KV_SERIALIZE(address)
317  KV_SERIALIZE(view_key)
318  KV_SERIALIZE(tx)
319  END_KV_SERIALIZE_MAP()
320  };
321  typedef epee::misc_utils::struct_init<request_t> request;
322 
323 
324  struct response_t
325  {
326  std::string status;
327  std::string error;
328 
329  BEGIN_KV_SERIALIZE_MAP()
330  KV_SERIALIZE(status)
331  KV_SERIALIZE(error)
332  END_KV_SERIALIZE_MAP()
333  };
334  typedef epee::misc_utils::struct_init<response_t> response;
335  };
336  //-----------------------------------------------
338  {
339  struct request_t
340  {
341  std::vector<std::string> txs_hashes;
343  bool prune;
344  bool split;
345 
346  BEGIN_KV_SERIALIZE_MAP()
347  KV_SERIALIZE(txs_hashes)
348  KV_SERIALIZE(decode_as_json)
349  KV_SERIALIZE_OPT(prune, false)
350  KV_SERIALIZE_OPT(split, false)
351  END_KV_SERIALIZE_MAP()
352  };
353  typedef epee::misc_utils::struct_init<request_t> request;
354 
355  struct entry
356  {
357  std::string tx_hash;
358  std::string as_hex;
359  std::string pruned_as_hex;
360  std::string prunable_as_hex;
361  std::string prunable_hash;
362  std::string as_json;
363  bool in_pool;
365  uint64_t block_height;
366  uint64_t block_timestamp;
367  std::vector<uint64_t> output_indices;
368  bool relayed;
369 
370  BEGIN_KV_SERIALIZE_MAP()
371  KV_SERIALIZE(tx_hash)
372  KV_SERIALIZE(as_hex)
373  KV_SERIALIZE(pruned_as_hex)
374  KV_SERIALIZE(prunable_as_hex)
375  KV_SERIALIZE(prunable_hash)
376  KV_SERIALIZE(as_json)
377  KV_SERIALIZE(in_pool)
378  KV_SERIALIZE(double_spend_seen)
379  if (!this_ref.in_pool)
380  {
381  KV_SERIALIZE(block_height)
382  KV_SERIALIZE(block_timestamp)
383  KV_SERIALIZE(output_indices)
384  }
385  else
386  {
387  KV_SERIALIZE(relayed)
388  }
389  END_KV_SERIALIZE_MAP()
390  };
391 
392  struct response_t
393  {
394  // older compatibility stuff
395  std::vector<std::string> txs_as_hex; //transactions blobs as hex (old compat)
396  std::vector<std::string> txs_as_json; //transactions decoded as json (old compat)
397 
398  // in both old and new
399  std::vector<std::string> missed_tx; //not found transactions
400 
401  // new style
402  std::vector<entry> txs;
403  std::string status;
404  bool untrusted;
405 
406  BEGIN_KV_SERIALIZE_MAP()
407  KV_SERIALIZE(txs_as_hex)
408  KV_SERIALIZE(txs_as_json)
409  KV_SERIALIZE(txs)
410  KV_SERIALIZE(missed_tx)
411  KV_SERIALIZE(status)
412  KV_SERIALIZE(untrusted)
413  END_KV_SERIALIZE_MAP()
414  };
415  typedef epee::misc_utils::struct_init<response_t> response;
416  };
417 
418  //-----------------------------------------------
420  {
421  enum STATUS {
422  UNSPENT = 0,
425  };
426 
427  struct request_t
428  {
429  std::vector<std::string> key_images;
430 
431  BEGIN_KV_SERIALIZE_MAP()
432  KV_SERIALIZE(key_images)
433  END_KV_SERIALIZE_MAP()
434  };
435  typedef epee::misc_utils::struct_init<request_t> request;
436 
437 
438  struct response_t
439  {
440  std::vector<int> spent_status;
441  std::string status;
442  bool untrusted;
443 
444  BEGIN_KV_SERIALIZE_MAP()
445  KV_SERIALIZE(spent_status)
446  KV_SERIALIZE(status)
447  KV_SERIALIZE(untrusted)
448  END_KV_SERIALIZE_MAP()
449  };
450  typedef epee::misc_utils::struct_init<response_t> response;
451  };
452 
453  //-----------------------------------------------
455  {
456  struct request_t
457  {
459  BEGIN_KV_SERIALIZE_MAP()
460  KV_SERIALIZE_VAL_POD_AS_BLOB(txid)
461  END_KV_SERIALIZE_MAP()
462  };
463  typedef epee::misc_utils::struct_init<request_t> request;
464 
465 
466  struct response_t
467  {
468  std::vector<uint64_t> o_indexes;
469  std::string status;
470  bool untrusted;
471  BEGIN_KV_SERIALIZE_MAP()
472  KV_SERIALIZE(o_indexes)
473  KV_SERIALIZE(status)
474  KV_SERIALIZE(untrusted)
475  END_KV_SERIALIZE_MAP()
476  };
477  typedef epee::misc_utils::struct_init<response_t> response;
478  };
479  //-----------------------------------------------
481  {
482  uint64_t amount;
483  uint64_t index;
484 
485  BEGIN_KV_SERIALIZE_MAP()
486  KV_SERIALIZE(amount)
487  KV_SERIALIZE(index)
488  END_KV_SERIALIZE_MAP()
489  };
490 
492  {
493  struct request_t
494  {
495  std::vector<get_outputs_out> outputs;
496  bool get_txid;
497 
498  BEGIN_KV_SERIALIZE_MAP()
499  KV_SERIALIZE(outputs)
500  KV_SERIALIZE_OPT(get_txid, true)
501  END_KV_SERIALIZE_MAP()
502  };
503  typedef epee::misc_utils::struct_init<request_t> request;
504 
505  struct outkey
506  {
509  bool unlocked;
510  uint64_t height;
512 
513  BEGIN_KV_SERIALIZE_MAP()
514  KV_SERIALIZE_VAL_POD_AS_BLOB(key)
515  KV_SERIALIZE_VAL_POD_AS_BLOB(mask)
516  KV_SERIALIZE(unlocked)
517  KV_SERIALIZE(height)
518  KV_SERIALIZE_VAL_POD_AS_BLOB(txid)
519  END_KV_SERIALIZE_MAP()
520  };
521 
522  struct response_t
523  {
524  std::vector<outkey> outs;
525  std::string status;
526  bool untrusted;
527 
528  BEGIN_KV_SERIALIZE_MAP()
529  KV_SERIALIZE(outs)
530  KV_SERIALIZE(status)
531  KV_SERIALIZE(untrusted)
532  END_KV_SERIALIZE_MAP()
533  };
534  typedef epee::misc_utils::struct_init<response_t> response;
535  };
536  //-----------------------------------------------
538  {
539  struct request_t
540  {
541  std::vector<get_outputs_out> outputs;
542  bool get_txid;
543 
544  BEGIN_KV_SERIALIZE_MAP()
545  KV_SERIALIZE(outputs)
546  KV_SERIALIZE(get_txid)
547  END_KV_SERIALIZE_MAP()
548  };
549  typedef epee::misc_utils::struct_init<request_t> request;
550 
551  struct outkey
552  {
553  std::string key;
554  std::string mask;
555  bool unlocked;
556  uint64_t height;
557  std::string txid;
558 
559  BEGIN_KV_SERIALIZE_MAP()
560  KV_SERIALIZE(key)
561  KV_SERIALIZE(mask)
562  KV_SERIALIZE(unlocked)
563  KV_SERIALIZE(height)
564  KV_SERIALIZE(txid)
565  END_KV_SERIALIZE_MAP()
566  };
567 
568  struct response_t
569  {
570  std::vector<outkey> outs;
571  std::string status;
572  bool untrusted;
573 
574  BEGIN_KV_SERIALIZE_MAP()
575  KV_SERIALIZE(outs)
576  KV_SERIALIZE(status)
577  KV_SERIALIZE(untrusted)
578  END_KV_SERIALIZE_MAP()
579  };
580  typedef epee::misc_utils::struct_init<response_t> response;
581  };
582  //-----------------------------------------------
584  {
585  struct request_t
586  {
587  std::string tx_as_hex;
590 
591  BEGIN_KV_SERIALIZE_MAP()
592  KV_SERIALIZE(tx_as_hex)
593  KV_SERIALIZE_OPT(do_not_relay, false)
594  KV_SERIALIZE_OPT(do_sanity_checks, true)
595  END_KV_SERIALIZE_MAP()
596  };
597  typedef epee::misc_utils::struct_init<request_t> request;
598 
599 
600  struct response_t
601  {
602  std::string status;
603  std::string reason;
605  bool low_mixin;
609  bool too_big;
610  bool overspend;
612  bool not_rct;
614  bool untrusted;
615 
616  BEGIN_KV_SERIALIZE_MAP()
617  KV_SERIALIZE(status)
618  KV_SERIALIZE(reason)
619  KV_SERIALIZE(not_relayed)
620  KV_SERIALIZE(low_mixin)
621  KV_SERIALIZE(double_spend)
622  KV_SERIALIZE(invalid_input)
623  KV_SERIALIZE(invalid_output)
624  KV_SERIALIZE(too_big)
625  KV_SERIALIZE(overspend)
626  KV_SERIALIZE(fee_too_low)
627  KV_SERIALIZE(not_rct)
628  KV_SERIALIZE(sanity_check_failed)
629  KV_SERIALIZE(untrusted)
630  END_KV_SERIALIZE_MAP()
631  };
632  typedef epee::misc_utils::struct_init<response_t> response;
633  };
634  //-----------------------------------------------
636  {
637  struct request_t
638  {
639  std::string miner_address;
640  uint64_t threads_count;
643 
644  BEGIN_KV_SERIALIZE_MAP()
645  KV_SERIALIZE(miner_address)
646  KV_SERIALIZE(threads_count)
647  KV_SERIALIZE(do_background_mining)
648  KV_SERIALIZE(ignore_battery)
649  END_KV_SERIALIZE_MAP()
650  };
651  typedef epee::misc_utils::struct_init<request_t> request;
652 
653  struct response_t
654  {
655  std::string status;
656 
657  BEGIN_KV_SERIALIZE_MAP()
658  KV_SERIALIZE(status)
659  END_KV_SERIALIZE_MAP()
660  };
661  typedef epee::misc_utils::struct_init<response_t> response;
662  };
663  //-----------------------------------------------
665  {
666  struct request_t
667  {
668 
669  BEGIN_KV_SERIALIZE_MAP()
670  END_KV_SERIALIZE_MAP()
671  };
672  typedef epee::misc_utils::struct_init<request_t> request;
673 
674  struct response_t
675  {
676  std::string status;
677  uint64_t height;
678  uint64_t target_height;
679  uint64_t difficulty;
680  std::string wide_difficulty;
682  uint64_t target;
683  uint64_t tx_count;
684  uint64_t tx_pool_size;
691  bool mainnet;
692  bool testnet;
693  bool stagenet;
694  std::string nettype;
695  std::string top_block_hash;
703  uint64_t start_time;
704  uint64_t free_space;
705  bool offline;
706  bool untrusted;
710  uint64_t database_size;
712  std::string version;
713 
714  std::string daemon_release_name;
715  std::string daemon_version;
716  std::string daemon_version_full;
717  std::string daemon_version_tag;
718 
719  BEGIN_KV_SERIALIZE_MAP()
720  KV_SERIALIZE(status)
721  KV_SERIALIZE(height)
722  KV_SERIALIZE(target_height)
723  KV_SERIALIZE(difficulty)
724  KV_SERIALIZE(wide_difficulty)
725  KV_SERIALIZE(difficulty_top64)
726  KV_SERIALIZE(target)
727  KV_SERIALIZE(tx_count)
728  KV_SERIALIZE(tx_pool_size)
729  KV_SERIALIZE(alt_blocks_count)
730  KV_SERIALIZE(outgoing_connections_count)
731  KV_SERIALIZE(incoming_connections_count)
732  KV_SERIALIZE(rpc_connections_count)
733  KV_SERIALIZE(white_peerlist_size)
734  KV_SERIALIZE(grey_peerlist_size)
735  KV_SERIALIZE(mainnet)
736  KV_SERIALIZE(testnet)
737  KV_SERIALIZE(stagenet)
738  KV_SERIALIZE(nettype)
739  KV_SERIALIZE(top_block_hash)
740  KV_SERIALIZE(cumulative_difficulty)
741  KV_SERIALIZE(wide_cumulative_difficulty)
742  KV_SERIALIZE(cumulative_difficulty_top64)
743  KV_SERIALIZE(block_size_limit)
744  KV_SERIALIZE_OPT(block_weight_limit, (uint64_t)0)
745  KV_SERIALIZE(block_size_median)
746  KV_SERIALIZE_OPT(block_weight_median, (uint64_t)0)
747  KV_SERIALIZE(start_time)
748  KV_SERIALIZE(free_space)
749  KV_SERIALIZE(offline)
750  KV_SERIALIZE(untrusted)
751  KV_SERIALIZE(bootstrap_daemon_address)
752  KV_SERIALIZE(height_without_bootstrap)
753  KV_SERIALIZE(was_bootstrap_ever_used)
754  KV_SERIALIZE(database_size)
755  KV_SERIALIZE(update_available)
756  KV_SERIALIZE(version)
757 
758  KV_SERIALIZE(daemon_release_name)
759  KV_SERIALIZE(daemon_version)
760  KV_SERIALIZE(daemon_version_full)
761  KV_SERIALIZE(daemon_version_tag)
762  END_KV_SERIALIZE_MAP()
763  };
764  typedef epee::misc_utils::struct_init<response_t> response;
765  };
766 
767 
768  //-----------------------------------------------
770  {
771  struct request_t
772  {
773 
774  BEGIN_KV_SERIALIZE_MAP()
775  END_KV_SERIALIZE_MAP()
776  };
777  typedef epee::misc_utils::struct_init<request_t> request;
778 
779 
780  struct response_t
781  {
782  std::string status;
783  uint64_t start_time;
785  uint64_t total_bytes_in;
787  uint64_t total_bytes_out;
788 
789  BEGIN_KV_SERIALIZE_MAP()
790  KV_SERIALIZE(status)
791  KV_SERIALIZE(start_time)
792  KV_SERIALIZE(total_packets_in)
793  KV_SERIALIZE(total_bytes_in)
794  KV_SERIALIZE(total_packets_out)
795  KV_SERIALIZE(total_bytes_out)
796  END_KV_SERIALIZE_MAP()
797  };
798  typedef epee::misc_utils::struct_init<response_t> response;
799  };
800 
801  //-----------------------------------------------
803  {
804  struct request_t
805  {
806 
807  BEGIN_KV_SERIALIZE_MAP()
808  END_KV_SERIALIZE_MAP()
809  };
810  typedef epee::misc_utils::struct_init<request_t> request;
811 
812 
813  struct response_t
814  {
815  std::string status;
816 
817  BEGIN_KV_SERIALIZE_MAP()
818  KV_SERIALIZE(status)
819  END_KV_SERIALIZE_MAP()
820  };
821  typedef epee::misc_utils::struct_init<response_t> response;
822  };
823 
824  //-----------------------------------------------
826  {
827  struct request_t
828  {
829 
830  BEGIN_KV_SERIALIZE_MAP()
831  END_KV_SERIALIZE_MAP()
832  };
833  typedef epee::misc_utils::struct_init<request_t> request;
834 
835 
836  struct response_t
837  {
838  std::string status;
839  bool active;
840  uint64_t speed;
841  uint32_t threads_count;
842  std::string address;
843  std::string pow_algorithm;
848  uint8_t bg_target;
849  uint32_t block_target;
850  uint64_t block_reward;
851  uint64_t difficulty;
852  std::string wide_difficulty;
854 
855  BEGIN_KV_SERIALIZE_MAP()
856  KV_SERIALIZE(status)
857  KV_SERIALIZE(active)
858  KV_SERIALIZE(speed)
859  KV_SERIALIZE(threads_count)
860  KV_SERIALIZE(address)
861  KV_SERIALIZE(pow_algorithm)
862  KV_SERIALIZE(is_background_mining_enabled)
863  KV_SERIALIZE(bg_idle_threshold)
864  KV_SERIALIZE(bg_min_idle_seconds)
865  KV_SERIALIZE(bg_ignore_battery)
866  KV_SERIALIZE(bg_target)
867  KV_SERIALIZE(block_target)
868  KV_SERIALIZE(block_reward)
869  KV_SERIALIZE(difficulty)
870  KV_SERIALIZE(wide_difficulty)
871  KV_SERIALIZE(difficulty_top64)
872  END_KV_SERIALIZE_MAP()
873  };
874  typedef epee::misc_utils::struct_init<response_t> response;
875  };
876 
877  //-----------------------------------------------
879  {
880  struct request_t
881  {
882 
883  BEGIN_KV_SERIALIZE_MAP()
884  END_KV_SERIALIZE_MAP()
885  };
886  typedef epee::misc_utils::struct_init<request_t> request;
887 
888 
889  struct response_t
890  {
891  std::string status;
892 
893  BEGIN_KV_SERIALIZE_MAP()
894  KV_SERIALIZE(status)
895  END_KV_SERIALIZE_MAP()
896  };
897  typedef epee::misc_utils::struct_init<response_t> response;
898  };
899 
900  //
902  {
903  typedef std::list<std::string> request;
904 
905  struct response_t
906  {
907  uint64_t count;
908  std::string status;
909 
910  BEGIN_KV_SERIALIZE_MAP()
911  KV_SERIALIZE(count)
912  KV_SERIALIZE(status)
913  END_KV_SERIALIZE_MAP()
914  };
915  typedef epee::misc_utils::struct_init<response_t> response;
916  };
917 
919  {
920  typedef std::vector<uint64_t> request;
921 
922  typedef std::string response;
923  };
924 
925 
927  {
928  struct request_t
929  {
930  uint64_t reserve_size; //max 255 bytes
931  std::string wallet_address;
932  std::string prev_block;
933 
934  BEGIN_KV_SERIALIZE_MAP()
935  KV_SERIALIZE(reserve_size)
936  KV_SERIALIZE(wallet_address)
937  KV_SERIALIZE(prev_block)
938  END_KV_SERIALIZE_MAP()
939  };
940  typedef epee::misc_utils::struct_init<request_t> request;
941 
942  struct response_t
943  {
944  uint64_t difficulty;
945  std::string wide_difficulty;
947  uint64_t height;
948  uint64_t reserved_offset;
949  uint64_t expected_reward;
950  std::string prev_hash;
953  std::string status;
954  bool untrusted;
955 
956  BEGIN_KV_SERIALIZE_MAP()
957  KV_SERIALIZE(difficulty)
958  KV_SERIALIZE(wide_difficulty)
959  KV_SERIALIZE(difficulty_top64)
960  KV_SERIALIZE(height)
961  KV_SERIALIZE(reserved_offset)
962  KV_SERIALIZE(expected_reward)
963  KV_SERIALIZE(prev_hash)
964  KV_SERIALIZE(blocktemplate_blob)
965  KV_SERIALIZE(blockhashing_blob)
966  KV_SERIALIZE(status)
967  KV_SERIALIZE(untrusted)
968  END_KV_SERIALIZE_MAP()
969  };
970  typedef epee::misc_utils::struct_init<response_t> response;
971  };
972 
974  {
975  typedef std::vector<std::string> request;
976 
977  struct response_t
978  {
979  std::string status;
980 
981  BEGIN_KV_SERIALIZE_MAP()
982  KV_SERIALIZE(status)
983  END_KV_SERIALIZE_MAP()
984  };
985  typedef epee::misc_utils::struct_init<response_t> response;
986  };
987 
989  {
990  struct request_t
991  {
993  std::string wallet_address;
994  std::string prev_block;
995  uint32_t starting_nonce;
996 
997  BEGIN_KV_SERIALIZE_MAP()
998  KV_SERIALIZE(amount_of_blocks)
999  KV_SERIALIZE(wallet_address)
1000  KV_SERIALIZE(prev_block)
1001  KV_SERIALIZE_OPT(starting_nonce, (uint32_t)0)
1002  END_KV_SERIALIZE_MAP()
1003  };
1004  typedef epee::misc_utils::struct_init<request_t> request;
1005 
1006  struct response_t
1007  {
1008  uint64_t height;
1009  std::vector<std::string> blocks;
1010  std::string status;
1011 
1012  BEGIN_KV_SERIALIZE_MAP()
1013  KV_SERIALIZE(height)
1014  KV_SERIALIZE(blocks)
1015  KV_SERIALIZE(status)
1016  END_KV_SERIALIZE_MAP()
1017  };
1018  typedef epee::misc_utils::struct_init<response_t> response;
1019  };
1020 
1022  {
1023  uint8_t major_version;
1024  uint8_t minor_version;
1025  uint64_t timestamp;
1026  std::string prev_hash;
1027  uint32_t nonce;
1029  uint64_t height;
1030  uint64_t depth;
1031  std::string hash;
1032  uint64_t difficulty;
1033  std::string wide_difficulty;
1038  uint64_t reward;
1039  uint64_t block_size;
1040  uint64_t block_weight;
1041  uint64_t num_txes;
1042  std::string pow_hash;
1044  std::string miner_tx_hash;
1045 
1046  BEGIN_KV_SERIALIZE_MAP()
1047  KV_SERIALIZE(major_version)
1048  KV_SERIALIZE(minor_version)
1049  KV_SERIALIZE(timestamp)
1050  KV_SERIALIZE(prev_hash)
1051  KV_SERIALIZE(nonce)
1052  KV_SERIALIZE(orphan_status)
1053  KV_SERIALIZE(height)
1054  KV_SERIALIZE(depth)
1055  KV_SERIALIZE(hash)
1056  KV_SERIALIZE(difficulty)
1057  KV_SERIALIZE(wide_difficulty)
1058  KV_SERIALIZE(difficulty_top64)
1059  KV_SERIALIZE(cumulative_difficulty)
1060  KV_SERIALIZE(wide_cumulative_difficulty)
1061  KV_SERIALIZE(cumulative_difficulty_top64)
1062  KV_SERIALIZE(reward)
1063  KV_SERIALIZE(block_size)
1064  KV_SERIALIZE_OPT(block_weight, (uint64_t)0)
1065  KV_SERIALIZE(num_txes)
1066  KV_SERIALIZE(pow_hash)
1067  KV_SERIALIZE_OPT(long_term_weight, (uint64_t)0)
1068  KV_SERIALIZE(miner_tx_hash)
1069  END_KV_SERIALIZE_MAP()
1070  };
1071 
1073  {
1074  struct request_t
1075  {
1077 
1078  BEGIN_KV_SERIALIZE_MAP()
1079  KV_SERIALIZE_OPT(fill_pow_hash, false);
1080  END_KV_SERIALIZE_MAP()
1081  };
1082  typedef epee::misc_utils::struct_init<request_t> request;
1083 
1084  struct response_t
1085  {
1086  std::string status;
1089 
1090  BEGIN_KV_SERIALIZE_MAP()
1091  KV_SERIALIZE(block_header)
1092  KV_SERIALIZE(status)
1093  KV_SERIALIZE(untrusted)
1094  END_KV_SERIALIZE_MAP()
1095  };
1096  typedef epee::misc_utils::struct_init<response_t> response;
1097 
1098  };
1099 
1101  {
1102  struct request_t
1103  {
1104  std::string hash;
1106 
1107  BEGIN_KV_SERIALIZE_MAP()
1108  KV_SERIALIZE(hash)
1109  KV_SERIALIZE_OPT(fill_pow_hash, false);
1110  END_KV_SERIALIZE_MAP()
1111  };
1112  typedef epee::misc_utils::struct_init<request_t> request;
1113 
1114  struct response_t
1115  {
1116  std::string status;
1119 
1120  BEGIN_KV_SERIALIZE_MAP()
1121  KV_SERIALIZE(block_header)
1122  KV_SERIALIZE(status)
1123  KV_SERIALIZE(untrusted)
1124  END_KV_SERIALIZE_MAP()
1125  };
1126  typedef epee::misc_utils::struct_init<response_t> response;
1127  };
1128 
1130  {
1131  struct request_t
1132  {
1133  uint64_t height;
1135 
1136  BEGIN_KV_SERIALIZE_MAP()
1137  KV_SERIALIZE(height)
1138  KV_SERIALIZE_OPT(fill_pow_hash, false);
1139  END_KV_SERIALIZE_MAP()
1140  };
1141  typedef epee::misc_utils::struct_init<request_t> request;
1142 
1143  struct response_t
1144  {
1145  std::string status;
1148 
1149  BEGIN_KV_SERIALIZE_MAP()
1150  KV_SERIALIZE(block_header)
1151  KV_SERIALIZE(status)
1152  KV_SERIALIZE(untrusted)
1153  END_KV_SERIALIZE_MAP()
1154  };
1155  typedef epee::misc_utils::struct_init<response_t> response;
1156  };
1157 
1159  {
1160  struct request_t
1161  {
1162  std::string hash;
1163  uint64_t height;
1165 
1166  BEGIN_KV_SERIALIZE_MAP()
1167  KV_SERIALIZE(hash)
1168  KV_SERIALIZE(height)
1169  KV_SERIALIZE_OPT(fill_pow_hash, false);
1170  END_KV_SERIALIZE_MAP()
1171  };
1172  typedef epee::misc_utils::struct_init<request_t> request;
1173 
1174  struct response_t
1175  {
1176  std::string status;
1178  std::string miner_tx_hash;
1179  std::vector<std::string> tx_hashes;
1180  std::string blob;
1181  std::string json;
1183 
1184  BEGIN_KV_SERIALIZE_MAP()
1185  KV_SERIALIZE(block_header)
1186  KV_SERIALIZE(miner_tx_hash)
1187  KV_SERIALIZE(tx_hashes)
1188  KV_SERIALIZE(status)
1189  KV_SERIALIZE(blob)
1190  KV_SERIALIZE(json)
1191  KV_SERIALIZE(untrusted)
1192  END_KV_SERIALIZE_MAP()
1193  };
1194  typedef epee::misc_utils::struct_init<response_t> response;
1195  };
1196 
1197  struct peer {
1198  uint64_t id;
1199  std::string host;
1200  uint32_t ip;
1201  uint16_t port;
1202  uint16_t rpc_port;
1203  uint64_t last_seen;
1204  uint32_t pruning_seed;
1205 
1206  peer() = default;
1207 
1208  peer(uint64_t id, const std::string &host, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
1209  : id(id), host(host), ip(0), port(0), rpc_port(rpc_port), last_seen(last_seen), pruning_seed(pruning_seed)
1210  {}
1211  peer(uint64_t id, uint32_t ip, uint16_t port, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
1212  : id(id), host(std::to_string(ip)), ip(ip), port(port), rpc_port(rpc_port), last_seen(last_seen), pruning_seed(pruning_seed)
1213  {}
1214 
1215  BEGIN_KV_SERIALIZE_MAP()
1216  KV_SERIALIZE(id)
1217  KV_SERIALIZE(host)
1218  KV_SERIALIZE(ip)
1219  KV_SERIALIZE(port)
1220  KV_SERIALIZE_OPT(rpc_port, (uint16_t)0)
1221  KV_SERIALIZE(last_seen)
1222  KV_SERIALIZE_OPT(pruning_seed, (uint32_t)0)
1223  END_KV_SERIALIZE_MAP()
1224  };
1225 
1227  {
1228  struct request_t
1229  {
1230  BEGIN_KV_SERIALIZE_MAP()
1231  END_KV_SERIALIZE_MAP()
1232  };
1233  typedef epee::misc_utils::struct_init<request_t> request;
1234 
1235  struct response_t
1236  {
1237  std::string status;
1238  std::vector<peer> white_list;
1239  std::vector<peer> gray_list;
1240 
1241  BEGIN_KV_SERIALIZE_MAP()
1242  KV_SERIALIZE(status)
1243  KV_SERIALIZE(white_list)
1244  KV_SERIALIZE(gray_list)
1245  END_KV_SERIALIZE_MAP()
1246  };
1247  typedef epee::misc_utils::struct_init<response_t> response;
1248  };
1249 
1251  {
1252  struct request_t
1253  {
1254  bool visible;
1255 
1256  BEGIN_KV_SERIALIZE_MAP()
1257  KV_SERIALIZE(visible)
1258  END_KV_SERIALIZE_MAP()
1259  };
1260  typedef epee::misc_utils::struct_init<request_t> request;
1261 
1262  struct response_t
1263  {
1264  std::string status;
1265  BEGIN_KV_SERIALIZE_MAP()
1266  KV_SERIALIZE(status)
1267  END_KV_SERIALIZE_MAP()
1268  };
1269  typedef epee::misc_utils::struct_init<response_t> response;
1270  };
1271 
1273  {
1274  struct request_t
1275  {
1276  int8_t level;
1277 
1278  BEGIN_KV_SERIALIZE_MAP()
1279  KV_SERIALIZE(level)
1280  END_KV_SERIALIZE_MAP()
1281  };
1282  typedef epee::misc_utils::struct_init<request_t> request;
1283 
1284  struct response_t
1285  {
1286  std::string status;
1287  BEGIN_KV_SERIALIZE_MAP()
1288  KV_SERIALIZE(status)
1289  END_KV_SERIALIZE_MAP()
1290  };
1291  typedef epee::misc_utils::struct_init<response_t> response;
1292  };
1293 
1295  {
1296  struct request_t
1297  {
1298  std::string categories;
1299 
1300  BEGIN_KV_SERIALIZE_MAP()
1301  KV_SERIALIZE(categories)
1302  END_KV_SERIALIZE_MAP()
1303  };
1304  typedef epee::misc_utils::struct_init<request_t> request;
1305 
1306  struct response_t
1307  {
1308  std::string status;
1309  std::string categories;
1310 
1311  BEGIN_KV_SERIALIZE_MAP()
1312  KV_SERIALIZE(status)
1313  KV_SERIALIZE(categories)
1314  END_KV_SERIALIZE_MAP()
1315  };
1316  typedef epee::misc_utils::struct_init<response_t> response;
1317  };
1318 
1319  struct tx_info
1320  {
1321  std::string id_hash;
1322  std::string tx_json; // TODO - expose this data directly
1323  uint64_t blob_size;
1324  uint64_t weight;
1325  uint64_t fee;
1330  std::string last_failed_id_hash;
1331  uint64_t receive_time;
1332  bool relayed;
1336  std::string tx_blob;
1337 
1338  BEGIN_KV_SERIALIZE_MAP()
1339  KV_SERIALIZE(id_hash)
1340  KV_SERIALIZE(tx_json)
1341  KV_SERIALIZE(blob_size)
1342  KV_SERIALIZE_OPT(weight, (uint64_t)0)
1343  KV_SERIALIZE(fee)
1344  KV_SERIALIZE(max_used_block_id_hash)
1345  KV_SERIALIZE(max_used_block_height)
1346  KV_SERIALIZE(kept_by_block)
1347  KV_SERIALIZE(last_failed_height)
1348  KV_SERIALIZE(last_failed_id_hash)
1349  KV_SERIALIZE(receive_time)
1350  KV_SERIALIZE(relayed)
1351  KV_SERIALIZE(last_relayed_time)
1352  KV_SERIALIZE(do_not_relay)
1353  KV_SERIALIZE(double_spend_seen)
1354  KV_SERIALIZE(tx_blob)
1355  END_KV_SERIALIZE_MAP()
1356  };
1357 
1359  {
1360  std::string id_hash;
1361  std::vector<std::string> txs_hashes;
1362 
1363  BEGIN_KV_SERIALIZE_MAP()
1364  KV_SERIALIZE(id_hash)
1365  KV_SERIALIZE(txs_hashes)
1366  END_KV_SERIALIZE_MAP()
1367  };
1368 
1370  {
1371  struct request_t
1372  {
1373  BEGIN_KV_SERIALIZE_MAP()
1374  END_KV_SERIALIZE_MAP()
1375  };
1376  typedef epee::misc_utils::struct_init<request_t> request;
1377 
1378  struct response_t
1379  {
1380  std::string status;
1381  std::vector<tx_info> transactions;
1382  std::vector<spent_key_image_info> spent_key_images;
1384 
1385  BEGIN_KV_SERIALIZE_MAP()
1386  KV_SERIALIZE(status)
1387  KV_SERIALIZE(transactions)
1388  KV_SERIALIZE(spent_key_images)
1389  KV_SERIALIZE(untrusted)
1390  END_KV_SERIALIZE_MAP()
1391  };
1392  typedef epee::misc_utils::struct_init<response_t> response;
1393  };
1394 
1396  {
1397  struct request_t
1398  {
1399  BEGIN_KV_SERIALIZE_MAP()
1400  END_KV_SERIALIZE_MAP()
1401  };
1402  typedef epee::misc_utils::struct_init<request_t> request;
1403 
1404  struct response_t
1405  {
1406  std::string status;
1407  std::vector<crypto::hash> tx_hashes;
1409 
1410  BEGIN_KV_SERIALIZE_MAP()
1411  KV_SERIALIZE(status)
1412  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(tx_hashes)
1413  KV_SERIALIZE(untrusted)
1414  END_KV_SERIALIZE_MAP()
1415  };
1416  typedef epee::misc_utils::struct_init<response_t> response;
1417  };
1418 
1420  {
1421  struct request_t
1422  {
1423  BEGIN_KV_SERIALIZE_MAP()
1424  END_KV_SERIALIZE_MAP()
1425  };
1426  typedef epee::misc_utils::struct_init<request_t> request;
1427 
1428  struct response_t
1429  {
1430  std::string status;
1431  std::vector<std::string> tx_hashes;
1433 
1434  BEGIN_KV_SERIALIZE_MAP()
1435  KV_SERIALIZE(status)
1436  KV_SERIALIZE(tx_hashes)
1437  KV_SERIALIZE(untrusted)
1438  END_KV_SERIALIZE_MAP()
1439  };
1440  typedef epee::misc_utils::struct_init<response_t> response;
1441  };
1442 
1444  {
1445  uint64_t weight;
1446  uint64_t fee;
1447  uint64_t time_in_pool;
1448  };
1449 
1451  {
1452  struct request_t
1453  {
1454  BEGIN_KV_SERIALIZE_MAP()
1455  END_KV_SERIALIZE_MAP()
1456  };
1457  typedef epee::misc_utils::struct_init<request_t> request;
1458 
1459  struct response_t
1460  {
1461  std::string status;
1462  std::vector<tx_backlog_entry> backlog;
1464 
1465  BEGIN_KV_SERIALIZE_MAP()
1466  KV_SERIALIZE(status)
1467  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(backlog)
1468  KV_SERIALIZE(untrusted)
1469  END_KV_SERIALIZE_MAP()
1470  };
1471  typedef epee::misc_utils::struct_init<response_t> response;
1472  };
1473 
1475  {
1476  uint32_t txs;
1477  uint64_t bytes;
1478 
1479  BEGIN_KV_SERIALIZE_MAP()
1480  KV_SERIALIZE(txs)
1481  KV_SERIALIZE(bytes)
1482  END_KV_SERIALIZE_MAP()
1483  };
1484 
1486  {
1487  uint64_t bytes_total;
1488  uint32_t bytes_min;
1489  uint32_t bytes_max;
1490  uint32_t bytes_med;
1491  uint64_t fee_total;
1492  uint64_t oldest;
1493  uint32_t txs_total;
1494  uint32_t num_failing;
1495  uint32_t num_10m;
1497  uint64_t histo_98pc;
1498  std::vector<txpool_histo> histo;
1500 
1501  txpool_stats(): bytes_total(0), bytes_min(0), bytes_max(0), bytes_med(0), fee_total(0), oldest(0), txs_total(0), num_failing(0), num_10m(0), num_not_relayed(0), histo_98pc(0), num_double_spends(0) {}
1502 
1503  BEGIN_KV_SERIALIZE_MAP()
1504  KV_SERIALIZE(bytes_total)
1505  KV_SERIALIZE(bytes_min)
1506  KV_SERIALIZE(bytes_max)
1507  KV_SERIALIZE(bytes_med)
1508  KV_SERIALIZE(fee_total)
1509  KV_SERIALIZE(oldest)
1510  KV_SERIALIZE(txs_total)
1511  KV_SERIALIZE(num_failing)
1512  KV_SERIALIZE(num_10m)
1513  KV_SERIALIZE(num_not_relayed)
1514  KV_SERIALIZE(histo_98pc)
1515  KV_SERIALIZE_CONTAINER_POD_AS_BLOB(histo)
1516  KV_SERIALIZE(num_double_spends)
1517  END_KV_SERIALIZE_MAP()
1518  };
1519 
1521  {
1522  struct request_t
1523  {
1524  BEGIN_KV_SERIALIZE_MAP()
1525  END_KV_SERIALIZE_MAP()
1526  };
1527  typedef epee::misc_utils::struct_init<request_t> request;
1528 
1529  struct response_t
1530  {
1531  std::string status;
1534 
1535  BEGIN_KV_SERIALIZE_MAP()
1536  KV_SERIALIZE(status)
1537  KV_SERIALIZE(pool_stats)
1538  KV_SERIALIZE(untrusted)
1539  END_KV_SERIALIZE_MAP()
1540  };
1541  typedef epee::misc_utils::struct_init<response_t> response;
1542  };
1543 
1545  {
1546  struct request_t
1547  {
1548  BEGIN_KV_SERIALIZE_MAP()
1549  END_KV_SERIALIZE_MAP()
1550  };
1551  typedef epee::misc_utils::struct_init<request_t> request;
1552 
1553  struct response_t
1554  {
1555  std::string status;
1556  std::list<connection_info> connections;
1557 
1558  BEGIN_KV_SERIALIZE_MAP()
1559  KV_SERIALIZE(status)
1560  KV_SERIALIZE(connections)
1561  END_KV_SERIALIZE_MAP()
1562  };
1563  typedef epee::misc_utils::struct_init<response_t> response;
1564  };
1565 
1567  {
1568  struct request_t
1569  {
1570  uint64_t start_height;
1571  uint64_t end_height;
1573 
1574  BEGIN_KV_SERIALIZE_MAP()
1575  KV_SERIALIZE(start_height)
1576  KV_SERIALIZE(end_height)
1577  KV_SERIALIZE_OPT(fill_pow_hash, false);
1578  END_KV_SERIALIZE_MAP()
1579  };
1580  typedef epee::misc_utils::struct_init<request_t> request;
1581 
1582  struct response_t
1583  {
1584  std::string status;
1585  std::vector<block_header_response> headers;
1587 
1588  BEGIN_KV_SERIALIZE_MAP()
1589  KV_SERIALIZE(status)
1590  KV_SERIALIZE(headers)
1591  KV_SERIALIZE(untrusted)
1592  END_KV_SERIALIZE_MAP()
1593  };
1594  typedef epee::misc_utils::struct_init<response_t> response;
1595  };
1596 
1598  {
1599  struct request_t
1600  {
1601  BEGIN_KV_SERIALIZE_MAP()
1602  END_KV_SERIALIZE_MAP()
1603  };
1604  typedef epee::misc_utils::struct_init<request_t> request;
1605 
1606  struct response_t
1607  {
1608  std::string status;
1609 
1610  BEGIN_KV_SERIALIZE_MAP()
1611  KV_SERIALIZE(status)
1612  END_KV_SERIALIZE_MAP()
1613  };
1614  typedef epee::misc_utils::struct_init<response_t> response;
1615  };
1616 
1618  {
1619  struct request_t
1620  {
1621  BEGIN_KV_SERIALIZE_MAP()
1622  END_KV_SERIALIZE_MAP()
1623  };
1624  typedef epee::misc_utils::struct_init<request_t> request;
1625 
1626  struct response_t
1627  {
1628  std::string status;
1629 
1630  BEGIN_KV_SERIALIZE_MAP()
1631  KV_SERIALIZE(status)
1632  END_KV_SERIALIZE_MAP()
1633  };
1634  typedef epee::misc_utils::struct_init<response_t> response;
1635  };
1636 
1638  {
1639  struct request_t
1640  {
1641  BEGIN_KV_SERIALIZE_MAP()
1642  END_KV_SERIALIZE_MAP()
1643  };
1644  typedef epee::misc_utils::struct_init<request_t> request;
1645 
1646  struct response_t
1647  {
1648  std::string status;
1649  uint64_t limit_up;
1650  uint64_t limit_down;
1652 
1653  BEGIN_KV_SERIALIZE_MAP()
1654  KV_SERIALIZE(status)
1655  KV_SERIALIZE(limit_up)
1656  KV_SERIALIZE(limit_down)
1657  KV_SERIALIZE(untrusted)
1658  END_KV_SERIALIZE_MAP()
1659  };
1660  typedef epee::misc_utils::struct_init<response_t> response;
1661  };
1662 
1664  {
1665  struct request_t
1666  {
1667  int64_t limit_down; // all limits (for get and set) are kB/s
1668  int64_t limit_up;
1669 
1670  BEGIN_KV_SERIALIZE_MAP()
1671  KV_SERIALIZE(limit_down)
1672  KV_SERIALIZE(limit_up)
1673  END_KV_SERIALIZE_MAP()
1674  };
1675  typedef epee::misc_utils::struct_init<request_t> request;
1676 
1677  struct response_t
1678  {
1679  std::string status;
1680  int64_t limit_up;
1681  int64_t limit_down;
1682 
1683  BEGIN_KV_SERIALIZE_MAP()
1684  KV_SERIALIZE(status)
1685  KV_SERIALIZE(limit_up)
1686  KV_SERIALIZE(limit_down)
1687  END_KV_SERIALIZE_MAP()
1688  };
1689  typedef epee::misc_utils::struct_init<response_t> response;
1690  };
1691 
1693  {
1694  struct request_t
1695  {
1696  uint64_t out_peers;
1697  BEGIN_KV_SERIALIZE_MAP()
1698  KV_SERIALIZE(out_peers)
1699  END_KV_SERIALIZE_MAP()
1700  };
1701  typedef epee::misc_utils::struct_init<request_t> request;
1702 
1703  struct response_t
1704  {
1705  std::string status;
1706 
1707  BEGIN_KV_SERIALIZE_MAP()
1708  KV_SERIALIZE(status)
1709  END_KV_SERIALIZE_MAP()
1710  };
1711  typedef epee::misc_utils::struct_init<response_t> response;
1712  };
1713 
1715  {
1716  struct request_t
1717  {
1718  uint64_t in_peers;
1719  BEGIN_KV_SERIALIZE_MAP()
1720  KV_SERIALIZE(in_peers)
1721  END_KV_SERIALIZE_MAP()
1722  };
1723  typedef epee::misc_utils::struct_init<request_t> request;
1724 
1725  struct response_t
1726  {
1727  std::string status;
1728 
1729  BEGIN_KV_SERIALIZE_MAP()
1730  KV_SERIALIZE(status)
1731  END_KV_SERIALIZE_MAP()
1732  };
1733  typedef epee::misc_utils::struct_init<response_t> response;
1734  };
1735 
1737  {
1738  struct request_t
1739  {
1740  BEGIN_KV_SERIALIZE_MAP()
1741  END_KV_SERIALIZE_MAP()
1742  };
1743  typedef epee::misc_utils::struct_init<request_t> request;
1744 
1745  struct response_t
1746  {
1747  std::string status;
1748 
1749  BEGIN_KV_SERIALIZE_MAP()
1750  KV_SERIALIZE(status)
1751  END_KV_SERIALIZE_MAP()
1752  };
1753  typedef epee::misc_utils::struct_init<response_t> response;
1754  };
1755 
1757  {
1758  struct request_t
1759  {
1760  BEGIN_KV_SERIALIZE_MAP()
1761  END_KV_SERIALIZE_MAP()
1762  };
1763  typedef epee::misc_utils::struct_init<request_t> request;
1764 
1765  struct response_t
1766  {
1767  std::string status;
1768 
1769  BEGIN_KV_SERIALIZE_MAP()
1770  KV_SERIALIZE(status)
1771  END_KV_SERIALIZE_MAP()
1772  };
1773  typedef epee::misc_utils::struct_init<response_t> response;
1774  };
1775 
1777  {
1778  struct request_t
1779  {
1780  uint8_t version;
1781 
1782  BEGIN_KV_SERIALIZE_MAP()
1783  KV_SERIALIZE(version)
1784  END_KV_SERIALIZE_MAP()
1785  };
1786  typedef epee::misc_utils::struct_init<request_t> request;
1787 
1788  struct response_t
1789  {
1790  uint8_t version;
1791  bool enabled;
1792  uint32_t window;
1793  uint32_t votes;
1794  uint32_t threshold;
1795  uint8_t voting;
1796  uint32_t state;
1798  std::string status;
1800 
1801  BEGIN_KV_SERIALIZE_MAP()
1802  KV_SERIALIZE(version)
1803  KV_SERIALIZE(enabled)
1804  KV_SERIALIZE(window)
1805  KV_SERIALIZE(votes)
1806  KV_SERIALIZE(threshold)
1807  KV_SERIALIZE(voting)
1808  KV_SERIALIZE(state)
1809  KV_SERIALIZE(earliest_height)
1810  KV_SERIALIZE(status)
1811  KV_SERIALIZE(untrusted)
1812  END_KV_SERIALIZE_MAP()
1813  };
1814  typedef epee::misc_utils::struct_init<response_t> response;
1815  };
1816 
1818  {
1819  struct ban
1820  {
1821  std::string host;
1822  uint32_t ip;
1823  uint32_t seconds;
1824 
1825  BEGIN_KV_SERIALIZE_MAP()
1826  KV_SERIALIZE(host)
1827  KV_SERIALIZE(ip)
1828  KV_SERIALIZE(seconds)
1829  END_KV_SERIALIZE_MAP()
1830  };
1831 
1832  struct request_t
1833  {
1834  BEGIN_KV_SERIALIZE_MAP()
1835  END_KV_SERIALIZE_MAP()
1836  };
1837  typedef epee::misc_utils::struct_init<request_t> request;
1838 
1839  struct response_t
1840  {
1841  std::string status;
1842  std::vector<ban> bans;
1843 
1844  BEGIN_KV_SERIALIZE_MAP()
1845  KV_SERIALIZE(status)
1846  KV_SERIALIZE(bans)
1847  END_KV_SERIALIZE_MAP()
1848  };
1849  typedef epee::misc_utils::struct_init<response_t> response;
1850  };
1851 
1853  {
1854  struct ban
1855  {
1856  std::string host;
1857  uint32_t ip;
1858  bool ban;
1859  int32_t seconds;
1860 
1861  BEGIN_KV_SERIALIZE_MAP()
1862  KV_SERIALIZE(host)
1863  KV_SERIALIZE(ip)
1864  KV_SERIALIZE(ban)
1865  KV_SERIALIZE(seconds)
1866  END_KV_SERIALIZE_MAP()
1867  };
1868 
1869  struct request_t
1870  {
1871  std::vector<ban> bans;
1872 
1873  BEGIN_KV_SERIALIZE_MAP()
1874  KV_SERIALIZE(bans)
1875  END_KV_SERIALIZE_MAP()
1876  };
1877  typedef epee::misc_utils::struct_init<request_t> request;
1878 
1879  struct response_t
1880  {
1881  std::string status;
1882 
1883  BEGIN_KV_SERIALIZE_MAP()
1884  KV_SERIALIZE(status)
1885  END_KV_SERIALIZE_MAP()
1886  };
1887  typedef epee::misc_utils::struct_init<response_t> response;
1888  };
1889 
1891  {
1892  struct request_t
1893  {
1894  std::vector<std::string> txids;
1895 
1896  BEGIN_KV_SERIALIZE_MAP()
1897  KV_SERIALIZE(txids)
1898  END_KV_SERIALIZE_MAP()
1899  };
1900  typedef epee::misc_utils::struct_init<request_t> request;
1901 
1902  struct response_t
1903  {
1904  std::string status;
1905 
1906  BEGIN_KV_SERIALIZE_MAP()
1907  KV_SERIALIZE(status)
1908  END_KV_SERIALIZE_MAP()
1909  };
1910  typedef epee::misc_utils::struct_init<response_t> response;
1911  };
1912 
1914  {
1915  struct request_t
1916  {
1917  std::vector<uint64_t> amounts;
1918  uint64_t min_count;
1919  uint64_t max_count;
1920  bool unlocked;
1921  uint64_t recent_cutoff;
1922 
1923  BEGIN_KV_SERIALIZE_MAP()
1924  KV_SERIALIZE(amounts);
1925  KV_SERIALIZE(min_count);
1926  KV_SERIALIZE(max_count);
1927  KV_SERIALIZE(unlocked);
1928  KV_SERIALIZE(recent_cutoff);
1929  END_KV_SERIALIZE_MAP()
1930  };
1931  typedef epee::misc_utils::struct_init<request_t> request;
1932 
1933  struct entry
1934  {
1935  uint64_t amount;
1939 
1940  BEGIN_KV_SERIALIZE_MAP()
1941  KV_SERIALIZE(amount);
1942  KV_SERIALIZE(total_instances);
1943  KV_SERIALIZE(unlocked_instances);
1944  KV_SERIALIZE(recent_instances);
1945  END_KV_SERIALIZE_MAP()
1946 
1947  entry(uint64_t amount, uint64_t total_instances, uint64_t unlocked_instances, uint64_t recent_instances):
1948  amount(amount), total_instances(total_instances), unlocked_instances(unlocked_instances), recent_instances(recent_instances) {}
1949  entry() {}
1950  };
1951 
1952  struct response_t
1953  {
1954  std::string status;
1955  std::vector<entry> histogram;
1957 
1958  BEGIN_KV_SERIALIZE_MAP()
1959  KV_SERIALIZE(status)
1960  KV_SERIALIZE(histogram)
1961  KV_SERIALIZE(untrusted)
1962  END_KV_SERIALIZE_MAP()
1963  };
1964  typedef epee::misc_utils::struct_init<response_t> response;
1965  };
1966 
1968  {
1969  struct request_t
1970  {
1971  BEGIN_KV_SERIALIZE_MAP()
1972  END_KV_SERIALIZE_MAP()
1973  };
1974  typedef epee::misc_utils::struct_init<request_t> request;
1975 
1976  struct response_t
1977  {
1978  std::string status;
1979  uint32_t version;
1981 
1982  BEGIN_KV_SERIALIZE_MAP()
1983  KV_SERIALIZE(status)
1984  KV_SERIALIZE(version)
1985  KV_SERIALIZE(untrusted)
1986  END_KV_SERIALIZE_MAP()
1987  };
1988  typedef epee::misc_utils::struct_init<response_t> response;
1989  };
1990 
1992  {
1993  struct request_t
1994  {
1995  uint64_t height;
1996  uint64_t count;
1997 
1998  BEGIN_KV_SERIALIZE_MAP()
1999  KV_SERIALIZE(height);
2000  KV_SERIALIZE(count);
2001  END_KV_SERIALIZE_MAP()
2002  };
2003  typedef epee::misc_utils::struct_init<request_t> request;
2004 
2005  struct response_t
2006  {
2007  std::string status;
2009  uint64_t fee_amount;
2010 
2011  BEGIN_KV_SERIALIZE_MAP()
2012  KV_SERIALIZE(status)
2013  KV_SERIALIZE(emission_amount)
2014  KV_SERIALIZE(fee_amount)
2015  END_KV_SERIALIZE_MAP()
2016  };
2017  typedef epee::misc_utils::struct_init<response_t> response;
2018  };
2019 
2021  {
2022  struct request_t
2023  {
2024  uint64_t grace_blocks;
2025 
2026  BEGIN_KV_SERIALIZE_MAP()
2027  KV_SERIALIZE(grace_blocks)
2028  END_KV_SERIALIZE_MAP()
2029  };
2030  typedef epee::misc_utils::struct_init<request_t> request;
2031 
2032  struct response_t
2033  {
2034  std::string status;
2035  uint64_t fee;
2038 
2039  BEGIN_KV_SERIALIZE_MAP()
2040  KV_SERIALIZE(status)
2041  KV_SERIALIZE(fee)
2042  KV_SERIALIZE_OPT(quantization_mask, (uint64_t)1)
2043  KV_SERIALIZE(untrusted)
2044  END_KV_SERIALIZE_MAP()
2045  };
2046  typedef epee::misc_utils::struct_init<response_t> response;
2047  };
2048 
2050  {
2051  struct request_t
2052  {
2053  BEGIN_KV_SERIALIZE_MAP()
2054  END_KV_SERIALIZE_MAP()
2055  };
2056  typedef epee::misc_utils::struct_init<request_t> request;
2057 
2058  struct chain_info
2059  {
2060  std::string block_hash;
2061  uint64_t height;
2062  uint64_t length;
2063  uint64_t difficulty;
2064  std::string wide_difficulty;
2066  std::vector<std::string> block_hashes;
2068 
2069  BEGIN_KV_SERIALIZE_MAP()
2070  KV_SERIALIZE(block_hash)
2071  KV_SERIALIZE(height)
2072  KV_SERIALIZE(length)
2073  KV_SERIALIZE(difficulty)
2074  KV_SERIALIZE(wide_difficulty)
2075  KV_SERIALIZE(difficulty_top64)
2076  KV_SERIALIZE(block_hashes)
2077  KV_SERIALIZE(main_chain_parent_block)
2078  END_KV_SERIALIZE_MAP()
2079  };
2080 
2081  struct response_t
2082  {
2083  std::string status;
2084  std::list<chain_info> chains;
2085 
2086  BEGIN_KV_SERIALIZE_MAP()
2087  KV_SERIALIZE(status)
2088  KV_SERIALIZE(chains)
2089  END_KV_SERIALIZE_MAP()
2090  };
2091  typedef epee::misc_utils::struct_init<response_t> response;
2092  };
2093 
2095  {
2096  struct request_t
2097  {
2098  std::string command;
2099  std::string path;
2100 
2101  BEGIN_KV_SERIALIZE_MAP()
2102  KV_SERIALIZE(command);
2103  KV_SERIALIZE(path);
2104  END_KV_SERIALIZE_MAP()
2105  };
2106  typedef epee::misc_utils::struct_init<request_t> request;
2107 
2108  struct response_t
2109  {
2110  std::string status;
2111  bool update;
2112  std::string version;
2113  std::string user_uri;
2114  std::string auto_uri;
2115  std::string hash;
2116  std::string path;
2117 
2118  BEGIN_KV_SERIALIZE_MAP()
2119  KV_SERIALIZE(status)
2120  KV_SERIALIZE(update)
2121  KV_SERIALIZE(version)
2122  KV_SERIALIZE(user_uri)
2123  KV_SERIALIZE(auto_uri)
2124  KV_SERIALIZE(hash)
2125  KV_SERIALIZE(path)
2126  END_KV_SERIALIZE_MAP()
2127  };
2128  typedef epee::misc_utils::struct_init<response_t> response;
2129  };
2130 
2132  {
2133  struct request_t
2134  {
2135  std::vector<std::string> txids;
2136 
2137  BEGIN_KV_SERIALIZE_MAP()
2138  KV_SERIALIZE(txids)
2139  END_KV_SERIALIZE_MAP()
2140  };
2141  typedef epee::misc_utils::struct_init<request_t> request;
2142 
2143  struct response_t
2144  {
2145  std::string status;
2146 
2147  BEGIN_KV_SERIALIZE_MAP()
2148  KV_SERIALIZE(status)
2149  END_KV_SERIALIZE_MAP()
2150  };
2151  typedef epee::misc_utils::struct_init<response_t> response;
2152  };
2153 
2155  {
2156  struct request_t
2157  {
2158  BEGIN_KV_SERIALIZE_MAP()
2159  END_KV_SERIALIZE_MAP()
2160  };
2161  typedef epee::misc_utils::struct_init<request_t> request;
2162 
2163  struct peer
2164  {
2166 
2167  BEGIN_KV_SERIALIZE_MAP()
2168  KV_SERIALIZE(info)
2169  END_KV_SERIALIZE_MAP()
2170  };
2171 
2172  struct span
2173  {
2175  uint64_t nblocks;
2176  std::string connection_id;
2177  uint32_t rate;
2178  uint32_t speed;
2179  uint64_t size;
2180  std::string remote_address;
2181 
2182  BEGIN_KV_SERIALIZE_MAP()
2183  KV_SERIALIZE(start_block_height)
2184  KV_SERIALIZE(nblocks)
2185  KV_SERIALIZE(connection_id)
2186  KV_SERIALIZE(rate)
2187  KV_SERIALIZE(speed)
2188  KV_SERIALIZE(size)
2189  KV_SERIALIZE(remote_address)
2190  END_KV_SERIALIZE_MAP()
2191  };
2192 
2193  struct response_t
2194  {
2195  std::string status;
2196  uint64_t height;
2197  uint64_t target_height;
2199  std::list<peer> peers;
2200  std::list<span> spans;
2201  std::string overview;
2202 
2203  BEGIN_KV_SERIALIZE_MAP()
2204  KV_SERIALIZE(status)
2205  KV_SERIALIZE(height)
2206  KV_SERIALIZE(target_height)
2207  KV_SERIALIZE(next_needed_pruning_seed)
2208  KV_SERIALIZE(peers)
2209  KV_SERIALIZE(spans)
2210  KV_SERIALIZE(overview)
2211  END_KV_SERIALIZE_MAP()
2212  };
2213  typedef epee::misc_utils::struct_init<response_t> response;
2214  };
2215 
2217  {
2218  struct request_t
2219  {
2220  std::vector<uint64_t> amounts;
2221  uint64_t from_height;
2222  uint64_t to_height;
2224  bool binary;
2225  bool compress;
2226 
2227  BEGIN_KV_SERIALIZE_MAP()
2228  KV_SERIALIZE(amounts)
2229  KV_SERIALIZE_OPT(from_height, (uint64_t)0)
2230  KV_SERIALIZE_OPT(to_height, (uint64_t)0)
2231  KV_SERIALIZE_OPT(cumulative, false)
2232  KV_SERIALIZE_OPT(binary, true)
2233  KV_SERIALIZE_OPT(compress, false)
2234  END_KV_SERIALIZE_MAP()
2235  };
2236  typedef epee::misc_utils::struct_init<request_t> request;
2237 
2239  {
2241  uint64_t amount;
2242  std::string compressed_data;
2243  bool binary;
2244  bool compress;
2245 
2246  BEGIN_KV_SERIALIZE_MAP()
2247  KV_SERIALIZE(amount)
2248  KV_SERIALIZE_N(data.start_height, "start_height")
2249  KV_SERIALIZE(binary)
2250  KV_SERIALIZE(compress)
2251  if (this_ref.binary)
2252  {
2253  if (is_store)
2254  {
2255  if (this_ref.compress)
2256  {
2257  const_cast<std::string&>(this_ref.compressed_data) = compress_integer_array(this_ref.data.distribution);
2258  KV_SERIALIZE(compressed_data)
2259  }
2260  else
2261  KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(data.distribution, "distribution")
2262  }
2263  else
2264  {
2265  if (this_ref.compress)
2266  {
2267  KV_SERIALIZE(compressed_data)
2268  const_cast<std::vector<uint64_t>&>(this_ref.data.distribution) = decompress_integer_array<uint64_t>(this_ref.compressed_data);
2269  }
2270  else
2271  KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(data.distribution, "distribution")
2272  }
2273  }
2274  else
2275  KV_SERIALIZE_N(data.distribution, "distribution")
2276  KV_SERIALIZE_N(data.base, "base")
2277  END_KV_SERIALIZE_MAP()
2278  };
2279 
2280  struct response_t
2281  {
2282  std::string status;
2283  std::vector<distribution> distributions;
2285 
2286  BEGIN_KV_SERIALIZE_MAP()
2287  KV_SERIALIZE(status)
2288  KV_SERIALIZE(distributions)
2289  KV_SERIALIZE(untrusted)
2290  END_KV_SERIALIZE_MAP()
2291  };
2292  typedef epee::misc_utils::struct_init<response_t> response;
2293  };
2294 
2296  {
2297  struct request_t
2298  {
2299  uint64_t nblocks;
2300 
2301  BEGIN_KV_SERIALIZE_MAP()
2302  KV_SERIALIZE(nblocks);
2303  END_KV_SERIALIZE_MAP()
2304  };
2305  typedef epee::misc_utils::struct_init<request_t> request;
2306 
2307  struct response_t
2308  {
2309  std::string status;
2310  uint64_t height;
2311 
2312  BEGIN_KV_SERIALIZE_MAP()
2313  KV_SERIALIZE(status)
2314  KV_SERIALIZE(height)
2315  END_KV_SERIALIZE_MAP()
2316  };
2317  typedef epee::misc_utils::struct_init<response_t> response;
2318  };
2319 
2321  {
2322  struct request_t
2323  {
2324  bool check;
2325 
2326  BEGIN_KV_SERIALIZE_MAP()
2327  KV_SERIALIZE_OPT(check, false)
2328  END_KV_SERIALIZE_MAP()
2329  };
2330  typedef epee::misc_utils::struct_init<request_t> request;
2331 
2332  struct response_t
2333  {
2334  bool pruned;
2335  uint32_t pruning_seed;
2336  std::string status;
2337 
2338  BEGIN_KV_SERIALIZE_MAP()
2339  KV_SERIALIZE(status)
2340  KV_SERIALIZE(pruned)
2341  KV_SERIALIZE(pruning_seed)
2342  END_KV_SERIALIZE_MAP()
2343  };
2344  typedef epee::misc_utils::struct_init<response_t> response;
2345  };
2346 
2348  {
2349  struct request_t
2350  {
2351  std::string validator_key;
2352 
2353  BEGIN_KV_SERIALIZE_MAP()
2354  KV_SERIALIZE(validator_key)
2355  END_KV_SERIALIZE_MAP()
2356  };
2357  typedef epee::misc_utils::struct_init<request_t> request;
2358 
2359  struct response_t
2360  {
2361  std::string status;
2362 
2363  BEGIN_KV_SERIALIZE_MAP()
2364  KV_SERIALIZE(status)
2365  END_KV_SERIALIZE_MAP()
2366  };
2367  typedef epee::misc_utils::struct_init<response_t> response;
2368  };
2369 
2371  {
2372  struct request_t
2373  {
2374  BEGIN_KV_SERIALIZE_MAP()
2375  END_KV_SERIALIZE_MAP()
2376  };
2377  typedef epee::misc_utils::struct_init<request_t> request;
2378 
2379  struct response_t
2380  {
2381  std::string privateKey;
2382  std::string publicKey;
2383  std::string status;
2384 
2385  BEGIN_KV_SERIALIZE_MAP()
2386  KV_SERIALIZE(privateKey)
2387  KV_SERIALIZE(publicKey)
2388  KV_SERIALIZE(status)
2389  END_KV_SERIALIZE_MAP()
2390  };
2391  typedef epee::misc_utils::struct_init<response_t> response;
2392  };
2393 
2395  {
2396  struct request_t
2397  {
2398  std::string privateKey;
2399  std::string message;
2400 
2401  BEGIN_KV_SERIALIZE_MAP()
2402  KV_SERIALIZE(privateKey)
2403  KV_SERIALIZE(message)
2404  END_KV_SERIALIZE_MAP()
2405  };
2406  typedef epee::misc_utils::struct_init<request_t> request;
2407 
2408  struct response_t
2409  {
2410  std::string signature;
2411  std::string status;
2412 
2413  BEGIN_KV_SERIALIZE_MAP()
2414  KV_SERIALIZE(signature)
2415  KV_SERIALIZE(status)
2416  END_KV_SERIALIZE_MAP()
2417  };
2418  typedef epee::misc_utils::struct_init<response_t> response;
2419  };
2420 
2422  {
2423  struct request_t
2424  {
2425  std::string blob;
2426  int version = 0;
2427  std::vector<std::string> signatures;
2428  std::vector<std::string> pubkeys;
2429 
2430  BEGIN_KV_SERIALIZE_MAP()
2431  KV_SERIALIZE(blob)
2432  KV_SERIALIZE(version)
2433  KV_SERIALIZE(signatures)
2434  KV_SERIALIZE(pubkeys)
2435  END_KV_SERIALIZE_MAP()
2436  };
2437  typedef epee::misc_utils::struct_init<request_t> request;
2438 
2439  struct response_t
2440  {
2441  BEGIN_KV_SERIALIZE_MAP()
2442  END_KV_SERIALIZE_MAP()
2443  };
2444  typedef epee::misc_utils::struct_init<response_t> response;
2445  };
2446 
2447 }
#define s(x, c)
Definition: aesb.c:47
uint8_t version
Definition: blockchain.cpp:90
uint8_t threshold
Definition: blockchain.cpp:92
static void prune(MDB_env *env0, MDB_env *env1)
Definition: blockchain_prune.cpp:247
const uint32_t T[512]
Definition: groestl_tables.h:37
std::vector< T > decompress_integer_array(const std::string &s)
Definition: core_rpc_server_commands_defs.h:56
std::string compress_integer_array(const std::vector< T > &v)
Definition: core_rpc_server_commands_defs.h:44
Definition: base.py:1
Definition: blocks.cpp:13
POD_CLASS signature
Definition: crypto.h:108
POD_CLASS public_key
Definition: crypto.h:76
POD_CLASS hash
Definition: hash.h:50
@ SPENT_IN_POOL
Definition: daemon_messages.h:133
@ SPENT_IN_BLOCKCHAIN
Definition: daemon_messages.h:132
@ UNSPENT
Definition: daemon_messages.h:131
Holds cryptonote related classes and helpers.
Definition: db_bdb.cpp:226
std::string blobdata
Definition: blobdatatype.h:39
Definition: cryptonote_format_utils.h:44
mdb_size_t count(MDB_cursor *cur)
Definition: value_stream.cpp:39
error
Tracks LMDB error codes.
Definition: error.h:45
Definition: bulletproofs.cc:63
Definition: blockchain_ancestry.cpp:73
std::enable_if< std::is_integral< T >::value &&std::is_unsigned< T >::value, void >::type write_varint(OutputIt &&dest, T i)
writes a varint to a stream.
Definition: varint.h:70
CXA_THROW_INFO_T * info
Definition: stack_trace.cpp:91
#define true
Definition: stdbool.h:37
#define false
Definition: stdbool.h:38
Definition: core_rpc_server_commands_defs.h:1620
Definition: core_rpc_server_commands_defs.h:1627
std::string status
Definition: core_rpc_server_commands_defs.h:1628
Definition: core_rpc_server_commands_defs.h:1618
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1624
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1634
Definition: core_rpc_server_commands_defs.h:1893
std::vector< std::string > txids
Definition: core_rpc_server_commands_defs.h:1894
Definition: core_rpc_server_commands_defs.h:1903
std::string status
Definition: core_rpc_server_commands_defs.h:1904
Definition: core_rpc_server_commands_defs.h:1891
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1910
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1900
Definition: core_rpc_server_commands_defs.h:991
uint64_t amount_of_blocks
Definition: core_rpc_server_commands_defs.h:992
std::string wallet_address
Definition: core_rpc_server_commands_defs.h:993
std::string prev_block
Definition: core_rpc_server_commands_defs.h:994
uint32_t starting_nonce
Definition: core_rpc_server_commands_defs.h:995
Definition: core_rpc_server_commands_defs.h:1007
uint64_t height
Definition: core_rpc_server_commands_defs.h:1008
std::string status
Definition: core_rpc_server_commands_defs.h:1010
std::vector< std::string > blocks
Definition: core_rpc_server_commands_defs.h:1009
Definition: core_rpc_server_commands_defs.h:989
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1004
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1018
Definition: core_rpc_server_commands_defs.h:2373
Definition: core_rpc_server_commands_defs.h:2380
std::string status
Definition: core_rpc_server_commands_defs.h:2383
std::string privateKey
Definition: core_rpc_server_commands_defs.h:2381
std::string publicKey
Definition: core_rpc_server_commands_defs.h:2382
Definition: core_rpc_server_commands_defs.h:2371
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2391
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2377
Definition: core_rpc_server_commands_defs.h:1820
uint32_t seconds
Definition: core_rpc_server_commands_defs.h:1823
uint32_t ip
Definition: core_rpc_server_commands_defs.h:1822
std::string host
Definition: core_rpc_server_commands_defs.h:1821
Definition: core_rpc_server_commands_defs.h:1833
Definition: core_rpc_server_commands_defs.h:1840
std::vector< ban > bans
Definition: core_rpc_server_commands_defs.h:1842
std::string status
Definition: core_rpc_server_commands_defs.h:1841
Definition: core_rpc_server_commands_defs.h:1818
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1837
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1849
Definition: core_rpc_server_commands_defs.h:906
uint64_t count
Definition: core_rpc_server_commands_defs.h:907
std::string status
Definition: core_rpc_server_commands_defs.h:908
Definition: core_rpc_server_commands_defs.h:902
std::list< std::string > request
Definition: core_rpc_server_commands_defs.h:903
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:915
Definition: core_rpc_server_commands_defs.h:919
std::vector< uint64_t > request
Definition: core_rpc_server_commands_defs.h:920
std::string response
Definition: core_rpc_server_commands_defs.h:922
Definition: core_rpc_server_commands_defs.h:929
std::string wallet_address
Definition: core_rpc_server_commands_defs.h:931
uint64_t reserve_size
Definition: core_rpc_server_commands_defs.h:930
std::string prev_block
Definition: core_rpc_server_commands_defs.h:932
Definition: core_rpc_server_commands_defs.h:943
std::string prev_hash
Definition: core_rpc_server_commands_defs.h:950
uint64_t difficulty
Definition: core_rpc_server_commands_defs.h:944
uint64_t height
Definition: core_rpc_server_commands_defs.h:947
uint64_t expected_reward
Definition: core_rpc_server_commands_defs.h:949
blobdata blocktemplate_blob
Definition: core_rpc_server_commands_defs.h:951
uint64_t difficulty_top64
Definition: core_rpc_server_commands_defs.h:946
blobdata blockhashing_blob
Definition: core_rpc_server_commands_defs.h:952
std::string status
Definition: core_rpc_server_commands_defs.h:953
std::string wide_difficulty
Definition: core_rpc_server_commands_defs.h:945
bool untrusted
Definition: core_rpc_server_commands_defs.h:954
uint64_t reserved_offset
Definition: core_rpc_server_commands_defs.h:948
Definition: core_rpc_server_commands_defs.h:927
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:970
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:940
Definition: core_rpc_server_commands_defs.h:2059
uint64_t difficulty_top64
Definition: core_rpc_server_commands_defs.h:2065
uint64_t length
Definition: core_rpc_server_commands_defs.h:2062
uint64_t height
Definition: core_rpc_server_commands_defs.h:2061
std::vector< std::string > block_hashes
Definition: core_rpc_server_commands_defs.h:2066
std::string block_hash
Definition: core_rpc_server_commands_defs.h:2060
std::string main_chain_parent_block
Definition: core_rpc_server_commands_defs.h:2067
uint64_t difficulty
Definition: core_rpc_server_commands_defs.h:2063
std::string wide_difficulty
Definition: core_rpc_server_commands_defs.h:2064
Definition: core_rpc_server_commands_defs.h:2052
Definition: core_rpc_server_commands_defs.h:2082
std::list< chain_info > chains
Definition: core_rpc_server_commands_defs.h:2084
std::string status
Definition: core_rpc_server_commands_defs.h:2083
Definition: core_rpc_server_commands_defs.h:2050
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2056
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2091
Definition: core_rpc_server_commands_defs.h:204
Definition: core_rpc_server_commands_defs.h:211
std::vector< std::string > blks_hashes
Definition: core_rpc_server_commands_defs.h:212
bool untrusted
Definition: core_rpc_server_commands_defs.h:214
std::string status
Definition: core_rpc_server_commands_defs.h:213
Definition: core_rpc_server_commands_defs.h:202
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:222
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:208
Definition: core_rpc_server_commands_defs.h:2023
uint64_t grace_blocks
Definition: core_rpc_server_commands_defs.h:2024
Definition: core_rpc_server_commands_defs.h:2033
uint64_t quantization_mask
Definition: core_rpc_server_commands_defs.h:2036
uint64_t fee
Definition: core_rpc_server_commands_defs.h:2035
std::string status
Definition: core_rpc_server_commands_defs.h:2034
bool untrusted
Definition: core_rpc_server_commands_defs.h:2037
Definition: core_rpc_server_commands_defs.h:2021
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2046
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2030
Definition: core_rpc_server_commands_defs.h:178
std::vector< uint64_t > heights
Definition: core_rpc_server_commands_defs.h:179
Definition: core_rpc_server_commands_defs.h:187
std::vector< block_complete_entry > blocks
Definition: core_rpc_server_commands_defs.h:188
bool untrusted
Definition: core_rpc_server_commands_defs.h:190
std::string status
Definition: core_rpc_server_commands_defs.h:189
Definition: core_rpc_server_commands_defs.h:176
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:198
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:184
Definition: core_rpc_server_commands_defs.h:146
std::vector< tx_output_indices > indices
Definition: core_rpc_server_commands_defs.h:147
Definition: core_rpc_server_commands_defs.h:122
bool prune
Definition: core_rpc_server_commands_defs.h:125
uint64_t start_height
Definition: core_rpc_server_commands_defs.h:124
std::list< crypto::hash > block_ids
Definition: core_rpc_server_commands_defs.h:123
bool no_miner_tx
Definition: core_rpc_server_commands_defs.h:126
Definition: core_rpc_server_commands_defs.h:155
std::vector< block_output_indices > output_indices
Definition: core_rpc_server_commands_defs.h:160
bool untrusted
Definition: core_rpc_server_commands_defs.h:161
std::string status
Definition: core_rpc_server_commands_defs.h:159
uint64_t start_height
Definition: core_rpc_server_commands_defs.h:157
uint64_t current_height
Definition: core_rpc_server_commands_defs.h:158
std::vector< block_complete_entry > blocks
Definition: core_rpc_server_commands_defs.h:156
Definition: core_rpc_server_commands_defs.h:137
std::vector< uint64_t > indices
Definition: core_rpc_server_commands_defs.h:138
Definition: core_rpc_server_commands_defs.h:119
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:134
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:172
Definition: core_rpc_server_commands_defs.h:1161
bool fill_pow_hash
Definition: core_rpc_server_commands_defs.h:1164
uint64_t height
Definition: core_rpc_server_commands_defs.h:1163
std::string hash
Definition: core_rpc_server_commands_defs.h:1162
Definition: core_rpc_server_commands_defs.h:1175
bool untrusted
Definition: core_rpc_server_commands_defs.h:1182
std::vector< std::string > tx_hashes
Definition: core_rpc_server_commands_defs.h:1179
std::string blob
Definition: core_rpc_server_commands_defs.h:1180
std::string status
Definition: core_rpc_server_commands_defs.h:1176
block_header_response block_header
Definition: core_rpc_server_commands_defs.h:1177
std::string miner_tx_hash
Definition: core_rpc_server_commands_defs.h:1178
std::string json
Definition: core_rpc_server_commands_defs.h:1181
Definition: core_rpc_server_commands_defs.h:1569
uint64_t end_height
Definition: core_rpc_server_commands_defs.h:1571
uint64_t start_height
Definition: core_rpc_server_commands_defs.h:1570
bool fill_pow_hash
Definition: core_rpc_server_commands_defs.h:1572
Definition: core_rpc_server_commands_defs.h:1583
std::string status
Definition: core_rpc_server_commands_defs.h:1584
bool untrusted
Definition: core_rpc_server_commands_defs.h:1586
std::vector< block_header_response > headers
Definition: core_rpc_server_commands_defs.h:1585
Definition: core_rpc_server_commands_defs.h:1567
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1580
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1594
Definition: core_rpc_server_commands_defs.h:1103
std::string hash
Definition: core_rpc_server_commands_defs.h:1104
bool fill_pow_hash
Definition: core_rpc_server_commands_defs.h:1105
Definition: core_rpc_server_commands_defs.h:1115
std::string status
Definition: core_rpc_server_commands_defs.h:1116
block_header_response block_header
Definition: core_rpc_server_commands_defs.h:1117
bool untrusted
Definition: core_rpc_server_commands_defs.h:1118
Definition: core_rpc_server_commands_defs.h:1101
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1126
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1112
Definition: core_rpc_server_commands_defs.h:1132
bool fill_pow_hash
Definition: core_rpc_server_commands_defs.h:1134
uint64_t height
Definition: core_rpc_server_commands_defs.h:1133
Definition: core_rpc_server_commands_defs.h:1144
bool untrusted
Definition: core_rpc_server_commands_defs.h:1147
std::string status
Definition: core_rpc_server_commands_defs.h:1145
block_header_response block_header
Definition: core_rpc_server_commands_defs.h:1146
Definition: core_rpc_server_commands_defs.h:1130
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1155
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1141
Definition: core_rpc_server_commands_defs.h:1159
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1194
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1172
Definition: core_rpc_server_commands_defs.h:1994
uint64_t height
Definition: core_rpc_server_commands_defs.h:1995
uint64_t count
Definition: core_rpc_server_commands_defs.h:1996
Definition: core_rpc_server_commands_defs.h:2006
uint64_t emission_amount
Definition: core_rpc_server_commands_defs.h:2008
std::string status
Definition: core_rpc_server_commands_defs.h:2007
uint64_t fee_amount
Definition: core_rpc_server_commands_defs.h:2009
Definition: core_rpc_server_commands_defs.h:1992
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2003
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2017
Definition: core_rpc_server_commands_defs.h:1547
Definition: core_rpc_server_commands_defs.h:1554
std::string status
Definition: core_rpc_server_commands_defs.h:1555
std::list< connection_info > connections
Definition: core_rpc_server_commands_defs.h:1556
Definition: core_rpc_server_commands_defs.h:1545
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1551
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1563
Definition: core_rpc_server_commands_defs.h:228
std::list< crypto::hash > block_ids
Definition: core_rpc_server_commands_defs.h:229
uint64_t start_height
Definition: core_rpc_server_commands_defs.h:230
Definition: core_rpc_server_commands_defs.h:239
bool untrusted
Definition: core_rpc_server_commands_defs.h:244
uint64_t current_height
Definition: core_rpc_server_commands_defs.h:242
std::vector< crypto::hash > m_block_ids
Definition: core_rpc_server_commands_defs.h:240
std::string status
Definition: core_rpc_server_commands_defs.h:243
uint64_t start_height
Definition: core_rpc_server_commands_defs.h:241
Definition: core_rpc_server_commands_defs.h:225
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:254
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:236
Definition: core_rpc_server_commands_defs.h:95
Definition: core_rpc_server_commands_defs.h:102
uint64_t height
Definition: core_rpc_server_commands_defs.h:103
std::string hash
Definition: core_rpc_server_commands_defs.h:106
bool untrusted
Definition: core_rpc_server_commands_defs.h:105
std::string status
Definition: core_rpc_server_commands_defs.h:104
Definition: core_rpc_server_commands_defs.h:93
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:99
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:115
Definition: core_rpc_server_commands_defs.h:667
Definition: core_rpc_server_commands_defs.h:675
uint64_t difficulty_top64
Definition: core_rpc_server_commands_defs.h:681
uint64_t block_size_limit
Definition: core_rpc_server_commands_defs.h:699
uint64_t cumulative_difficulty_top64
Definition: core_rpc_server_commands_defs.h:698
uint64_t free_space
Definition: core_rpc_server_commands_defs.h:704
uint64_t white_peerlist_size
Definition: core_rpc_server_commands_defs.h:689
bool was_bootstrap_ever_used
Definition: core_rpc_server_commands_defs.h:709
std::string daemon_version_full
Definition: core_rpc_server_commands_defs.h:716
std::string bootstrap_daemon_address
Definition: core_rpc_server_commands_defs.h:707
uint64_t target
Definition: core_rpc_server_commands_defs.h:682
bool update_available
Definition: core_rpc_server_commands_defs.h:711
uint64_t block_size_median
Definition: core_rpc_server_commands_defs.h:701
bool offline
Definition: core_rpc_server_commands_defs.h:705
std::string version
Definition: core_rpc_server_commands_defs.h:712
uint64_t block_weight_median
Definition: core_rpc_server_commands_defs.h:702
uint64_t start_time
Definition: core_rpc_server_commands_defs.h:703
uint64_t target_height
Definition: core_rpc_server_commands_defs.h:678
std::string wide_difficulty
Definition: core_rpc_server_commands_defs.h:680
uint64_t outgoing_connections_count
Definition: core_rpc_server_commands_defs.h:686
std::string top_block_hash
Definition: core_rpc_server_commands_defs.h:695
uint64_t database_size
Definition: core_rpc_server_commands_defs.h:710
std::string daemon_version_tag
Definition: core_rpc_server_commands_defs.h:717
std::string wide_cumulative_difficulty
Definition: core_rpc_server_commands_defs.h:697
uint64_t block_weight_limit
Definition: core_rpc_server_commands_defs.h:700
bool testnet
Definition: core_rpc_server_commands_defs.h:692
uint64_t incoming_connections_count
Definition: core_rpc_server_commands_defs.h:687
uint64_t difficulty
Definition: core_rpc_server_commands_defs.h:679
uint64_t tx_pool_size
Definition: core_rpc_server_commands_defs.h:684
uint64_t grey_peerlist_size
Definition: core_rpc_server_commands_defs.h:690
uint64_t cumulative_difficulty
Definition: core_rpc_server_commands_defs.h:696
std::string daemon_version
Definition: core_rpc_server_commands_defs.h:715
std::string status
Definition: core_rpc_server_commands_defs.h:676
bool mainnet
Definition: core_rpc_server_commands_defs.h:691
std::string daemon_release_name
Definition: core_rpc_server_commands_defs.h:714
uint64_t alt_blocks_count
Definition: core_rpc_server_commands_defs.h:685
bool untrusted
Definition: core_rpc_server_commands_defs.h:706
bool stagenet
Definition: core_rpc_server_commands_defs.h:693
uint64_t height
Definition: core_rpc_server_commands_defs.h:677
uint64_t rpc_connections_count
Definition: core_rpc_server_commands_defs.h:688
std::string nettype
Definition: core_rpc_server_commands_defs.h:694
uint64_t height_without_bootstrap
Definition: core_rpc_server_commands_defs.h:708
uint64_t tx_count
Definition: core_rpc_server_commands_defs.h:683
Definition: core_rpc_server_commands_defs.h:665
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:764
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:672
Definition: core_rpc_server_commands_defs.h:1075
bool fill_pow_hash
Definition: core_rpc_server_commands_defs.h:1076
Definition: core_rpc_server_commands_defs.h:1085
std::string status
Definition: core_rpc_server_commands_defs.h:1086
block_header_response block_header
Definition: core_rpc_server_commands_defs.h:1087
bool untrusted
Definition: core_rpc_server_commands_defs.h:1088
Definition: core_rpc_server_commands_defs.h:1073
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1096
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1082
Definition: core_rpc_server_commands_defs.h:1640
Definition: core_rpc_server_commands_defs.h:1647
bool untrusted
Definition: core_rpc_server_commands_defs.h:1651
std::string status
Definition: core_rpc_server_commands_defs.h:1648
uint64_t limit_up
Definition: core_rpc_server_commands_defs.h:1649
uint64_t limit_down
Definition: core_rpc_server_commands_defs.h:1650
Definition: core_rpc_server_commands_defs.h:1638
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1660
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1644
Definition: core_rpc_server_commands_defs.h:772
Definition: core_rpc_server_commands_defs.h:781
uint64_t total_bytes_out
Definition: core_rpc_server_commands_defs.h:787
uint64_t start_time
Definition: core_rpc_server_commands_defs.h:783
uint64_t total_bytes_in
Definition: core_rpc_server_commands_defs.h:785
std::string status
Definition: core_rpc_server_commands_defs.h:782
uint64_t total_packets_in
Definition: core_rpc_server_commands_defs.h:784
uint64_t total_packets_out
Definition: core_rpc_server_commands_defs.h:786
Definition: core_rpc_server_commands_defs.h:770
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:777
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:798
Definition: core_rpc_server_commands_defs.h:552
std::string mask
Definition: core_rpc_server_commands_defs.h:554
bool unlocked
Definition: core_rpc_server_commands_defs.h:555
uint64_t height
Definition: core_rpc_server_commands_defs.h:556
std::string key
Definition: core_rpc_server_commands_defs.h:553
std::string txid
Definition: core_rpc_server_commands_defs.h:557
Definition: core_rpc_server_commands_defs.h:540
std::vector< get_outputs_out > outputs
Definition: core_rpc_server_commands_defs.h:541
bool get_txid
Definition: core_rpc_server_commands_defs.h:542
Definition: core_rpc_server_commands_defs.h:569
bool untrusted
Definition: core_rpc_server_commands_defs.h:572
std::string status
Definition: core_rpc_server_commands_defs.h:571
std::vector< outkey > outs
Definition: core_rpc_server_commands_defs.h:570
Definition: core_rpc_server_commands_defs.h:506
crypto::public_key key
Definition: core_rpc_server_commands_defs.h:507
rct::key mask
Definition: core_rpc_server_commands_defs.h:508
uint64_t height
Definition: core_rpc_server_commands_defs.h:510
bool unlocked
Definition: core_rpc_server_commands_defs.h:509
crypto::hash txid
Definition: core_rpc_server_commands_defs.h:511
Definition: core_rpc_server_commands_defs.h:494
std::vector< get_outputs_out > outputs
Definition: core_rpc_server_commands_defs.h:495
bool get_txid
Definition: core_rpc_server_commands_defs.h:496
Definition: core_rpc_server_commands_defs.h:523
std::vector< outkey > outs
Definition: core_rpc_server_commands_defs.h:524
std::string status
Definition: core_rpc_server_commands_defs.h:525
bool untrusted
Definition: core_rpc_server_commands_defs.h:526
Definition: core_rpc_server_commands_defs.h:492
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:503
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:534
Definition: core_rpc_server_commands_defs.h:538
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:549
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:580
Definition: core_rpc_server_commands_defs.h:2239
bool binary
Definition: core_rpc_server_commands_defs.h:2243
rpc::output_distribution_data data
Definition: core_rpc_server_commands_defs.h:2240
std::string compressed_data
Definition: core_rpc_server_commands_defs.h:2242
bool compress
Definition: core_rpc_server_commands_defs.h:2244
uint64_t amount
Definition: core_rpc_server_commands_defs.h:2241
Definition: core_rpc_server_commands_defs.h:2219
uint64_t from_height
Definition: core_rpc_server_commands_defs.h:2221
bool compress
Definition: core_rpc_server_commands_defs.h:2225
uint64_t to_height
Definition: core_rpc_server_commands_defs.h:2222
bool binary
Definition: core_rpc_server_commands_defs.h:2224
std::vector< uint64_t > amounts
Definition: core_rpc_server_commands_defs.h:2220
bool cumulative
Definition: core_rpc_server_commands_defs.h:2223
Definition: core_rpc_server_commands_defs.h:2281
bool untrusted
Definition: core_rpc_server_commands_defs.h:2284
std::vector< distribution > distributions
Definition: core_rpc_server_commands_defs.h:2283
std::string status
Definition: core_rpc_server_commands_defs.h:2282
Definition: core_rpc_server_commands_defs.h:2217
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2292
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2236
Definition: core_rpc_server_commands_defs.h:1934
uint64_t unlocked_instances
Definition: core_rpc_server_commands_defs.h:1937
uint64_t recent_instances
Definition: core_rpc_server_commands_defs.h:1938
uint64_t total_instances
Definition: core_rpc_server_commands_defs.h:1936
entry()
Definition: core_rpc_server_commands_defs.h:1949
uint64_t amount
Definition: core_rpc_server_commands_defs.h:1935
Definition: core_rpc_server_commands_defs.h:1916
uint64_t max_count
Definition: core_rpc_server_commands_defs.h:1919
uint64_t min_count
Definition: core_rpc_server_commands_defs.h:1918
bool unlocked
Definition: core_rpc_server_commands_defs.h:1920
uint64_t recent_cutoff
Definition: core_rpc_server_commands_defs.h:1921
std::vector< uint64_t > amounts
Definition: core_rpc_server_commands_defs.h:1917
Definition: core_rpc_server_commands_defs.h:1953
std::string status
Definition: core_rpc_server_commands_defs.h:1954
std::vector< entry > histogram
Definition: core_rpc_server_commands_defs.h:1955
bool untrusted
Definition: core_rpc_server_commands_defs.h:1956
Definition: core_rpc_server_commands_defs.h:1914
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1964
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1931
Definition: core_rpc_server_commands_defs.h:1229
Definition: core_rpc_server_commands_defs.h:1236
std::vector< peer > white_list
Definition: core_rpc_server_commands_defs.h:1238
std::vector< peer > gray_list
Definition: core_rpc_server_commands_defs.h:1239
std::string status
Definition: core_rpc_server_commands_defs.h:1237
Definition: core_rpc_server_commands_defs.h:1227
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1233
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1247
Definition: core_rpc_server_commands_defs.h:285
uint64_t amount
Definition: core_rpc_server_commands_defs.h:286
std::vector< output > outputs
Definition: core_rpc_server_commands_defs.h:287
Definition: core_rpc_server_commands_defs.h:273
std::string public_key
Definition: core_rpc_server_commands_defs.h:274
std::string rct
Definition: core_rpc_server_commands_defs.h:276
uint64_t global_index
Definition: core_rpc_server_commands_defs.h:275
Definition: core_rpc_server_commands_defs.h:261
uint32_t count
Definition: core_rpc_server_commands_defs.h:263
std::vector< std::string > amounts
Definition: core_rpc_server_commands_defs.h:262
Definition: core_rpc_server_commands_defs.h:296
std::vector< amount_out > amount_outs
Definition: core_rpc_server_commands_defs.h:297
std::string Error
Definition: core_rpc_server_commands_defs.h:298
Definition: core_rpc_server_commands_defs.h:259
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:270
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:304
Definition: core_rpc_server_commands_defs.h:356
uint64_t block_height
Definition: core_rpc_server_commands_defs.h:365
std::string as_json
Definition: core_rpc_server_commands_defs.h:362
bool in_pool
Definition: core_rpc_server_commands_defs.h:363
bool relayed
Definition: core_rpc_server_commands_defs.h:368
std::string as_hex
Definition: core_rpc_server_commands_defs.h:358
std::string prunable_as_hex
Definition: core_rpc_server_commands_defs.h:360
std::string prunable_hash
Definition: core_rpc_server_commands_defs.h:361
std::vector< uint64_t > output_indices
Definition: core_rpc_server_commands_defs.h:367
std::string pruned_as_hex
Definition: core_rpc_server_commands_defs.h:359
std::string tx_hash
Definition: core_rpc_server_commands_defs.h:357
uint64_t block_timestamp
Definition: core_rpc_server_commands_defs.h:366
bool double_spend_seen
Definition: core_rpc_server_commands_defs.h:364
Definition: core_rpc_server_commands_defs.h:340
bool split
Definition: core_rpc_server_commands_defs.h:344
std::vector< std::string > txs_hashes
Definition: core_rpc_server_commands_defs.h:341
bool prune
Definition: core_rpc_server_commands_defs.h:343
bool decode_as_json
Definition: core_rpc_server_commands_defs.h:342
Definition: core_rpc_server_commands_defs.h:393
std::vector< std::string > txs_as_hex
Definition: core_rpc_server_commands_defs.h:395
std::string status
Definition: core_rpc_server_commands_defs.h:403
std::vector< std::string > txs_as_json
Definition: core_rpc_server_commands_defs.h:396
bool untrusted
Definition: core_rpc_server_commands_defs.h:404
std::vector< entry > txs
Definition: core_rpc_server_commands_defs.h:402
std::vector< std::string > missed_tx
Definition: core_rpc_server_commands_defs.h:399
Definition: core_rpc_server_commands_defs.h:338
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:415
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:353
Definition: core_rpc_server_commands_defs.h:1372
Definition: core_rpc_server_commands_defs.h:1379
std::vector< spent_key_image_info > spent_key_images
Definition: core_rpc_server_commands_defs.h:1382
bool untrusted
Definition: core_rpc_server_commands_defs.h:1383
std::vector< tx_info > transactions
Definition: core_rpc_server_commands_defs.h:1381
std::string status
Definition: core_rpc_server_commands_defs.h:1380
Definition: core_rpc_server_commands_defs.h:1453
Definition: core_rpc_server_commands_defs.h:1460
std::string status
Definition: core_rpc_server_commands_defs.h:1461
bool untrusted
Definition: core_rpc_server_commands_defs.h:1463
std::vector< tx_backlog_entry > backlog
Definition: core_rpc_server_commands_defs.h:1462
Definition: core_rpc_server_commands_defs.h:1451
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1457
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1471
Definition: core_rpc_server_commands_defs.h:1422
Definition: core_rpc_server_commands_defs.h:1429
bool untrusted
Definition: core_rpc_server_commands_defs.h:1432
std::vector< std::string > tx_hashes
Definition: core_rpc_server_commands_defs.h:1431
std::string status
Definition: core_rpc_server_commands_defs.h:1430
Definition: core_rpc_server_commands_defs.h:1398
Definition: core_rpc_server_commands_defs.h:1405
std::vector< crypto::hash > tx_hashes
Definition: core_rpc_server_commands_defs.h:1407
bool untrusted
Definition: core_rpc_server_commands_defs.h:1408
std::string status
Definition: core_rpc_server_commands_defs.h:1406
Definition: core_rpc_server_commands_defs.h:1396
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1416
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1402
Definition: core_rpc_server_commands_defs.h:1420
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1440
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1426
Definition: core_rpc_server_commands_defs.h:1523
Definition: core_rpc_server_commands_defs.h:1530
std::string status
Definition: core_rpc_server_commands_defs.h:1531
bool untrusted
Definition: core_rpc_server_commands_defs.h:1533
txpool_stats pool_stats
Definition: core_rpc_server_commands_defs.h:1532
Definition: core_rpc_server_commands_defs.h:1521
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1527
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1541
Definition: core_rpc_server_commands_defs.h:1370
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1376
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1392
Definition: core_rpc_server_commands_defs.h:457
crypto::hash txid
Definition: core_rpc_server_commands_defs.h:458
Definition: core_rpc_server_commands_defs.h:467
std::string status
Definition: core_rpc_server_commands_defs.h:469
std::vector< uint64_t > o_indexes
Definition: core_rpc_server_commands_defs.h:468
bool untrusted
Definition: core_rpc_server_commands_defs.h:470
Definition: core_rpc_server_commands_defs.h:455
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:463
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:477
Definition: core_rpc_server_commands_defs.h:1970
Definition: core_rpc_server_commands_defs.h:1977
std::string status
Definition: core_rpc_server_commands_defs.h:1978
uint32_t version
Definition: core_rpc_server_commands_defs.h:1979
bool untrusted
Definition: core_rpc_server_commands_defs.h:1980
Definition: core_rpc_server_commands_defs.h:1968
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1988
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1974
Definition: core_rpc_server_commands_defs.h:1779
uint8_t version
Definition: core_rpc_server_commands_defs.h:1780
Definition: core_rpc_server_commands_defs.h:1789
bool untrusted
Definition: core_rpc_server_commands_defs.h:1799
uint32_t state
Definition: core_rpc_server_commands_defs.h:1796
std::string status
Definition: core_rpc_server_commands_defs.h:1798
bool enabled
Definition: core_rpc_server_commands_defs.h:1791
uint32_t window
Definition: core_rpc_server_commands_defs.h:1792
uint8_t voting
Definition: core_rpc_server_commands_defs.h:1795
uint32_t votes
Definition: core_rpc_server_commands_defs.h:1793
uint8_t version
Definition: core_rpc_server_commands_defs.h:1790
uint64_t earliest_height
Definition: core_rpc_server_commands_defs.h:1797
uint32_t threshold
Definition: core_rpc_server_commands_defs.h:1794
Definition: core_rpc_server_commands_defs.h:1777
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1814
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1786
Definition: core_rpc_server_commands_defs.h:2424
std::vector< std::string > pubkeys
Definition: core_rpc_server_commands_defs.h:2428
std::vector< std::string > signatures
Definition: core_rpc_server_commands_defs.h:2427
std::string blob
Definition: core_rpc_server_commands_defs.h:2425
Definition: core_rpc_server_commands_defs.h:2440
Definition: core_rpc_server_commands_defs.h:2422
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2444
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2437
Definition: core_rpc_server_commands_defs.h:1717
uint64_t in_peers
Definition: core_rpc_server_commands_defs.h:1718
Definition: core_rpc_server_commands_defs.h:1726
std::string status
Definition: core_rpc_server_commands_defs.h:1727
Definition: core_rpc_server_commands_defs.h:1715
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1733
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1723
Definition: core_rpc_server_commands_defs.h:428
std::vector< std::string > key_images
Definition: core_rpc_server_commands_defs.h:429
Definition: core_rpc_server_commands_defs.h:439
std::vector< int > spent_status
Definition: core_rpc_server_commands_defs.h:440
std::string status
Definition: core_rpc_server_commands_defs.h:441
bool untrusted
Definition: core_rpc_server_commands_defs.h:442
Definition: core_rpc_server_commands_defs.h:420
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:435
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:450
STATUS
Definition: core_rpc_server_commands_defs.h:421
Definition: core_rpc_server_commands_defs.h:828
Definition: core_rpc_server_commands_defs.h:837
uint32_t threads_count
Definition: core_rpc_server_commands_defs.h:841
bool bg_ignore_battery
Definition: core_rpc_server_commands_defs.h:847
bool active
Definition: core_rpc_server_commands_defs.h:839
uint64_t difficulty
Definition: core_rpc_server_commands_defs.h:851
uint64_t speed
Definition: core_rpc_server_commands_defs.h:840
uint8_t bg_idle_threshold
Definition: core_rpc_server_commands_defs.h:845
bool is_background_mining_enabled
Definition: core_rpc_server_commands_defs.h:844
uint64_t block_reward
Definition: core_rpc_server_commands_defs.h:850
uint64_t difficulty_top64
Definition: core_rpc_server_commands_defs.h:853
std::string pow_algorithm
Definition: core_rpc_server_commands_defs.h:843
std::string wide_difficulty
Definition: core_rpc_server_commands_defs.h:852
uint32_t block_target
Definition: core_rpc_server_commands_defs.h:849
uint8_t bg_target
Definition: core_rpc_server_commands_defs.h:848
uint8_t bg_min_idle_seconds
Definition: core_rpc_server_commands_defs.h:846
std::string status
Definition: core_rpc_server_commands_defs.h:838
std::string address
Definition: core_rpc_server_commands_defs.h:842
Definition: core_rpc_server_commands_defs.h:826
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:833
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:874
Definition: core_rpc_server_commands_defs.h:1695
uint64_t out_peers
Definition: core_rpc_server_commands_defs.h:1696
Definition: core_rpc_server_commands_defs.h:1704
std::string status
Definition: core_rpc_server_commands_defs.h:1705
Definition: core_rpc_server_commands_defs.h:1693
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1711
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1701
Definition: core_rpc_server_commands_defs.h:2298
uint64_t nblocks
Definition: core_rpc_server_commands_defs.h:2299
Definition: core_rpc_server_commands_defs.h:2308
uint64_t height
Definition: core_rpc_server_commands_defs.h:2310
std::string status
Definition: core_rpc_server_commands_defs.h:2309
Definition: core_rpc_server_commands_defs.h:2296
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2305
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2317
Definition: core_rpc_server_commands_defs.h:2323
bool check
Definition: core_rpc_server_commands_defs.h:2324
Definition: core_rpc_server_commands_defs.h:2333
std::string status
Definition: core_rpc_server_commands_defs.h:2336
bool pruned
Definition: core_rpc_server_commands_defs.h:2334
uint32_t pruning_seed
Definition: core_rpc_server_commands_defs.h:2335
Definition: core_rpc_server_commands_defs.h:2321
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2330
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2344
Definition: core_rpc_server_commands_defs.h:2134
std::vector< std::string > txids
Definition: core_rpc_server_commands_defs.h:2135
Definition: core_rpc_server_commands_defs.h:2144
std::string status
Definition: core_rpc_server_commands_defs.h:2145
Definition: core_rpc_server_commands_defs.h:2132
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2141
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2151
Definition: core_rpc_server_commands_defs.h:881
Definition: core_rpc_server_commands_defs.h:890
std::string status
Definition: core_rpc_server_commands_defs.h:891
Definition: core_rpc_server_commands_defs.h:879
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:897
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:886
Definition: core_rpc_server_commands_defs.h:586
bool do_not_relay
Definition: core_rpc_server_commands_defs.h:588
bool do_sanity_checks
Definition: core_rpc_server_commands_defs.h:589
std::string tx_as_hex
Definition: core_rpc_server_commands_defs.h:587
Definition: core_rpc_server_commands_defs.h:601
bool sanity_check_failed
Definition: core_rpc_server_commands_defs.h:613
bool not_rct
Definition: core_rpc_server_commands_defs.h:612
bool not_relayed
Definition: core_rpc_server_commands_defs.h:604
bool fee_too_low
Definition: core_rpc_server_commands_defs.h:611
bool invalid_input
Definition: core_rpc_server_commands_defs.h:607
bool low_mixin
Definition: core_rpc_server_commands_defs.h:605
bool untrusted
Definition: core_rpc_server_commands_defs.h:614
std::string status
Definition: core_rpc_server_commands_defs.h:602
bool double_spend
Definition: core_rpc_server_commands_defs.h:606
bool overspend
Definition: core_rpc_server_commands_defs.h:610
bool invalid_output
Definition: core_rpc_server_commands_defs.h:608
std::string reason
Definition: core_rpc_server_commands_defs.h:603
bool too_big
Definition: core_rpc_server_commands_defs.h:609
Definition: core_rpc_server_commands_defs.h:584
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:632
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:597
Definition: core_rpc_server_commands_defs.h:1855
int32_t seconds
Definition: core_rpc_server_commands_defs.h:1859
uint32_t ip
Definition: core_rpc_server_commands_defs.h:1857
bool ban
Definition: core_rpc_server_commands_defs.h:1858
std::string host
Definition: core_rpc_server_commands_defs.h:1856
Definition: core_rpc_server_commands_defs.h:1870
std::vector< ban > bans
Definition: core_rpc_server_commands_defs.h:1871
Definition: core_rpc_server_commands_defs.h:1880
std::string status
Definition: core_rpc_server_commands_defs.h:1881
Definition: core_rpc_server_commands_defs.h:1853
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1887
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1877
Definition: core_rpc_server_commands_defs.h:1666
int64_t limit_down
Definition: core_rpc_server_commands_defs.h:1667
int64_t limit_up
Definition: core_rpc_server_commands_defs.h:1668
Definition: core_rpc_server_commands_defs.h:1678
int64_t limit_down
Definition: core_rpc_server_commands_defs.h:1681
std::string status
Definition: core_rpc_server_commands_defs.h:1679
int64_t limit_up
Definition: core_rpc_server_commands_defs.h:1680
Definition: core_rpc_server_commands_defs.h:1664
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1689
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1675
Definition: core_rpc_server_commands_defs.h:1297
std::string categories
Definition: core_rpc_server_commands_defs.h:1298
Definition: core_rpc_server_commands_defs.h:1307
std::string categories
Definition: core_rpc_server_commands_defs.h:1309
std::string status
Definition: core_rpc_server_commands_defs.h:1308
Definition: core_rpc_server_commands_defs.h:1295
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1304
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1316
Definition: core_rpc_server_commands_defs.h:1253
bool visible
Definition: core_rpc_server_commands_defs.h:1254
Definition: core_rpc_server_commands_defs.h:1263
std::string status
Definition: core_rpc_server_commands_defs.h:1264
Definition: core_rpc_server_commands_defs.h:1251
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1260
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1269
Definition: core_rpc_server_commands_defs.h:1275
int8_t level
Definition: core_rpc_server_commands_defs.h:1276
Definition: core_rpc_server_commands_defs.h:1285
std::string status
Definition: core_rpc_server_commands_defs.h:1286
Definition: core_rpc_server_commands_defs.h:1273
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1282
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1291
Definition: core_rpc_server_commands_defs.h:2350
std::string validator_key
Definition: core_rpc_server_commands_defs.h:2351
Definition: core_rpc_server_commands_defs.h:2360
std::string status
Definition: core_rpc_server_commands_defs.h:2361
Definition: core_rpc_server_commands_defs.h:2348
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2367
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2357
Definition: core_rpc_server_commands_defs.h:2397
std::string privateKey
Definition: core_rpc_server_commands_defs.h:2398
std::string message
Definition: core_rpc_server_commands_defs.h:2399
Definition: core_rpc_server_commands_defs.h:2409
std::string status
Definition: core_rpc_server_commands_defs.h:2411
std::string signature
Definition: core_rpc_server_commands_defs.h:2410
Definition: core_rpc_server_commands_defs.h:2395
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2406
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2418
Definition: core_rpc_server_commands_defs.h:638
bool do_background_mining
Definition: core_rpc_server_commands_defs.h:641
uint64_t threads_count
Definition: core_rpc_server_commands_defs.h:640
std::string miner_address
Definition: core_rpc_server_commands_defs.h:639
bool ignore_battery
Definition: core_rpc_server_commands_defs.h:642
Definition: core_rpc_server_commands_defs.h:654
std::string status
Definition: core_rpc_server_commands_defs.h:655
Definition: core_rpc_server_commands_defs.h:636
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:651
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:661
Definition: core_rpc_server_commands_defs.h:1739
Definition: core_rpc_server_commands_defs.h:1746
std::string status
Definition: core_rpc_server_commands_defs.h:1747
Definition: core_rpc_server_commands_defs.h:1737
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1753
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1743
Definition: core_rpc_server_commands_defs.h:1600
Definition: core_rpc_server_commands_defs.h:1607
std::string status
Definition: core_rpc_server_commands_defs.h:1608
Definition: core_rpc_server_commands_defs.h:1598
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1614
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1604
Definition: core_rpc_server_commands_defs.h:805
Definition: core_rpc_server_commands_defs.h:814
std::string status
Definition: core_rpc_server_commands_defs.h:815
Definition: core_rpc_server_commands_defs.h:803
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:821
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:810
Definition: core_rpc_server_commands_defs.h:1759
Definition: core_rpc_server_commands_defs.h:1766
std::string status
Definition: core_rpc_server_commands_defs.h:1767
Definition: core_rpc_server_commands_defs.h:1757
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:1763
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:1773
Definition: core_rpc_server_commands_defs.h:978
std::string status
Definition: core_rpc_server_commands_defs.h:979
Definition: core_rpc_server_commands_defs.h:974
std::vector< std::string > request
Definition: core_rpc_server_commands_defs.h:975
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:985
Definition: core_rpc_server_commands_defs.h:310
std::string address
Definition: core_rpc_server_commands_defs.h:311
std::string tx
Definition: core_rpc_server_commands_defs.h:313
std::string view_key
Definition: core_rpc_server_commands_defs.h:312
Definition: core_rpc_server_commands_defs.h:325
std::string status
Definition: core_rpc_server_commands_defs.h:326
std::string error
Definition: core_rpc_server_commands_defs.h:327
Definition: core_rpc_server_commands_defs.h:308
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:334
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:321
Definition: core_rpc_server_commands_defs.h:2164
connection_info info
Definition: core_rpc_server_commands_defs.h:2165
Definition: core_rpc_server_commands_defs.h:2157
Definition: core_rpc_server_commands_defs.h:2194
uint64_t target_height
Definition: core_rpc_server_commands_defs.h:2197
std::string status
Definition: core_rpc_server_commands_defs.h:2195
std::list< peer > peers
Definition: core_rpc_server_commands_defs.h:2199
uint32_t next_needed_pruning_seed
Definition: core_rpc_server_commands_defs.h:2198
uint64_t height
Definition: core_rpc_server_commands_defs.h:2196
std::string overview
Definition: core_rpc_server_commands_defs.h:2201
std::list< span > spans
Definition: core_rpc_server_commands_defs.h:2200
Definition: core_rpc_server_commands_defs.h:2173
std::string remote_address
Definition: core_rpc_server_commands_defs.h:2180
std::string connection_id
Definition: core_rpc_server_commands_defs.h:2176
uint64_t size
Definition: core_rpc_server_commands_defs.h:2179
uint32_t speed
Definition: core_rpc_server_commands_defs.h:2178
uint32_t rate
Definition: core_rpc_server_commands_defs.h:2177
uint64_t nblocks
Definition: core_rpc_server_commands_defs.h:2175
uint64_t start_block_height
Definition: core_rpc_server_commands_defs.h:2174
Definition: core_rpc_server_commands_defs.h:2155
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2213
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2161
Definition: core_rpc_server_commands_defs.h:2097
std::string command
Definition: core_rpc_server_commands_defs.h:2098
std::string path
Definition: core_rpc_server_commands_defs.h:2099
Definition: core_rpc_server_commands_defs.h:2109
std::string hash
Definition: core_rpc_server_commands_defs.h:2115
std::string user_uri
Definition: core_rpc_server_commands_defs.h:2113
std::string path
Definition: core_rpc_server_commands_defs.h:2116
std::string status
Definition: core_rpc_server_commands_defs.h:2110
std::string auto_uri
Definition: core_rpc_server_commands_defs.h:2114
bool update
Definition: core_rpc_server_commands_defs.h:2111
std::string version
Definition: core_rpc_server_commands_defs.h:2112
Definition: core_rpc_server_commands_defs.h:2095
epee::misc_utils::struct_init< response_t > response
Definition: core_rpc_server_commands_defs.h:2128
epee::misc_utils::struct_init< request_t > request
Definition: core_rpc_server_commands_defs.h:2106
Definition: core_rpc_server_commands_defs.h:1022
uint8_t minor_version
Definition: core_rpc_server_commands_defs.h:1024
uint64_t difficulty_top64
Definition: core_rpc_server_commands_defs.h:1034
uint64_t reward
Definition: core_rpc_server_commands_defs.h:1038
uint64_t timestamp
Definition: core_rpc_server_commands_defs.h:1025
std::string pow_hash
Definition: core_rpc_server_commands_defs.h:1042
uint8_t major_version
Definition: core_rpc_server_commands_defs.h:1023
uint64_t difficulty
Definition: core_rpc_server_commands_defs.h:1032
std::string miner_tx_hash
Definition: core_rpc_server_commands_defs.h:1044
uint32_t nonce
Definition: core_rpc_server_commands_defs.h:1027
std::string hash
Definition: core_rpc_server_commands_defs.h:1031
bool orphan_status
Definition: core_rpc_server_commands_defs.h:1028
uint64_t long_term_weight
Definition: core_rpc_server_commands_defs.h:1043
uint64_t block_size
Definition: core_rpc_server_commands_defs.h:1039
uint64_t cumulative_difficulty
Definition: core_rpc_server_commands_defs.h:1035
uint64_t cumulative_difficulty_top64
Definition: core_rpc_server_commands_defs.h:1037
uint64_t height
Definition: core_rpc_server_commands_defs.h:1029
std::string wide_difficulty
Definition: core_rpc_server_commands_defs.h:1033
uint64_t num_txes
Definition: core_rpc_server_commands_defs.h:1041
uint64_t depth
Definition: core_rpc_server_commands_defs.h:1030
uint64_t block_weight
Definition: core_rpc_server_commands_defs.h:1040
std::string prev_hash
Definition: core_rpc_server_commands_defs.h:1026
std::string wide_cumulative_difficulty
Definition: core_rpc_server_commands_defs.h:1036
Definition: cryptonote_basic.h:393
Definition: cryptonote_protocol_defs.h:49
Definition: core_rpc_server_commands_defs.h:481
uint64_t amount
Definition: core_rpc_server_commands_defs.h:482
uint64_t index
Definition: core_rpc_server_commands_defs.h:483
Definition: core_rpc_server_commands_defs.h:1197
uint32_t ip
Definition: core_rpc_server_commands_defs.h:1200
uint32_t pruning_seed
Definition: core_rpc_server_commands_defs.h:1204
peer(uint64_t id, const std::string &host, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
Definition: core_rpc_server_commands_defs.h:1208
peer(uint64_t id, uint32_t ip, uint16_t port, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
Definition: core_rpc_server_commands_defs.h:1211
uint64_t last_seen
Definition: core_rpc_server_commands_defs.h:1203
uint16_t port
Definition: core_rpc_server_commands_defs.h:1201
std::string host
Definition: core_rpc_server_commands_defs.h:1199
uint16_t rpc_port
Definition: core_rpc_server_commands_defs.h:1202
uint64_t id
Definition: core_rpc_server_commands_defs.h:1198
Definition: rpc_handler.h:45
std::vector< std::uint64_t > distribution
Definition: rpc_handler.h:46
Definition: core_rpc_server_commands_defs.h:1359
std::string id_hash
Definition: core_rpc_server_commands_defs.h:1360
std::vector< std::string > txs_hashes
Definition: core_rpc_server_commands_defs.h:1361
Definition: core_rpc_server_commands_defs.h:1444
uint64_t weight
Definition: core_rpc_server_commands_defs.h:1445
uint64_t fee
Definition: core_rpc_server_commands_defs.h:1446
uint64_t time_in_pool
Definition: core_rpc_server_commands_defs.h:1447
Definition: core_rpc_server_commands_defs.h:1320
std::string max_used_block_id_hash
Definition: core_rpc_server_commands_defs.h:1326
uint64_t max_used_block_height
Definition: core_rpc_server_commands_defs.h:1327
uint64_t blob_size
Definition: core_rpc_server_commands_defs.h:1323
bool relayed
Definition: core_rpc_server_commands_defs.h:1332
uint64_t last_failed_height
Definition: core_rpc_server_commands_defs.h:1329
bool do_not_relay
Definition: core_rpc_server_commands_defs.h:1334
uint64_t receive_time
Definition: core_rpc_server_commands_defs.h:1331
bool kept_by_block
Definition: core_rpc_server_commands_defs.h:1328
std::string tx_json
Definition: core_rpc_server_commands_defs.h:1322
uint64_t fee
Definition: core_rpc_server_commands_defs.h:1325
std::string last_failed_id_hash
Definition: core_rpc_server_commands_defs.h:1330
uint64_t last_relayed_time
Definition: core_rpc_server_commands_defs.h:1333
uint64_t weight
Definition: core_rpc_server_commands_defs.h:1324
std::string tx_blob
Definition: core_rpc_server_commands_defs.h:1336
std::string id_hash
Definition: core_rpc_server_commands_defs.h:1321
bool double_spend_seen
Definition: core_rpc_server_commands_defs.h:1335
Definition: core_rpc_server_commands_defs.h:1475
uint64_t bytes
Definition: core_rpc_server_commands_defs.h:1477
uint32_t txs
Definition: core_rpc_server_commands_defs.h:1476
Definition: core_rpc_server_commands_defs.h:1486
uint64_t oldest
Definition: core_rpc_server_commands_defs.h:1492
uint32_t num_not_relayed
Definition: core_rpc_server_commands_defs.h:1496
uint32_t num_10m
Definition: core_rpc_server_commands_defs.h:1495
uint32_t num_double_spends
Definition: core_rpc_server_commands_defs.h:1499
txpool_stats()
Definition: core_rpc_server_commands_defs.h:1501
uint64_t bytes_total
Definition: core_rpc_server_commands_defs.h:1487
std::vector< txpool_histo > histo
Definition: core_rpc_server_commands_defs.h:1498
uint64_t histo_98pc
Definition: core_rpc_server_commands_defs.h:1497
uint32_t txs_total
Definition: core_rpc_server_commands_defs.h:1493
uint32_t num_failing
Definition: core_rpc_server_commands_defs.h:1494
uint64_t fee_total
Definition: core_rpc_server_commands_defs.h:1491
uint32_t bytes_max
Definition: core_rpc_server_commands_defs.h:1489
uint32_t bytes_min
Definition: core_rpc_server_commands_defs.h:1488
uint32_t bytes_med
Definition: core_rpc_server_commands_defs.h:1490
Definition: rctTypes.h:78
Definition: blake256.h:37
static __thread int depth
Definition: threadpool.cpp:34
rapidjson::Document json
Definition: transport.cpp:49
provides the implementation of varint's