Electroneum
wallet_rpc_server_commands_defs.h
Go to the documentation of this file.
1 // Copyrights(c) 2017-2021, 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
33 #include "cryptonote_config.h"
37 #include "crypto/hash.h"
39 
40 #undef ELECTRONEUM_DEFAULT_LOG_CATEGORY
41 #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "wallet.rpc"
42 
43 // When making *any* change here, bump minor
44 // If the change is incompatible, then bump major and set minor to 0
45 // This ensures WALLET_RPC_VERSION always increases, that every change
46 // has its own version, and that clients can just test major to see
47 // whether they can talk to a given wallet without having to know in
48 // advance which version they will stop working with
49 // Don't go over 32767 for any of these
50 #define WALLET_RPC_VERSION_MAJOR 1
51 #define WALLET_RPC_VERSION_MINOR 13
52 #define MAKE_WALLET_RPC_VERSION(major,minor) (((major)<<16)|(minor))
53 #define WALLET_RPC_VERSION MAKE_WALLET_RPC_VERSION(WALLET_RPC_VERSION_MAJOR, WALLET_RPC_VERSION_MINOR)
54 namespace tools
55 {
56 namespace wallet_rpc
57 {
58 #define WALLET_RPC_STATUS_OK "OK"
59 #define WALLET_RPC_STATUS_BUSY "BUSY"
60 
62  {
63  struct request_t
64  {
66  std::set<uint32_t> address_indices;
73  };
74  typedef epee::misc_utils::struct_init<request_t> request;
75 
77  {
86 
89  KV_SERIALIZE(address_index)
91  KV_SERIALIZE(balance)
92  KV_SERIALIZE(unlocked_balance)
93  KV_SERIALIZE(label)
94  KV_SERIALIZE(num_unspent_outputs)
95  KV_SERIALIZE(blocks_to_unlock)
97  };
98 
99  struct response_t
100  {
104  std::vector<per_subaddress_info> per_subaddress;
106 
108  KV_SERIALIZE(balance)
109  KV_SERIALIZE(unlocked_balance)
110  KV_SERIALIZE(multisig_import_needed)
111  KV_SERIALIZE(per_subaddress)
112  KV_SERIALIZE(blocks_to_unlock)
114  };
115  typedef epee::misc_utils::struct_init<response_t> response;
116  };
117 
119  {
120  struct request_t
121  {
123  std::vector<uint32_t> address_index;
126  KV_SERIALIZE(address_index)
128  };
129  typedef epee::misc_utils::struct_init<request_t> request;
130 
132  {
136  bool used;
137 
140  KV_SERIALIZE(label)
141  KV_SERIALIZE(address_index)
142  KV_SERIALIZE(used)
144  };
145 
146  struct response_t
147  {
148  std::string address; // to remain compatible with older RPC format
149  std::vector<address_info> addresses;
150 
153  KV_SERIALIZE(addresses)
155  };
156  typedef epee::misc_utils::struct_init<response_t> response;
157  };
158 
160  {
161  struct request_t
162  {
167  };
168  typedef epee::misc_utils::struct_init<request_t> request;
169 
170  struct response_t
171  {
174  KV_SERIALIZE(index)
176  };
177  typedef epee::misc_utils::struct_init<response_t> response;
178  };
179 
181  {
182  struct request_t
183  {
186 
189  KV_SERIALIZE(label)
191  };
192  typedef epee::misc_utils::struct_init<request_t> request;
193 
194  struct response_t
195  {
198 
201  KV_SERIALIZE(address_index)
203  };
204  typedef epee::misc_utils::struct_init<response_t> response;
205  };
206 
208  {
209  struct request_t
210  {
213 
215  KV_SERIALIZE(index)
216  KV_SERIALIZE(label)
218  };
219  typedef epee::misc_utils::struct_init<request_t> request;
220 
221  struct response_t
222  {
225  };
227  };
228 
230  {
231  struct request_t
232  {
234  std::string tag; // all accounts if empty, otherwise those accounts with this tag
235 
238  KV_SERIALIZE(tag)
240  };
241  typedef epee::misc_utils::struct_init<request_t> request;
242 
244  {
251 
254  KV_SERIALIZE(base_address)
255  KV_SERIALIZE(balance)
256  KV_SERIALIZE(unlocked_balance)
257  KV_SERIALIZE(label)
258  KV_SERIALIZE(tag)
260  };
261 
262  struct response_t
263  {
266  std::vector<subaddress_account_info> subaddress_accounts;
268 
270  KV_SERIALIZE(total_balance)
271  KV_SERIALIZE(total_unlocked_balance)
272  KV_SERIALIZE(subaddress_accounts)
273  KV_SERIALIZE(account_major_offset)
275  };
276  typedef epee::misc_utils::struct_init<response_t> response;
277  };
278 
280  {
281  struct request_t
282  {
285  KV_SERIALIZE(label)
287  };
288  typedef epee::misc_utils::struct_init<request_t> request;
289 
290  struct response_t
291  {
293  std::string address; // the 0-th address for convenience
298  };
299  typedef epee::misc_utils::struct_init<response_t> response;
300  };
301 
303  {
304  struct request_t
305  {
308 
311  KV_SERIALIZE(label)
313  };
314  typedef epee::misc_utils::struct_init<request_t> request;
315 
316  struct response_t
317  {
320  };
322  };
323 
325  {
326  struct request_t
327  {
330  };
332 
334  {
337  std::vector<uint32_t> accounts;
338 
341  KV_SERIALIZE(label);
342  KV_SERIALIZE(accounts);
344  };
345 
346  struct response_t
347  {
348  std::vector<account_tag_info> account_tags;
349 
351  KV_SERIALIZE(account_tags)
353  };
354  typedef epee::misc_utils::struct_init<response_t> response;
355  };
356 
358  {
359  struct request_t
360  {
362  std::set<uint32_t> accounts;
363 
365  KV_SERIALIZE(tag)
366  KV_SERIALIZE(accounts)
368  };
369  typedef epee::misc_utils::struct_init<request_t> request;
370 
371  struct response_t
372  {
375  };
377  };
378 
380  {
381  struct request_t
382  {
383  std::set<uint32_t> accounts;
384 
386  KV_SERIALIZE(accounts)
388  };
389  typedef epee::misc_utils::struct_init<request_t> request;
390 
391  struct response_t
392  {
395  };
397  };
398 
400  {
401  struct request_t
402  {
405 
407  KV_SERIALIZE(tag)
408  KV_SERIALIZE(description)
410  };
411  typedef epee::misc_utils::struct_init<request_t> request;
412 
413  struct response_t
414  {
417  };
419  };
420 
422  {
423  struct request_t
424  {
427  };
429 
430  struct response_t
431  {
436  };
437  typedef epee::misc_utils::struct_init<response_t> response;
438  };
439 
441  {
445  KV_SERIALIZE(amount)
448  };
449 
451  {
452  struct request_t
453  {
454  std::list<transfer_destination> destinations;
456  std::set<uint32_t> subaddr_indices;
465 
467  KV_SERIALIZE(destinations)
469  KV_SERIALIZE(subaddr_indices)
470  KV_SERIALIZE(priority)
471  KV_SERIALIZE_OPT(ring_size, (uint64_t)0)
472  KV_SERIALIZE(unlock_time)
473  KV_SERIALIZE(payment_id)
475  KV_SERIALIZE_OPT(do_not_relay, false)
476  KV_SERIALIZE_OPT(get_tx_hex, false)
477  KV_SERIALIZE_OPT(get_tx_metadata, false)
479  };
480  typedef epee::misc_utils::struct_init<request_t> request;
481 
482  struct response_t
483  {
492 
494  KV_SERIALIZE(tx_hash)
495  KV_SERIALIZE(tx_key)
496  KV_SERIALIZE(amount)
497  KV_SERIALIZE(fee)
498  KV_SERIALIZE(tx_blob)
499  KV_SERIALIZE(tx_metadata)
500  KV_SERIALIZE(multisig_txset)
501  KV_SERIALIZE(unsigned_txset)
503  };
504  typedef epee::misc_utils::struct_init<response_t> response;
505  };
506 
508  {
509  struct request_t
510  {
511  std::list<transfer_destination> destinations;
513  std::set<uint32_t> subaddr_indices;
522 
524  KV_SERIALIZE(destinations)
526  KV_SERIALIZE(subaddr_indices)
527  KV_SERIALIZE(priority)
528  KV_SERIALIZE_OPT(ring_size, (uint64_t)0)
529  KV_SERIALIZE(unlock_time)
530  KV_SERIALIZE(payment_id)
531  KV_SERIALIZE(get_tx_keys)
532  KV_SERIALIZE_OPT(do_not_relay, false)
533  KV_SERIALIZE_OPT(get_tx_hex, false)
534  KV_SERIALIZE_OPT(get_tx_metadata, false)
536  };
537  typedef epee::misc_utils::struct_init<request_t> request;
538 
539  struct key_list
540  {
541  std::list<std::string> keys;
542 
544  KV_SERIALIZE(keys)
546  };
547 
548  struct response_t
549  {
550  std::list<std::string> tx_hash_list;
551  std::list<std::string> tx_key_list;
552  std::list<uint64_t> amount_list;
553  std::list<uint64_t> fee_list;
554  std::list<std::string> tx_blob_list;
555  std::list<std::string> tx_metadata_list;
558 
560  KV_SERIALIZE(tx_hash_list)
561  KV_SERIALIZE(tx_key_list)
562  KV_SERIALIZE(amount_list)
563  KV_SERIALIZE(fee_list)
564  KV_SERIALIZE(tx_blob_list)
565  KV_SERIALIZE(tx_metadata_list)
566  KV_SERIALIZE(multisig_txset)
567  KV_SERIALIZE(unsigned_txset)
569  };
570  typedef epee::misc_utils::struct_init<response_t> response;
571  };
572 
574  {
575  struct recipient
576  {
579 
582  KV_SERIALIZE(amount)
584  };
585 
587  {
592  std::list<recipient> recipients;
599 
601  KV_SERIALIZE(amount_in)
602  KV_SERIALIZE(amount_out)
603  KV_SERIALIZE(ring_size)
604  KV_SERIALIZE(unlock_time)
605  KV_SERIALIZE(recipients)
606  KV_SERIALIZE(payment_id)
607  KV_SERIALIZE(change_amount)
608  KV_SERIALIZE(change_address)
609  KV_SERIALIZE(fee)
610  KV_SERIALIZE(dummy_outputs)
611  KV_SERIALIZE(extra)
613  };
614 
615  struct request_t
616  {
619 
621  KV_SERIALIZE(unsigned_txset)
622  KV_SERIALIZE(multisig_txset)
624  };
625  typedef epee::misc_utils::struct_init<request_t> request;
626 
627  struct response_t
628  {
629  std::list<transfer_description> desc;
630 
632  KV_SERIALIZE(desc)
634  };
635  typedef epee::misc_utils::struct_init<response_t> response;
636  };
637 
639  {
640  struct request_t
641  {
645 
647  KV_SERIALIZE(unsigned_txset)
648  KV_SERIALIZE_OPT(export_raw, false)
649  KV_SERIALIZE_OPT(get_tx_keys, false)
651  };
652  typedef epee::misc_utils::struct_init<request_t> request;
653 
654  struct response_t
655  {
657  std::list<std::string> tx_hash_list;
658  std::list<std::string> tx_raw_list;
659  std::list<std::string> tx_key_list;
660 
662  KV_SERIALIZE(signed_txset)
663  KV_SERIALIZE(tx_hash_list)
664  KV_SERIALIZE(tx_raw_list)
665  KV_SERIALIZE(tx_key_list)
667  };
668  typedef epee::misc_utils::struct_init<response_t> response;
669  };
670 
672  {
673  struct request_t
674  {
676 
678  KV_SERIALIZE(tx_data_hex)
680  };
681  typedef epee::misc_utils::struct_init<request_t> request;
682 
683  struct response_t
684  {
685  std::list<std::string> tx_hash_list;
686 
688  KV_SERIALIZE(tx_hash_list)
690  };
691  typedef epee::misc_utils::struct_init<response_t> response;
692  };
693 
695  {
696  struct request_t
697  {
702 
704  KV_SERIALIZE(get_tx_keys)
705  KV_SERIALIZE_OPT(do_not_relay, false)
706  KV_SERIALIZE_OPT(get_tx_hex, false)
707  KV_SERIALIZE_OPT(get_tx_metadata, false)
709  };
710  typedef epee::misc_utils::struct_init<request_t> request;
711 
712  struct key_list
713  {
714  std::list<std::string> keys;
715 
717  KV_SERIALIZE(keys)
719  };
720 
721  struct response_t
722  {
723  std::list<std::string> tx_hash_list;
724  std::list<std::string> tx_key_list;
725  std::list<uint64_t> amount_list;
726  std::list<uint64_t> fee_list;
727  std::list<std::string> tx_blob_list;
728  std::list<std::string> tx_metadata_list;
731 
733  KV_SERIALIZE(tx_hash_list)
734  KV_SERIALIZE(tx_key_list)
735  KV_SERIALIZE(amount_list)
736  KV_SERIALIZE(fee_list)
737  KV_SERIALIZE(tx_blob_list)
738  KV_SERIALIZE(tx_metadata_list)
739  KV_SERIALIZE(multisig_txset)
740  KV_SERIALIZE(unsigned_txset)
742  };
743  typedef epee::misc_utils::struct_init<response_t> response;
744  };
745 
747  {
748  struct request_t
749  {
752  std::set<uint32_t> subaddr_indices;
764 
768  KV_SERIALIZE(subaddr_indices)
769  KV_SERIALIZE_OPT(subaddr_indices_all, false)
770  KV_SERIALIZE(priority)
771  KV_SERIALIZE_OPT(ring_size, (uint64_t)0)
772  KV_SERIALIZE_OPT(outputs, (uint64_t)1)
773  KV_SERIALIZE(unlock_time)
774  KV_SERIALIZE(payment_id)
775  KV_SERIALIZE(get_tx_keys)
776  KV_SERIALIZE(below_amount)
777  KV_SERIALIZE_OPT(do_not_relay, false)
778  KV_SERIALIZE_OPT(get_tx_hex, false)
779  KV_SERIALIZE_OPT(get_tx_metadata, false)
781  };
782  typedef epee::misc_utils::struct_init<request_t> request;
783 
784  struct key_list
785  {
786  std::list<std::string> keys;
787 
789  KV_SERIALIZE(keys)
791  };
792 
793  struct response_t
794  {
795  std::list<std::string> tx_hash_list;
796  std::list<std::string> tx_key_list;
797  std::list<uint64_t> amount_list;
798  std::list<uint64_t> fee_list;
799  std::list<std::string> tx_blob_list;
800  std::list<std::string> tx_metadata_list;
803 
805  KV_SERIALIZE(tx_hash_list)
806  KV_SERIALIZE(tx_key_list)
807  KV_SERIALIZE(amount_list)
808  KV_SERIALIZE(fee_list)
809  KV_SERIALIZE(tx_blob_list)
810  KV_SERIALIZE(tx_metadata_list)
811  KV_SERIALIZE(multisig_txset)
812  KV_SERIALIZE(unsigned_txset)
814  };
815  typedef epee::misc_utils::struct_init<response_t> response;
816  };
817 
819  {
820  struct request_t
821  {
833 
836  KV_SERIALIZE(priority)
837  KV_SERIALIZE_OPT(ring_size, (uint64_t)0)
838  KV_SERIALIZE_OPT(outputs, (uint64_t)1)
839  KV_SERIALIZE(unlock_time)
840  KV_SERIALIZE(payment_id)
843  KV_SERIALIZE_OPT(do_not_relay, false)
844  KV_SERIALIZE_OPT(get_tx_hex, false)
845  KV_SERIALIZE_OPT(get_tx_metadata, false)
847  };
848  typedef epee::misc_utils::struct_init<request_t> request;
849 
850  struct response_t
851  {
860 
862  KV_SERIALIZE(tx_hash)
863  KV_SERIALIZE(tx_key)
864  KV_SERIALIZE(amount)
865  KV_SERIALIZE(fee)
866  KV_SERIALIZE(tx_blob)
867  KV_SERIALIZE(tx_metadata)
868  KV_SERIALIZE(multisig_txset)
869  KV_SERIALIZE(unsigned_txset)
871  };
872  typedef epee::misc_utils::struct_init<response_t> response;
873  };
874 
876  {
877  struct request_t
878  {
880 
882  KV_SERIALIZE(hex)
884  };
885  typedef epee::misc_utils::struct_init<request_t> request;
886 
887  struct response_t
888  {
890 
892  KV_SERIALIZE(tx_hash)
894  };
895  typedef epee::misc_utils::struct_init<response_t> response;
896  };
897 
899  {
900  struct request_t
901  {
904  };
906 
907  struct response_t
908  {
911  };
913  };
914 
916  {
925 
927  KV_SERIALIZE(payment_id)
928  KV_SERIALIZE(tx_hash)
929  KV_SERIALIZE(amount)
930  KV_SERIALIZE(timestamp)
931  KV_SERIALIZE(block_height)
932  KV_SERIALIZE(unlock_time)
933  KV_SERIALIZE(subaddr_index)
936  };
937 
939  {
940  struct request_t
941  {
943 
945  KV_SERIALIZE(payment_id)
947  };
948  typedef epee::misc_utils::struct_init<request_t> request;
949 
950  struct response_t
951  {
952  std::list<payment_details> payments;
953 
955  KV_SERIALIZE(payments)
957  };
958  typedef epee::misc_utils::struct_init<response_t> response;
959  };
960 
962  {
963  struct request_t
964  {
965  std::vector<std::string> payment_ids;
967 
969  KV_SERIALIZE(payment_ids)
970  KV_SERIALIZE(min_block_height)
972  };
973  typedef epee::misc_utils::struct_init<request_t> request;
974 
975  struct response_t
976  {
977  std::list<payment_details> payments;
978 
980  KV_SERIALIZE(payments)
982  };
983  typedef epee::misc_utils::struct_init<response_t> response;
984  };
985 
987  {
989  bool spent;
995  bool frozen;
996  bool unlocked;
997 
999  KV_SERIALIZE(amount)
1000  KV_SERIALIZE(spent)
1001  KV_SERIALIZE(global_index)
1002  KV_SERIALIZE(tx_hash)
1003  KV_SERIALIZE(subaddr_index)
1005  KV_SERIALIZE(block_height)
1006  KV_SERIALIZE(frozen)
1007  KV_SERIALIZE(unlocked)
1009  };
1010 
1012  {
1013  struct request_t
1014  {
1017  std::set<uint32_t> subaddr_indices;
1018 
1020  KV_SERIALIZE(transfer_type)
1022  KV_SERIALIZE(subaddr_indices)
1024  };
1025  typedef epee::misc_utils::struct_init<request_t> request;
1026 
1027  struct response_t
1028  {
1029  std::list<transfer_details> transfers;
1030 
1032  KV_SERIALIZE(transfers)
1034  };
1035  typedef epee::misc_utils::struct_init<response_t> response;
1036  };
1037 
1038  //JSON RPC V2
1040  {
1041  struct request_t
1042  {
1044 
1046  KV_SERIALIZE(key_type)
1048  };
1049  typedef epee::misc_utils::struct_init<request_t> request;
1050 
1051  struct response_t
1052  {
1054 
1056  KV_SERIALIZE(key)
1058  };
1059  typedef epee::misc_utils::struct_init<response_t> response;
1060  };
1061 
1063  {
1064  struct request_t
1065  {
1068 
1070  KV_SERIALIZE(standard_address)
1071  KV_SERIALIZE(payment_id)
1073  };
1074  typedef epee::misc_utils::struct_init<request_t> request;
1075 
1076  struct response_t
1077  {
1080 
1082  KV_SERIALIZE(integrated_address)
1083  KV_SERIALIZE(payment_id)
1085  };
1086  typedef epee::misc_utils::struct_init<response_t> response;
1087  };
1088 
1090  {
1091  struct request_t
1092  {
1094 
1096  KV_SERIALIZE(integrated_address)
1098  };
1099  typedef epee::misc_utils::struct_init<request_t> request;
1100 
1101  struct response_t
1102  {
1106 
1108  KV_SERIALIZE(standard_address)
1109  KV_SERIALIZE(payment_id)
1110  KV_SERIALIZE(is_subaddress)
1112  };
1113  typedef epee::misc_utils::struct_init<response_t> response;
1114  };
1115 
1117  {
1118  struct request_t
1119  {
1122  };
1124 
1125  struct response_t
1126  {
1129  };
1131  };
1132 
1134  {
1135  struct request_t
1136  {
1137  bool hard;
1138 
1142  };
1143  typedef epee::misc_utils::struct_init<request_t> request;
1144 
1145  struct response_t
1146  {
1149  };
1151  };
1152 
1154  {
1155  struct request_t
1156  {
1157  std::list<std::string> txids;
1158  std::list<std::string> notes;
1159 
1161  KV_SERIALIZE(txids)
1162  KV_SERIALIZE(notes)
1164  };
1165  typedef epee::misc_utils::struct_init<request_t> request;
1166 
1167  struct response_t
1168  {
1171  };
1173  };
1174 
1176  {
1177  struct request_t
1178  {
1179  std::list<std::string> txids;
1180 
1182  KV_SERIALIZE(txids)
1184  };
1185  typedef epee::misc_utils::struct_init<request_t> request;
1186 
1187  struct response_t
1188  {
1189  std::list<std::string> notes;
1190 
1192  KV_SERIALIZE(notes)
1194  };
1195  typedef epee::misc_utils::struct_init<response_t> response;
1196  };
1197 
1199  {
1200  struct request_t
1201  {
1204 
1206  KV_SERIALIZE(key)
1209  };
1210  typedef epee::misc_utils::struct_init<request_t> request;
1211 
1212  struct response_t
1213  {
1216  };
1218  };
1219 
1221  {
1222  struct request_t
1223  {
1224 
1226 
1228  KV_SERIALIZE(key)
1230  };
1231  typedef epee::misc_utils::struct_init<request_t> request;
1232 
1233  struct response_t
1234  {
1236 
1240  };
1241  typedef epee::misc_utils::struct_init<response_t> response;
1242  };
1243 
1245  {
1246  struct request_t
1247  {
1249 
1251  KV_SERIALIZE(txid)
1253  };
1254  typedef epee::misc_utils::struct_init<request_t> request;
1255 
1256  struct response_t
1257  {
1259 
1261  KV_SERIALIZE(tx_key)
1263  };
1264  typedef epee::misc_utils::struct_init<response_t> response;
1265  };
1266 
1268  {
1269  struct request_t
1270  {
1274 
1276  KV_SERIALIZE(txid)
1277  KV_SERIALIZE(tx_key)
1280  };
1281  typedef epee::misc_utils::struct_init<request_t> request;
1282 
1283  struct response_t
1284  {
1286  bool in_pool;
1288 
1290  KV_SERIALIZE(received)
1291  KV_SERIALIZE(in_pool)
1292  KV_SERIALIZE(confirmations)
1294  };
1295  typedef epee::misc_utils::struct_init<response_t> response;
1296  };
1297 
1299  {
1300  struct request_t
1301  {
1305 
1307  KV_SERIALIZE(txid)
1311  };
1312  typedef epee::misc_utils::struct_init<request_t> request;
1313 
1314  struct response_t
1315  {
1317 
1321  };
1322  typedef epee::misc_utils::struct_init<response_t> response;
1323  };
1324 
1326  {
1327  struct request_t
1328  {
1333 
1335  KV_SERIALIZE(txid)
1340  };
1341  typedef epee::misc_utils::struct_init<request_t> request;
1342 
1343  struct response_t
1344  {
1345  bool good;
1347  bool in_pool;
1349 
1351  KV_SERIALIZE(good)
1352  KV_SERIALIZE(received)
1353  KV_SERIALIZE(in_pool)
1354  KV_SERIALIZE(confirmations)
1356  };
1357  typedef epee::misc_utils::struct_init<response_t> response;
1358  };
1359 
1361  {
1369  std::list<transfer_destination> destinations;
1373  std::vector<cryptonote::subaddress_index> subaddr_indices;
1379 
1382  KV_SERIALIZE(payment_id);
1384  KV_SERIALIZE(timestamp);
1385  KV_SERIALIZE(amount);
1388  KV_SERIALIZE(destinations);
1390  KV_SERIALIZE(unlock_time)
1391  KV_SERIALIZE(subaddr_index);
1392  KV_SERIALIZE(subaddr_indices);
1394  KV_SERIALIZE(double_spend_seen)
1395  KV_SERIALIZE_OPT(confirmations, (uint64_t)0)
1396  KV_SERIALIZE_OPT(suggested_confirmations_threshold, (uint64_t)0)
1397  KV_SERIALIZE(nonexistent_utxo_seen)
1399  };
1400 
1402  {
1403  struct request_t
1404  {
1407 
1409  KV_SERIALIZE(txid)
1412  };
1413  typedef epee::misc_utils::struct_init<request_t> request;
1414 
1415  struct response_t
1416  {
1418 
1422  };
1423  typedef epee::misc_utils::struct_init<response_t> response;
1424  };
1425 
1427  {
1428  struct request_t
1429  {
1433 
1435  KV_SERIALIZE(txid)
1439  };
1440  typedef epee::misc_utils::struct_init<request_t> request;
1441 
1442  struct response_t
1443  {
1444  bool good;
1445 
1447  KV_SERIALIZE(good)
1449  };
1450  typedef epee::misc_utils::struct_init<response_t> response;
1451  };
1452 
1454  {
1455  struct request_t
1456  {
1457  bool all;
1458  uint32_t account_index; // ignored when `all` is true
1459  uint64_t amount; // ignored when `all` is true
1461 
1463  KV_SERIALIZE(all)
1465  KV_SERIALIZE(amount)
1468  };
1469  typedef epee::misc_utils::struct_init<request_t> request;
1470 
1471  struct response_t
1472  {
1474 
1478  };
1479  typedef epee::misc_utils::struct_init<response_t> response;
1480  };
1481 
1483  {
1484  struct request_t
1485  {
1489 
1495  };
1496  typedef epee::misc_utils::struct_init<request_t> request;
1497 
1498  struct response_t
1499  {
1500  bool good;
1503 
1505  KV_SERIALIZE(good)
1506  KV_SERIALIZE(total)
1507  KV_SERIALIZE(spent)
1509  };
1510  typedef epee::misc_utils::struct_init<response_t> response;
1511  };
1512 
1514  {
1515  struct request_t
1516  {
1517  bool in;
1518  bool out;
1519  bool pending;
1520  bool failed;
1521  bool pool;
1523 
1528  std::set<uint32_t> subaddr_indices;
1530 
1535  KV_SERIALIZE(failed);
1537  KV_SERIALIZE(migration);
1538  KV_SERIALIZE(filter_by_height);
1539  KV_SERIALIZE(min_height);
1542  KV_SERIALIZE(subaddr_indices);
1545  };
1546  typedef epee::misc_utils::struct_init<request_t> request;
1547 
1548  struct response_t
1549  {
1550  std::list<transfer_entry> in;
1551  std::list<transfer_entry> out;
1552  std::list<transfer_entry> pending;
1553  std::list<transfer_entry> failed;
1554  std::list<transfer_entry> pool;
1555  std::list<transfer_entry> migration;
1556 
1561  KV_SERIALIZE(failed);
1563  KV_SERIALIZE(migration);
1565  };
1566  typedef epee::misc_utils::struct_init<response_t> response;
1567  };
1568 
1570  {
1571  struct request_t
1572  {
1575 
1580  };
1581  typedef epee::misc_utils::struct_init<request_t> request;
1582 
1583  struct response_t
1584  {
1586  std::list<transfer_entry> transfers;
1587 
1589  KV_SERIALIZE(transfer);
1590  KV_SERIALIZE(transfers);
1592  };
1593  typedef epee::misc_utils::struct_init<response_t> response;
1594  };
1595 
1597  {
1598  struct request_t
1599  {
1601 
1605  };
1606  typedef epee::misc_utils::struct_init<request_t> request;
1607 
1608  struct response_t
1609  {
1611 
1615  };
1616  typedef epee::misc_utils::struct_init<response_t> response;
1617  };
1618 
1620  {
1621  struct request_t
1622  {
1626 
1632  };
1633  typedef epee::misc_utils::struct_init<request_t> request;
1634 
1635  struct response_t
1636  {
1637  bool good;
1638 
1642  };
1643  typedef epee::misc_utils::struct_init<response_t> response;
1644  };
1645 
1647  {
1648  struct request_t
1649  {
1650  bool all;
1651 
1653  KV_SERIALIZE(all)
1655  };
1656  typedef epee::misc_utils::struct_init<request_t> request;
1657 
1658  struct response_t
1659  {
1661 
1663  KV_SERIALIZE(outputs_data_hex);
1665  };
1666  typedef epee::misc_utils::struct_init<response_t> response;
1667  };
1668 
1670  {
1671  struct request_t
1672  {
1674 
1676  KV_SERIALIZE(outputs_data_hex);
1678  };
1679  typedef epee::misc_utils::struct_init<request_t> request;
1680 
1681  struct response_t
1682  {
1684 
1686  KV_SERIALIZE(num_imported);
1688  };
1689  typedef epee::misc_utils::struct_init<response_t> response;
1690  };
1691 
1693  {
1694  struct request_t
1695  {
1696  bool all;
1697 
1701  };
1702  typedef epee::misc_utils::struct_init<request_t> request;
1703 
1705  {
1708 
1713  };
1714 
1715  struct response_t
1716  {
1718  std::vector<signed_key_image> signed_key_images;
1719 
1721  KV_SERIALIZE(offset);
1722  KV_SERIALIZE(signed_key_images);
1724  };
1725  typedef epee::misc_utils::struct_init<response_t> response;
1726  };
1727 
1729  {
1731  {
1734 
1739  };
1740 
1741  struct request_t
1742  {
1744  std::vector<signed_key_image> signed_key_images;
1745 
1748  KV_SERIALIZE(signed_key_images);
1750  };
1751  typedef epee::misc_utils::struct_init<request_t> request;
1752 
1753  struct response_t
1754  {
1758 
1761  KV_SERIALIZE(spent)
1762  KV_SERIALIZE(unspent)
1764  };
1765  typedef epee::misc_utils::struct_init<response_t> response;
1766  };
1767 
1768  struct uri_spec
1769  {
1775 
1778  KV_SERIALIZE(payment_id);
1779  KV_SERIALIZE(amount);
1780  KV_SERIALIZE(tx_description);
1781  KV_SERIALIZE(recipient_name);
1783  };
1784 
1786  {
1787  struct request_t: public uri_spec
1788  {
1789  };
1791 
1792  struct response_t
1793  {
1795 
1797  KV_SERIALIZE(uri)
1799  };
1800  typedef epee::misc_utils::struct_init<response_t> response;
1801  };
1802 
1804  {
1805  struct request_t
1806  {
1808 
1810  KV_SERIALIZE(uri)
1812  };
1813  typedef epee::misc_utils::struct_init<request_t> request;
1814 
1815  struct response_t
1816  {
1818  std::vector<std::string> unknown_parameters;
1819 
1822  KV_SERIALIZE(unknown_parameters);
1824  };
1825  typedef epee::misc_utils::struct_init<response_t> response;
1826  };
1827 
1829  {
1830  struct request_t
1831  {
1835 
1838  KV_SERIALIZE(payment_id)
1839  KV_SERIALIZE(description)
1841  };
1842  typedef epee::misc_utils::struct_init<request_t> request;
1843 
1844  struct response_t
1845  {
1847 
1851  };
1852  typedef epee::misc_utils::struct_init<response_t> response;
1853  };
1854 
1856  {
1857  struct request_t
1858  {
1859  std::list<uint64_t> entries;
1860 
1862  KV_SERIALIZE(entries)
1864  };
1865  typedef epee::misc_utils::struct_init<request_t> request;
1866 
1867  struct entry
1868  {
1873 
1875  KV_SERIALIZE(index)
1877  KV_SERIALIZE(payment_id)
1878  KV_SERIALIZE(description)
1880  };
1881 
1882  struct response_t
1883  {
1884  std::vector<entry> entries;
1885 
1887  KV_SERIALIZE(entries)
1889  };
1890  typedef epee::misc_utils::struct_init<response_t> response;
1891  };
1892 
1894  {
1895  struct request_t
1896  {
1898 
1902  };
1903  typedef epee::misc_utils::struct_init<request_t> request;
1904 
1905  struct response_t
1906  {
1909  };
1911  };
1912 
1914  {
1915  struct request_t
1916  {
1919  };
1921 
1922  struct response_t
1923  {
1926  };
1928  };
1929 
1931  {
1932  struct request_t
1933  {
1935 
1937  KV_SERIALIZE_OPT(start_height, (uint64_t) 0)
1939  };
1940  typedef epee::misc_utils::struct_init<request_t> request;
1941 
1942  struct response_t
1943  {
1946 
1948  KV_SERIALIZE(blocks_fetched);
1949  KV_SERIALIZE(received_etn);
1951  };
1952  typedef epee::misc_utils::struct_init<response_t> response;
1953  };
1954 
1956  {
1957  struct request_t
1958  {
1959  bool enable;
1960  uint32_t period; // seconds
1961 
1963  KV_SERIALIZE_OPT(enable, true)
1964  KV_SERIALIZE_OPT(period, (uint32_t)0)
1966  };
1967  typedef epee::misc_utils::struct_init<request_t> request;
1968 
1969  struct response_t
1970  {
1973  };
1975  };
1976 
1978  {
1979  struct request_t
1980  {
1984 
1986  KV_SERIALIZE(threads_count)
1987  KV_SERIALIZE(do_background_mining)
1988  KV_SERIALIZE(ignore_battery)
1990  };
1991  typedef epee::misc_utils::struct_init<request_t> request;
1992 
1993  struct response_t
1994  {
1997  };
1999  };
2000 
2002  {
2003  struct request_t
2004  {
2007  };
2009 
2010  struct response_t
2011  {
2014  };
2016  };
2017 
2019  {
2020  struct request_t
2021  {
2024  };
2026 
2027  struct response_t
2028  {
2029  std::vector<std::string> languages;
2030  std::vector<std::string> languages_local;
2031 
2033  KV_SERIALIZE(languages)
2034  KV_SERIALIZE(languages_local)
2036  };
2037  typedef epee::misc_utils::struct_init<response_t> response;
2038  };
2039 
2041  {
2042  struct request_t
2043  {
2047 
2049  KV_SERIALIZE(filename)
2050  KV_SERIALIZE(password)
2051  KV_SERIALIZE(language)
2053  };
2054  typedef epee::misc_utils::struct_init<request_t> request;
2055 
2056  struct response_t
2057  {
2060  };
2062  };
2063 
2065  {
2066  struct request_t
2067  {
2071 
2073  KV_SERIALIZE(filename)
2074  KV_SERIALIZE(password)
2075  KV_SERIALIZE_OPT(autosave_current, true)
2077  };
2078  typedef epee::misc_utils::struct_init<request_t> request;
2079 
2080  struct response_t
2081  {
2084  };
2086  };
2087 
2089  {
2090  struct request_t
2091  {
2093 
2095  KV_SERIALIZE_OPT(autosave_current, true)
2097  };
2098  typedef epee::misc_utils::struct_init<request_t> request;
2099 
2100  struct response_t
2101  {
2104  };
2106  };
2107 
2109  {
2110  struct request_t
2111  {
2114 
2116  KV_SERIALIZE(old_password)
2117  KV_SERIALIZE(new_password)
2119  };
2120  typedef epee::misc_utils::struct_init<request_t> request;
2121 
2122  struct response_t
2123  {
2126  };
2128  };
2129 
2131  {
2132  struct request
2133  {
2141 
2143  KV_SERIALIZE_OPT(restore_height, (uint64_t)0)
2144  KV_SERIALIZE(filename)
2147  KV_SERIALIZE(viewkey)
2148  KV_SERIALIZE(password)
2149  KV_SERIALIZE_OPT(autosave_current, true)
2151  };
2152 
2153  struct response
2154  {
2157 
2162  };
2163  };
2164 
2166  {
2167  struct request_t
2168  {
2176 
2178  KV_SERIALIZE_OPT(restore_height, (uint64_t)0)
2179  KV_SERIALIZE(filename)
2180  KV_SERIALIZE(seed)
2181  KV_SERIALIZE(seed_offset)
2182  KV_SERIALIZE(password)
2183  KV_SERIALIZE(language)
2184  KV_SERIALIZE_OPT(autosave_current, true)
2186  };
2187  typedef epee::misc_utils::struct_init<request_t> request;
2188 
2189  struct response_t
2190  {
2195 
2198  KV_SERIALIZE(seed)
2200  KV_SERIALIZE(was_deprecated)
2202  };
2203  typedef epee::misc_utils::struct_init<response_t> response;
2204  };
2205 
2207  {
2208  struct request_t
2209  {
2212  };
2214 
2215  struct response_t
2216  {
2217  bool multisig;
2218  bool ready;
2221 
2223  KV_SERIALIZE(multisig)
2224  KV_SERIALIZE(ready)
2226  KV_SERIALIZE(total)
2228  };
2229  typedef epee::misc_utils::struct_init<response_t> response;
2230  };
2231 
2233  {
2234  struct request_t
2235  {
2238  };
2240 
2241  struct response_t
2242  {
2244 
2246  KV_SERIALIZE(multisig_info)
2248  };
2249  typedef epee::misc_utils::struct_init<response_t> response;
2250  };
2251 
2253  {
2254  struct request_t
2255  {
2256  std::vector<std::string> multisig_info;
2259 
2261  KV_SERIALIZE(multisig_info)
2263  KV_SERIALIZE(password)
2265  };
2266  typedef epee::misc_utils::struct_init<request_t> request;
2267 
2268  struct response_t
2269  {
2272 
2275  KV_SERIALIZE(multisig_info)
2277  };
2278  typedef epee::misc_utils::struct_init<response_t> response;
2279  };
2280 
2282  {
2283  struct request_t
2284  {
2287  };
2289 
2290  struct response_t
2291  {
2293 
2297  };
2298  typedef epee::misc_utils::struct_init<response_t> response;
2299  };
2300 
2302  {
2303  struct request_t
2304  {
2305  std::vector<std::string> info;
2306 
2310  };
2311  typedef epee::misc_utils::struct_init<request_t> request;
2312 
2313  struct response_t
2314  {
2316 
2318  KV_SERIALIZE(n_outputs)
2320  };
2321  typedef epee::misc_utils::struct_init<response_t> response;
2322  };
2323 
2325  {
2326  struct request_t
2327  {
2329  std::vector<std::string> multisig_info;
2330 
2332  KV_SERIALIZE(password)
2333  KV_SERIALIZE(multisig_info)
2335  };
2336  typedef epee::misc_utils::struct_init<request_t> request;
2337 
2338  struct response_t
2339  {
2341 
2345  };
2346  typedef epee::misc_utils::struct_init<response_t> response;
2347  };
2348 
2350  {
2351  struct request_t
2352  {
2354  std::vector<std::string> multisig_info;
2355 
2357  KV_SERIALIZE(password)
2358  KV_SERIALIZE(multisig_info)
2360  };
2361  typedef epee::misc_utils::struct_init<request_t> request;
2362 
2363  struct response_t
2364  {
2367 
2370  KV_SERIALIZE(multisig_info)
2372  };
2373  typedef epee::misc_utils::struct_init<response_t> response;
2374  };
2375 
2377  {
2378  struct request_t
2379  {
2381 
2383  KV_SERIALIZE(tx_data_hex)
2385  };
2386  typedef epee::misc_utils::struct_init<request_t> request;
2387 
2388  struct response_t
2389  {
2391  std::list<std::string> tx_hash_list;
2392 
2394  KV_SERIALIZE(tx_data_hex)
2395  KV_SERIALIZE(tx_hash_list)
2397  };
2398  typedef epee::misc_utils::struct_init<response_t> response;
2399  };
2400 
2402  {
2403  struct request_t
2404  {
2406 
2408  KV_SERIALIZE(tx_data_hex)
2410  };
2411  typedef epee::misc_utils::struct_init<request_t> request;
2412 
2413  struct response_t
2414  {
2415  std::list<std::string> tx_hash_list;
2416 
2418  KV_SERIALIZE(tx_hash_list)
2420  };
2421  typedef epee::misc_utils::struct_init<response_t> response;
2422  };
2423 
2425  {
2426  struct request_t
2427  {
2430  };
2432 
2433  struct response_t
2434  {
2436 
2440  };
2441  typedef epee::misc_utils::struct_init<response_t> response;
2442  };
2443 
2445  {
2446  struct request_t
2447  {
2451 
2454  KV_SERIALIZE_OPT(any_net_type, false)
2455  KV_SERIALIZE_OPT(allow_openalias, false)
2457  };
2458  typedef epee::misc_utils::struct_init<request_t> request;
2459 
2460  struct response_t
2461  {
2462  bool valid;
2467 
2469  KV_SERIALIZE(valid)
2470  KV_SERIALIZE(integrated)
2471  KV_SERIALIZE(subaddress)
2472  KV_SERIALIZE(nettype)
2473  KV_SERIALIZE(openalias_address)
2475  };
2476  typedef epee::misc_utils::struct_init<response_t> response;
2477  };
2478 
2480  {
2481  struct request_t
2482  {
2484  bool trusted;
2485  std::string ssl_support; // disabled, enabled, autodetect
2489  std::vector<std::string> ssl_allowed_fingerprints;
2491 
2494  KV_SERIALIZE_OPT(trusted, false)
2495  KV_SERIALIZE_OPT(ssl_support, (std::string)"autodetect")
2496  KV_SERIALIZE(ssl_private_key_path)
2497  KV_SERIALIZE(ssl_certificate_path)
2498  KV_SERIALIZE(ssl_ca_file)
2499  KV_SERIALIZE(ssl_allowed_fingerprints)
2500  KV_SERIALIZE_OPT(ssl_allow_any_cert, false)
2502  };
2503  typedef epee::misc_utils::struct_init<request_t> request;
2504 
2505  struct response_t
2506  {
2509  };
2511  };
2512 
2514  {
2515  struct request_t
2516  {
2518 
2520  KV_SERIALIZE(level)
2522  };
2523  typedef epee::misc_utils::struct_init<request_t> request;
2524 
2525  struct response_t
2526  {
2529  };
2531  };
2532 
2534  {
2535  struct request_t
2536  {
2538 
2540  KV_SERIALIZE(categories)
2542  };
2543  typedef epee::misc_utils::struct_init<request_t> request;
2544 
2545  struct response_t
2546  {
2548 
2550  KV_SERIALIZE(categories)
2552  };
2553  typedef epee::misc_utils::struct_init<response_t> response;
2554  };
2555 
2556 }
2557 }
return true
uint64_t height
Definition: blockchain.cpp:91
uint8_t threshold
Definition: blockchain.cpp:92
#define CRYPTONOTE_MAX_BLOCK_NUMBER
std::string message("Message requiring signing")
const char * key
Definition: hmac_keccak.cpp:39
#define KV_SERIALIZE(varialble)
#define END_KV_SERIALIZE_MAP()
#define BEGIN_KV_SERIALIZE_MAP()
POD_CLASS signature
Definition: crypto.h:108
POD_CLASS key_image
Definition: crypto.h:102
std::shared_ptr< messages::Electroneum::ElectroneumGetTxKeyRequest > get_tx_key(const hw::device_cold::tx_key_data_t &tx_data)
Definition: protocol.cpp:1038
version
Supported socks variants.
Definition: socks.h:58
::std::string string
Definition: gtest-port.h:1097
Various Tools.
Definition: tools.cpp:31
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
CXA_THROW_INFO_T * info
Definition: stack_trace.cpp:91
#define false
Definition: stdbool.h:38
unsigned int uint32_t
Definition: stdint.h:126
unsigned __int64 uint64_t
Definition: stdint.h:136
signed char int8_t
Definition: stdint.h:121
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
std::string note
std::string payment_id
bool double_spend_seen
std::string type
std::string txid
uint64_t height
uint64_t unlock_time
bool nonexistent_utxo_seen
uint64_t timestamp
uint64_t amount
cryptonote::subaddress_index subaddr_index
std::string address
uint64_t fee
uint64_t confirmations
uint64_t suggested_confirmations_threshold
std::list< transfer_destination > destinations
std::vector< cryptonote::subaddress_index > subaddr_indices
const char * address
Definition: multisig.cpp:37
const char * spendkey
Definition: multisig.cpp:38