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 
340  KV_SERIALIZE(tag);
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 
1140  KV_SERIALIZE_OPT(hard, false);
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 
1381  KV_SERIALIZE(txid);
1382  KV_SERIALIZE(payment_id);
1384  KV_SERIALIZE(timestamp);
1385  KV_SERIALIZE(amount);
1386  KV_SERIALIZE(fee);
1387  KV_SERIALIZE(note);
1388  KV_SERIALIZE(destinations);
1389  KV_SERIALIZE(type);
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;
1524 
1529  std::set<uint32_t> subaddr_indices;
1531 
1533  KV_SERIALIZE(in);
1534  KV_SERIALIZE(out);
1536  KV_SERIALIZE(failed);
1537  KV_SERIALIZE(pool);
1538  KV_SERIALIZE(migration);
1539  KV_SERIALIZE(sc_migration);
1540  KV_SERIALIZE(filter_by_height);
1541  KV_SERIALIZE(min_height);
1544  KV_SERIALIZE(subaddr_indices);
1547  };
1548  typedef epee::misc_utils::struct_init<request_t> request;
1549 
1550  struct response_t
1551  {
1552  std::list<transfer_entry> in;
1553  std::list<transfer_entry> out;
1554  std::list<transfer_entry> pending;
1555  std::list<transfer_entry> failed;
1556  std::list<transfer_entry> pool;
1557  std::list<transfer_entry> migration;
1558  std::list<transfer_entry> sc_migration;
1559 
1561  KV_SERIALIZE(in);
1562  KV_SERIALIZE(out);
1564  KV_SERIALIZE(failed);
1565  KV_SERIALIZE(pool);
1566  KV_SERIALIZE(migration);
1567  KV_SERIALIZE(sc_migration);
1569  };
1570  typedef epee::misc_utils::struct_init<response_t> response;
1571  };
1572 
1574  {
1575  struct request_t
1576  {
1579 
1581  KV_SERIALIZE(txid);
1584  };
1585  typedef epee::misc_utils::struct_init<request_t> request;
1586 
1587  struct response_t
1588  {
1590  std::list<transfer_entry> transfers;
1591 
1593  KV_SERIALIZE(transfer);
1594  KV_SERIALIZE(transfers);
1596  };
1597  typedef epee::misc_utils::struct_init<response_t> response;
1598  };
1599 
1601  {
1602  struct request_t
1603  {
1605 
1607  KV_SERIALIZE(data);
1609  };
1610  typedef epee::misc_utils::struct_init<request_t> request;
1611 
1612  struct response_t
1613  {
1615 
1619  };
1620  typedef epee::misc_utils::struct_init<response_t> response;
1621  };
1622 
1624  {
1625  struct request_t
1626  {
1630 
1632  KV_SERIALIZE(data);
1636  };
1637  typedef epee::misc_utils::struct_init<request_t> request;
1638 
1639  struct response_t
1640  {
1641  bool good;
1642 
1644  KV_SERIALIZE(good);
1646  };
1647  typedef epee::misc_utils::struct_init<response_t> response;
1648  };
1649 
1651  {
1652  struct request_t
1653  {
1654  bool all;
1655 
1657  KV_SERIALIZE(all)
1659  };
1660  typedef epee::misc_utils::struct_init<request_t> request;
1661 
1662  struct response_t
1663  {
1665 
1667  KV_SERIALIZE(outputs_data_hex);
1669  };
1670  typedef epee::misc_utils::struct_init<response_t> response;
1671  };
1672 
1674  {
1675  struct request_t
1676  {
1678 
1680  KV_SERIALIZE(outputs_data_hex);
1682  };
1683  typedef epee::misc_utils::struct_init<request_t> request;
1684 
1685  struct response_t
1686  {
1688 
1690  KV_SERIALIZE(num_imported);
1692  };
1693  typedef epee::misc_utils::struct_init<response_t> response;
1694  };
1695 
1697  {
1698  struct request_t
1699  {
1700  bool all;
1701 
1703  KV_SERIALIZE_OPT(all, false);
1705  };
1706  typedef epee::misc_utils::struct_init<request_t> request;
1707 
1709  {
1712 
1717  };
1718 
1719  struct response_t
1720  {
1722  std::vector<signed_key_image> signed_key_images;
1723 
1725  KV_SERIALIZE(offset);
1726  KV_SERIALIZE(signed_key_images);
1728  };
1729  typedef epee::misc_utils::struct_init<response_t> response;
1730  };
1731 
1733  {
1735  {
1738 
1743  };
1744 
1745  struct request_t
1746  {
1748  std::vector<signed_key_image> signed_key_images;
1749 
1751  KV_SERIALIZE_OPT(offset, (uint32_t)0);
1752  KV_SERIALIZE(signed_key_images);
1754  };
1755  typedef epee::misc_utils::struct_init<request_t> request;
1756 
1757  struct response_t
1758  {
1762 
1765  KV_SERIALIZE(spent)
1766  KV_SERIALIZE(unspent)
1768  };
1769  typedef epee::misc_utils::struct_init<response_t> response;
1770  };
1771 
1772  struct uri_spec
1773  {
1779 
1782  KV_SERIALIZE(payment_id);
1783  KV_SERIALIZE(amount);
1784  KV_SERIALIZE(tx_description);
1785  KV_SERIALIZE(recipient_name);
1787  };
1788 
1790  {
1791  struct request_t: public uri_spec
1792  {
1793  };
1795 
1796  struct response_t
1797  {
1799 
1801  KV_SERIALIZE(uri)
1803  };
1804  typedef epee::misc_utils::struct_init<response_t> response;
1805  };
1806 
1808  {
1809  struct request_t
1810  {
1812 
1814  KV_SERIALIZE(uri)
1816  };
1817  typedef epee::misc_utils::struct_init<request_t> request;
1818 
1819  struct response_t
1820  {
1822  std::vector<std::string> unknown_parameters;
1823 
1825  KV_SERIALIZE(uri);
1826  KV_SERIALIZE(unknown_parameters);
1828  };
1829  typedef epee::misc_utils::struct_init<response_t> response;
1830  };
1831 
1833  {
1834  struct request_t
1835  {
1839 
1842  KV_SERIALIZE(payment_id)
1843  KV_SERIALIZE(description)
1845  };
1846  typedef epee::misc_utils::struct_init<request_t> request;
1847 
1848  struct response_t
1849  {
1851 
1853  KV_SERIALIZE(index);
1855  };
1856  typedef epee::misc_utils::struct_init<response_t> response;
1857  };
1858 
1860  {
1861  struct request_t
1862  {
1863  std::list<uint64_t> entries;
1864 
1866  KV_SERIALIZE(entries)
1868  };
1869  typedef epee::misc_utils::struct_init<request_t> request;
1870 
1871  struct entry
1872  {
1877 
1879  KV_SERIALIZE(index)
1881  KV_SERIALIZE(payment_id)
1882  KV_SERIALIZE(description)
1884  };
1885 
1886  struct response_t
1887  {
1888  std::vector<entry> entries;
1889 
1891  KV_SERIALIZE(entries)
1893  };
1894  typedef epee::misc_utils::struct_init<response_t> response;
1895  };
1896 
1898  {
1899  struct request_t
1900  {
1902 
1904  KV_SERIALIZE(index);
1906  };
1907  typedef epee::misc_utils::struct_init<request_t> request;
1908 
1909  struct response_t
1910  {
1913  };
1915  };
1916 
1918  {
1919  struct request_t
1920  {
1923  };
1925 
1926  struct response_t
1927  {
1930  };
1932  };
1933 
1935  {
1936  struct request_t
1937  {
1939 
1941  KV_SERIALIZE_OPT(start_height, (uint64_t) 0)
1943  };
1944  typedef epee::misc_utils::struct_init<request_t> request;
1945 
1946  struct response_t
1947  {
1950 
1952  KV_SERIALIZE(blocks_fetched);
1953  KV_SERIALIZE(received_etn);
1955  };
1956  typedef epee::misc_utils::struct_init<response_t> response;
1957  };
1958 
1960  {
1961  struct request_t
1962  {
1963  bool enable;
1964  uint32_t period; // seconds
1965 
1967  KV_SERIALIZE_OPT(enable, true)
1968  KV_SERIALIZE_OPT(period, (uint32_t)0)
1970  };
1971  typedef epee::misc_utils::struct_init<request_t> request;
1972 
1973  struct response_t
1974  {
1977  };
1979  };
1980 
1982  {
1983  struct request_t
1984  {
1988 
1990  KV_SERIALIZE(threads_count)
1991  KV_SERIALIZE(do_background_mining)
1992  KV_SERIALIZE(ignore_battery)
1994  };
1995  typedef epee::misc_utils::struct_init<request_t> request;
1996 
1997  struct response_t
1998  {
2001  };
2003  };
2004 
2006  {
2007  struct request_t
2008  {
2011  };
2013 
2014  struct response_t
2015  {
2018  };
2020  };
2021 
2023  {
2024  struct request_t
2025  {
2028  };
2030 
2031  struct response_t
2032  {
2033  std::vector<std::string> languages;
2034  std::vector<std::string> languages_local;
2035 
2037  KV_SERIALIZE(languages)
2038  KV_SERIALIZE(languages_local)
2040  };
2041  typedef epee::misc_utils::struct_init<response_t> response;
2042  };
2043 
2045  {
2046  struct request_t
2047  {
2051 
2053  KV_SERIALIZE(filename)
2054  KV_SERIALIZE(password)
2055  KV_SERIALIZE(language)
2057  };
2058  typedef epee::misc_utils::struct_init<request_t> request;
2059 
2060  struct response_t
2061  {
2064  };
2066  };
2067 
2069  {
2070  struct request_t
2071  {
2075 
2077  KV_SERIALIZE(filename)
2078  KV_SERIALIZE(password)
2079  KV_SERIALIZE_OPT(autosave_current, true)
2081  };
2082  typedef epee::misc_utils::struct_init<request_t> request;
2083 
2084  struct response_t
2085  {
2088  };
2090  };
2091 
2093  {
2094  struct request_t
2095  {
2097 
2099  KV_SERIALIZE_OPT(autosave_current, true)
2101  };
2102  typedef epee::misc_utils::struct_init<request_t> request;
2103 
2104  struct response_t
2105  {
2108  };
2110  };
2111 
2113  {
2114  struct request_t
2115  {
2118 
2120  KV_SERIALIZE(old_password)
2121  KV_SERIALIZE(new_password)
2123  };
2124  typedef epee::misc_utils::struct_init<request_t> request;
2125 
2126  struct response_t
2127  {
2130  };
2132  };
2133 
2135  {
2136  struct request
2137  {
2145 
2147  KV_SERIALIZE_OPT(restore_height, (uint64_t)0)
2148  KV_SERIALIZE(filename)
2151  KV_SERIALIZE(viewkey)
2152  KV_SERIALIZE(password)
2153  KV_SERIALIZE_OPT(autosave_current, true)
2155  };
2156 
2157  struct response
2158  {
2161 
2166  };
2167  };
2168 
2170  {
2171  struct request_t
2172  {
2180 
2182  KV_SERIALIZE_OPT(restore_height, (uint64_t)0)
2183  KV_SERIALIZE(filename)
2184  KV_SERIALIZE(seed)
2185  KV_SERIALIZE(seed_offset)
2186  KV_SERIALIZE(password)
2187  KV_SERIALIZE(language)
2188  KV_SERIALIZE_OPT(autosave_current, true)
2190  };
2191  typedef epee::misc_utils::struct_init<request_t> request;
2192 
2193  struct response_t
2194  {
2199 
2202  KV_SERIALIZE(seed)
2204  KV_SERIALIZE(was_deprecated)
2206  };
2207  typedef epee::misc_utils::struct_init<response_t> response;
2208  };
2209 
2211  {
2212  struct request_t
2213  {
2216  };
2218 
2219  struct response_t
2220  {
2221  bool multisig;
2222  bool ready;
2225 
2227  KV_SERIALIZE(multisig)
2228  KV_SERIALIZE(ready)
2230  KV_SERIALIZE(total)
2232  };
2233  typedef epee::misc_utils::struct_init<response_t> response;
2234  };
2235 
2237  {
2238  struct request_t
2239  {
2242  };
2244 
2245  struct response_t
2246  {
2248 
2250  KV_SERIALIZE(multisig_info)
2252  };
2253  typedef epee::misc_utils::struct_init<response_t> response;
2254  };
2255 
2257  {
2258  struct request_t
2259  {
2260  std::vector<std::string> multisig_info;
2263 
2265  KV_SERIALIZE(multisig_info)
2267  KV_SERIALIZE(password)
2269  };
2270  typedef epee::misc_utils::struct_init<request_t> request;
2271 
2272  struct response_t
2273  {
2276 
2279  KV_SERIALIZE(multisig_info)
2281  };
2282  typedef epee::misc_utils::struct_init<response_t> response;
2283  };
2284 
2286  {
2287  struct request_t
2288  {
2291  };
2293 
2294  struct response_t
2295  {
2297 
2301  };
2302  typedef epee::misc_utils::struct_init<response_t> response;
2303  };
2304 
2306  {
2307  struct request_t
2308  {
2309  std::vector<std::string> info;
2310 
2314  };
2315  typedef epee::misc_utils::struct_init<request_t> request;
2316 
2317  struct response_t
2318  {
2320 
2322  KV_SERIALIZE(n_outputs)
2324  };
2325  typedef epee::misc_utils::struct_init<response_t> response;
2326  };
2327 
2329  {
2330  struct request_t
2331  {
2333  std::vector<std::string> multisig_info;
2334 
2336  KV_SERIALIZE(password)
2337  KV_SERIALIZE(multisig_info)
2339  };
2340  typedef epee::misc_utils::struct_init<request_t> request;
2341 
2342  struct response_t
2343  {
2345 
2349  };
2350  typedef epee::misc_utils::struct_init<response_t> response;
2351  };
2352 
2354  {
2355  struct request_t
2356  {
2358  std::vector<std::string> multisig_info;
2359 
2361  KV_SERIALIZE(password)
2362  KV_SERIALIZE(multisig_info)
2364  };
2365  typedef epee::misc_utils::struct_init<request_t> request;
2366 
2367  struct response_t
2368  {
2371 
2374  KV_SERIALIZE(multisig_info)
2376  };
2377  typedef epee::misc_utils::struct_init<response_t> response;
2378  };
2379 
2381  {
2382  struct request_t
2383  {
2385 
2387  KV_SERIALIZE(tx_data_hex)
2389  };
2390  typedef epee::misc_utils::struct_init<request_t> request;
2391 
2392  struct response_t
2393  {
2395  std::list<std::string> tx_hash_list;
2396 
2398  KV_SERIALIZE(tx_data_hex)
2399  KV_SERIALIZE(tx_hash_list)
2401  };
2402  typedef epee::misc_utils::struct_init<response_t> response;
2403  };
2404 
2406  {
2407  struct request_t
2408  {
2410 
2412  KV_SERIALIZE(tx_data_hex)
2414  };
2415  typedef epee::misc_utils::struct_init<request_t> request;
2416 
2417  struct response_t
2418  {
2419  std::list<std::string> tx_hash_list;
2420 
2422  KV_SERIALIZE(tx_hash_list)
2424  };
2425  typedef epee::misc_utils::struct_init<response_t> response;
2426  };
2427 
2429  {
2430  struct request_t
2431  {
2434  };
2436 
2437  struct response_t
2438  {
2440 
2444  };
2445  typedef epee::misc_utils::struct_init<response_t> response;
2446  };
2447 
2449  {
2450  struct request_t
2451  {
2455 
2458  KV_SERIALIZE_OPT(any_net_type, false)
2459  KV_SERIALIZE_OPT(allow_openalias, false)
2461  };
2462  typedef epee::misc_utils::struct_init<request_t> request;
2463 
2464  struct response_t
2465  {
2466  bool valid;
2471 
2473  KV_SERIALIZE(valid)
2474  KV_SERIALIZE(integrated)
2475  KV_SERIALIZE(subaddress)
2476  KV_SERIALIZE(nettype)
2477  KV_SERIALIZE(openalias_address)
2479  };
2480  typedef epee::misc_utils::struct_init<response_t> response;
2481  };
2482 
2484  {
2485  struct request_t
2486  {
2488  bool trusted;
2489  std::string ssl_support; // disabled, enabled, autodetect
2493  std::vector<std::string> ssl_allowed_fingerprints;
2495 
2498  KV_SERIALIZE_OPT(trusted, false)
2499  KV_SERIALIZE_OPT(ssl_support, (std::string)"autodetect")
2500  KV_SERIALIZE(ssl_private_key_path)
2501  KV_SERIALIZE(ssl_certificate_path)
2502  KV_SERIALIZE(ssl_ca_file)
2503  KV_SERIALIZE(ssl_allowed_fingerprints)
2504  KV_SERIALIZE_OPT(ssl_allow_any_cert, false)
2506  };
2507  typedef epee::misc_utils::struct_init<request_t> request;
2508 
2509  struct response_t
2510  {
2513  };
2515  };
2516 
2518  {
2519  struct request_t
2520  {
2522 
2524  KV_SERIALIZE(level)
2526  };
2527  typedef epee::misc_utils::struct_init<request_t> request;
2528 
2529  struct response_t
2530  {
2533  };
2535  };
2536 
2538  {
2539  struct request_t
2540  {
2542 
2544  KV_SERIALIZE(categories)
2546  };
2547  typedef epee::misc_utils::struct_init<request_t> request;
2548 
2549  struct response_t
2550  {
2552 
2554  KV_SERIALIZE(categories)
2556  };
2557  typedef epee::misc_utils::struct_init<response_t> response;
2558  };
2559 
2560 }
2561 }
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
std::list< transfer_destination > destinations
uint64_t unlock_time
uint64_t confirmations
epee::misc_utils::struct_init< response_t > response
uint64_t fee
::std::string string
Definition: gtest-port.h:1097
#define CRYPTONOTE_MAX_BLOCK_NUMBER
epee::misc_utils::struct_init< request_t > request
uint64_t timestamp
uint64_t height
Definition: blockchain.cpp:91
std::vector< cryptonote::subaddress_index > subaddr_indices
epee::misc_utils::struct_init< response_t > response
bool double_spend_seen
const char * key
Definition: hmac_keccak.cpp:39
epee::misc_utils::struct_init< response_t > response
uint64_t height
STL namespace.
epee::misc_utils::struct_init< response_t > response
cryptonote::subaddress_index subaddr_index
#define KV_SERIALIZE(varialble)
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
std::shared_ptr< messages::Electroneum::ElectroneumGetTxKeyRequest > get_tx_key(const hw::device_cold::tx_key_data_t &tx_data)
Definition: protocol.cpp:1038
epee::misc_utils::struct_init< response_t > response
std::string note
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
std::string txid
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
return true
std::string address
unsigned int uint32_t
Definition: stdint.h:126
uint64_t suggested_confirmations_threshold
Various Tools.
Definition: tools.cpp:31
epee::misc_utils::struct_init< request_t > request
unsigned __int64 uint64_t
Definition: stdint.h:136
epee::misc_utils::struct_init< response_t > response
#define false
Definition: stdbool.h:38
signed char int8_t
Definition: stdint.h:121
epee::misc_utils::struct_init< response_t > response
version
Supported socks variants.
Definition: socks.h:57
std::string message("Message requiring signing")
epee::misc_utils::struct_init< response_t > response
CXA_THROW_INFO_T * info
Definition: stack_trace.cpp:91
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
POD_CLASS signature
Definition: crypto.h:108
uint64_t amount
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< request_t > request
POD_CLASS key_image
Definition: crypto.h:102
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
bool nonexistent_utxo_seen
epee::misc_utils::struct_init< request_t > request
const char * address
Definition: multisig.cpp:37
const char * spendkey
Definition: multisig.cpp:38
#define END_KV_SERIALIZE_MAP()
std::string type
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< request_t > request
epee::misc_utils::struct_init< response_t > response
#define BEGIN_KV_SERIALIZE_MAP()
std::string payment_id
epee::misc_utils::struct_init< response_t > response
epee::misc_utils::struct_init< response_t > response
uint8_t threshold
Definition: blockchain.cpp:92