Electroneum
Loading...
Searching...
No Matches
core_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
37#include "crypto/hash.h"
38#include "rpc/rpc_handler.h"
39#include "common/varint.h"
40#include "common/perf_timer.h"
41
42namespace {
43 template<typename T>
44 std::string compress_integer_array(const std::vector<T> &v) {
45 std::string s;
46 s.resize(v.size() * (sizeof(T) * 8 / 7 + 1));
47 char *ptr = (char *) s.data();
48 for (const T &t: v)
49 tools::write_varint(ptr, t);
50 s.resize(ptr - s.data());
51 return s;
52 }
53
54 template<typename T>
55 std::vector<T> decompress_integer_array(const std::string &s) {
56 std::vector<T> v;
57 v.reserve(s.size());
58 int read = 0;
59 const std::string::const_iterator end = s.end();
60 for (std::string::const_iterator i = s.begin(); i != end; std::advance(i, read)) {
61 T t;
62 read = tools::read_varint(std::string::const_iterator(i), s.end(), t);
63 CHECK_AND_ASSERT_THROW_MES(read > 0 && read <= 256, "Error decompressing data");
64 v.push_back(t);
65 }
66 return v;
67 }
68}
69
70namespace cryptonote {
71 //-----------------------------------------------
72#define CORE_RPC_STATUS_OK "OK"
73#define CORE_RPC_STATUS_BUSY "BUSY"
74#define CORE_RPC_STATUS_NOT_MINING "NOT MINING"
75
76// When making *any* change here, bump minor
77// If the change is incompatible, then bump major and set minor to 0
78// This ensures CORE_RPC_VERSION always increases, that every change
79// has its own version, and that clients can just test major to see
80// whether they can talk to a given daemon without having to know in
81// advance which version they will stop working with
82// Don't go over 32767 for any of these
83#define CORE_RPC_VERSION_MAJOR 2
84#define CORE_RPC_VERSION_MINOR 6
85#define MAKE_CORE_RPC_VERSION(major, minor) (((major)<<16)|(minor))
86#define CORE_RPC_VERSION MAKE_CORE_RPC_VERSION(CORE_RPC_VERSION_MAJOR, CORE_RPC_VERSION_MINOR)
87
112
114
115 struct request_t {
116 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 */
118 bool prune;
126 };
127
128 typedef epee::misc_utils::struct_init<request_t> request;
129
131 std::vector<uint64_t> indices;
132
136 };
137
139 std::vector<tx_output_indices> indices;
140
144 };
145
163
164 typedef epee::misc_utils::struct_init<response_t> response;
165 };
166
168 struct request_t {
169 std::vector<uint64_t> heights;
173 };
174
175 typedef epee::misc_utils::struct_init<request_t> request;
176
177 struct response_t {
178 std::vector<block_complete_entry> blocks;
179 std::string status;
181
187 };
188
189 typedef epee::misc_utils::struct_init<response_t> response;
190 };
191
215
216 struct request_t {
217 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 */
223 };
224
225 typedef epee::misc_utils::struct_init<request_t> request;
226
242
243 typedef epee::misc_utils::struct_init<response_t> response;
244 };
245
246 //-----------------------------------------------
248 struct request_t {
249 std::vector<std::string> amounts;
251
256 };
257
258 typedef epee::misc_utils::struct_init<request_t> request;
259
260
261 struct output {
262 std::string public_key;
264 std::string rct; // 64+64+64 characters long (<rct commit> + <encrypted mask> + <rct amount>)
265
271 };
272
282
283 struct response_t {
284 std::vector<amount_out> amount_outs;
285 std::string Error;
290 };
291
292 typedef epee::misc_utils::struct_init<response_t> response;
293 };
294 //-----------------------------------------------
296 struct request_t {
297 std::string address;
298 std::string view_key;
299 std::string tx;
300
306 };
307
308 typedef epee::misc_utils::struct_init<request_t> request;
309
310
311 struct response_t {
312 std::string status;
313 std::string error;
314
319 };
320
321 typedef epee::misc_utils::struct_init<response_t> response;
322 };
323 //-----------------------------------------------
338
339 typedef epee::misc_utils::struct_init<request_t> request;
340
375
376 struct response_t {
377 // older compatibility stuff
378 std::vector<std::string> txs_as_hex; //transactions blobs as hex (old compat)
379 std::vector<std::string> txs_as_json; //transactions decoded as json (old compat)
380
381 // in both old and new
382 std::vector<std::string> missed_tx; //not found transactions
383
384 // new style
385 std::vector<entry> txs;
386 std::string status;
388
397 };
398
399 typedef epee::misc_utils::struct_init<response_t> response;
400 };
401
402 //-----------------------------------------------
408 //-----------------------------------------------
411
412 struct request_t {
413 std::vector<std::string> key_images;
414
418 };
419
420 typedef epee::misc_utils::struct_init<request_t> request;
421
422
434
435 typedef epee::misc_utils::struct_init<response_t> response;
436 };
437
438 //-----------------------------------------------
439
451
454
455 struct request_t { // pairs of tx hash and relative out index which identify chainstate UTXOs uniquely
456 std::vector<public_output> public_outputs;
457
461 };
462
463 typedef epee::misc_utils::struct_init<request_t> request;
464
465
477
478 typedef epee::misc_utils::struct_init<response_t> response;
479 };
480
481 //-----------------------------------------------
489
490 typedef epee::misc_utils::struct_init<request_t> request;
491
492
503
504 typedef epee::misc_utils::struct_init<response_t> response;
505 };
506
507 //-----------------------------------------------
517
561 //-----------------------------------------------
563 struct request_t {
564 std::vector<get_outputs_out> outputs;
566
571 };
572
573 typedef epee::misc_utils::struct_init<request_t> request;
574
590
591 struct response_t {
592 std::vector<outkey> outs;
593 std::string status;
595
601 };
602
603 typedef epee::misc_utils::struct_init<response_t> response;
604 };
605 //-----------------------------------------------
656 //-----------------------------------------------
684 //-----------------------------------------------
691
693
694 struct response_t {
695 std::string status;
699 std::string wide_difficulty;
713 std::string nettype;
714 std::string top_block_hash;
731 std::string version;
732
734 std::string daemon_version;
737
776
782 };
783
784 typedef epee::misc_utils::struct_init<response_t> response;
785 };
786
787
788 //-----------------------------------------------
819
820 //-----------------------------------------------
827
829
830
831 struct response_t {
832 std::string status;
833
837 };
838
839 typedef epee::misc_utils::struct_init<response_t> response;
840 };
841
842 //-----------------------------------------------
893
894 //-----------------------------------------------
901
903
904
905 struct response_t {
906 std::string status;
907
911 };
912
913 typedef epee::misc_utils::struct_init<response_t> response;
914 };
915
916 //
918 typedef std::list<std::string> request;
919
929
930 typedef epee::misc_utils::struct_init<response_t> response;
931 };
932
934 typedef std::vector<uint64_t> request;
935
936 typedef std::string response;
937 };
938
939
985
987 typedef std::vector<std::string> request;
988
989 struct response_t {
990 std::string status;
991
995 };
996
997 typedef epee::misc_utils::struct_init<response_t> response;
998 };
999
1031
1081
1108
1136
1164
1177
1178 typedef epee::misc_utils::struct_init<request_t> request;
1179
1199
1200 typedef epee::misc_utils::struct_init<response_t> response;
1201 };
1202
1232
1238
1240
1241 struct response_t {
1242 std::string status;
1243 std::vector<peer> white_list;
1244 std::vector<peer> gray_list;
1245
1251 };
1252
1253 typedef epee::misc_utils::struct_init<response_t> response;
1254 };
1255
1264
1265 typedef epee::misc_utils::struct_init<request_t> request;
1266
1273
1274 typedef epee::misc_utils::struct_init<response_t> response;
1275 };
1276
1285
1286 typedef epee::misc_utils::struct_init<request_t> request;
1287
1294
1295 typedef epee::misc_utils::struct_init<response_t> response;
1296 };
1297
1299 struct request_t {
1300 std::string categories;
1301
1305 };
1306
1307 typedef epee::misc_utils::struct_init<request_t> request;
1308
1309 struct response_t {
1310 std::string status;
1311 std::string categories;
1312
1317 };
1318
1319 typedef epee::misc_utils::struct_init<response_t> response;
1320 };
1321
1361
1363 std::string id_hash;
1364 std::vector<std::string> txs_hashes;
1365
1370 };
1371
1377
1379
1380 struct response_t {
1381 std::string status;
1382 std::vector<tx_info> transactions;
1383 std::vector<spent_key_image_info> spent_key_images;
1385
1392 };
1393
1394 typedef epee::misc_utils::struct_init<response_t> response;
1395 };
1396
1419
1425
1427
1428 struct response_t {
1429 std::string status;
1430 std::vector<std::string> tx_hashes;
1432
1438 };
1439
1440 typedef epee::misc_utils::struct_init<response_t> response;
1441 };
1442
1448
1471
1481
1519
1542
1550
1551 typedef epee::misc_utils::struct_init<request_t> request;
1552
1562
1563 typedef epee::misc_utils::struct_init<response_t> response;
1564 };
1565
1598
1631
1637
1639
1640 struct response_t {
1641 std::string status;
1642 std::list<connection_info> connections;
1643
1648 };
1649
1650 typedef epee::misc_utils::struct_init<response_t> response;
1651 };
1652
1665
1666 typedef epee::misc_utils::struct_init<request_t> request;
1667
1668 struct response_t {
1669 std::string status;
1670 std::vector<block_header_response> headers;
1672
1678 };
1679
1680 typedef epee::misc_utils::struct_init<response_t> response;
1681 };
1682
1688
1690
1691 struct response_t {
1692 std::string status;
1693
1697 };
1698
1699 typedef epee::misc_utils::struct_init<response_t> response;
1700 };
1701
1707
1709
1710 struct response_t {
1711 std::string status;
1712
1716 };
1717
1718 typedef epee::misc_utils::struct_init<response_t> response;
1719 };
1720
1745
1747 struct request_t {
1748 int64_t limit_down; // all limits (for get and set) are kB/s
1750
1755 };
1756
1757 typedef epee::misc_utils::struct_init<request_t> request;
1758
1770
1771 typedef epee::misc_utils::struct_init<response_t> response;
1772 };
1773
1781
1782 typedef epee::misc_utils::struct_init<request_t> request;
1783
1784 struct response_t {
1785 std::string status;
1786
1790 };
1791
1792 typedef epee::misc_utils::struct_init<response_t> response;
1793 };
1794
1802
1803 typedef epee::misc_utils::struct_init<request_t> request;
1804
1805 struct response_t {
1806 std::string status;
1807
1811 };
1812
1813 typedef epee::misc_utils::struct_init<response_t> response;
1814 };
1815
1821
1823
1824 struct response_t {
1825 std::string status;
1826
1830 };
1831
1832 typedef epee::misc_utils::struct_init<response_t> response;
1833 };
1834
1840
1842
1843 struct response_t {
1844 std::string status;
1845
1849 };
1850
1851 typedef epee::misc_utils::struct_init<response_t> response;
1852 };
1853
1893
1906
1911
1913
1914 struct response_t {
1915 std::string status;
1916 std::vector<ban> bans;
1917
1922 };
1923
1924 typedef epee::misc_utils::struct_init<response_t> response;
1925 };
1926
1941
1942 struct request_t {
1943 std::vector<ban> bans;
1944
1948 };
1949
1950 typedef epee::misc_utils::struct_init<request_t> request;
1951
1952 struct response_t {
1953 std::string status;
1954
1958 };
1959
1960 typedef epee::misc_utils::struct_init<response_t> response;
1961 };
1962
1964 struct request_t {
1965 std::vector<std::string> txids;
1966
1970 };
1971
1972 typedef epee::misc_utils::struct_init<request_t> request;
1973
1974 struct response_t {
1975 std::string status;
1976
1980 };
1981
1982 typedef epee::misc_utils::struct_init<response_t> response;
1983 };
1984
2038
2061
2089
2117
2160
2171
2172 typedef epee::misc_utils::struct_init<request_t> request;
2173
2174 struct response_t {
2175 std::string status;
2177 std::string version;
2178 std::string user_uri;
2179 std::string auto_uri;
2180 std::string hash;
2181 std::string path;
2182
2192 };
2193
2194 typedef epee::misc_utils::struct_init<response_t> response;
2195 };
2196
2198 struct request_t {
2199 std::vector<std::string> txids;
2200
2204 };
2205
2206 typedef epee::misc_utils::struct_init<request_t> request;
2207
2208 struct response_t {
2209 std::string status;
2210
2214 };
2215
2216 typedef epee::misc_utils::struct_init<response_t> response;
2217 };
2218
2277
2296
2297 typedef epee::misc_utils::struct_init<request_t> request;
2298
2302 std::string compressed_data;
2305
2308 KV_SERIALIZE_N(data.start_height, "start_height")
2311 if (this_ref.binary) {
2312 if (is_store) {
2313 if (this_ref.compress) {
2314 const_cast<std::string &>(this_ref.compressed_data) = compress_integer_array(
2315 this_ref.data.distribution);
2317 } else
2318 KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(data.distribution, "distribution")
2319 } else {
2320 if (this_ref.compress) {
2322 const_cast<std::vector<uint64_t> &>(this_ref.data.distribution) = decompress_integer_array<uint64_t>(
2323 this_ref.compressed_data);
2324 } else
2325 KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(data.distribution, "distribution")
2326 }
2327 } else
2328 KV_SERIALIZE_N(data.distribution, "distribution")
2329 KV_SERIALIZE_N(data.base, "base")
2331 };
2332
2333 struct response_t {
2334 std::string status;
2335 std::vector<distribution> distributions;
2337
2343 };
2344
2345 typedef epee::misc_utils::struct_init<response_t> response;
2346 };
2347
2356
2357 typedef epee::misc_utils::struct_init<request_t> request;
2358
2368
2369 typedef epee::misc_utils::struct_init<response_t> response;
2370 };
2371
2395
2404
2405 typedef epee::misc_utils::struct_init<request_t> request;
2406
2418
2419 typedef epee::misc_utils::struct_init<response_t> response;
2420 };
2421
2430
2431 typedef epee::misc_utils::struct_init<request_t> request;
2432
2433 struct response_t {
2434 std::string status;
2435
2439 };
2440
2441 typedef epee::misc_utils::struct_init<response_t> response;
2442 };
2443
2466
2468 struct request_t {
2469 std::string privateKey;
2470 std::string message;
2471
2476 };
2477
2478 typedef epee::misc_utils::struct_init<request_t> request;
2479
2480 struct response_t {
2481 std::string signature;
2482 std::string status;
2483
2488 };
2489
2490 typedef epee::misc_utils::struct_init<response_t> response;
2491 };
2492
2494 struct request_t {
2495 std::string blob;
2496 int version = 0;
2497 std::vector<std::string> signatures;
2498 std::vector<std::string> pubkeys;
2499
2506 };
2507
2508 typedef epee::misc_utils::struct_init<request_t> request;
2509
2514
2516 };
2517
2518}
#define KV_SERIALIZE_VAL_POD_AS_BLOB(varialble)
#define KV_SERIALIZE(varialble)
#define KV_SERIALIZE_CONTAINER_POD_AS_BLOB_N(varialble, val_name)
#define KV_SERIALIZE_OPT(variable, default_value)
#define KV_SERIALIZE_CONTAINER_POD_AS_BLOB(varialble)
#define END_KV_SERIALIZE_MAP()
#define BEGIN_KV_SERIALIZE_MAP()
#define KV_SERIALIZE_N(varialble, val_name)
#define CHECK_AND_ASSERT_THROW_MES(expr, message)
POD_CLASS public_key
Definition crypto.h:79
POD_CLASS hash
Definition hash.h:50
Holds cryptonote related classes and helpers.
Definition ban.cpp:40
std::string blobdata
STL namespace.
std::enable_if< std::is_integral< T >::value &&std::is_unsigned< T >::value &&0<=bits &&bits<=std::numeric_limits< T >::digits, int >::type read_varint(InputIt &&first, InputIt &&last, T &write)
reads in the varint that is pointed to by InputIt into write
Definition varint.h:95
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
#define true
#define false
unsigned short uint16_t
Definition stdint.h:125
signed __int64 int64_t
Definition stdint.h:135
unsigned int uint32_t
Definition stdint.h:126
signed int int32_t
Definition stdint.h:123
unsigned char uint8_t
Definition stdint.h:124
unsigned __int64 uint64_t
Definition stdint.h:136
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< 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< 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< 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< request_t > request
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< 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< 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< request_t > request
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< response_t > response
epee::misc_utils::struct_init< response_t > response
entry(uint64_t amount, uint64_t total_instances, uint64_t unlocked_instances, uint64_t recent_instances)
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< 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< 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< 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< 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< 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< 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< 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< 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< 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< request_t > request
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< 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< request_t > request
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< 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< request_t > request
peer(uint64_t id, const std::string &host, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
peer(uint64_t id, uint32_t ip, uint16_t port, uint64_t last_seen, uint32_t pruning_seed, uint16_t rpc_port)
std::vector< std::uint64_t > distribution
Definition rpc_handler.h:46
uint64_t weight
uint64_t fee
uint64_t time_in_pool
provides the implementation of varint's
#define T(x)