From 6a9dda2ee7fc1977d99a06cc93e3bfb202e45415 Mon Sep 17 00:00:00 2001 From: bthomee Date: Mon, 15 Dec 2025 10:43:10 -0800 Subject: [PATCH] deploy: 41c1be2baca43ee2b7a6f85fac3ee329a25ae2cc --- AMMInfo_8cpp_source.html | 4 +- AccountChannels_8cpp_source.html | 28 +- AccountCurrenciesHandler_8cpp_source.html | 12 +- AccountInfo_8cpp_source.html | 14 +- AccountLines_8cpp_source.html | 30 +- AccountLines__test_8cpp_source.html | 6 +- AccountObjects_8cpp_source.html | 18 +- AccountOffers_8cpp_source.html | 20 +- AccountTx_8cpp_source.html | 10 +- AccountTx__test_8cpp_source.html | 4 +- AmendmentTable_8cpp_source.html | 2 +- ApiVersion_8h_source.html | 21 +- Application_8cpp_source.html | 2 +- BookOffers_8cpp_source.html | 14 +- Book__test_8cpp_source.html | 2 +- CanDelete_8cpp_source.html | 2 +- Connect_8cpp_source.html | 8 +- Consensus_8h_source.html | 2 +- DepositAuthorized_8cpp_source.html | 28 +- DisputedTx_8h_source.html | 2 +- DoManifest_8cpp_source.html | 6 +- Env_8cpp_source.html | 10 +- ErrorCodes_8cpp_source.html | 145 +- ErrorCodes_8h_source.html | 326 +- Feature1_8cpp_source.html | 10 +- Fee1_8cpp_source.html | 4 +- Freeze__test_8cpp_source.html | 2 +- GRPCHandlers_8h_source.html | 2 +- GRPCServer_8cpp_source.html | 4 +- GatewayBalances_8cpp_source.html | 14 +- GetAggregatePrice_8cpp_source.html | 24 +- GetCounts_8h_source.html | 14 +- InnerObjectFormats__test_8cpp_source.html | 2 +- JSONRPC__test_8cpp_source.html | 2 +- KeyGeneration__test_8cpp_source.html | 2 +- LedgerData_8cpp_source.html | 8 +- LedgerEntryHelpers_8h_source.html | 4 +- LedgerEntry_8cpp_source.html | 4 +- LedgerEntry__test_8cpp_source.html | 4 +- LedgerHandler_8cpp_source.html | 520 +-- LedgerHandler_8h_source.html | 177 +- LedgerHistory_8cpp_source.html | 2 +- LedgerRPC__test_8cpp_source.html | 2 +- LedgerRequest_8cpp_source.html | 2 +- LedgerRequest__test_8cpp_source.html | 2 +- LedgerToJson_8cpp_source.html | 662 +-- LedgerToJson_8h_source.html | 129 +- Ledger_8cpp_source.html | 2 +- LogLevel_8cpp_source.html | 6 +- Manifest__test_8cpp_source.html | 2 +- NFTOffers_8cpp_source.html | 16 +- NetworkOPs_8cpp_source.html | 14 +- NoRippleCheck_8cpp_source.html | 12 +- Node_8cpp_source.html | 2 +- Object_8cpp_source.html | 416 -- Object_8h_source.html | 450 -- Object__test_8cpp_source.html | 384 -- Offer__test_8cpp_source.html | 2 +- OwnerInfo_8cpp_source.html | 8 +- OwnerInfo__test_8cpp_source.html | 2 +- PathFind_8cpp_source.html | 14 +- PathRequest_8cpp_source.html | 42 +- PathRequests_8cpp_source.html | 4 +- PayChanClaim_8cpp_source.html | 22 +- PayChan__test_8cpp_source.html | 2 +- PerfLog__test_8cpp_source.html | 2 +- RCLCxLedger_8h_source.html | 2 +- RPCCall_8cpp_source.html | 74 +- RPCCall__test_8cpp_source.html | 2 +- RPCErr_8cpp_source.html | 9 +- RPCErr_8h_source.html | 5 +- RPCHandler_8cpp_source.html | 6 +- RPCHelpers_8cpp_source.html | 18 +- RPCLedgerHelpers_8cpp_source.html | 18 +- Random_8cpp_source.html | 4 +- Reservations_8cpp_source.html | 10 +- RipplePathFind_8cpp_source.html | 10 +- SHAMapStore__test_8cpp_source.html | 2 +- STParsedJSON_8cpp_source.html | 2 +- STParsedJSON__test_8cpp_source.html | 2 +- STValidation_8h_source.html | 2 +- ServerDefinitions_8cpp_source.html | 2 +- ServerHandler_8cpp_source.html | 8 +- SetAuth__test_8cpp_source.html | 2 +- SignFor_8cpp_source.html | 2 +- SignHandler_8cpp_source.html | 2 +- Simulate_8cpp_source.html | 20 +- Status_8cpp_source.html | 10 +- Status_8h_source.html | 107 +- Status__test_8cpp_source.html | 2 +- Submit_8cpp_source.html | 6 +- Subscribe_8cpp_source.html | 52 +- TransactionEntry__test_8cpp_source.html | 2 +- TransactionSign_8cpp_source.html | 50 +- Transaction__test_8cpp_source.html | 2 +- TrustedPublisherServer_8h_source.html | 2 +- TxHistory_8cpp_source.html | 8 +- TxQ__test_8cpp_source.html | 2 +- Tx_8cpp_source.html | 16 +- Unsubscribe_8cpp_source.html | 42 +- ValidationCreate_8cpp_source.html | 4 +- Validation_8h_source.html | 2 +- ValidatorInfo_8cpp_source.html | 2 +- ValidatorList__test_8cpp_source.html | 2 +- VaultInfo_8cpp_source.html | 10 +- Version_8h_source.html | 72 +- WalletPropose_8cpp_source.html | 8 +- annotated.html | 57 +- attester_8cpp_source.html | 2 +- batch_8cpp_source.html | 2 +- classJson_1_1Array-members.html | 103 - classJson_1_1Array.html | 439 -- classJson_1_1Array__coll__graph.map | 24 - classJson_1_1Array__coll__graph.md5 | 1 - classJson_1_1Array__coll__graph.png | Bin 37852 -> 0 bytes classJson_1_1Array__inherit__graph.map | 5 - classJson_1_1Array__inherit__graph.md5 | 1 - classJson_1_1Array__inherit__graph.png | Bin 3735 -> 0 bytes classJson_1_1Collection-members.html | 97 - classJson_1_1Collection.html | 440 -- classJson_1_1Collection__coll__graph.map | 22 - classJson_1_1Collection__coll__graph.md5 | 1 - classJson_1_1Collection__coll__graph.png | Bin 35962 -> 0 bytes classJson_1_1Collection__inherit__graph.map | 9 - classJson_1_1Collection__inherit__graph.md5 | 1 - classJson_1_1Collection__inherit__graph.png | Bin 9418 -> 0 bytes classJson_1_1JsonObject__test-members.html | 139 - classJson_1_1JsonObject__test.html | 1819 --------- ...sJson_1_1JsonObject__test__coll__graph.map | 78 - ...sJson_1_1JsonObject__test__coll__graph.md5 | 1 - ...sJson_1_1JsonObject__test__coll__graph.png | Bin 184947 -> 0 bytes ...on_1_1JsonObject__test__inherit__graph.map | 9 - ...on_1_1JsonObject__test__inherit__graph.md5 | 1 - ...on_1_1JsonObject__test__inherit__graph.png | Bin 8842 -> 0 bytes classJson_1_1Object-members.html | 105 - classJson_1_1Object.html | 510 --- classJson_1_1Object_1_1Proxy-members.html | 92 - classJson_1_1Object_1_1Proxy.html | 245 -- classJson_1_1Object_1_1Proxy__coll__graph.map | 27 - classJson_1_1Object_1_1Proxy__coll__graph.md5 | 1 - classJson_1_1Object_1_1Proxy__coll__graph.png | Bin 52756 -> 0 bytes classJson_1_1Object_1_1Root-members.html | 105 - classJson_1_1Object_1_1Root.html | 502 --- classJson_1_1Object_1_1Root__coll__graph.map | 26 - classJson_1_1Object_1_1Root__coll__graph.md5 | 1 - classJson_1_1Object_1_1Root__coll__graph.png | Bin 39421 -> 0 bytes ...Json_1_1Object_1_1Root__inherit__graph.map | 7 - ...Json_1_1Object_1_1Root__inherit__graph.md5 | 1 - ...Json_1_1Object_1_1Root__inherit__graph.png | Bin 6250 -> 0 bytes classJson_1_1Object__coll__graph.map | 24 - classJson_1_1Object__coll__graph.md5 | 1 - classJson_1_1Object__coll__graph.png | Bin 37996 -> 0 bytes classJson_1_1Object__inherit__graph.map | 7 - classJson_1_1Object__inherit__graph.md5 | 1 - classJson_1_1Object__inherit__graph.png | Bin 6233 -> 0 bytes classJson_1_1StyledStreamWriter.html | 4 +- classJson_1_1StyledWriter.html | 4 +- classJson_1_1WriterObject-members.html | 94 - classJson_1_1WriterObject.html | 290 -- classJson_1_1WriterObject__coll__graph.map | 33 - classJson_1_1WriterObject__coll__graph.md5 | 1 - classJson_1_1WriterObject__coll__graph.png | Bin 59051 -> 0 bytes ...d__associative__container__test__base.html | 2 +- classbeast_1_1unit__test_1_1suite.html | 2 +- classes.html | 14 +- classxrpl_1_1Consensus.html | 2 +- classxrpl_1_1NodeStore_1_1TestBase.html | 2 +- ...sxrpl_1_1RPC_1_1LedgerHandler-members.html | 2 +- classxrpl_1_1RPC_1_1LedgerHandler.html | 37 +- ...xrpl_1_1RPC_1_1VersionHandler-members.html | 2 +- classxrpl_1_1RPC_1_1VersionHandler.html | 29 +- classxrpl_1_1TestSuite.html | 6 +- classxrpl_1_1TestSuite__inherit__graph.map | 8 +- classxrpl_1_1TestSuite__inherit__graph.md5 | 2 +- classxrpl_1_1TestSuite__inherit__graph.png | Bin 22976 -> 20323 bytes classxrpl_1_1test_1_1TestOutputSuite.html | 4 +- ...est_1_1TestOutputSuite__inherit__graph.map | 2 - ...est_1_1TestOutputSuite__inherit__graph.md5 | 2 +- ...est_1_1TestOutputSuite__inherit__graph.png | Bin 8937 -> 6447 bytes classxrpl_1_1test_1_1jtx_1_1AMMTest.html | 2 +- classxrpl_1_1test_1_1jtx_1_1AMMTestBase.html | 2 +- compression__test_8cpp_source.html | 2 +- dir_26f00f5cbf5752e9d3dd5a3d920d1123.html | 2 - dir_4e1866ff3c5085776b4525a09c4c1600.html | 2 - dir_b1ddb8ba35819848db6127faea360005.html | 2 - functions_a.html | 23 +- functions_c.html | 39 +- functions_d.html | 2 +- functions_e.html | 16 +- functions_f.html | 2 +- functions_func.html | 29 +- functions_func_b.html | 2 +- functions_func_c.html | 19 +- functions_func_d.html | 2 +- functions_func_e.html | 4 +- functions_func_f.html | 4 +- functions_func_i.html | 2 +- functions_func_k.html | 2 +- functions_func_l.html | 4 +- functions_func_m.html | 5 +- functions_func_n.html | 2 +- functions_func_o.html | 23 +- functions_func_p.html | 16 +- functions_func_r.html | 9 +- functions_func_s.html | 82 +- functions_func_t.html | 23 +- functions_func_u.html | 2 +- functions_func_v.html | 12 +- functions_func_w.html | 11 +- functions_func_~.html | 1 - functions_g.html | 3 +- functions_h.html | 2 +- functions_i.html | 30 +- functions_k.html | 8 +- functions_l.html | 2 +- functions_m.html | 7 +- functions_n.html | 13 +- functions_o.html | 50 +- functions_p.html | 12 +- functions_r.html | 27 +- functions_rela.html | 1 - functions_rela_o.html | 7 +- functions_s.html | 78 +- functions_t.html | 21 +- functions_u.html | 2 +- functions_v.html | 12 +- functions_vars_e.html | 2 +- functions_vars_k.html | 2 +- functions_vars_o.html | 1 - functions_vars_p.html | 2 +- functions_vars_w.html | 3 +- functions_w.html | 12 +- functions_~.html | 1 - hierarchy.html | 3611 ++++++++--------- inherit_graph_100.map | 2 +- inherit_graph_100.md5 | 2 +- inherit_graph_1000.map | 2 +- inherit_graph_1000.md5 | 2 +- inherit_graph_1000.png | Bin 2116 -> 2339 bytes inherit_graph_1001.map | 2 +- inherit_graph_1001.md5 | 2 +- inherit_graph_1001.png | Bin 3849 -> 1582 bytes inherit_graph_1002.map | 2 +- inherit_graph_1002.md5 | 2 +- inherit_graph_1002.png | Bin 1555 -> 1226 bytes inherit_graph_1003.map | 2 +- inherit_graph_1003.md5 | 2 +- inherit_graph_1003.png | Bin 2339 -> 2317 bytes inherit_graph_1004.map | 2 +- inherit_graph_1004.md5 | 2 +- inherit_graph_1004.png | Bin 1582 -> 2240 bytes inherit_graph_1005.map | 2 +- inherit_graph_1005.md5 | 2 +- inherit_graph_1005.png | Bin 1226 -> 3360 bytes inherit_graph_1006.map | 2 +- inherit_graph_1006.md5 | 2 +- inherit_graph_1006.png | Bin 2317 -> 2088 bytes inherit_graph_1007.map | 2 +- inherit_graph_1007.md5 | 2 +- inherit_graph_1007.png | Bin 2240 -> 2129 bytes inherit_graph_1008.map | 2 +- inherit_graph_1008.md5 | 2 +- inherit_graph_1008.png | Bin 3360 -> 2592 bytes inherit_graph_1009.map | 2 +- inherit_graph_1009.md5 | 2 +- inherit_graph_1009.png | Bin 2088 -> 1917 bytes inherit_graph_101.map | 2 +- inherit_graph_101.md5 | 2 +- inherit_graph_1010.map | 2 +- inherit_graph_1010.md5 | 2 +- inherit_graph_1010.png | Bin 2129 -> 2175 bytes inherit_graph_1011.map | 2 +- inherit_graph_1011.md5 | 2 +- inherit_graph_1011.png | Bin 2592 -> 2166 bytes inherit_graph_1012.map | 2 +- inherit_graph_1012.md5 | 2 +- inherit_graph_1012.png | Bin 1917 -> 1709 bytes inherit_graph_1013.map | 4 +- inherit_graph_1013.md5 | 2 +- inherit_graph_1013.png | Bin 2175 -> 5445 bytes inherit_graph_1014.map | 2 +- inherit_graph_1014.md5 | 2 +- inherit_graph_1014.png | Bin 2166 -> 2274 bytes inherit_graph_1015.map | 2 +- inherit_graph_1015.md5 | 2 +- inherit_graph_1015.png | Bin 1709 -> 3247 bytes inherit_graph_1016.map | 4 +- inherit_graph_1016.md5 | 2 +- inherit_graph_1016.png | Bin 5445 -> 2234 bytes inherit_graph_1017.map | 2 +- inherit_graph_1017.md5 | 2 +- inherit_graph_1017.png | Bin 2274 -> 1859 bytes inherit_graph_1018.map | 2 +- inherit_graph_1018.md5 | 2 +- inherit_graph_1018.png | Bin 3247 -> 2328 bytes inherit_graph_1019.map | 2 +- inherit_graph_1019.md5 | 2 +- inherit_graph_1019.png | Bin 2234 -> 3313 bytes inherit_graph_102.map | 2 +- inherit_graph_102.md5 | 2 +- inherit_graph_1020.map | 2 +- inherit_graph_1020.md5 | 2 +- inherit_graph_1020.png | Bin 1859 -> 4145 bytes inherit_graph_1021.map | 2 +- inherit_graph_1021.md5 | 2 +- inherit_graph_1021.png | Bin 2328 -> 4141 bytes inherit_graph_1022.map | 2 +- inherit_graph_1022.md5 | 2 +- inherit_graph_1022.png | Bin 3313 -> 5051 bytes inherit_graph_1023.map | 2 +- inherit_graph_1023.md5 | 2 +- inherit_graph_1023.png | Bin 4145 -> 2324 bytes inherit_graph_1024.map | 2 +- inherit_graph_1024.md5 | 2 +- inherit_graph_1024.png | Bin 4141 -> 2445 bytes inherit_graph_1025.map | 2 +- inherit_graph_1025.md5 | 2 +- inherit_graph_1025.png | Bin 5051 -> 3232 bytes inherit_graph_1026.map | 2 +- inherit_graph_1026.md5 | 2 +- inherit_graph_1026.png | Bin 2324 -> 1972 bytes inherit_graph_1027.map | 2 +- inherit_graph_1027.md5 | 2 +- inherit_graph_1027.png | Bin 2445 -> 3511 bytes inherit_graph_1028.map | 2 +- inherit_graph_1028.md5 | 2 +- inherit_graph_1028.png | Bin 3232 -> 3006 bytes inherit_graph_1029.map | 2 +- inherit_graph_1029.md5 | 2 +- inherit_graph_1029.png | Bin 1972 -> 3615 bytes inherit_graph_103.map | 2 +- inherit_graph_103.md5 | 2 +- inherit_graph_1030.map | 2 +- inherit_graph_1030.md5 | 2 +- inherit_graph_1030.png | Bin 3511 -> 3433 bytes inherit_graph_1031.map | 2 +- inherit_graph_1031.md5 | 2 +- inherit_graph_1031.png | Bin 3006 -> 2201 bytes inherit_graph_1032.map | 2 +- inherit_graph_1032.md5 | 2 +- inherit_graph_1032.png | Bin 3615 -> 2822 bytes inherit_graph_1033.map | 2 +- inherit_graph_1033.md5 | 2 +- inherit_graph_1033.png | Bin 3433 -> 3513 bytes inherit_graph_1034.map | 2 +- inherit_graph_1034.md5 | 2 +- inherit_graph_1034.png | Bin 2201 -> 3196 bytes inherit_graph_1035.map | 2 +- inherit_graph_1035.md5 | 2 +- inherit_graph_1035.png | Bin 2822 -> 2278 bytes inherit_graph_1036.map | 2 +- inherit_graph_1036.md5 | 2 +- inherit_graph_1036.png | Bin 3513 -> 2261 bytes inherit_graph_1037.map | 2 +- inherit_graph_1037.md5 | 2 +- inherit_graph_1037.png | Bin 3196 -> 1771 bytes inherit_graph_1038.map | 2 +- inherit_graph_1038.md5 | 2 +- inherit_graph_1038.png | Bin 2278 -> 2350 bytes inherit_graph_1039.map | 2 +- inherit_graph_1039.md5 | 2 +- inherit_graph_1039.png | Bin 2261 -> 3344 bytes inherit_graph_104.map | 2 +- inherit_graph_104.md5 | 2 +- inherit_graph_1040.map | 2 +- inherit_graph_1040.md5 | 2 +- inherit_graph_1040.png | Bin 1771 -> 2636 bytes inherit_graph_1041.map | 2 +- inherit_graph_1041.md5 | 2 +- inherit_graph_1041.png | Bin 2350 -> 3171 bytes inherit_graph_1042.map | 2 +- inherit_graph_1042.md5 | 2 +- inherit_graph_1042.png | Bin 3344 -> 2760 bytes inherit_graph_1043.map | 2 +- inherit_graph_1043.md5 | 2 +- inherit_graph_1043.png | Bin 2636 -> 3066 bytes inherit_graph_1044.map | 2 +- inherit_graph_1044.md5 | 2 +- inherit_graph_1044.png | Bin 3171 -> 2868 bytes inherit_graph_1045.map | 2 +- inherit_graph_1045.md5 | 2 +- inherit_graph_1045.png | Bin 2760 -> 3842 bytes inherit_graph_1046.map | 2 +- inherit_graph_1046.md5 | 2 +- inherit_graph_1046.png | Bin 3066 -> 2916 bytes inherit_graph_1047.map | 2 +- inherit_graph_1047.md5 | 2 +- inherit_graph_1047.png | Bin 2868 -> 1655 bytes inherit_graph_1048.map | 2 +- inherit_graph_1048.md5 | 2 +- inherit_graph_1048.png | Bin 3842 -> 2405 bytes inherit_graph_1049.map | 2 +- inherit_graph_1049.md5 | 2 +- inherit_graph_1049.png | Bin 2916 -> 1767 bytes inherit_graph_1050.map | 2 +- inherit_graph_1050.md5 | 2 +- inherit_graph_1050.png | Bin 1655 -> 2924 bytes inherit_graph_1051.map | 2 +- inherit_graph_1051.md5 | 2 +- inherit_graph_1051.png | Bin 2405 -> 1848 bytes inherit_graph_1052.map | 6 +- inherit_graph_1052.md5 | 2 +- inherit_graph_1052.png | Bin 1767 -> 9000 bytes inherit_graph_1053.map | 2 +- inherit_graph_1053.md5 | 2 +- inherit_graph_1053.png | Bin 2924 -> 2866 bytes inherit_graph_1054.map | 4 +- inherit_graph_1054.md5 | 2 +- inherit_graph_1054.png | Bin 1848 -> 3716 bytes inherit_graph_1055.map | 8 +- inherit_graph_1055.md5 | 2 +- inherit_graph_1055.png | Bin 9000 -> 6771 bytes inherit_graph_1056.map | 2 +- inherit_graph_1056.md5 | 2 +- inherit_graph_1056.png | Bin 2866 -> 4269 bytes inherit_graph_1057.map | 6 +- inherit_graph_1057.md5 | 2 +- inherit_graph_1057.png | Bin 3716 -> 7965 bytes inherit_graph_1058.map | 6 +- inherit_graph_1058.md5 | 2 +- inherit_graph_1058.png | Bin 6771 -> 7183 bytes inherit_graph_1059.map | 2 +- inherit_graph_1059.md5 | 2 +- inherit_graph_1059.png | Bin 4269 -> 2825 bytes inherit_graph_1060.map | 4 +- inherit_graph_1060.md5 | 2 +- inherit_graph_1060.png | Bin 7965 -> 4050 bytes inherit_graph_1061.map | 4 +- inherit_graph_1061.md5 | 2 +- inherit_graph_1061.png | Bin 7183 -> 3814 bytes inherit_graph_1062.map | 2 +- inherit_graph_1062.md5 | 2 +- inherit_graph_1062.png | Bin 2825 -> 4426 bytes inherit_graph_1063.map | 2 +- inherit_graph_1063.md5 | 2 +- inherit_graph_1063.png | Bin 4050 -> 2833 bytes inherit_graph_1064.map | 2 +- inherit_graph_1064.md5 | 2 +- inherit_graph_1064.png | Bin 3814 -> 2613 bytes inherit_graph_1065.map | 3 - inherit_graph_1065.md5 | 1 - inherit_graph_1065.png | Bin 4426 -> 0 bytes inherit_graph_1066.map | 3 - inherit_graph_1066.md5 | 1 - inherit_graph_1066.png | Bin 2833 -> 0 bytes inherit_graph_1067.map | 3 - inherit_graph_1067.md5 | 1 - inherit_graph_1067.png | Bin 2613 -> 0 bytes inherit_graph_117.map | 86 +- inherit_graph_117.md5 | 2 +- inherit_graph_118.map | 8 +- inherit_graph_118.md5 | 2 +- inherit_graph_119.map | 2 +- inherit_graph_119.md5 | 2 +- inherit_graph_122.map | 14 +- inherit_graph_122.md5 | 2 +- inherit_graph_123.map | 2 +- inherit_graph_123.md5 | 2 +- inherit_graph_124.map | 6 +- inherit_graph_124.md5 | 2 +- inherit_graph_125.map | 4 +- inherit_graph_125.md5 | 2 +- inherit_graph_126.map | 20 +- inherit_graph_126.md5 | 2 +- inherit_graph_127.map | 2 +- inherit_graph_127.md5 | 2 +- inherit_graph_128.map | 2 +- inherit_graph_128.md5 | 2 +- inherit_graph_130.map | 8 +- inherit_graph_130.md5 | 2 +- inherit_graph_130.png | Bin 8911 -> 1912 bytes inherit_graph_131.map | 2 +- inherit_graph_131.md5 | 2 +- inherit_graph_131.png | Bin 1912 -> 3618 bytes inherit_graph_132.map | 2 +- inherit_graph_132.md5 | 2 +- inherit_graph_132.png | Bin 3618 -> 1757 bytes inherit_graph_133.map | 2 +- inherit_graph_133.md5 | 2 +- inherit_graph_133.png | Bin 2483 -> 2090 bytes inherit_graph_134.map | 2 +- inherit_graph_134.md5 | 2 +- inherit_graph_134.png | Bin 1757 -> 2051 bytes inherit_graph_135.map | 2 +- inherit_graph_135.md5 | 2 +- inherit_graph_135.png | Bin 2090 -> 1992 bytes inherit_graph_136.map | 2 +- inherit_graph_136.md5 | 2 +- inherit_graph_136.png | Bin 2051 -> 2707 bytes inherit_graph_137.map | 2 +- inherit_graph_137.md5 | 2 +- inherit_graph_137.png | Bin 1992 -> 1643 bytes inherit_graph_138.map | 2 +- inherit_graph_138.md5 | 2 +- inherit_graph_138.png | Bin 2707 -> 2789 bytes inherit_graph_139.map | 2 +- inherit_graph_139.md5 | 2 +- inherit_graph_139.png | Bin 1643 -> 2055 bytes inherit_graph_140.map | 4 +- inherit_graph_140.md5 | 2 +- inherit_graph_140.png | Bin 2789 -> 4893 bytes inherit_graph_141.map | 6 +- inherit_graph_141.md5 | 2 +- inherit_graph_141.png | Bin 2055 -> 7862 bytes inherit_graph_142.map | 4 +- inherit_graph_142.md5 | 2 +- inherit_graph_142.png | Bin 4893 -> 1669 bytes inherit_graph_143.map | 6 +- inherit_graph_143.md5 | 2 +- inherit_graph_143.png | Bin 7862 -> 2062 bytes inherit_graph_144.map | 2 +- inherit_graph_144.md5 | 2 +- inherit_graph_144.png | Bin 1669 -> 3043 bytes inherit_graph_145.map | 6 +- inherit_graph_145.md5 | 2 +- inherit_graph_145.png | Bin 2062 -> 7487 bytes inherit_graph_146.map | 4 +- inherit_graph_146.md5 | 2 +- inherit_graph_146.png | Bin 3043 -> 4751 bytes inherit_graph_147.map | 8 +- inherit_graph_147.md5 | 2 +- inherit_graph_147.png | Bin 7487 -> 4632 bytes inherit_graph_148.map | 10 +- inherit_graph_148.md5 | 2 +- inherit_graph_148.png | Bin 2348 -> 31623 bytes inherit_graph_149.map | 6 +- inherit_graph_149.md5 | 2 +- inherit_graph_149.png | Bin 4751 -> 9371 bytes inherit_graph_150.map | 6 +- inherit_graph_150.md5 | 2 +- inherit_graph_150.png | Bin 4632 -> 5368 bytes inherit_graph_151.map | 14 +- inherit_graph_151.md5 | 2 +- inherit_graph_151.png | Bin 31623 -> 13707 bytes inherit_graph_152.map | 6 +- inherit_graph_152.md5 | 2 +- inherit_graph_152.png | Bin 9371 -> 6195 bytes inherit_graph_153.map | 6 +- inherit_graph_153.md5 | 2 +- inherit_graph_153.png | Bin 5368 -> 5515 bytes inherit_graph_154.map | 40 +- inherit_graph_154.md5 | 2 +- inherit_graph_154.png | Bin 13707 -> 71129 bytes inherit_graph_155.map | 54 +- inherit_graph_155.md5 | 2 +- inherit_graph_155.png | Bin 6195 -> 129602 bytes inherit_graph_156.map | 10 +- inherit_graph_156.md5 | 2 +- inherit_graph_156.png | Bin 5515 -> 14527 bytes inherit_graph_157.map | 40 +- inherit_graph_157.md5 | 2 +- inherit_graph_157.png | Bin 71129 -> 8393 bytes inherit_graph_158.map | 54 +- inherit_graph_158.md5 | 2 +- inherit_graph_158.png | Bin 129602 -> 5940 bytes inherit_graph_159.map | 10 +- inherit_graph_159.md5 | 2 +- inherit_graph_159.png | Bin 14527 -> 7960 bytes inherit_graph_160.map | 24 +- inherit_graph_160.md5 | 2 +- inherit_graph_160.png | Bin 8393 -> 44209 bytes inherit_graph_161.map | 8 +- inherit_graph_161.md5 | 2 +- inherit_graph_161.png | Bin 5940 -> 12693 bytes inherit_graph_162.map | 30 +- inherit_graph_162.md5 | 2 +- inherit_graph_162.png | Bin 7960 -> 50945 bytes inherit_graph_163.map | 30 +- inherit_graph_163.md5 | 2 +- inherit_graph_163.png | Bin 44209 -> 24935 bytes inherit_graph_164.map | 8 +- inherit_graph_164.md5 | 2 +- inherit_graph_164.png | Bin 12693 -> 5682 bytes inherit_graph_165.map | 28 +- inherit_graph_165.md5 | 2 +- inherit_graph_165.png | Bin 50945 -> 2806 bytes inherit_graph_166.map | 16 +- inherit_graph_166.md5 | 2 +- inherit_graph_166.png | Bin 24935 -> 14419 bytes inherit_graph_167.map | 6 +- inherit_graph_167.md5 | 2 +- inherit_graph_167.png | Bin 5682 -> 15657 bytes inherit_graph_168.map | 4 +- inherit_graph_168.md5 | 2 +- inherit_graph_168.png | Bin 2806 -> 16138 bytes inherit_graph_169.map | 8 +- inherit_graph_169.md5 | 2 +- inherit_graph_169.png | Bin 14419 -> 13899 bytes inherit_graph_170.map | 6 +- inherit_graph_170.md5 | 2 +- inherit_graph_170.png | Bin 15657 -> 16252 bytes inherit_graph_171.map | 6 +- inherit_graph_171.md5 | 2 +- inherit_graph_171.png | Bin 16138 -> 11805 bytes inherit_graph_172.map | 6 +- inherit_graph_172.md5 | 2 +- inherit_graph_172.png | Bin 13899 -> 12384 bytes inherit_graph_173.map | 14 +- inherit_graph_173.md5 | 2 +- inherit_graph_173.png | Bin 16252 -> 35040 bytes inherit_graph_174.map | 14 +- inherit_graph_174.md5 | 2 +- inherit_graph_174.png | Bin 11805 -> 20675 bytes inherit_graph_175.map | 4 +- inherit_graph_175.md5 | 2 +- inherit_graph_175.png | Bin 12384 -> 4623 bytes inherit_graph_176.map | 14 +- inherit_graph_176.md5 | 2 +- inherit_graph_176.png | Bin 35040 -> 5905 bytes inherit_graph_177.map | 14 +- inherit_graph_177.md5 | 2 +- inherit_graph_177.png | Bin 20675 -> 5084 bytes inherit_graph_178.map | 40 +- inherit_graph_178.md5 | 2 +- inherit_graph_178.png | Bin 4623 -> 162803 bytes inherit_graph_179.map | 6 +- inherit_graph_179.md5 | 2 +- inherit_graph_179.png | Bin 5905 -> 5911 bytes inherit_graph_180.map | 34 +- inherit_graph_180.md5 | 2 +- inherit_graph_180.png | Bin 5084 -> 86465 bytes inherit_graph_181.map | 42 +- inherit_graph_181.md5 | 2 +- inherit_graph_181.png | Bin 162803 -> 6377 bytes inherit_graph_182.map | 4 +- inherit_graph_182.md5 | 2 +- inherit_graph_182.png | Bin 5911 -> 859 bytes inherit_graph_183.map | 32 +- inherit_graph_183.md5 | 2 +- inherit_graph_183.png | Bin 86465 -> 941 bytes inherit_graph_184.map | 8 +- inherit_graph_184.md5 | 2 +- inherit_graph_184.png | Bin 6377 -> 8524 bytes inherit_graph_185.map | 2 +- inherit_graph_185.md5 | 2 +- inherit_graph_185.png | Bin 859 -> 1376 bytes inherit_graph_186.map | 4 +- inherit_graph_186.md5 | 2 +- inherit_graph_186.png | Bin 941 -> 5320 bytes inherit_graph_187.map | 8 +- inherit_graph_187.md5 | 2 +- inherit_graph_187.png | Bin 8524 -> 5728 bytes inherit_graph_188.map | 2 +- inherit_graph_188.md5 | 2 +- inherit_graph_188.png | Bin 1376 -> 3507 bytes inherit_graph_189.map | 4 +- inherit_graph_189.md5 | 2 +- inherit_graph_189.png | Bin 5320 -> 2999 bytes inherit_graph_190.map | 4 +- inherit_graph_190.md5 | 2 +- inherit_graph_190.png | Bin 5728 -> 2079 bytes inherit_graph_191.map | 2 +- inherit_graph_191.md5 | 2 +- inherit_graph_191.png | Bin 3507 -> 2313 bytes inherit_graph_192.map | 4 +- inherit_graph_192.md5 | 2 +- inherit_graph_192.png | Bin 2999 -> 4484 bytes inherit_graph_193.map | 2 +- inherit_graph_193.md5 | 2 +- inherit_graph_193.png | Bin 2079 -> 3162 bytes inherit_graph_194.map | 2 +- inherit_graph_194.md5 | 2 +- inherit_graph_194.png | Bin 2313 -> 2135 bytes inherit_graph_195.map | 4 +- inherit_graph_195.md5 | 2 +- inherit_graph_195.png | Bin 4484 -> 3051 bytes inherit_graph_196.map | 2 +- inherit_graph_196.md5 | 2 +- inherit_graph_196.png | Bin 3162 -> 3140 bytes inherit_graph_197.map | 2 +- inherit_graph_197.md5 | 2 +- inherit_graph_197.png | Bin 2135 -> 2288 bytes inherit_graph_198.map | 2 +- inherit_graph_198.md5 | 2 +- inherit_graph_198.png | Bin 3051 -> 3641 bytes inherit_graph_199.map | 2 +- inherit_graph_199.md5 | 2 +- inherit_graph_199.png | Bin 3140 -> 2138 bytes inherit_graph_200.map | 2 +- inherit_graph_200.md5 | 2 +- inherit_graph_200.png | Bin 2288 -> 2061 bytes inherit_graph_201.map | 2 +- inherit_graph_201.md5 | 2 +- inherit_graph_201.png | Bin 3641 -> 1523 bytes inherit_graph_202.map | 2 +- inherit_graph_202.md5 | 2 +- inherit_graph_202.png | Bin 2138 -> 3483 bytes inherit_graph_203.map | 2 +- inherit_graph_203.md5 | 2 +- inherit_graph_203.png | Bin 2061 -> 4458 bytes inherit_graph_204.map | 8 +- inherit_graph_204.md5 | 2 +- inherit_graph_204.png | Bin 1523 -> 10946 bytes inherit_graph_205.map | 6 +- inherit_graph_205.md5 | 2 +- inherit_graph_205.png | Bin 3483 -> 12146 bytes inherit_graph_206.map | 2 +- inherit_graph_206.md5 | 2 +- inherit_graph_206.png | Bin 4458 -> 3312 bytes inherit_graph_207.map | 8 +- inherit_graph_207.md5 | 2 +- inherit_graph_207.png | Bin 10946 -> 3693 bytes inherit_graph_208.map | 6 +- inherit_graph_208.md5 | 2 +- inherit_graph_208.png | Bin 12146 -> 4435 bytes inherit_graph_209.map | 2 +- inherit_graph_209.md5 | 2 +- inherit_graph_209.png | Bin 3312 -> 4337 bytes inherit_graph_210.map | 2 +- inherit_graph_210.md5 | 2 +- inherit_graph_210.png | Bin 3693 -> 4121 bytes inherit_graph_211.map | 2 +- inherit_graph_211.md5 | 2 +- inherit_graph_211.png | Bin 4435 -> 2755 bytes inherit_graph_212.map | 2 +- inherit_graph_212.md5 | 2 +- inherit_graph_212.png | Bin 4337 -> 2770 bytes inherit_graph_213.map | 2 +- inherit_graph_213.md5 | 2 +- inherit_graph_213.png | Bin 4121 -> 2973 bytes inherit_graph_214.map | 2 +- inherit_graph_214.md5 | 2 +- inherit_graph_214.png | Bin 2755 -> 3840 bytes inherit_graph_215.map | 2 +- inherit_graph_215.md5 | 2 +- inherit_graph_215.png | Bin 2770 -> 3718 bytes inherit_graph_216.map | 2 +- inherit_graph_216.md5 | 2 +- inherit_graph_216.png | Bin 2973 -> 4209 bytes inherit_graph_217.map | 2 +- inherit_graph_217.md5 | 2 +- inherit_graph_217.png | Bin 3840 -> 5057 bytes inherit_graph_218.map | 4 +- inherit_graph_218.md5 | 2 +- inherit_graph_218.png | Bin 3718 -> 4323 bytes inherit_graph_219.map | 2 +- inherit_graph_219.md5 | 2 +- inherit_graph_219.png | Bin 4209 -> 2098 bytes inherit_graph_220.map | 2 +- inherit_graph_220.md5 | 2 +- inherit_graph_220.png | Bin 5057 -> 1790 bytes inherit_graph_221.map | 4 +- inherit_graph_221.md5 | 2 +- inherit_graph_221.png | Bin 4323 -> 2972 bytes inherit_graph_222.map | 2 +- inherit_graph_222.md5 | 2 +- inherit_graph_222.png | Bin 2098 -> 2151 bytes inherit_graph_223.map | 2 +- inherit_graph_223.md5 | 2 +- inherit_graph_223.png | Bin 1790 -> 4435 bytes inherit_graph_224.map | 2 +- inherit_graph_224.md5 | 2 +- inherit_graph_224.png | Bin 2972 -> 1534 bytes inherit_graph_225.map | 2 +- inherit_graph_225.md5 | 2 +- inherit_graph_225.png | Bin 2151 -> 1562 bytes inherit_graph_226.map | 2 +- inherit_graph_226.md5 | 2 +- inherit_graph_226.png | Bin 4435 -> 2977 bytes inherit_graph_227.map | 2 +- inherit_graph_227.md5 | 2 +- inherit_graph_227.png | Bin 1534 -> 2457 bytes inherit_graph_228.map | 2 +- inherit_graph_228.md5 | 2 +- inherit_graph_228.png | Bin 1562 -> 3498 bytes inherit_graph_229.map | 2 +- inherit_graph_229.md5 | 2 +- inherit_graph_229.png | Bin 2977 -> 5438 bytes inherit_graph_230.map | 2 +- inherit_graph_230.md5 | 2 +- inherit_graph_230.png | Bin 2457 -> 3005 bytes inherit_graph_231.map | 2 +- inherit_graph_231.md5 | 2 +- inherit_graph_231.png | Bin 3498 -> 5520 bytes inherit_graph_232.map | 2 +- inherit_graph_232.md5 | 2 +- inherit_graph_232.png | Bin 5438 -> 1670 bytes inherit_graph_233.map | 2 +- inherit_graph_233.md5 | 2 +- inherit_graph_233.png | Bin 3005 -> 2390 bytes inherit_graph_234.map | 2 +- inherit_graph_234.md5 | 2 +- inherit_graph_234.png | Bin 5520 -> 2200 bytes inherit_graph_235.map | 2 +- inherit_graph_235.md5 | 2 +- inherit_graph_235.png | Bin 1670 -> 3887 bytes inherit_graph_236.map | 2 +- inherit_graph_236.md5 | 2 +- inherit_graph_236.png | Bin 2390 -> 4062 bytes inherit_graph_237.map | 2 +- inherit_graph_237.md5 | 2 +- inherit_graph_237.png | Bin 2200 -> 4306 bytes inherit_graph_238.map | 4 +- inherit_graph_238.md5 | 2 +- inherit_graph_238.png | Bin 3887 -> 5295 bytes inherit_graph_239.map | 2 +- inherit_graph_239.md5 | 2 +- inherit_graph_239.png | Bin 4062 -> 2433 bytes inherit_graph_240.map | 2 +- inherit_graph_240.md5 | 2 +- inherit_graph_240.png | Bin 4306 -> 3627 bytes inherit_graph_241.map | 4 +- inherit_graph_241.md5 | 2 +- inherit_graph_241.png | Bin 5295 -> 2933 bytes inherit_graph_242.map | 2 +- inherit_graph_242.md5 | 2 +- inherit_graph_242.png | Bin 2433 -> 3959 bytes inherit_graph_243.map | 2 +- inherit_graph_243.md5 | 2 +- inherit_graph_243.png | Bin 3627 -> 4110 bytes inherit_graph_244.map | 2 +- inherit_graph_244.md5 | 2 +- inherit_graph_244.png | Bin 2933 -> 3233 bytes inherit_graph_245.map | 2 +- inherit_graph_245.md5 | 2 +- inherit_graph_245.png | Bin 3959 -> 2301 bytes inherit_graph_246.map | 2 +- inherit_graph_246.md5 | 2 +- inherit_graph_246.png | Bin 4110 -> 2397 bytes inherit_graph_247.map | 2 +- inherit_graph_247.md5 | 2 +- inherit_graph_247.png | Bin 3233 -> 3973 bytes inherit_graph_248.map | 2 +- inherit_graph_248.md5 | 2 +- inherit_graph_248.png | Bin 2301 -> 4338 bytes inherit_graph_249.map | 2 +- inherit_graph_249.md5 | 2 +- inherit_graph_249.png | Bin 2397 -> 5015 bytes inherit_graph_250.map | 2 +- inherit_graph_250.md5 | 2 +- inherit_graph_250.png | Bin 3973 -> 6690 bytes inherit_graph_251.map | 2 +- inherit_graph_251.md5 | 2 +- inherit_graph_251.png | Bin 4338 -> 4897 bytes inherit_graph_252.map | 2 +- inherit_graph_252.md5 | 2 +- inherit_graph_252.png | Bin 5015 -> 3176 bytes inherit_graph_253.map | 2 +- inherit_graph_253.md5 | 2 +- inherit_graph_253.png | Bin 6690 -> 2183 bytes inherit_graph_254.map | 2 +- inherit_graph_254.md5 | 2 +- inherit_graph_254.png | Bin 4897 -> 2007 bytes inherit_graph_255.map | 4 +- inherit_graph_255.md5 | 2 +- inherit_graph_255.png | Bin 3176 -> 6207 bytes inherit_graph_256.map | 4 +- inherit_graph_256.md5 | 2 +- inherit_graph_256.png | Bin 2183 -> 6576 bytes inherit_graph_257.map | 4 +- inherit_graph_257.md5 | 2 +- inherit_graph_257.png | Bin 2007 -> 7507 bytes inherit_graph_258.map | 6 +- inherit_graph_258.md5 | 2 +- inherit_graph_258.png | Bin 6207 -> 5078 bytes inherit_graph_259.map | 6 +- inherit_graph_259.md5 | 2 +- inherit_graph_259.png | Bin 6576 -> 7166 bytes inherit_graph_260.map | 4 +- inherit_graph_260.md5 | 2 +- inherit_graph_260.png | Bin 7507 -> 6269 bytes inherit_graph_261.map | 34 +- inherit_graph_261.md5 | 2 +- inherit_graph_261.png | Bin 5078 -> 77664 bytes inherit_graph_262.map | 12 +- inherit_graph_262.md5 | 2 +- inherit_graph_262.png | Bin 7166 -> 13078 bytes inherit_graph_263.map | 12 +- inherit_graph_263.md5 | 2 +- inherit_graph_263.png | Bin 6269 -> 21056 bytes inherit_graph_264.map | 34 +- inherit_graph_264.md5 | 2 +- inherit_graph_264.png | Bin 77664 -> 4821 bytes inherit_graph_265.map | 40 +- inherit_graph_265.md5 | 2 +- inherit_graph_265.png | Bin 13078 -> 53169 bytes inherit_graph_266.map | 12 +- inherit_graph_266.md5 | 2 +- inherit_graph_266.png | Bin 21056 -> 5988 bytes inherit_graph_267.map | 4 +- inherit_graph_267.md5 | 2 +- inherit_graph_267.png | Bin 4821 -> 6595 bytes inherit_graph_268.map | 34 +- inherit_graph_268.md5 | 2 +- inherit_graph_268.png | Bin 53169 -> 6733 bytes inherit_graph_269.map | 4 +- inherit_graph_269.md5 | 2 +- inherit_graph_269.png | Bin 5988 -> 3678 bytes inherit_graph_270.map | 4 +- inherit_graph_270.md5 | 2 +- inherit_graph_270.png | Bin 6595 -> 6113 bytes inherit_graph_271.map | 12 +- inherit_graph_271.md5 | 2 +- inherit_graph_271.png | Bin 6733 -> 17008 bytes inherit_graph_272.map | 4 +- inherit_graph_272.md5 | 2 +- inherit_graph_272.png | Bin 3678 -> 6371 bytes inherit_graph_273.map | 24 +- inherit_graph_273.md5 | 2 +- inherit_graph_273.png | Bin 6113 -> 50738 bytes inherit_graph_274.map | 12 +- inherit_graph_274.md5 | 2 +- inherit_graph_274.png | Bin 17008 -> 6760 bytes inherit_graph_275.map | 6 +- inherit_graph_275.md5 | 2 +- inherit_graph_275.png | Bin 6371 -> 7518 bytes inherit_graph_276.map | 84 +- inherit_graph_276.md5 | 2 +- inherit_graph_276.png | Bin 50738 -> 135647 bytes inherit_graph_277.map | 4 +- inherit_graph_277.md5 | 2 +- inherit_graph_277.png | Bin 6760 -> 5585 bytes inherit_graph_278.map | 6 +- inherit_graph_278.md5 | 2 +- inherit_graph_278.png | Bin 7518 -> 6508 bytes inherit_graph_279.map | 68 +- inherit_graph_279.md5 | 2 +- inherit_graph_279.png | Bin 135647 -> 10492 bytes inherit_graph_280.map | 4 +- inherit_graph_280.md5 | 2 +- inherit_graph_280.png | Bin 5585 -> 2626 bytes inherit_graph_281.map | 4 +- inherit_graph_281.md5 | 2 +- inherit_graph_281.png | Bin 6508 -> 3515 bytes inherit_graph_282.map | 6 +- inherit_graph_282.md5 | 2 +- inherit_graph_282.png | Bin 10492 -> 2112 bytes inherit_graph_283.map | 2 +- inherit_graph_283.md5 | 2 +- inherit_graph_283.png | Bin 2626 -> 2917 bytes inherit_graph_284.map | 2 +- inherit_graph_284.md5 | 2 +- inherit_graph_284.png | Bin 3515 -> 3122 bytes inherit_graph_285.map | 4 +- inherit_graph_285.md5 | 2 +- inherit_graph_285.png | Bin 2112 -> 6458 bytes inherit_graph_286.map | 2 +- inherit_graph_286.md5 | 2 +- inherit_graph_286.png | Bin 2917 -> 1805 bytes inherit_graph_287.map | 4 +- inherit_graph_287.md5 | 2 +- inherit_graph_287.png | Bin 3122 -> 5462 bytes inherit_graph_288.map | 4 +- inherit_graph_288.md5 | 2 +- inherit_graph_288.png | Bin 6458 -> 3714 bytes inherit_graph_289.map | 2 +- inherit_graph_289.md5 | 2 +- inherit_graph_289.png | Bin 1805 -> 2286 bytes inherit_graph_290.map | 4 +- inherit_graph_290.md5 | 2 +- inherit_graph_290.png | Bin 5462 -> 3820 bytes inherit_graph_291.map | 2 +- inherit_graph_291.md5 | 2 +- inherit_graph_291.png | Bin 3714 -> 3056 bytes inherit_graph_292.map | 2 +- inherit_graph_292.md5 | 2 +- inherit_graph_292.png | Bin 2286 -> 2136 bytes inherit_graph_293.map | 2 +- inherit_graph_293.md5 | 2 +- inherit_graph_293.png | Bin 3820 -> 2173 bytes inherit_graph_294.map | 2 +- inherit_graph_294.md5 | 2 +- inherit_graph_294.png | Bin 3056 -> 8604 bytes inherit_graph_295.map | 2 +- inherit_graph_295.md5 | 2 +- inherit_graph_295.png | Bin 2136 -> 4470 bytes inherit_graph_296.map | 2 +- inherit_graph_296.md5 | 2 +- inherit_graph_296.png | Bin 2173 -> 4629 bytes inherit_graph_297.map | 2 +- inherit_graph_297.md5 | 2 +- inherit_graph_297.png | Bin 8604 -> 4394 bytes inherit_graph_298.map | 2 +- inherit_graph_298.md5 | 2 +- inherit_graph_298.png | Bin 4470 -> 2741 bytes inherit_graph_299.map | 2 +- inherit_graph_299.md5 | 2 +- inherit_graph_299.png | Bin 4629 -> 4341 bytes inherit_graph_300.map | 2 +- inherit_graph_300.md5 | 2 +- inherit_graph_300.png | Bin 4394 -> 2823 bytes inherit_graph_301.map | 2 +- inherit_graph_301.md5 | 2 +- inherit_graph_301.png | Bin 2741 -> 2938 bytes inherit_graph_302.map | 2 +- inherit_graph_302.md5 | 2 +- inherit_graph_302.png | Bin 4341 -> 4423 bytes inherit_graph_303.map | 2 +- inherit_graph_303.md5 | 2 +- inherit_graph_303.png | Bin 2823 -> 3633 bytes inherit_graph_304.map | 2 +- inherit_graph_304.md5 | 2 +- inherit_graph_304.png | Bin 2938 -> 2541 bytes inherit_graph_305.map | 2 +- inherit_graph_305.md5 | 2 +- inherit_graph_305.png | Bin 4423 -> 2613 bytes inherit_graph_306.map | 2 +- inherit_graph_306.md5 | 2 +- inherit_graph_306.png | Bin 3633 -> 2876 bytes inherit_graph_307.map | 2 +- inherit_graph_307.md5 | 2 +- inherit_graph_307.png | Bin 2541 -> 2400 bytes inherit_graph_308.map | 2 +- inherit_graph_308.md5 | 2 +- inherit_graph_308.png | Bin 2613 -> 2515 bytes inherit_graph_309.map | 2 +- inherit_graph_309.md5 | 2 +- inherit_graph_309.png | Bin 2876 -> 3664 bytes inherit_graph_310.map | 2 +- inherit_graph_310.md5 | 2 +- inherit_graph_310.png | Bin 2400 -> 3212 bytes inherit_graph_311.map | 2 +- inherit_graph_311.md5 | 2 +- inherit_graph_311.png | Bin 2515 -> 2630 bytes inherit_graph_312.map | 8 +- inherit_graph_312.md5 | 2 +- inherit_graph_312.png | Bin 3664 -> 12679 bytes inherit_graph_313.map | 2 +- inherit_graph_313.md5 | 2 +- inherit_graph_313.png | Bin 3212 -> 2785 bytes inherit_graph_314.map | 6 +- inherit_graph_314.md5 | 2 +- inherit_graph_314.png | Bin 2630 -> 8212 bytes inherit_graph_315.map | 8 +- inherit_graph_315.md5 | 2 +- inherit_graph_315.png | Bin 12679 -> 2233 bytes inherit_graph_316.map | 2 +- inherit_graph_316.md5 | 2 +- inherit_graph_316.png | Bin 2785 -> 2671 bytes inherit_graph_317.map | 6 +- inherit_graph_317.md5 | 2 +- inherit_graph_317.png | Bin 8212 -> 2493 bytes inherit_graph_318.map | 4 +- inherit_graph_318.md5 | 2 +- inherit_graph_318.png | Bin 2233 -> 6634 bytes inherit_graph_319.map | 2 +- inherit_graph_319.md5 | 2 +- inherit_graph_319.png | Bin 2671 -> 2459 bytes inherit_graph_320.map | 10 +- inherit_graph_320.md5 | 2 +- inherit_graph_320.png | Bin 2493 -> 15365 bytes inherit_graph_321.map | 4 +- inherit_graph_321.md5 | 2 +- inherit_graph_321.png | Bin 6634 -> 3526 bytes inherit_graph_322.map | 2 +- inherit_graph_322.md5 | 2 +- inherit_graph_322.png | Bin 2459 -> 4056 bytes inherit_graph_323.map | 12 +- inherit_graph_323.md5 | 2 +- inherit_graph_323.png | Bin 15365 -> 6111 bytes inherit_graph_324.map | 2 +- inherit_graph_324.md5 | 2 +- inherit_graph_324.png | Bin 3526 -> 4133 bytes inherit_graph_325.map | 2 +- inherit_graph_325.md5 | 2 +- inherit_graph_325.png | Bin 4056 -> 4777 bytes inherit_graph_326.map | 4 +- inherit_graph_326.md5 | 2 +- inherit_graph_326.png | Bin 6111 -> 2425 bytes inherit_graph_327.map | 2 +- inherit_graph_327.md5 | 2 +- inherit_graph_327.png | Bin 4133 -> 2560 bytes inherit_graph_328.map | 2 +- inherit_graph_328.md5 | 2 +- inherit_graph_328.png | Bin 4777 -> 3222 bytes inherit_graph_329.map | 4 +- inherit_graph_329.md5 | 2 +- inherit_graph_329.png | Bin 2425 -> 7004 bytes inherit_graph_330.map | 2 +- inherit_graph_330.md5 | 2 +- inherit_graph_330.png | Bin 2560 -> 2833 bytes inherit_graph_331.map | 2 +- inherit_graph_331.md5 | 2 +- inherit_graph_331.png | Bin 3222 -> 2490 bytes inherit_graph_332.map | 4 +- inherit_graph_332.md5 | 2 +- inherit_graph_332.png | Bin 7004 -> 3516 bytes inherit_graph_333.map | 4 +- inherit_graph_333.md5 | 2 +- inherit_graph_333.png | Bin 2833 -> 5980 bytes inherit_graph_334.map | 2 +- inherit_graph_334.md5 | 2 +- inherit_graph_334.png | Bin 2490 -> 5628 bytes inherit_graph_335.map | 4 +- inherit_graph_335.md5 | 2 +- inherit_graph_335.png | Bin 3516 -> 7170 bytes inherit_graph_336.map | 6 +- inherit_graph_336.md5 | 2 +- inherit_graph_336.png | Bin 5980 -> 7266 bytes inherit_graph_337.map | 2 +- inherit_graph_337.md5 | 2 +- inherit_graph_337.png | Bin 5628 -> 4682 bytes inherit_graph_338.map | 4 +- inherit_graph_338.md5 | 2 +- inherit_graph_338.png | Bin 7170 -> 1896 bytes inherit_graph_339.map | 4 +- inherit_graph_339.md5 | 2 +- inherit_graph_339.png | Bin 7266 -> 2778 bytes inherit_graph_340.map | 2 +- inherit_graph_340.md5 | 2 +- inherit_graph_340.png | Bin 4682 -> 2939 bytes inherit_graph_341.map | 2 +- inherit_graph_341.md5 | 2 +- inherit_graph_341.png | Bin 1896 -> 2109 bytes inherit_graph_342.map | 2 +- inherit_graph_342.md5 | 2 +- inherit_graph_342.png | Bin 2778 -> 2534 bytes inherit_graph_343.map | 2 +- inherit_graph_343.md5 | 2 +- inherit_graph_343.png | Bin 2939 -> 3228 bytes inherit_graph_344.map | 2 +- inherit_graph_344.md5 | 2 +- inherit_graph_344.png | Bin 2109 -> 3398 bytes inherit_graph_345.map | 2 +- inherit_graph_345.md5 | 2 +- inherit_graph_345.png | Bin 2534 -> 2216 bytes inherit_graph_346.map | 2 +- inherit_graph_346.md5 | 2 +- inherit_graph_346.png | Bin 3228 -> 1086 bytes inherit_graph_347.map | 2 +- inherit_graph_347.md5 | 2 +- inherit_graph_347.png | Bin 3398 -> 2275 bytes inherit_graph_348.map | 2 +- inherit_graph_348.md5 | 2 +- inherit_graph_348.png | Bin 2216 -> 3630 bytes inherit_graph_349.map | 2 +- inherit_graph_349.md5 | 2 +- inherit_graph_349.png | Bin 1086 -> 3399 bytes inherit_graph_350.map | 2 +- inherit_graph_350.md5 | 2 +- inherit_graph_350.png | Bin 2275 -> 3304 bytes inherit_graph_351.map | 2 +- inherit_graph_351.md5 | 2 +- inherit_graph_351.png | Bin 3630 -> 4079 bytes inherit_graph_352.map | 2 +- inherit_graph_352.md5 | 2 +- inherit_graph_352.png | Bin 3399 -> 2054 bytes inherit_graph_353.map | 2 +- inherit_graph_353.md5 | 2 +- inherit_graph_353.png | Bin 3304 -> 2290 bytes inherit_graph_354.map | 6 +- inherit_graph_354.md5 | 2 +- inherit_graph_354.png | Bin 4079 -> 7821 bytes inherit_graph_355.map | 2 +- inherit_graph_355.md5 | 2 +- inherit_graph_355.png | Bin 2054 -> 1353 bytes inherit_graph_356.map | 2 +- inherit_graph_356.md5 | 2 +- inherit_graph_356.png | Bin 2290 -> 1654 bytes inherit_graph_357.map | 8 +- inherit_graph_357.md5 | 2 +- inherit_graph_357.png | Bin 7821 -> 3632 bytes inherit_graph_358.map | 2 +- inherit_graph_358.md5 | 2 +- inherit_graph_358.png | Bin 1353 -> 2182 bytes inherit_graph_359.map | 2 +- inherit_graph_359.md5 | 2 +- inherit_graph_359.png | Bin 1654 -> 2467 bytes inherit_graph_360.map | 4 +- inherit_graph_360.md5 | 2 +- inherit_graph_360.png | Bin 3632 -> 1776 bytes inherit_graph_361.map | 4 +- inherit_graph_361.md5 | 2 +- inherit_graph_361.png | Bin 2182 -> 6960 bytes inherit_graph_362.map | 2 +- inherit_graph_362.md5 | 2 +- inherit_graph_362.png | Bin 2467 -> 2134 bytes inherit_graph_363.map | 2 +- inherit_graph_363.md5 | 2 +- inherit_graph_363.png | Bin 1776 -> 2485 bytes inherit_graph_364.map | 4 +- inherit_graph_364.md5 | 2 +- inherit_graph_364.png | Bin 6960 -> 2907 bytes inherit_graph_365.map | 2 +- inherit_graph_365.md5 | 2 +- inherit_graph_365.png | Bin 2134 -> 2450 bytes inherit_graph_366.map | 6 +- inherit_graph_366.md5 | 2 +- inherit_graph_366.png | Bin 2485 -> 9411 bytes inherit_graph_367.map | 4 +- inherit_graph_367.md5 | 2 +- inherit_graph_367.png | Bin 2907 -> 3184 bytes inherit_graph_368.map | 2 +- inherit_graph_368.md5 | 2 +- inherit_graph_368.png | Bin 2450 -> 2835 bytes inherit_graph_369.map | 10 +- inherit_graph_369.md5 | 2 +- inherit_graph_369.png | Bin 9411 -> 6615 bytes inherit_graph_370.map | 4 +- inherit_graph_370.md5 | 2 +- inherit_graph_370.png | Bin 3184 -> 4629 bytes inherit_graph_371.map | 2 +- inherit_graph_371.md5 | 2 +- inherit_graph_371.png | Bin 2835 -> 3936 bytes inherit_graph_372.map | 6 +- inherit_graph_372.md5 | 2 +- inherit_graph_372.png | Bin 6615 -> 3060 bytes inherit_graph_373.map | 2 +- inherit_graph_373.md5 | 2 +- inherit_graph_373.png | Bin 4629 -> 1382 bytes inherit_graph_374.map | 2 +- inherit_graph_374.md5 | 2 +- inherit_graph_374.png | Bin 3936 -> 1371 bytes inherit_graph_375.map | 2 +- inherit_graph_375.md5 | 2 +- inherit_graph_375.png | Bin 3060 -> 2094 bytes inherit_graph_376.map | 2 +- inherit_graph_376.md5 | 2 +- inherit_graph_376.png | Bin 1382 -> 1878 bytes inherit_graph_377.map | 2 +- inherit_graph_377.md5 | 2 +- inherit_graph_377.png | Bin 1371 -> 1761 bytes inherit_graph_378.map | 2 +- inherit_graph_378.md5 | 2 +- inherit_graph_378.png | Bin 2094 -> 1801 bytes inherit_graph_379.map | 2 +- inherit_graph_379.md5 | 2 +- inherit_graph_379.png | Bin 1878 -> 2287 bytes inherit_graph_380.map | 2 +- inherit_graph_380.md5 | 2 +- inherit_graph_380.png | Bin 1761 -> 2417 bytes inherit_graph_381.map | 2 +- inherit_graph_381.md5 | 2 +- inherit_graph_381.png | Bin 1801 -> 1863 bytes inherit_graph_382.map | 2 +- inherit_graph_382.md5 | 2 +- inherit_graph_382.png | Bin 2287 -> 1975 bytes inherit_graph_383.map | 2 +- inherit_graph_383.md5 | 2 +- inherit_graph_383.png | Bin 2417 -> 1522 bytes inherit_graph_384.map | 2 +- inherit_graph_384.md5 | 2 +- inherit_graph_384.png | Bin 1863 -> 1838 bytes inherit_graph_385.map | 2 +- inherit_graph_385.md5 | 2 +- inherit_graph_385.png | Bin 1975 -> 1702 bytes inherit_graph_386.map | 2 +- inherit_graph_386.md5 | 2 +- inherit_graph_386.png | Bin 1522 -> 1807 bytes inherit_graph_387.map | 2 +- inherit_graph_387.md5 | 2 +- inherit_graph_387.png | Bin 1838 -> 3171 bytes inherit_graph_388.map | 4 +- inherit_graph_388.md5 | 2 +- inherit_graph_388.png | Bin 1702 -> 7546 bytes inherit_graph_389.map | 2 +- inherit_graph_389.md5 | 2 +- inherit_graph_389.png | Bin 1807 -> 3987 bytes inherit_graph_390.map | 2 +- inherit_graph_390.md5 | 2 +- inherit_graph_390.png | Bin 3171 -> 4663 bytes inherit_graph_391.map | 6 +- inherit_graph_391.md5 | 2 +- inherit_graph_391.png | Bin 7546 -> 7521 bytes inherit_graph_392.map | 4 +- inherit_graph_392.md5 | 2 +- inherit_graph_392.png | Bin 3987 -> 6361 bytes inherit_graph_393.map | 2 +- inherit_graph_393.md5 | 2 +- inherit_graph_393.png | Bin 4663 -> 3326 bytes inherit_graph_394.map | 4 +- inherit_graph_394.md5 | 2 +- inherit_graph_394.png | Bin 7521 -> 3568 bytes inherit_graph_395.map | 4 +- inherit_graph_395.md5 | 2 +- inherit_graph_395.png | Bin 6361 -> 3727 bytes inherit_graph_396.map | 2 +- inherit_graph_396.md5 | 2 +- inherit_graph_396.png | Bin 3326 -> 2014 bytes inherit_graph_397.map | 2 +- inherit_graph_397.md5 | 2 +- inherit_graph_397.png | Bin 3568 -> 2909 bytes inherit_graph_398.map | 2 +- inherit_graph_398.md5 | 2 +- inherit_graph_398.png | Bin 3727 -> 1605 bytes inherit_graph_399.map | 2 +- inherit_graph_399.md5 | 2 +- inherit_graph_399.png | Bin 2014 -> 2261 bytes inherit_graph_400.map | 2 +- inherit_graph_400.md5 | 2 +- inherit_graph_400.png | Bin 2909 -> 1815 bytes inherit_graph_401.map | 2 +- inherit_graph_401.md5 | 2 +- inherit_graph_401.png | Bin 1605 -> 2253 bytes inherit_graph_402.map | 2 +- inherit_graph_402.md5 | 2 +- inherit_graph_402.png | Bin 2261 -> 3171 bytes inherit_graph_403.map | 2 +- inherit_graph_403.md5 | 2 +- inherit_graph_403.png | Bin 1815 -> 3362 bytes inherit_graph_404.map | 2 +- inherit_graph_404.md5 | 2 +- inherit_graph_404.png | Bin 2253 -> 2866 bytes inherit_graph_405.map | 2 +- inherit_graph_405.md5 | 2 +- inherit_graph_405.png | Bin 3171 -> 1937 bytes inherit_graph_406.map | 2 +- inherit_graph_406.md5 | 2 +- inherit_graph_406.png | Bin 3362 -> 2104 bytes inherit_graph_407.map | 2 +- inherit_graph_407.md5 | 2 +- inherit_graph_407.png | Bin 2866 -> 2773 bytes inherit_graph_408.map | 2 +- inherit_graph_408.md5 | 2 +- inherit_graph_408.png | Bin 1937 -> 3661 bytes inherit_graph_409.map | 2 +- inherit_graph_409.md5 | 2 +- inherit_graph_409.png | Bin 2104 -> 2066 bytes inherit_graph_410.map | 2 +- inherit_graph_410.md5 | 2 +- inherit_graph_410.png | Bin 2773 -> 1735 bytes inherit_graph_411.map | 2 +- inherit_graph_411.md5 | 2 +- inherit_graph_411.png | Bin 3661 -> 2097 bytes inherit_graph_412.map | 2 +- inherit_graph_412.md5 | 2 +- inherit_graph_412.png | Bin 2066 -> 2126 bytes inherit_graph_413.map | 2 +- inherit_graph_413.md5 | 2 +- inherit_graph_413.png | Bin 1735 -> 2127 bytes inherit_graph_414.map | 2 +- inherit_graph_414.md5 | 2 +- inherit_graph_414.png | Bin 2097 -> 1861 bytes inherit_graph_415.map | 2 +- inherit_graph_415.md5 | 2 +- inherit_graph_415.png | Bin 2126 -> 2616 bytes inherit_graph_416.map | 2 +- inherit_graph_416.md5 | 2 +- inherit_graph_416.png | Bin 2127 -> 2446 bytes inherit_graph_417.map | 2 +- inherit_graph_417.md5 | 2 +- inherit_graph_417.png | Bin 1861 -> 2090 bytes inherit_graph_418.map | 2 +- inherit_graph_418.md5 | 2 +- inherit_graph_418.png | Bin 2616 -> 1876 bytes inherit_graph_419.map | 2 +- inherit_graph_419.md5 | 2 +- inherit_graph_419.png | Bin 2446 -> 1481 bytes inherit_graph_420.map | 4 +- inherit_graph_420.md5 | 2 +- inherit_graph_420.png | Bin 2090 -> 2435 bytes inherit_graph_421.map | 2 +- inherit_graph_421.md5 | 2 +- inherit_graph_421.png | Bin 1876 -> 2397 bytes inherit_graph_422.map | 2 +- inherit_graph_422.md5 | 2 +- inherit_graph_422.png | Bin 1481 -> 2460 bytes inherit_graph_423.map | 10 +- inherit_graph_423.md5 | 2 +- inherit_graph_423.png | Bin 2435 -> 11173 bytes inherit_graph_424.map | 2 +- inherit_graph_424.md5 | 2 +- inherit_graph_424.png | Bin 2397 -> 1756 bytes inherit_graph_425.map | 2 +- inherit_graph_425.md5 | 2 +- inherit_graph_425.png | Bin 2460 -> 1867 bytes inherit_graph_426.map | 8 +- inherit_graph_426.md5 | 2 +- inherit_graph_426.png | Bin 11173 -> 2318 bytes inherit_graph_427.map | 2 +- inherit_graph_427.md5 | 2 +- inherit_graph_427.png | Bin 1756 -> 1780 bytes inherit_graph_428.map | 2 +- inherit_graph_428.md5 | 2 +- inherit_graph_428.png | Bin 1867 -> 2204 bytes inherit_graph_429.map | 2 +- inherit_graph_429.md5 | 2 +- inherit_graph_429.png | Bin 2318 -> 2557 bytes inherit_graph_430.map | 2 +- inherit_graph_430.md5 | 2 +- inherit_graph_430.png | Bin 1780 -> 2015 bytes inherit_graph_431.map | 2 +- inherit_graph_431.md5 | 2 +- inherit_graph_431.png | Bin 2204 -> 2819 bytes inherit_graph_432.map | 2 +- inherit_graph_432.md5 | 2 +- inherit_graph_432.png | Bin 2557 -> 2641 bytes inherit_graph_433.map | 2 +- inherit_graph_433.md5 | 2 +- inherit_graph_433.png | Bin 2015 -> 1758 bytes inherit_graph_434.map | 2 +- inherit_graph_434.md5 | 2 +- inherit_graph_434.png | Bin 2819 -> 2471 bytes inherit_graph_435.map | 2 +- inherit_graph_435.md5 | 2 +- inherit_graph_435.png | Bin 2641 -> 2534 bytes inherit_graph_436.map | 2 +- inherit_graph_436.md5 | 2 +- inherit_graph_436.png | Bin 1758 -> 3654 bytes inherit_graph_437.map | 2 +- inherit_graph_437.md5 | 2 +- inherit_graph_437.png | Bin 2471 -> 1991 bytes inherit_graph_438.map | 2 +- inherit_graph_438.md5 | 2 +- inherit_graph_438.png | Bin 2534 -> 3987 bytes inherit_graph_439.map | 2 +- inherit_graph_439.md5 | 2 +- inherit_graph_439.png | Bin 3654 -> 4175 bytes inherit_graph_440.map | 2 +- inherit_graph_440.md5 | 2 +- inherit_graph_440.png | Bin 1991 -> 4734 bytes inherit_graph_441.map | 2 +- inherit_graph_441.md5 | 2 +- inherit_graph_441.png | Bin 3987 -> 4665 bytes inherit_graph_442.map | 2 +- inherit_graph_442.md5 | 2 +- inherit_graph_442.png | Bin 4175 -> 3396 bytes inherit_graph_443.map | 2 +- inherit_graph_443.md5 | 2 +- inherit_graph_443.png | Bin 4734 -> 4769 bytes inherit_graph_444.map | 2 +- inherit_graph_444.md5 | 2 +- inherit_graph_444.png | Bin 4665 -> 4446 bytes inherit_graph_445.map | 2 +- inherit_graph_445.md5 | 2 +- inherit_graph_445.png | Bin 3396 -> 5149 bytes inherit_graph_446.map | 2 +- inherit_graph_446.md5 | 2 +- inherit_graph_446.png | Bin 4769 -> 3993 bytes inherit_graph_447.map | 2 +- inherit_graph_447.md5 | 2 +- inherit_graph_447.png | Bin 4446 -> 1867 bytes inherit_graph_448.map | 2 +- inherit_graph_448.md5 | 2 +- inherit_graph_448.png | Bin 5149 -> 2759 bytes inherit_graph_449.map | 2 +- inherit_graph_449.md5 | 2 +- inherit_graph_449.png | Bin 3993 -> 2998 bytes inherit_graph_450.map | 2 +- inherit_graph_450.md5 | 2 +- inherit_graph_450.png | Bin 1867 -> 2629 bytes inherit_graph_451.map | 2 +- inherit_graph_451.md5 | 2 +- inherit_graph_451.png | Bin 2759 -> 3887 bytes inherit_graph_452.map | 4 +- inherit_graph_452.md5 | 2 +- inherit_graph_452.png | Bin 2998 -> 5313 bytes inherit_graph_453.map | 2 +- inherit_graph_453.md5 | 2 +- inherit_graph_453.png | Bin 2629 -> 3450 bytes inherit_graph_454.map | 8 +- inherit_graph_454.md5 | 2 +- inherit_graph_454.png | Bin 3887 -> 13983 bytes inherit_graph_455.map | 4 +- inherit_graph_455.md5 | 2 +- inherit_graph_455.png | Bin 5313 -> 3894 bytes inherit_graph_456.map | 2 +- inherit_graph_456.md5 | 2 +- inherit_graph_456.png | Bin 3450 -> 3868 bytes inherit_graph_457.map | 14 +- inherit_graph_457.md5 | 2 +- inherit_graph_457.png | Bin 13983 -> 15656 bytes inherit_graph_458.map | 2 +- inherit_graph_458.md5 | 2 +- inherit_graph_458.png | Bin 3894 -> 2761 bytes inherit_graph_459.map | 2 +- inherit_graph_459.md5 | 2 +- inherit_graph_459.png | Bin 3868 -> 2722 bytes inherit_graph_460.map | 14 +- inherit_graph_460.md5 | 2 +- inherit_graph_460.png | Bin 15656 -> 13378 bytes inherit_graph_461.map | 2 +- inherit_graph_461.md5 | 2 +- inherit_graph_461.png | Bin 2761 -> 2631 bytes inherit_graph_462.map | 2 +- inherit_graph_462.md5 | 2 +- inherit_graph_462.png | Bin 2722 -> 2659 bytes inherit_graph_463.map | 10 +- inherit_graph_463.md5 | 2 +- inherit_graph_463.png | Bin 13378 -> 3493 bytes inherit_graph_464.map | 2 +- inherit_graph_464.md5 | 2 +- inherit_graph_464.png | Bin 2631 -> 2898 bytes inherit_graph_465.map | 2 +- inherit_graph_465.md5 | 2 +- inherit_graph_465.png | Bin 2659 -> 2426 bytes inherit_graph_466.map | 8 +- inherit_graph_466.md5 | 2 +- inherit_graph_466.png | Bin 3493 -> 9437 bytes inherit_graph_467.map | 2 +- inherit_graph_467.md5 | 2 +- inherit_graph_467.png | Bin 2898 -> 2488 bytes inherit_graph_468.map | 4 +- inherit_graph_468.md5 | 2 +- inherit_graph_468.png | Bin 2426 -> 4028 bytes inherit_graph_469.map | 6 +- inherit_graph_469.md5 | 2 +- inherit_graph_469.png | Bin 9437 -> 5278 bytes inherit_graph_470.map | 2 +- inherit_graph_470.md5 | 2 +- inherit_graph_470.png | Bin 2488 -> 3494 bytes inherit_graph_471.map | 4 +- inherit_graph_471.md5 | 2 +- inherit_graph_471.png | Bin 4028 -> 3796 bytes inherit_graph_472.map | 2 +- inherit_graph_472.md5 | 2 +- inherit_graph_472.png | Bin 5278 -> 3723 bytes inherit_graph_473.map | 2 +- inherit_graph_473.md5 | 2 +- inherit_graph_473.png | Bin 3494 -> 3399 bytes inherit_graph_474.map | 2 +- inherit_graph_474.md5 | 2 +- inherit_graph_474.png | Bin 3796 -> 2599 bytes inherit_graph_475.map | 2 +- inherit_graph_475.md5 | 2 +- inherit_graph_475.png | Bin 3723 -> 2332 bytes inherit_graph_476.map | 2 +- inherit_graph_476.md5 | 2 +- inherit_graph_476.png | Bin 3399 -> 1537 bytes inherit_graph_477.map | 2 +- inherit_graph_477.md5 | 2 +- inherit_graph_477.png | Bin 2599 -> 2188 bytes inherit_graph_478.map | 2 +- inherit_graph_478.md5 | 2 +- inherit_graph_478.png | Bin 2332 -> 2187 bytes inherit_graph_479.map | 2 +- inherit_graph_479.md5 | 2 +- inherit_graph_479.png | Bin 1537 -> 2143 bytes inherit_graph_480.map | 2 +- inherit_graph_480.md5 | 2 +- inherit_graph_480.png | Bin 2188 -> 2950 bytes inherit_graph_481.map | 2 +- inherit_graph_481.md5 | 2 +- inherit_graph_481.png | Bin 2187 -> 2039 bytes inherit_graph_482.map | 2 +- inherit_graph_482.md5 | 2 +- inherit_graph_482.png | Bin 2143 -> 1899 bytes inherit_graph_483.map | 2 +- inherit_graph_483.md5 | 2 +- inherit_graph_483.png | Bin 2950 -> 1913 bytes inherit_graph_484.map | 2 +- inherit_graph_484.md5 | 2 +- inherit_graph_484.png | Bin 2039 -> 3269 bytes inherit_graph_485.map | 2 +- inherit_graph_485.md5 | 2 +- inherit_graph_485.png | Bin 1899 -> 3122 bytes inherit_graph_486.map | 2 +- inherit_graph_486.md5 | 2 +- inherit_graph_486.png | Bin 1913 -> 2976 bytes inherit_graph_487.map | 2 +- inherit_graph_487.md5 | 2 +- inherit_graph_487.png | Bin 3269 -> 2415 bytes inherit_graph_488.map | 2 +- inherit_graph_488.md5 | 2 +- inherit_graph_488.png | Bin 3122 -> 2751 bytes inherit_graph_489.map | 2 +- inherit_graph_489.md5 | 2 +- inherit_graph_489.png | Bin 2976 -> 2319 bytes inherit_graph_490.map | 2 +- inherit_graph_490.md5 | 2 +- inherit_graph_490.png | Bin 2415 -> 2384 bytes inherit_graph_491.map | 26 +- inherit_graph_491.md5 | 2 +- inherit_graph_491.png | Bin 2751 -> 45108 bytes inherit_graph_492.map | 2 +- inherit_graph_492.md5 | 2 +- inherit_graph_492.png | Bin 2319 -> 2797 bytes inherit_graph_493.map | 2 +- inherit_graph_493.md5 | 2 +- inherit_graph_493.png | Bin 2384 -> 3536 bytes inherit_graph_494.map | 26 +- inherit_graph_494.md5 | 2 +- inherit_graph_494.png | Bin 45108 -> 2704 bytes inherit_graph_495.map | 2 +- inherit_graph_495.md5 | 2 +- inherit_graph_495.png | Bin 2797 -> 2029 bytes inherit_graph_496.map | 2 +- inherit_graph_496.md5 | 2 +- inherit_graph_496.png | Bin 3536 -> 1991 bytes inherit_graph_497.map | 2 +- inherit_graph_497.md5 | 2 +- inherit_graph_497.png | Bin 2704 -> 5467 bytes inherit_graph_498.map | 2 +- inherit_graph_498.md5 | 2 +- inherit_graph_498.png | Bin 2029 -> 6261 bytes inherit_graph_499.map | 2 +- inherit_graph_499.md5 | 2 +- inherit_graph_499.png | Bin 1991 -> 5925 bytes inherit_graph_500.map | 2 +- inherit_graph_500.md5 | 2 +- inherit_graph_500.png | Bin 5467 -> 6400 bytes inherit_graph_501.map | 2 +- inherit_graph_501.md5 | 2 +- inherit_graph_501.png | Bin 6261 -> 6657 bytes inherit_graph_502.map | 2 +- inherit_graph_502.md5 | 2 +- inherit_graph_502.png | Bin 5925 -> 6797 bytes inherit_graph_503.map | 2 +- inherit_graph_503.md5 | 2 +- inherit_graph_503.png | Bin 6400 -> 7160 bytes inherit_graph_504.map | 2 +- inherit_graph_504.md5 | 2 +- inherit_graph_504.png | Bin 6657 -> 6695 bytes inherit_graph_505.map | 2 +- inherit_graph_505.md5 | 2 +- inherit_graph_505.png | Bin 6797 -> 7651 bytes inherit_graph_506.map | 2 +- inherit_graph_506.md5 | 2 +- inherit_graph_506.png | Bin 7160 -> 3150 bytes inherit_graph_507.map | 2 +- inherit_graph_507.md5 | 2 +- inherit_graph_507.png | Bin 6695 -> 3636 bytes inherit_graph_508.map | 2 +- inherit_graph_508.md5 | 2 +- inherit_graph_508.png | Bin 7651 -> 2183 bytes inherit_graph_509.map | 2 +- inherit_graph_509.md5 | 2 +- inherit_graph_509.png | Bin 3150 -> 2709 bytes inherit_graph_510.map | 2 +- inherit_graph_510.md5 | 2 +- inherit_graph_510.png | Bin 3636 -> 2882 bytes inherit_graph_511.map | 2 +- inherit_graph_511.md5 | 2 +- inherit_graph_511.png | Bin 2183 -> 2399 bytes inherit_graph_512.map | 2 +- inherit_graph_512.md5 | 2 +- inherit_graph_512.png | Bin 2709 -> 2223 bytes inherit_graph_513.map | 2 +- inherit_graph_513.md5 | 2 +- inherit_graph_513.png | Bin 2882 -> 1833 bytes inherit_graph_514.map | 2 +- inherit_graph_514.md5 | 2 +- inherit_graph_514.png | Bin 2399 -> 1545 bytes inherit_graph_515.map | 2 +- inherit_graph_515.md5 | 2 +- inherit_graph_515.png | Bin 2223 -> 2578 bytes inherit_graph_516.map | 2 +- inherit_graph_516.md5 | 2 +- inherit_graph_516.png | Bin 1833 -> 3128 bytes inherit_graph_517.map | 2 +- inherit_graph_517.md5 | 2 +- inherit_graph_517.png | Bin 1545 -> 3512 bytes inherit_graph_518.map | 2 +- inherit_graph_518.md5 | 2 +- inherit_graph_518.png | Bin 2578 -> 3697 bytes inherit_graph_519.map | 2 +- inherit_graph_519.md5 | 2 +- inherit_graph_519.png | Bin 3128 -> 3280 bytes inherit_graph_520.map | 2 +- inherit_graph_520.md5 | 2 +- inherit_graph_520.png | Bin 3512 -> 2480 bytes inherit_graph_521.map | 2 +- inherit_graph_521.md5 | 2 +- inherit_graph_521.png | Bin 3697 -> 3325 bytes inherit_graph_522.map | 2 +- inherit_graph_522.md5 | 2 +- inherit_graph_522.png | Bin 3280 -> 2499 bytes inherit_graph_523.map | 4 +- inherit_graph_523.md5 | 2 +- inherit_graph_523.png | Bin 2480 -> 6651 bytes inherit_graph_524.map | 2 +- inherit_graph_524.md5 | 2 +- inherit_graph_524.png | Bin 3325 -> 4275 bytes inherit_graph_525.map | 2 +- inherit_graph_525.md5 | 2 +- inherit_graph_525.png | Bin 2499 -> 5383 bytes inherit_graph_526.map | 4 +- inherit_graph_526.md5 | 2 +- inherit_graph_526.png | Bin 6651 -> 2113 bytes inherit_graph_527.map | 2 +- inherit_graph_527.md5 | 2 +- inherit_graph_527.png | Bin 4275 -> 1760 bytes inherit_graph_528.map | 2 +- inherit_graph_528.md5 | 2 +- inherit_graph_528.png | Bin 5383 -> 3948 bytes inherit_graph_529.map | 2 +- inherit_graph_529.md5 | 2 +- inherit_graph_529.png | Bin 2113 -> 5568 bytes inherit_graph_530.map | 2 +- inherit_graph_530.md5 | 2 +- inherit_graph_530.png | Bin 1760 -> 3431 bytes inherit_graph_531.map | 2 +- inherit_graph_531.md5 | 2 +- inherit_graph_531.png | Bin 3948 -> 4071 bytes inherit_graph_532.map | 2 +- inherit_graph_532.md5 | 2 +- inherit_graph_532.png | Bin 5568 -> 3374 bytes inherit_graph_533.map | 2 +- inherit_graph_533.md5 | 2 +- inherit_graph_533.png | Bin 3431 -> 2908 bytes inherit_graph_534.map | 2 +- inherit_graph_534.md5 | 2 +- inherit_graph_534.png | Bin 4071 -> 3147 bytes inherit_graph_535.map | 4 +- inherit_graph_535.md5 | 2 +- inherit_graph_535.png | Bin 3374 -> 4699 bytes inherit_graph_536.map | 2 +- inherit_graph_536.md5 | 2 +- inherit_graph_536.png | Bin 2908 -> 2879 bytes inherit_graph_537.map | 2 +- inherit_graph_537.md5 | 2 +- inherit_graph_537.png | Bin 3147 -> 3103 bytes inherit_graph_538.map | 8 +- inherit_graph_538.md5 | 2 +- inherit_graph_538.png | Bin 4699 -> 7099 bytes inherit_graph_539.map | 2 +- inherit_graph_539.md5 | 2 +- inherit_graph_539.png | Bin 2879 -> 3128 bytes inherit_graph_540.map | 6 +- inherit_graph_540.md5 | 2 +- inherit_graph_540.png | Bin 3103 -> 7593 bytes inherit_graph_541.map | 6 +- inherit_graph_541.md5 | 2 +- inherit_graph_541.png | Bin 7099 -> 2783 bytes inherit_graph_542.map | 2 +- inherit_graph_542.md5 | 2 +- inherit_graph_542.png | Bin 3128 -> 3606 bytes inherit_graph_543.map | 6 +- inherit_graph_543.md5 | 2 +- inherit_graph_543.png | Bin 7593 -> 2156 bytes inherit_graph_544.map | 2 +- inherit_graph_544.md5 | 2 +- inherit_graph_544.png | Bin 2783 -> 2363 bytes inherit_graph_545.map | 2 +- inherit_graph_545.md5 | 2 +- inherit_graph_545.png | Bin 3606 -> 2578 bytes inherit_graph_546.map | 8 +- inherit_graph_546.md5 | 2 +- inherit_graph_546.png | Bin 2156 -> 8200 bytes inherit_graph_547.map | 6 +- inherit_graph_547.md5 | 2 +- inherit_graph_547.png | Bin 2363 -> 8446 bytes inherit_graph_548.map | 2 +- inherit_graph_548.md5 | 2 +- inherit_graph_548.png | Bin 2578 -> 2462 bytes inherit_graph_549.map | 8 +- inherit_graph_549.md5 | 2 +- inherit_graph_549.png | Bin 8200 -> 2410 bytes inherit_graph_550.map | 6 +- inherit_graph_550.md5 | 2 +- inherit_graph_550.png | Bin 8446 -> 5239 bytes inherit_graph_551.map | 2 +- inherit_graph_551.md5 | 2 +- inherit_graph_551.png | Bin 2462 -> 5449 bytes inherit_graph_552.map | 6 +- inherit_graph_552.md5 | 2 +- inherit_graph_552.png | Bin 2410 -> 7260 bytes inherit_graph_553.map | 2 +- inherit_graph_553.md5 | 2 +- inherit_graph_553.png | Bin 5239 -> 2683 bytes inherit_graph_554.map | 2 +- inherit_graph_554.md5 | 2 +- inherit_graph_554.png | Bin 5449 -> 3153 bytes inherit_graph_555.map | 6 +- inherit_graph_555.md5 | 2 +- inherit_graph_555.png | Bin 7260 -> 3369 bytes inherit_graph_556.map | 2 +- inherit_graph_556.md5 | 2 +- inherit_graph_556.png | Bin 2683 -> 3549 bytes inherit_graph_557.map | 2 +- inherit_graph_557.md5 | 2 +- inherit_graph_557.png | Bin 3153 -> 2504 bytes inherit_graph_558.map | 2 +- inherit_graph_558.md5 | 2 +- inherit_graph_558.png | Bin 3369 -> 2788 bytes inherit_graph_559.map | 2 +- inherit_graph_559.md5 | 2 +- inherit_graph_559.png | Bin 3549 -> 1856 bytes inherit_graph_560.map | 2 +- inherit_graph_560.md5 | 2 +- inherit_graph_560.png | Bin 2504 -> 1330 bytes inherit_graph_561.map | 2 +- inherit_graph_561.md5 | 2 +- inherit_graph_561.png | Bin 2788 -> 2368 bytes inherit_graph_562.map | 2 +- inherit_graph_562.md5 | 2 +- inherit_graph_562.png | Bin 1856 -> 2303 bytes inherit_graph_563.map | 2 +- inherit_graph_563.md5 | 2 +- inherit_graph_563.png | Bin 1330 -> 2294 bytes inherit_graph_564.map | 2 +- inherit_graph_564.md5 | 2 +- inherit_graph_564.png | Bin 2368 -> 2312 bytes inherit_graph_565.map | 2 +- inherit_graph_565.md5 | 2 +- inherit_graph_565.png | Bin 2303 -> 1893 bytes inherit_graph_566.map | 2 +- inherit_graph_566.md5 | 2 +- inherit_graph_566.png | Bin 2294 -> 2380 bytes inherit_graph_567.map | 2 +- inherit_graph_567.md5 | 2 +- inherit_graph_567.png | Bin 2312 -> 3234 bytes inherit_graph_568.map | 2 +- inherit_graph_568.md5 | 2 +- inherit_graph_568.png | Bin 1893 -> 3807 bytes inherit_graph_569.map | 2 +- inherit_graph_569.md5 | 2 +- inherit_graph_569.png | Bin 2380 -> 4368 bytes inherit_graph_570.map | 2 +- inherit_graph_570.md5 | 2 +- inherit_graph_570.png | Bin 3234 -> 4454 bytes inherit_graph_571.map | 2 +- inherit_graph_571.md5 | 2 +- inherit_graph_571.png | Bin 3807 -> 5375 bytes inherit_graph_572.map | 2 +- inherit_graph_572.md5 | 2 +- inherit_graph_572.png | Bin 4368 -> 2123 bytes inherit_graph_573.map | 2 +- inherit_graph_573.md5 | 2 +- inherit_graph_573.png | Bin 4454 -> 3120 bytes inherit_graph_574.map | 2 +- inherit_graph_574.md5 | 2 +- inherit_graph_574.png | Bin 5375 -> 2558 bytes inherit_graph_575.map | 2 +- inherit_graph_575.md5 | 2 +- inherit_graph_575.png | Bin 2123 -> 2052 bytes inherit_graph_576.map | 2 +- inherit_graph_576.md5 | 2 +- inherit_graph_576.png | Bin 3120 -> 2118 bytes inherit_graph_577.map | 2 +- inherit_graph_577.md5 | 2 +- inherit_graph_577.png | Bin 2558 -> 1440 bytes inherit_graph_578.map | 2 +- inherit_graph_578.md5 | 2 +- inherit_graph_578.png | Bin 2052 -> 1879 bytes inherit_graph_579.map | 2 +- inherit_graph_579.md5 | 2 +- inherit_graph_579.png | Bin 2118 -> 2618 bytes inherit_graph_580.map | 2 +- inherit_graph_580.md5 | 2 +- inherit_graph_580.png | Bin 1440 -> 2487 bytes inherit_graph_581.map | 2 +- inherit_graph_581.md5 | 2 +- inherit_graph_581.png | Bin 1879 -> 3701 bytes inherit_graph_582.map | 2 +- inherit_graph_582.md5 | 2 +- inherit_graph_582.png | Bin 2618 -> 2308 bytes inherit_graph_583.map | 2 +- inherit_graph_583.md5 | 2 +- inherit_graph_583.png | Bin 2487 -> 2772 bytes inherit_graph_584.map | 2 +- inherit_graph_584.md5 | 2 +- inherit_graph_584.png | Bin 3701 -> 3631 bytes inherit_graph_585.map | 2 +- inherit_graph_585.md5 | 2 +- inherit_graph_585.png | Bin 2308 -> 4634 bytes inherit_graph_586.map | 2 +- inherit_graph_586.md5 | 2 +- inherit_graph_586.png | Bin 2772 -> 4951 bytes inherit_graph_587.map | 2 +- inherit_graph_587.md5 | 2 +- inherit_graph_587.png | Bin 3631 -> 4169 bytes inherit_graph_588.map | 2 +- inherit_graph_588.md5 | 2 +- inherit_graph_588.png | Bin 4634 -> 3785 bytes inherit_graph_589.map | 2 +- inherit_graph_589.md5 | 2 +- inherit_graph_589.png | Bin 4951 -> 5064 bytes inherit_graph_590.map | 2 +- inherit_graph_590.md5 | 2 +- inherit_graph_590.png | Bin 4169 -> 4314 bytes inherit_graph_591.map | 2 +- inherit_graph_591.md5 | 2 +- inherit_graph_591.png | Bin 3785 -> 3930 bytes inherit_graph_592.map | 2 +- inherit_graph_592.md5 | 2 +- inherit_graph_592.png | Bin 5064 -> 5279 bytes inherit_graph_593.map | 2 +- inherit_graph_593.md5 | 2 +- inherit_graph_593.png | Bin 4314 -> 4444 bytes inherit_graph_594.map | 6 +- inherit_graph_594.md5 | 2 +- inherit_graph_594.png | Bin 3930 -> 7780 bytes inherit_graph_595.map | 2 +- inherit_graph_595.md5 | 2 +- inherit_graph_595.png | Bin 5279 -> 3784 bytes inherit_graph_596.map | 2 +- inherit_graph_596.md5 | 2 +- inherit_graph_596.png | Bin 4444 -> 3995 bytes inherit_graph_597.map | 6 +- inherit_graph_597.md5 | 2 +- inherit_graph_597.png | Bin 7780 -> 3990 bytes inherit_graph_598.map | 2 +- inherit_graph_598.md5 | 2 +- inherit_graph_598.png | Bin 3784 -> 4494 bytes inherit_graph_599.map | 2 +- inherit_graph_599.md5 | 2 +- inherit_graph_599.png | Bin 3995 -> 3846 bytes inherit_graph_600.map | 2 +- inherit_graph_600.md5 | 2 +- inherit_graph_600.png | Bin 3990 -> 3499 bytes inherit_graph_601.map | 2 +- inherit_graph_601.md5 | 2 +- inherit_graph_601.png | Bin 4494 -> 3032 bytes inherit_graph_602.map | 2 +- inherit_graph_602.md5 | 2 +- inherit_graph_602.png | Bin 3846 -> 2649 bytes inherit_graph_603.map | 2 +- inherit_graph_603.md5 | 2 +- inherit_graph_603.png | Bin 3499 -> 2487 bytes inherit_graph_604.map | 2 +- inherit_graph_604.md5 | 2 +- inherit_graph_604.png | Bin 3032 -> 2295 bytes inherit_graph_605.map | 2 +- inherit_graph_605.md5 | 2 +- inherit_graph_605.png | Bin 2649 -> 2820 bytes inherit_graph_606.map | 2 +- inherit_graph_606.md5 | 2 +- inherit_graph_606.png | Bin 2487 -> 2257 bytes inherit_graph_607.map | 2 +- inherit_graph_607.md5 | 2 +- inherit_graph_607.png | Bin 2295 -> 2777 bytes inherit_graph_608.map | 2 +- inherit_graph_608.md5 | 2 +- inherit_graph_608.png | Bin 2820 -> 2298 bytes inherit_graph_609.map | 2 +- inherit_graph_609.md5 | 2 +- inherit_graph_609.png | Bin 2257 -> 3017 bytes inherit_graph_610.map | 2 +- inherit_graph_610.md5 | 2 +- inherit_graph_610.png | Bin 2777 -> 3298 bytes inherit_graph_611.map | 2 +- inherit_graph_611.md5 | 2 +- inherit_graph_611.png | Bin 2298 -> 2951 bytes inherit_graph_612.map | 2 +- inherit_graph_612.md5 | 2 +- inherit_graph_612.png | Bin 3017 -> 1762 bytes inherit_graph_613.map | 2 +- inherit_graph_613.md5 | 2 +- inherit_graph_613.png | Bin 3298 -> 1686 bytes inherit_graph_614.map | 2 +- inherit_graph_614.md5 | 2 +- inherit_graph_614.png | Bin 2951 -> 3759 bytes inherit_graph_615.map | 6 +- inherit_graph_615.md5 | 2 +- inherit_graph_615.png | Bin 1762 -> 8717 bytes inherit_graph_616.map | 2 +- inherit_graph_616.md5 | 2 +- inherit_graph_616.png | Bin 1686 -> 3506 bytes inherit_graph_617.map | 2 +- inherit_graph_617.md5 | 2 +- inherit_graph_617.png | Bin 3759 -> 3741 bytes inherit_graph_618.map | 6 +- inherit_graph_618.md5 | 2 +- inherit_graph_618.png | Bin 8717 -> 1966 bytes inherit_graph_619.map | 2 +- inherit_graph_619.md5 | 2 +- inherit_graph_619.png | Bin 3506 -> 2118 bytes inherit_graph_620.map | 2 +- inherit_graph_620.md5 | 2 +- inherit_graph_620.png | Bin 3741 -> 3151 bytes inherit_graph_621.map | 2 +- inherit_graph_621.md5 | 2 +- inherit_graph_621.png | Bin 1966 -> 2633 bytes inherit_graph_622.map | 2 +- inherit_graph_622.md5 | 2 +- inherit_graph_622.png | Bin 2118 -> 2461 bytes inherit_graph_623.map | 2 +- inherit_graph_623.md5 | 2 +- inherit_graph_623.png | Bin 3151 -> 2927 bytes inherit_graph_624.map | 2 +- inherit_graph_624.md5 | 2 +- inherit_graph_624.png | Bin 2633 -> 2205 bytes inherit_graph_625.map | 2 +- inherit_graph_625.md5 | 2 +- inherit_graph_625.png | Bin 2461 -> 3110 bytes inherit_graph_626.map | 2 +- inherit_graph_626.md5 | 2 +- inherit_graph_626.png | Bin 2927 -> 2431 bytes inherit_graph_627.map | 2 +- inherit_graph_627.md5 | 2 +- inherit_graph_627.png | Bin 2205 -> 2801 bytes inherit_graph_628.map | 2 +- inherit_graph_628.md5 | 2 +- inherit_graph_628.png | Bin 3110 -> 1829 bytes inherit_graph_629.map | 2 +- inherit_graph_629.md5 | 2 +- inherit_graph_629.png | Bin 2431 -> 1960 bytes inherit_graph_630.map | 2 +- inherit_graph_630.md5 | 2 +- inherit_graph_630.png | Bin 2801 -> 1510 bytes inherit_graph_631.map | 2 +- inherit_graph_631.md5 | 2 +- inherit_graph_631.png | Bin 1829 -> 1736 bytes inherit_graph_632.map | 2 +- inherit_graph_632.md5 | 2 +- inherit_graph_632.png | Bin 1960 -> 1940 bytes inherit_graph_633.map | 2 +- inherit_graph_633.md5 | 2 +- inherit_graph_633.png | Bin 1510 -> 2996 bytes inherit_graph_634.map | 2 +- inherit_graph_634.md5 | 2 +- inherit_graph_634.png | Bin 1736 -> 2272 bytes inherit_graph_635.map | 2 +- inherit_graph_635.md5 | 2 +- inherit_graph_635.png | Bin 1940 -> 2398 bytes inherit_graph_636.map | 2 +- inherit_graph_636.md5 | 2 +- inherit_graph_636.png | Bin 2996 -> 2372 bytes inherit_graph_637.map | 2 +- inherit_graph_637.md5 | 2 +- inherit_graph_637.png | Bin 2272 -> 3098 bytes inherit_graph_638.map | 2 +- inherit_graph_638.md5 | 2 +- inherit_graph_638.png | Bin 2398 -> 1919 bytes inherit_graph_639.map | 2 +- inherit_graph_639.md5 | 2 +- inherit_graph_639.png | Bin 2372 -> 3430 bytes inherit_graph_640.map | 2 +- inherit_graph_640.md5 | 2 +- inherit_graph_640.png | Bin 3098 -> 1816 bytes inherit_graph_641.map | 2 +- inherit_graph_641.md5 | 2 +- inherit_graph_641.png | Bin 1919 -> 1459 bytes inherit_graph_642.map | 2 +- inherit_graph_642.md5 | 2 +- inherit_graph_642.png | Bin 3430 -> 2153 bytes inherit_graph_643.map | 2 +- inherit_graph_643.md5 | 2 +- inherit_graph_643.png | Bin 1816 -> 3359 bytes inherit_graph_644.map | 2 +- inherit_graph_644.md5 | 2 +- inherit_graph_644.png | Bin 1459 -> 3040 bytes inherit_graph_645.map | 2 +- inherit_graph_645.md5 | 2 +- inherit_graph_645.png | Bin 2153 -> 3142 bytes inherit_graph_646.map | 2 +- inherit_graph_646.md5 | 2 +- inherit_graph_646.png | Bin 3359 -> 1956 bytes inherit_graph_647.map | 2 +- inherit_graph_647.md5 | 2 +- inherit_graph_647.png | Bin 3040 -> 1636 bytes inherit_graph_648.map | 2 +- inherit_graph_648.md5 | 2 +- inherit_graph_648.png | Bin 3142 -> 1662 bytes inherit_graph_649.map | 4 +- inherit_graph_649.md5 | 2 +- inherit_graph_649.png | Bin 1956 -> 4237 bytes inherit_graph_650.map | 2 +- inherit_graph_650.md5 | 2 +- inherit_graph_650.png | Bin 1636 -> 2048 bytes inherit_graph_651.map | 2 +- inherit_graph_651.md5 | 2 +- inherit_graph_651.png | Bin 1662 -> 3688 bytes inherit_graph_652.map | 4 +- inherit_graph_652.md5 | 2 +- inherit_graph_652.png | Bin 4237 -> 2882 bytes inherit_graph_653.map | 2 +- inherit_graph_653.md5 | 2 +- inherit_graph_653.png | Bin 2048 -> 3184 bytes inherit_graph_654.map | 4 +- inherit_graph_654.md5 | 2 +- inherit_graph_654.png | Bin 3688 -> 3879 bytes inherit_graph_655.map | 2 +- inherit_graph_655.md5 | 2 +- inherit_graph_655.png | Bin 2882 -> 3085 bytes inherit_graph_656.map | 2 +- inherit_graph_656.md5 | 2 +- inherit_graph_656.png | Bin 3184 -> 1809 bytes inherit_graph_657.map | 4 +- inherit_graph_657.md5 | 2 +- inherit_graph_657.png | Bin 3879 -> 3243 bytes inherit_graph_658.map | 2 +- inherit_graph_658.md5 | 2 +- inherit_graph_658.png | Bin 3085 -> 3090 bytes inherit_graph_659.map | 2 +- inherit_graph_659.md5 | 2 +- inherit_graph_659.png | Bin 1809 -> 2603 bytes inherit_graph_660.map | 2 +- inherit_graph_660.md5 | 2 +- inherit_graph_660.png | Bin 3243 -> 2134 bytes inherit_graph_661.map | 4 +- inherit_graph_661.md5 | 2 +- inherit_graph_661.png | Bin 3090 -> 3055 bytes inherit_graph_662.map | 2 +- inherit_graph_662.md5 | 2 +- inherit_graph_662.png | Bin 2603 -> 3888 bytes inherit_graph_663.map | 10 +- inherit_graph_663.md5 | 2 +- inherit_graph_663.png | Bin 2134 -> 17059 bytes inherit_graph_664.map | 4 +- inherit_graph_664.md5 | 2 +- inherit_graph_664.png | Bin 3055 -> 2930 bytes inherit_graph_665.map | 2 +- inherit_graph_665.md5 | 2 +- inherit_graph_665.png | Bin 3888 -> 4652 bytes inherit_graph_666.map | 10 +- inherit_graph_666.md5 | 2 +- inherit_graph_666.png | Bin 17059 -> 4421 bytes inherit_graph_667.map | 2 +- inherit_graph_667.md5 | 2 +- inherit_graph_667.png | Bin 2930 -> 4309 bytes inherit_graph_668.map | 2 +- inherit_graph_668.md5 | 2 +- inherit_graph_668.png | Bin 4652 -> 3701 bytes inherit_graph_669.map | 2 +- inherit_graph_669.md5 | 2 +- inherit_graph_669.png | Bin 4421 -> 3113 bytes inherit_graph_670.map | 6 +- inherit_graph_670.md5 | 2 +- inherit_graph_670.png | Bin 4309 -> 9530 bytes inherit_graph_671.map | 13 +- inherit_graph_671.md5 | 2 +- inherit_graph_671.png | Bin 3701 -> 21072 bytes inherit_graph_672.map | 2 +- inherit_graph_672.md5 | 2 +- inherit_graph_672.png | Bin 3113 -> 2142 bytes inherit_graph_673.map | 6 +- inherit_graph_673.md5 | 2 +- inherit_graph_673.png | Bin 9530 -> 3285 bytes inherit_graph_674.map | 13 +- inherit_graph_674.md5 | 2 +- inherit_graph_674.png | Bin 21072 -> 3707 bytes inherit_graph_675.map | 2 +- inherit_graph_675.md5 | 2 +- inherit_graph_675.png | Bin 2142 -> 3080 bytes inherit_graph_676.map | 2 +- inherit_graph_676.md5 | 2 +- inherit_graph_676.png | Bin 3285 -> 3951 bytes inherit_graph_677.map | 2 +- inherit_graph_677.md5 | 2 +- inherit_graph_677.png | Bin 3707 -> 3230 bytes inherit_graph_678.map | 2 +- inherit_graph_678.md5 | 2 +- inherit_graph_678.png | Bin 3080 -> 4323 bytes inherit_graph_679.map | 2 +- inherit_graph_679.md5 | 2 +- inherit_graph_679.png | Bin 3951 -> 1503 bytes inherit_graph_680.map | 2 +- inherit_graph_680.md5 | 2 +- inherit_graph_680.png | Bin 3230 -> 2029 bytes inherit_graph_681.map | 2 +- inherit_graph_681.md5 | 2 +- inherit_graph_681.png | Bin 4323 -> 2069 bytes inherit_graph_682.map | 2 +- inherit_graph_682.md5 | 2 +- inherit_graph_682.png | Bin 1503 -> 2584 bytes inherit_graph_683.map | 2 +- inherit_graph_683.md5 | 2 +- inherit_graph_683.png | Bin 2029 -> 2094 bytes inherit_graph_684.map | 2 +- inherit_graph_684.md5 | 2 +- inherit_graph_684.png | Bin 2069 -> 2799 bytes inherit_graph_685.map | 2 +- inherit_graph_685.md5 | 2 +- inherit_graph_685.png | Bin 2584 -> 3584 bytes inherit_graph_686.map | 2 +- inherit_graph_686.md5 | 2 +- inherit_graph_686.png | Bin 2094 -> 1398 bytes inherit_graph_687.map | 2 +- inherit_graph_687.md5 | 2 +- inherit_graph_687.png | Bin 2799 -> 3699 bytes inherit_graph_688.map | 2 +- inherit_graph_688.md5 | 2 +- inherit_graph_688.png | Bin 3584 -> 4046 bytes inherit_graph_689.map | 2 +- inherit_graph_689.md5 | 2 +- inherit_graph_689.png | Bin 1398 -> 3618 bytes inherit_graph_690.map | 2 +- inherit_graph_690.md5 | 2 +- inherit_graph_690.png | Bin 3699 -> 3283 bytes inherit_graph_691.map | 2 +- inherit_graph_691.md5 | 2 +- inherit_graph_691.png | Bin 4046 -> 2794 bytes inherit_graph_692.map | 6 +- inherit_graph_692.md5 | 2 +- inherit_graph_692.png | Bin 3618 -> 10636 bytes inherit_graph_693.map | 2 +- inherit_graph_693.md5 | 2 +- inherit_graph_693.png | Bin 3283 -> 2957 bytes inherit_graph_694.map | 2 +- inherit_graph_694.md5 | 2 +- inherit_graph_694.png | Bin 2794 -> 3010 bytes inherit_graph_695.map | 6 +- inherit_graph_695.md5 | 2 +- inherit_graph_695.png | Bin 10636 -> 2234 bytes inherit_graph_696.map | 2 +- inherit_graph_696.md5 | 2 +- inherit_graph_696.png | Bin 2957 -> 3718 bytes inherit_graph_697.map | 2 +- inherit_graph_697.md5 | 2 +- inherit_graph_697.png | Bin 3010 -> 10518 bytes inherit_graph_698.map | 2 +- inherit_graph_698.md5 | 2 +- inherit_graph_698.png | Bin 2234 -> 11038 bytes inherit_graph_699.map | 2 +- inherit_graph_699.md5 | 2 +- inherit_graph_699.png | Bin 3718 -> 10958 bytes inherit_graph_700.map | 2 +- inherit_graph_700.md5 | 2 +- inherit_graph_700.png | Bin 10518 -> 10865 bytes inherit_graph_701.map | 2 +- inherit_graph_701.md5 | 2 +- inherit_graph_701.png | Bin 11038 -> 4551 bytes inherit_graph_702.map | 2 +- inherit_graph_702.md5 | 2 +- inherit_graph_702.png | Bin 10958 -> 4164 bytes inherit_graph_703.map | 2 +- inherit_graph_703.md5 | 2 +- inherit_graph_703.png | Bin 10865 -> 4179 bytes inherit_graph_704.map | 2 +- inherit_graph_704.md5 | 2 +- inherit_graph_704.png | Bin 4551 -> 4147 bytes inherit_graph_705.map | 2 +- inherit_graph_705.md5 | 2 +- inherit_graph_705.png | Bin 4164 -> 4927 bytes inherit_graph_706.map | 2 +- inherit_graph_706.md5 | 2 +- inherit_graph_706.png | Bin 4179 -> 5369 bytes inherit_graph_707.map | 2 +- inherit_graph_707.md5 | 2 +- inherit_graph_707.png | Bin 4147 -> 5413 bytes inherit_graph_708.map | 2 +- inherit_graph_708.md5 | 2 +- inherit_graph_708.png | Bin 4927 -> 5108 bytes inherit_graph_709.map | 2 +- inherit_graph_709.md5 | 2 +- inherit_graph_709.png | Bin 5369 -> 2259 bytes inherit_graph_710.map | 2 +- inherit_graph_710.md5 | 2 +- inherit_graph_710.png | Bin 5413 -> 3837 bytes inherit_graph_711.map | 2 +- inherit_graph_711.md5 | 2 +- inherit_graph_711.png | Bin 5108 -> 3791 bytes inherit_graph_712.map | 2 +- inherit_graph_712.md5 | 2 +- inherit_graph_712.png | Bin 2259 -> 3568 bytes inherit_graph_713.map | 2 +- inherit_graph_713.md5 | 2 +- inherit_graph_713.png | Bin 3837 -> 3617 bytes inherit_graph_714.map | 2 +- inherit_graph_714.md5 | 2 +- inherit_graph_714.png | Bin 3791 -> 2727 bytes inherit_graph_715.map | 8 +- inherit_graph_715.md5 | 2 +- inherit_graph_715.png | Bin 3568 -> 11742 bytes inherit_graph_716.map | 2 +- inherit_graph_716.md5 | 2 +- inherit_graph_716.png | Bin 3617 -> 3877 bytes inherit_graph_717.map | 2 +- inherit_graph_717.md5 | 2 +- inherit_graph_717.png | Bin 2727 -> 2513 bytes inherit_graph_718.map | 8 +- inherit_graph_718.md5 | 2 +- inherit_graph_718.png | Bin 11742 -> 2811 bytes inherit_graph_719.map | 2 +- inherit_graph_719.md5 | 2 +- inherit_graph_719.png | Bin 3877 -> 3444 bytes inherit_graph_720.map | 2 +- inherit_graph_720.md5 | 2 +- inherit_graph_720.png | Bin 2513 -> 3263 bytes inherit_graph_721.map | 2 +- inherit_graph_721.md5 | 2 +- inherit_graph_721.png | Bin 2811 -> 3372 bytes inherit_graph_722.map | 2 +- inherit_graph_722.md5 | 2 +- inherit_graph_722.png | Bin 3444 -> 2303 bytes inherit_graph_723.map | 2 +- inherit_graph_723.md5 | 2 +- inherit_graph_723.png | Bin 3263 -> 3394 bytes inherit_graph_724.map | 2 +- inherit_graph_724.md5 | 2 +- inherit_graph_724.png | Bin 3372 -> 3849 bytes inherit_graph_725.map | 2 +- inherit_graph_725.md5 | 2 +- inherit_graph_725.png | Bin 2303 -> 3211 bytes inherit_graph_726.map | 2 +- inherit_graph_726.md5 | 2 +- inherit_graph_726.png | Bin 3394 -> 3568 bytes inherit_graph_727.map | 2 +- inherit_graph_727.md5 | 2 +- inherit_graph_727.png | Bin 3849 -> 2947 bytes inherit_graph_728.map | 2 +- inherit_graph_728.md5 | 2 +- inherit_graph_728.png | Bin 3211 -> 2445 bytes inherit_graph_729.map | 2 +- inherit_graph_729.md5 | 2 +- inherit_graph_729.png | Bin 3568 -> 3648 bytes inherit_graph_730.map | 2 +- inherit_graph_730.md5 | 2 +- inherit_graph_730.png | Bin 2947 -> 4345 bytes inherit_graph_731.map | 2 +- inherit_graph_731.md5 | 2 +- inherit_graph_731.png | Bin 2445 -> 4599 bytes inherit_graph_732.map | 2 +- inherit_graph_732.md5 | 2 +- inherit_graph_732.png | Bin 3648 -> 2558 bytes inherit_graph_733.map | 2 +- inherit_graph_733.md5 | 2 +- inherit_graph_733.png | Bin 4345 -> 4228 bytes inherit_graph_734.map | 2 +- inherit_graph_734.md5 | 2 +- inherit_graph_734.png | Bin 4599 -> 2439 bytes inherit_graph_735.map | 4 +- inherit_graph_735.md5 | 2 +- inherit_graph_735.png | Bin 2558 -> 5239 bytes inherit_graph_736.map | 2 +- inherit_graph_736.md5 | 2 +- inherit_graph_736.png | Bin 4228 -> 2455 bytes inherit_graph_737.map | 2 +- inherit_graph_737.md5 | 2 +- inherit_graph_737.png | Bin 2439 -> 2974 bytes inherit_graph_738.map | 4 +- inherit_graph_738.md5 | 2 +- inherit_graph_738.png | Bin 5239 -> 3347 bytes inherit_graph_739.map | 2 +- inherit_graph_739.md5 | 2 +- inherit_graph_739.png | Bin 2455 -> 3170 bytes inherit_graph_740.map | 2 +- inherit_graph_740.md5 | 2 +- inherit_graph_740.png | Bin 2974 -> 4136 bytes inherit_graph_741.map | 2 +- inherit_graph_741.md5 | 2 +- inherit_graph_741.png | Bin 3347 -> 4257 bytes inherit_graph_742.map | 2 +- inherit_graph_742.md5 | 2 +- inherit_graph_742.png | Bin 3170 -> 4107 bytes inherit_graph_743.map | 2 +- inherit_graph_743.md5 | 2 +- inherit_graph_743.png | Bin 4136 -> 7883 bytes inherit_graph_744.map | 2 +- inherit_graph_744.md5 | 2 +- inherit_graph_744.png | Bin 4257 -> 3399 bytes inherit_graph_745.map | 2 +- inherit_graph_745.md5 | 2 +- inherit_graph_745.png | Bin 4107 -> 2592 bytes inherit_graph_746.map | 2 +- inherit_graph_746.md5 | 2 +- inherit_graph_746.png | Bin 7883 -> 4336 bytes inherit_graph_747.map | 2 +- inherit_graph_747.md5 | 2 +- inherit_graph_747.png | Bin 3399 -> 3972 bytes inherit_graph_748.map | 2 +- inherit_graph_748.md5 | 2 +- inherit_graph_748.png | Bin 2592 -> 2573 bytes inherit_graph_749.map | 2 +- inherit_graph_749.md5 | 2 +- inherit_graph_749.png | Bin 4336 -> 3161 bytes inherit_graph_750.map | 2 +- inherit_graph_750.md5 | 2 +- inherit_graph_750.png | Bin 3972 -> 2108 bytes inherit_graph_751.map | 2 +- inherit_graph_751.md5 | 2 +- inherit_graph_751.png | Bin 2573 -> 2958 bytes inherit_graph_752.map | 2 +- inherit_graph_752.md5 | 2 +- inherit_graph_752.png | Bin 3161 -> 3310 bytes inherit_graph_753.map | 2 +- inherit_graph_753.md5 | 2 +- inherit_graph_753.png | Bin 2108 -> 2628 bytes inherit_graph_754.map | 2 +- inherit_graph_754.md5 | 2 +- inherit_graph_754.png | Bin 2958 -> 3418 bytes inherit_graph_755.map | 2 +- inherit_graph_755.md5 | 2 +- inherit_graph_755.png | Bin 3310 -> 3189 bytes inherit_graph_756.map | 2 +- inherit_graph_756.md5 | 2 +- inherit_graph_756.png | Bin 2628 -> 2658 bytes inherit_graph_757.map | 2 +- inherit_graph_757.md5 | 2 +- inherit_graph_757.png | Bin 3418 -> 2524 bytes inherit_graph_758.map | 2 +- inherit_graph_758.md5 | 2 +- inherit_graph_758.png | Bin 3189 -> 1864 bytes inherit_graph_759.map | 2 +- inherit_graph_759.md5 | 2 +- inherit_graph_759.png | Bin 2658 -> 3876 bytes inherit_graph_760.map | 2 +- inherit_graph_760.md5 | 2 +- inherit_graph_760.png | Bin 2524 -> 2624 bytes inherit_graph_761.map | 2 +- inherit_graph_761.md5 | 2 +- inherit_graph_761.png | Bin 1864 -> 3540 bytes inherit_graph_762.map | 2 +- inherit_graph_762.md5 | 2 +- inherit_graph_762.png | Bin 3876 -> 2677 bytes inherit_graph_763.map | 2 +- inherit_graph_763.md5 | 2 +- inherit_graph_763.png | Bin 2624 -> 3296 bytes inherit_graph_764.map | 2 +- inherit_graph_764.md5 | 2 +- inherit_graph_764.png | Bin 3540 -> 3061 bytes inherit_graph_765.map | 2 +- inherit_graph_765.md5 | 2 +- inherit_graph_765.png | Bin 2677 -> 3607 bytes inherit_graph_766.map | 2 +- inherit_graph_766.md5 | 2 +- inherit_graph_766.png | Bin 3296 -> 2464 bytes inherit_graph_767.map | 2 +- inherit_graph_767.md5 | 2 +- inherit_graph_767.png | Bin 3061 -> 3480 bytes inherit_graph_768.map | 2 +- inherit_graph_768.md5 | 2 +- inherit_graph_768.png | Bin 3607 -> 1980 bytes inherit_graph_769.map | 2 +- inherit_graph_769.md5 | 2 +- inherit_graph_769.png | Bin 2464 -> 2715 bytes inherit_graph_770.map | 2 +- inherit_graph_770.md5 | 2 +- inherit_graph_770.png | Bin 3480 -> 2821 bytes inherit_graph_771.map | 2 +- inherit_graph_771.md5 | 2 +- inherit_graph_771.png | Bin 1980 -> 2375 bytes inherit_graph_772.map | 2 +- inherit_graph_772.md5 | 2 +- inherit_graph_772.png | Bin 2715 -> 3414 bytes inherit_graph_773.map | 2 +- inherit_graph_773.md5 | 2 +- inherit_graph_773.png | Bin 2821 -> 3307 bytes inherit_graph_774.map | 2 +- inherit_graph_774.md5 | 2 +- inherit_graph_774.png | Bin 2375 -> 3837 bytes inherit_graph_775.map | 2 +- inherit_graph_775.md5 | 2 +- inherit_graph_775.png | Bin 3414 -> 2815 bytes inherit_graph_776.map | 2 +- inherit_graph_776.md5 | 2 +- inherit_graph_776.png | Bin 3307 -> 2047 bytes inherit_graph_777.map | 2 +- inherit_graph_777.md5 | 2 +- inherit_graph_777.png | Bin 3837 -> 3783 bytes inherit_graph_778.map | 2 +- inherit_graph_778.md5 | 2 +- inherit_graph_778.png | Bin 2815 -> 2846 bytes inherit_graph_779.map | 2 +- inherit_graph_779.md5 | 2 +- inherit_graph_779.png | Bin 2047 -> 2790 bytes inherit_graph_780.map | 2 +- inherit_graph_780.md5 | 2 +- inherit_graph_780.png | Bin 3783 -> 5323 bytes inherit_graph_781.map | 2 +- inherit_graph_781.md5 | 2 +- inherit_graph_781.png | Bin 2846 -> 2322 bytes inherit_graph_782.map | 2 +- inherit_graph_782.md5 | 2 +- inherit_graph_782.png | Bin 2790 -> 3186 bytes inherit_graph_783.map | 2 +- inherit_graph_783.md5 | 2 +- inherit_graph_783.png | Bin 5323 -> 3722 bytes inherit_graph_784.map | 2 +- inherit_graph_784.md5 | 2 +- inherit_graph_784.png | Bin 2322 -> 4117 bytes inherit_graph_785.map | 2 +- inherit_graph_785.md5 | 2 +- inherit_graph_785.png | Bin 3186 -> 1723 bytes inherit_graph_786.map | 2 +- inherit_graph_786.md5 | 2 +- inherit_graph_786.png | Bin 3722 -> 2250 bytes inherit_graph_787.map | 2 +- inherit_graph_787.md5 | 2 +- inherit_graph_787.png | Bin 4117 -> 3045 bytes inherit_graph_788.map | 2 +- inherit_graph_788.md5 | 2 +- inherit_graph_788.png | Bin 1723 -> 2021 bytes inherit_graph_789.map | 2 +- inherit_graph_789.md5 | 2 +- inherit_graph_789.png | Bin 2250 -> 3347 bytes inherit_graph_790.map | 2 +- inherit_graph_790.md5 | 2 +- inherit_graph_790.png | Bin 3045 -> 2551 bytes inherit_graph_791.map | 2 +- inherit_graph_791.md5 | 2 +- inherit_graph_791.png | Bin 2021 -> 3876 bytes inherit_graph_792.map | 2 +- inherit_graph_792.md5 | 2 +- inherit_graph_792.png | Bin 3347 -> 4314 bytes inherit_graph_793.map | 2 +- inherit_graph_793.md5 | 2 +- inherit_graph_793.png | Bin 2551 -> 3564 bytes inherit_graph_794.map | 2 +- inherit_graph_794.md5 | 2 +- inherit_graph_794.png | Bin 3876 -> 3484 bytes inherit_graph_795.map | 2 +- inherit_graph_795.md5 | 2 +- inherit_graph_795.png | Bin 4314 -> 3576 bytes inherit_graph_796.map | 2 +- inherit_graph_796.md5 | 2 +- inherit_graph_796.png | Bin 3564 -> 2490 bytes inherit_graph_797.map | 2 +- inherit_graph_797.md5 | 2 +- inherit_graph_797.png | Bin 3484 -> 2395 bytes inherit_graph_798.map | 2 +- inherit_graph_798.md5 | 2 +- inherit_graph_798.png | Bin 3576 -> 2229 bytes inherit_graph_799.map | 2 +- inherit_graph_799.md5 | 2 +- inherit_graph_799.png | Bin 2490 -> 2613 bytes inherit_graph_800.map | 2 +- inherit_graph_800.md5 | 2 +- inherit_graph_800.png | Bin 2395 -> 3675 bytes inherit_graph_801.map | 2 +- inherit_graph_801.md5 | 2 +- inherit_graph_801.png | Bin 2229 -> 2446 bytes inherit_graph_802.map | 2 +- inherit_graph_802.md5 | 2 +- inherit_graph_802.png | Bin 2613 -> 2802 bytes inherit_graph_803.map | 2 +- inherit_graph_803.md5 | 2 +- inherit_graph_803.png | Bin 3675 -> 2279 bytes inherit_graph_804.map | 2 +- inherit_graph_804.md5 | 2 +- inherit_graph_804.png | Bin 2446 -> 3699 bytes inherit_graph_805.map | 2 +- inherit_graph_805.md5 | 2 +- inherit_graph_805.png | Bin 2802 -> 2850 bytes inherit_graph_806.map | 2 +- inherit_graph_806.md5 | 2 +- inherit_graph_806.png | Bin 2279 -> 1938 bytes inherit_graph_807.map | 2 +- inherit_graph_807.md5 | 2 +- inherit_graph_807.png | Bin 3699 -> 2735 bytes inherit_graph_808.map | 2 +- inherit_graph_808.md5 | 2 +- inherit_graph_808.png | Bin 2850 -> 1956 bytes inherit_graph_809.map | 2 +- inherit_graph_809.md5 | 2 +- inherit_graph_809.png | Bin 1938 -> 2512 bytes inherit_graph_810.map | 2 +- inherit_graph_810.md5 | 2 +- inherit_graph_810.png | Bin 2735 -> 2234 bytes inherit_graph_811.map | 2 +- inherit_graph_811.md5 | 2 +- inherit_graph_811.png | Bin 1956 -> 1984 bytes inherit_graph_812.map | 4 +- inherit_graph_812.md5 | 2 +- inherit_graph_812.png | Bin 2512 -> 5459 bytes inherit_graph_813.map | 2 +- inherit_graph_813.md5 | 2 +- inherit_graph_813.png | Bin 2234 -> 2388 bytes inherit_graph_814.map | 2 +- inherit_graph_814.md5 | 2 +- inherit_graph_814.png | Bin 1984 -> 2631 bytes inherit_graph_815.map | 4 +- inherit_graph_815.md5 | 2 +- inherit_graph_815.png | Bin 5459 -> 2234 bytes inherit_graph_816.map | 2 +- inherit_graph_816.md5 | 2 +- inherit_graph_816.png | Bin 2388 -> 2246 bytes inherit_graph_817.map | 2 +- inherit_graph_817.md5 | 2 +- inherit_graph_817.png | Bin 2631 -> 2509 bytes inherit_graph_818.map | 2 +- inherit_graph_818.md5 | 2 +- inherit_graph_818.png | Bin 2234 -> 2873 bytes inherit_graph_819.map | 2 +- inherit_graph_819.md5 | 2 +- inherit_graph_819.png | Bin 2246 -> 2350 bytes inherit_graph_820.map | 2 +- inherit_graph_820.md5 | 2 +- inherit_graph_820.png | Bin 2509 -> 2261 bytes inherit_graph_821.map | 2 +- inherit_graph_821.md5 | 2 +- inherit_graph_821.png | Bin 2873 -> 2360 bytes inherit_graph_822.map | 2 +- inherit_graph_822.md5 | 2 +- inherit_graph_822.png | Bin 2350 -> 2191 bytes inherit_graph_823.map | 2 +- inherit_graph_823.md5 | 2 +- inherit_graph_823.png | Bin 2261 -> 2169 bytes inherit_graph_824.map | 2 +- inherit_graph_824.md5 | 2 +- inherit_graph_824.png | Bin 2360 -> 3690 bytes inherit_graph_825.map | 2 +- inherit_graph_825.md5 | 2 +- inherit_graph_825.png | Bin 2191 -> 2401 bytes inherit_graph_826.map | 2 +- inherit_graph_826.md5 | 2 +- inherit_graph_826.png | Bin 2169 -> 2056 bytes inherit_graph_827.map | 2 +- inherit_graph_827.md5 | 2 +- inherit_graph_827.png | Bin 3690 -> 2193 bytes inherit_graph_828.map | 2 +- inherit_graph_828.md5 | 2 +- inherit_graph_828.png | Bin 2401 -> 2791 bytes inherit_graph_829.map | 2 +- inherit_graph_829.md5 | 2 +- inherit_graph_829.png | Bin 2056 -> 1877 bytes inherit_graph_830.map | 2 +- inherit_graph_830.md5 | 2 +- inherit_graph_830.png | Bin 2193 -> 1990 bytes inherit_graph_831.map | 2 +- inherit_graph_831.md5 | 2 +- inherit_graph_831.png | Bin 2791 -> 2276 bytes inherit_graph_832.map | 2 +- inherit_graph_832.md5 | 2 +- inherit_graph_832.png | Bin 1877 -> 2036 bytes inherit_graph_833.map | 2 +- inherit_graph_833.md5 | 2 +- inherit_graph_833.png | Bin 1990 -> 1832 bytes inherit_graph_834.map | 2 +- inherit_graph_834.md5 | 2 +- inherit_graph_834.png | Bin 2276 -> 2947 bytes inherit_graph_835.map | 2 +- inherit_graph_835.md5 | 2 +- inherit_graph_835.png | Bin 2036 -> 3012 bytes inherit_graph_836.map | 2 +- inherit_graph_836.md5 | 2 +- inherit_graph_836.png | Bin 1832 -> 1897 bytes inherit_graph_837.map | 2 +- inherit_graph_837.md5 | 2 +- inherit_graph_837.png | Bin 2947 -> 3511 bytes inherit_graph_838.map | 2 +- inherit_graph_838.md5 | 2 +- inherit_graph_838.png | Bin 3012 -> 1893 bytes inherit_graph_839.map | 2 +- inherit_graph_839.md5 | 2 +- inherit_graph_839.png | Bin 1897 -> 2052 bytes inherit_graph_840.map | 2 +- inherit_graph_840.md5 | 2 +- inherit_graph_840.png | Bin 3511 -> 1648 bytes inherit_graph_841.map | 2 +- inherit_graph_841.md5 | 2 +- inherit_graph_841.png | Bin 1893 -> 2045 bytes inherit_graph_842.map | 2 +- inherit_graph_842.md5 | 2 +- inherit_graph_842.png | Bin 2052 -> 2325 bytes inherit_graph_843.map | 2 +- inherit_graph_843.md5 | 2 +- inherit_graph_843.png | Bin 1648 -> 1927 bytes inherit_graph_844.map | 2 +- inherit_graph_844.md5 | 2 +- inherit_graph_844.png | Bin 2045 -> 1772 bytes inherit_graph_845.map | 2 +- inherit_graph_845.md5 | 2 +- inherit_graph_845.png | Bin 2325 -> 1662 bytes inherit_graph_846.map | 2 +- inherit_graph_846.md5 | 2 +- inherit_graph_846.png | Bin 1927 -> 2460 bytes inherit_graph_847.map | 4 +- inherit_graph_847.md5 | 2 +- inherit_graph_847.png | Bin 1772 -> 8735 bytes inherit_graph_848.map | 4 +- inherit_graph_848.md5 | 2 +- inherit_graph_848.png | Bin 1662 -> 8839 bytes inherit_graph_849.map | 4 +- inherit_graph_849.md5 | 2 +- inherit_graph_849.png | Bin 2460 -> 8134 bytes inherit_graph_850.map | 4 +- inherit_graph_850.md5 | 2 +- inherit_graph_850.png | Bin 8735 -> 9467 bytes inherit_graph_851.map | 6 +- inherit_graph_851.md5 | 2 +- inherit_graph_851.png | Bin 8839 -> 6036 bytes inherit_graph_852.map | 4 +- inherit_graph_852.md5 | 2 +- inherit_graph_852.png | Bin 8134 -> 5216 bytes inherit_graph_853.map | 4 +- inherit_graph_853.md5 | 2 +- inherit_graph_853.png | Bin 9467 -> 5341 bytes inherit_graph_854.map | 6 +- inherit_graph_854.md5 | 2 +- inherit_graph_854.png | Bin 6036 -> 9374 bytes inherit_graph_855.map | 2 +- inherit_graph_855.md5 | 2 +- inherit_graph_855.png | Bin 5216 -> 3743 bytes inherit_graph_856.map | 2 +- inherit_graph_856.md5 | 2 +- inherit_graph_856.png | Bin 5341 -> 3734 bytes inherit_graph_857.map | 4 +- inherit_graph_857.md5 | 2 +- inherit_graph_857.png | Bin 9374 -> 2540 bytes inherit_graph_858.map | 2 +- inherit_graph_858.md5 | 2 +- inherit_graph_858.png | Bin 3743 -> 2172 bytes inherit_graph_859.map | 2 +- inherit_graph_859.md5 | 2 +- inherit_graph_859.png | Bin 3734 -> 1876 bytes inherit_graph_860.map | 2 +- inherit_graph_860.md5 | 2 +- inherit_graph_860.png | Bin 2540 -> 2240 bytes inherit_graph_861.map | 2 +- inherit_graph_861.md5 | 2 +- inherit_graph_861.png | Bin 2172 -> 2238 bytes inherit_graph_862.map | 2 +- inherit_graph_862.md5 | 2 +- inherit_graph_862.png | Bin 1876 -> 2328 bytes inherit_graph_863.map | 2 +- inherit_graph_863.md5 | 2 +- inherit_graph_863.png | Bin 2240 -> 2320 bytes inherit_graph_864.map | 2 +- inherit_graph_864.md5 | 2 +- inherit_graph_864.png | Bin 2238 -> 2233 bytes inherit_graph_865.map | 2 +- inherit_graph_865.md5 | 2 +- inherit_graph_865.png | Bin 2328 -> 2146 bytes inherit_graph_866.map | 2 +- inherit_graph_866.md5 | 2 +- inherit_graph_866.png | Bin 2320 -> 1890 bytes inherit_graph_867.map | 2 +- inherit_graph_867.md5 | 2 +- inherit_graph_867.png | Bin 2233 -> 2723 bytes inherit_graph_868.map | 2 +- inherit_graph_868.md5 | 2 +- inherit_graph_868.png | Bin 2146 -> 2236 bytes inherit_graph_869.map | 2 +- inherit_graph_869.md5 | 2 +- inherit_graph_869.png | Bin 1890 -> 2371 bytes inherit_graph_870.map | 2 +- inherit_graph_870.md5 | 2 +- inherit_graph_870.png | Bin 2723 -> 2503 bytes inherit_graph_871.map | 2 +- inherit_graph_871.md5 | 2 +- inherit_graph_871.png | Bin 2236 -> 2285 bytes inherit_graph_872.map | 2 +- inherit_graph_872.md5 | 2 +- inherit_graph_872.png | Bin 2371 -> 2046 bytes inherit_graph_873.map | 2 +- inherit_graph_873.md5 | 2 +- inherit_graph_873.png | Bin 2503 -> 2385 bytes inherit_graph_874.map | 2 +- inherit_graph_874.md5 | 2 +- inherit_graph_874.png | Bin 2285 -> 2191 bytes inherit_graph_875.map | 2 +- inherit_graph_875.md5 | 2 +- inherit_graph_875.png | Bin 2046 -> 1979 bytes inherit_graph_876.map | 2 +- inherit_graph_876.md5 | 2 +- inherit_graph_876.png | Bin 2385 -> 1938 bytes inherit_graph_877.map | 2 +- inherit_graph_877.md5 | 2 +- inherit_graph_877.png | Bin 2191 -> 1963 bytes inherit_graph_878.map | 2 +- inherit_graph_878.md5 | 2 +- inherit_graph_878.png | Bin 1979 -> 1827 bytes inherit_graph_879.map | 2 +- inherit_graph_879.md5 | 2 +- inherit_graph_879.png | Bin 1938 -> 3125 bytes inherit_graph_880.map | 2 +- inherit_graph_880.md5 | 2 +- inherit_graph_880.png | Bin 1963 -> 2869 bytes inherit_graph_881.map | 2 +- inherit_graph_881.md5 | 2 +- inherit_graph_881.png | Bin 1827 -> 3339 bytes inherit_graph_882.map | 2 +- inherit_graph_882.md5 | 2 +- inherit_graph_882.png | Bin 3125 -> 3345 bytes inherit_graph_883.map | 2 +- inherit_graph_883.md5 | 2 +- inherit_graph_883.png | Bin 2869 -> 3516 bytes inherit_graph_884.map | 2 +- inherit_graph_884.md5 | 2 +- inherit_graph_884.png | Bin 3339 -> 2033 bytes inherit_graph_885.map | 2 +- inherit_graph_885.md5 | 2 +- inherit_graph_885.png | Bin 3345 -> 1802 bytes inherit_graph_886.map | 2 +- inherit_graph_886.md5 | 2 +- inherit_graph_886.png | Bin 3516 -> 1800 bytes inherit_graph_887.map | 2 +- inherit_graph_887.md5 | 2 +- inherit_graph_887.png | Bin 2033 -> 2892 bytes inherit_graph_888.map | 2 +- inherit_graph_888.md5 | 2 +- inherit_graph_888.png | Bin 1802 -> 2718 bytes inherit_graph_889.map | 2 +- inherit_graph_889.md5 | 2 +- inherit_graph_889.png | Bin 1800 -> 2186 bytes inherit_graph_890.map | 2 +- inherit_graph_890.md5 | 2 +- inherit_graph_890.png | Bin 2892 -> 2651 bytes inherit_graph_891.map | 2 +- inherit_graph_891.md5 | 2 +- inherit_graph_891.png | Bin 2718 -> 2359 bytes inherit_graph_892.map | 2 +- inherit_graph_892.md5 | 2 +- inherit_graph_892.png | Bin 2186 -> 2953 bytes inherit_graph_893.map | 2 +- inherit_graph_893.md5 | 2 +- inherit_graph_893.png | Bin 2651 -> 2531 bytes inherit_graph_894.map | 2 +- inherit_graph_894.md5 | 2 +- inherit_graph_894.png | Bin 2359 -> 3245 bytes inherit_graph_895.map | 2 +- inherit_graph_895.md5 | 2 +- inherit_graph_895.png | Bin 2953 -> 1954 bytes inherit_graph_896.map | 2 +- inherit_graph_896.md5 | 2 +- inherit_graph_896.png | Bin 2531 -> 1839 bytes inherit_graph_897.map | 2 +- inherit_graph_897.md5 | 2 +- inherit_graph_897.png | Bin 3245 -> 2310 bytes inherit_graph_898.map | 2 +- inherit_graph_898.md5 | 2 +- inherit_graph_898.png | Bin 1954 -> 1662 bytes inherit_graph_899.map | 2 +- inherit_graph_899.md5 | 2 +- inherit_graph_899.png | Bin 1839 -> 2130 bytes inherit_graph_900.map | 2 +- inherit_graph_900.md5 | 2 +- inherit_graph_900.png | Bin 2310 -> 1684 bytes inherit_graph_901.map | 2 +- inherit_graph_901.md5 | 2 +- inherit_graph_901.png | Bin 1662 -> 1755 bytes inherit_graph_902.map | 2 +- inherit_graph_902.md5 | 2 +- inherit_graph_902.png | Bin 2130 -> 1917 bytes inherit_graph_903.map | 2 +- inherit_graph_903.md5 | 2 +- inherit_graph_903.png | Bin 1684 -> 2414 bytes inherit_graph_904.map | 2 +- inherit_graph_904.md5 | 2 +- inherit_graph_904.png | Bin 1755 -> 1915 bytes inherit_graph_905.map | 2 +- inherit_graph_905.md5 | 2 +- inherit_graph_905.png | Bin 1917 -> 1528 bytes inherit_graph_906.map | 2 +- inherit_graph_906.md5 | 2 +- inherit_graph_906.png | Bin 2414 -> 2348 bytes inherit_graph_907.map | 2 +- inherit_graph_907.md5 | 2 +- inherit_graph_907.png | Bin 1915 -> 1672 bytes inherit_graph_908.map | 2 +- inherit_graph_908.md5 | 2 +- inherit_graph_908.png | Bin 1528 -> 2008 bytes inherit_graph_909.map | 2 +- inherit_graph_909.md5 | 2 +- inherit_graph_909.png | Bin 2348 -> 2683 bytes inherit_graph_910.map | 2 +- inherit_graph_910.md5 | 2 +- inherit_graph_910.png | Bin 1672 -> 2730 bytes inherit_graph_911.map | 2 +- inherit_graph_911.md5 | 2 +- inherit_graph_911.png | Bin 2008 -> 2993 bytes inherit_graph_912.map | 2 +- inherit_graph_912.md5 | 2 +- inherit_graph_912.png | Bin 2683 -> 3062 bytes inherit_graph_913.map | 2 +- inherit_graph_913.md5 | 2 +- inherit_graph_913.png | Bin 2730 -> 2525 bytes inherit_graph_914.map | 2 +- inherit_graph_914.md5 | 2 +- inherit_graph_914.png | Bin 2993 -> 2714 bytes inherit_graph_915.map | 2 +- inherit_graph_915.md5 | 2 +- inherit_graph_915.png | Bin 3062 -> 2866 bytes inherit_graph_916.map | 2 +- inherit_graph_916.md5 | 2 +- inherit_graph_916.png | Bin 2525 -> 2088 bytes inherit_graph_917.map | 2 +- inherit_graph_917.md5 | 2 +- inherit_graph_917.png | Bin 2714 -> 2555 bytes inherit_graph_918.map | 2 +- inherit_graph_918.md5 | 2 +- inherit_graph_918.png | Bin 2866 -> 2085 bytes inherit_graph_919.map | 2 +- inherit_graph_919.md5 | 2 +- inherit_graph_919.png | Bin 2088 -> 1991 bytes inherit_graph_920.map | 2 +- inherit_graph_920.md5 | 2 +- inherit_graph_920.png | Bin 2555 -> 3582 bytes inherit_graph_921.map | 2 +- inherit_graph_921.md5 | 2 +- inherit_graph_921.png | Bin 2085 -> 3241 bytes inherit_graph_922.map | 2 +- inherit_graph_922.md5 | 2 +- inherit_graph_922.png | Bin 1991 -> 3141 bytes inherit_graph_923.map | 2 +- inherit_graph_923.md5 | 2 +- inherit_graph_923.png | Bin 3582 -> 3367 bytes inherit_graph_924.map | 2 +- inherit_graph_924.md5 | 2 +- inherit_graph_924.png | Bin 3241 -> 3168 bytes inherit_graph_925.map | 2 +- inherit_graph_925.md5 | 2 +- inherit_graph_925.png | Bin 3141 -> 3626 bytes inherit_graph_926.map | 2 +- inherit_graph_926.md5 | 2 +- inherit_graph_926.png | Bin 3367 -> 2297 bytes inherit_graph_927.map | 2 +- inherit_graph_927.md5 | 2 +- inherit_graph_927.png | Bin 3168 -> 2914 bytes inherit_graph_928.map | 2 +- inherit_graph_928.md5 | 2 +- inherit_graph_928.png | Bin 3626 -> 2087 bytes inherit_graph_929.map | 2 +- inherit_graph_929.md5 | 2 +- inherit_graph_929.png | Bin 2297 -> 3483 bytes inherit_graph_930.map | 2 +- inherit_graph_930.md5 | 2 +- inherit_graph_930.png | Bin 2914 -> 3038 bytes inherit_graph_931.map | 2 +- inherit_graph_931.md5 | 2 +- inherit_graph_931.png | Bin 2087 -> 2255 bytes inherit_graph_932.map | 2 +- inherit_graph_932.md5 | 2 +- inherit_graph_932.png | Bin 3483 -> 3058 bytes inherit_graph_933.map | 2 +- inherit_graph_933.md5 | 2 +- inherit_graph_933.png | Bin 3038 -> 1654 bytes inherit_graph_934.map | 2 +- inherit_graph_934.md5 | 2 +- inherit_graph_934.png | Bin 2255 -> 2847 bytes inherit_graph_935.map | 2 +- inherit_graph_935.md5 | 2 +- inherit_graph_935.png | Bin 3058 -> 3299 bytes inherit_graph_936.map | 2 +- inherit_graph_936.md5 | 2 +- inherit_graph_936.png | Bin 1654 -> 3120 bytes inherit_graph_937.map | 2 +- inherit_graph_937.md5 | 2 +- inherit_graph_937.png | Bin 2847 -> 2908 bytes inherit_graph_938.map | 2 +- inherit_graph_938.md5 | 2 +- inherit_graph_938.png | Bin 3299 -> 3256 bytes inherit_graph_939.map | 2 +- inherit_graph_939.md5 | 2 +- inherit_graph_939.png | Bin 3120 -> 3605 bytes inherit_graph_94.map | 686 ++-- inherit_graph_94.md5 | 2 +- inherit_graph_94.png | Bin 2528450 -> 2527158 bytes inherit_graph_940.map | 2 +- inherit_graph_940.md5 | 2 +- inherit_graph_940.png | Bin 2908 -> 3549 bytes inherit_graph_941.map | 2 +- inherit_graph_941.md5 | 2 +- inherit_graph_941.png | Bin 3256 -> 2602 bytes inherit_graph_942.map | 2 +- inherit_graph_942.md5 | 2 +- inherit_graph_942.png | Bin 3605 -> 2125 bytes inherit_graph_943.map | 2 +- inherit_graph_943.md5 | 2 +- inherit_graph_943.png | Bin 3549 -> 2509 bytes inherit_graph_944.map | 2 +- inherit_graph_944.md5 | 2 +- inherit_graph_944.png | Bin 2602 -> 3303 bytes inherit_graph_945.map | 2 +- inherit_graph_945.md5 | 2 +- inherit_graph_945.png | Bin 2125 -> 2646 bytes inherit_graph_946.map | 2 +- inherit_graph_946.md5 | 2 +- inherit_graph_946.png | Bin 2509 -> 2755 bytes inherit_graph_947.map | 2 +- inherit_graph_947.md5 | 2 +- inherit_graph_947.png | Bin 3303 -> 1728 bytes inherit_graph_948.map | 2 +- inherit_graph_948.md5 | 2 +- inherit_graph_948.png | Bin 2646 -> 2531 bytes inherit_graph_949.map | 2 +- inherit_graph_949.md5 | 2 +- inherit_graph_949.png | Bin 2755 -> 2082 bytes inherit_graph_950.map | 2 +- inherit_graph_950.md5 | 2 +- inherit_graph_950.png | Bin 1728 -> 3570 bytes inherit_graph_951.map | 2 +- inherit_graph_951.md5 | 2 +- inherit_graph_951.png | Bin 2531 -> 3086 bytes inherit_graph_952.map | 2 +- inherit_graph_952.md5 | 2 +- inherit_graph_952.png | Bin 2082 -> 3071 bytes inherit_graph_953.map | 2 +- inherit_graph_953.md5 | 2 +- inherit_graph_953.png | Bin 3570 -> 2435 bytes inherit_graph_954.map | 2 +- inherit_graph_954.md5 | 2 +- inherit_graph_954.png | Bin 3086 -> 2861 bytes inherit_graph_955.map | 2 +- inherit_graph_955.md5 | 2 +- inherit_graph_955.png | Bin 3071 -> 2816 bytes inherit_graph_956.map | 2 +- inherit_graph_956.md5 | 2 +- inherit_graph_956.png | Bin 2435 -> 2297 bytes inherit_graph_957.map | 2 +- inherit_graph_957.md5 | 2 +- inherit_graph_957.png | Bin 2861 -> 3342 bytes inherit_graph_958.map | 2 +- inherit_graph_958.md5 | 2 +- inherit_graph_958.png | Bin 2816 -> 3594 bytes inherit_graph_959.map | 2 +- inherit_graph_959.md5 | 2 +- inherit_graph_959.png | Bin 2297 -> 3512 bytes inherit_graph_960.map | 2 +- inherit_graph_960.md5 | 2 +- inherit_graph_960.png | Bin 3342 -> 3682 bytes inherit_graph_961.map | 2 +- inherit_graph_961.md5 | 2 +- inherit_graph_961.png | Bin 3594 -> 2148 bytes inherit_graph_962.map | 2 +- inherit_graph_962.md5 | 2 +- inherit_graph_962.png | Bin 3512 -> 3514 bytes inherit_graph_963.map | 2 +- inherit_graph_963.md5 | 2 +- inherit_graph_963.png | Bin 3682 -> 4010 bytes inherit_graph_964.map | 2 +- inherit_graph_964.md5 | 2 +- inherit_graph_964.png | Bin 2148 -> 2841 bytes inherit_graph_965.map | 2 +- inherit_graph_965.md5 | 2 +- inherit_graph_965.png | Bin 3514 -> 4001 bytes inherit_graph_966.map | 2 +- inherit_graph_966.md5 | 2 +- inherit_graph_966.png | Bin 4010 -> 4197 bytes inherit_graph_967.map | 2 +- inherit_graph_967.md5 | 2 +- inherit_graph_967.png | Bin 2841 -> 3997 bytes inherit_graph_968.map | 2 +- inherit_graph_968.md5 | 2 +- inherit_graph_968.png | Bin 4001 -> 5962 bytes inherit_graph_969.map | 2 +- inherit_graph_969.md5 | 2 +- inherit_graph_969.png | Bin 4197 -> 4929 bytes inherit_graph_970.map | 2 +- inherit_graph_970.md5 | 2 +- inherit_graph_970.png | Bin 3997 -> 4041 bytes inherit_graph_971.map | 4 +- inherit_graph_971.md5 | 2 +- inherit_graph_971.png | Bin 5962 -> 9251 bytes inherit_graph_972.map | 4 +- inherit_graph_972.md5 | 2 +- inherit_graph_972.png | Bin 4929 -> 8195 bytes inherit_graph_973.map | 2 +- inherit_graph_973.md5 | 2 +- inherit_graph_973.png | Bin 4041 -> 4084 bytes inherit_graph_974.map | 4 +- inherit_graph_974.md5 | 2 +- inherit_graph_974.png | Bin 9251 -> 3424 bytes inherit_graph_975.map | 4 +- inherit_graph_975.md5 | 2 +- inherit_graph_975.png | Bin 8195 -> 2984 bytes inherit_graph_976.map | 2 +- inherit_graph_976.md5 | 2 +- inherit_graph_976.png | Bin 4084 -> 1834 bytes inherit_graph_977.map | 2 +- inherit_graph_977.md5 | 2 +- inherit_graph_977.png | Bin 3424 -> 3180 bytes inherit_graph_978.map | 2 +- inherit_graph_978.md5 | 2 +- inherit_graph_978.png | Bin 2984 -> 3585 bytes inherit_graph_979.map | 2 +- inherit_graph_979.md5 | 2 +- inherit_graph_979.png | Bin 1834 -> 4677 bytes inherit_graph_980.map | 2 +- inherit_graph_980.md5 | 2 +- inherit_graph_980.png | Bin 3180 -> 4677 bytes inherit_graph_981.map | 8 +- inherit_graph_981.md5 | 2 +- inherit_graph_981.png | Bin 3585 -> 14809 bytes inherit_graph_982.map | 4 +- inherit_graph_982.md5 | 2 +- inherit_graph_982.png | Bin 4677 -> 6540 bytes inherit_graph_983.map | 4 +- inherit_graph_983.md5 | 2 +- inherit_graph_983.png | Bin 4677 -> 6638 bytes inherit_graph_984.map | 8 +- inherit_graph_984.md5 | 2 +- inherit_graph_984.png | Bin 14809 -> 4679 bytes inherit_graph_985.map | 4 +- inherit_graph_985.md5 | 2 +- inherit_graph_985.png | Bin 6540 -> 2223 bytes inherit_graph_986.map | 4 +- inherit_graph_986.md5 | 2 +- inherit_graph_986.png | Bin 6638 -> 3343 bytes inherit_graph_987.map | 2 +- inherit_graph_987.md5 | 2 +- inherit_graph_987.png | Bin 4679 -> 3345 bytes inherit_graph_988.map | 2 +- inherit_graph_988.md5 | 2 +- inherit_graph_988.png | Bin 2223 -> 2593 bytes inherit_graph_989.map | 2 +- inherit_graph_989.md5 | 2 +- inherit_graph_989.png | Bin 3343 -> 3163 bytes inherit_graph_990.map | 2 +- inherit_graph_990.md5 | 2 +- inherit_graph_990.png | Bin 3345 -> 2642 bytes inherit_graph_991.map | 2 +- inherit_graph_991.md5 | 2 +- inherit_graph_991.png | Bin 2593 -> 2417 bytes inherit_graph_992.map | 148 +- inherit_graph_992.md5 | 2 +- inherit_graph_992.png | Bin 3163 -> 523677 bytes inherit_graph_993.map | 2 +- inherit_graph_993.md5 | 2 +- inherit_graph_993.png | Bin 2642 -> 2451 bytes inherit_graph_994.map | 2 +- inherit_graph_994.md5 | 2 +- inherit_graph_994.png | Bin 2417 -> 3745 bytes inherit_graph_995.map | 148 +- inherit_graph_995.md5 | 2 +- inherit_graph_995.png | Bin 523677 -> 3733 bytes inherit_graph_996.map | 2 +- inherit_graph_996.md5 | 2 +- inherit_graph_996.png | Bin 2451 -> 2314 bytes inherit_graph_997.map | 2 +- inherit_graph_997.md5 | 2 +- inherit_graph_997.png | Bin 3745 -> 2116 bytes inherit_graph_998.map | 2 +- inherit_graph_998.md5 | 2 +- inherit_graph_998.png | Bin 3733 -> 3849 bytes inherit_graph_999.map | 2 +- inherit_graph_999.md5 | 2 +- inherit_graph_999.png | Bin 2314 -> 1555 bytes inherits.html | 1895 +++++---- jtx__json_8cpp_source.html | 2 +- multisign_8cpp_source.html | 2 +- namespaceJson.html | 385 +- namespacemembers.html | 15 +- namespacemembers_b.html | 8 +- namespacemembers_c.html | 6 +- namespacemembers_e.html | 2 +- namespacemembers_func.html | 7 +- namespacemembers_func_b.html | 8 +- namespacemembers_func_c.html | 8 +- namespacemembers_func_i.html | 6 +- namespacemembers_func_m.html | 4 +- namespacemembers_func_r.html | 2 +- namespacemembers_func_s.html | 10 +- namespacemembers_i.html | 16 +- namespacemembers_m.html | 1 + namespacemembers_r.html | 2 +- namespacemembers_s.html | 16 +- namespacemembers_t.html | 2 +- namespaces.html | 57 +- namespacexrpl.html | 57 +- namespacexrpl_1_1RPC.html | 124 +- namespacexrpl_1_1test_1_1jtx.html | 12 +- rpc_8h_source.html | 2 +- search/all_10.js | 258 +- search/all_11.js | 195 +- search/all_12.js | 8 +- search/all_13.js | 10 +- search/all_14.js | 1593 ++++---- search/all_15.js | 18 +- search/all_16.js | 861 ++-- search/all_17.js | 234 +- search/all_19.js | 272 +- search/all_1a.js | 2385 ++++++----- search/all_1b.js | 3149 +++++++------- search/all_1c.js | 624 ++- search/all_1d.js | 8 +- search/all_1e.js | 126 +- search/all_20.js | 2 +- search/all_21.js | 2 +- search/all_22.js | 657 ++- search/all_8.js | 1365 ++++--- search/all_9.js | 110 +- search/all_a.js | 1549 ++++--- search/all_b.js | 10 +- search/all_c.js | 62 +- search/all_d.js | 10 +- search/all_e.js | 4 +- search/all_f.js | 8 +- search/classes_0.js | 2 +- search/classes_11.js | 31 +- search/classes_14.js | 330 +- search/classes_16.js | 41 +- search/classes_2.js | 2 +- search/classes_9.js | 39 +- search/classes_e.js | 231 +- search/classes_f.js | 6 +- search/enumvalues_19.js | 2 +- search/enumvalues_3.js | 4 +- search/enumvalues_9.js | 4 +- search/enumvalues_e.js | 6 +- search/enumvalues_f.js | 2 +- search/functions_1.js | 764 ++-- search/functions_10.js | 34 +- search/functions_12.js | 32 +- search/functions_13.js | 1221 +++--- search/functions_14.js | 2249 +++++----- search/functions_15.js | 2 +- search/functions_16.js | 2 +- search/functions_17.js | 55 +- search/functions_1a.js | 2 +- search/functions_1b.js | 657 ++- search/functions_2.js | 10 +- search/functions_3.js | 715 ++-- search/functions_4.js | 2 +- search/functions_5.js | 10 +- search/functions_6.js | 6 +- search/functions_7.js | 2 +- search/functions_9.js | 84 +- search/functions_b.js | 2 +- search/functions_c.js | 2 +- search/functions_d.js | 441 +- search/functions_e.js | 4 +- search/functions_f.js | 497 ++- search/related_0.js | 3 +- search/related_9.js | 35 +- search/typedefs_8.js | 2 +- search/variables_12.js | 2 +- search/variables_13.js | 2 +- search/variables_16.js | 13 +- search/variables_3.js | 2 +- search/variables_4.js | 6 +- search/variables_a.js | 2 +- search/variables_d.js | 6 +- search/variables_e.js | 109 +- search/variables_f.js | 16 +- sig_8cpp_source.html | 2 +- structxrpl_1_1LedgerFill.html | 16 +- structxrpl_1_1RPC_1_1Status-members.html | 2 +- structxrpl_1_1RPC_1_1Status.html | 27 +- utility_8cpp_source.html | 216 +- utility_8h_source.html | 10 +- ...c_2handlers_2LedgerHeader_8cpp_source.html | 2 +- 3185 files changed, 18757 insertions(+), 25844 deletions(-) delete mode 100644 Object_8cpp_source.html delete mode 100644 Object_8h_source.html delete mode 100644 Object__test_8cpp_source.html delete mode 100644 classJson_1_1Array-members.html delete mode 100644 classJson_1_1Array.html delete mode 100644 classJson_1_1Array__coll__graph.map delete mode 100644 classJson_1_1Array__coll__graph.md5 delete mode 100644 classJson_1_1Array__coll__graph.png delete mode 100644 classJson_1_1Array__inherit__graph.map delete mode 100644 classJson_1_1Array__inherit__graph.md5 delete mode 100644 classJson_1_1Array__inherit__graph.png delete mode 100644 classJson_1_1Collection-members.html delete mode 100644 classJson_1_1Collection.html delete mode 100644 classJson_1_1Collection__coll__graph.map delete mode 100644 classJson_1_1Collection__coll__graph.md5 delete mode 100644 classJson_1_1Collection__coll__graph.png delete mode 100644 classJson_1_1Collection__inherit__graph.map delete mode 100644 classJson_1_1Collection__inherit__graph.md5 delete mode 100644 classJson_1_1Collection__inherit__graph.png delete mode 100644 classJson_1_1JsonObject__test-members.html delete mode 100644 classJson_1_1JsonObject__test.html delete mode 100644 classJson_1_1JsonObject__test__coll__graph.map delete mode 100644 classJson_1_1JsonObject__test__coll__graph.md5 delete mode 100644 classJson_1_1JsonObject__test__coll__graph.png delete mode 100644 classJson_1_1JsonObject__test__inherit__graph.map delete mode 100644 classJson_1_1JsonObject__test__inherit__graph.md5 delete mode 100644 classJson_1_1JsonObject__test__inherit__graph.png delete mode 100644 classJson_1_1Object-members.html delete mode 100644 classJson_1_1Object.html delete mode 100644 classJson_1_1Object_1_1Proxy-members.html delete mode 100644 classJson_1_1Object_1_1Proxy.html delete mode 100644 classJson_1_1Object_1_1Proxy__coll__graph.map delete mode 100644 classJson_1_1Object_1_1Proxy__coll__graph.md5 delete mode 100644 classJson_1_1Object_1_1Proxy__coll__graph.png delete mode 100644 classJson_1_1Object_1_1Root-members.html delete mode 100644 classJson_1_1Object_1_1Root.html delete mode 100644 classJson_1_1Object_1_1Root__coll__graph.map delete mode 100644 classJson_1_1Object_1_1Root__coll__graph.md5 delete mode 100644 classJson_1_1Object_1_1Root__coll__graph.png delete mode 100644 classJson_1_1Object_1_1Root__inherit__graph.map delete mode 100644 classJson_1_1Object_1_1Root__inherit__graph.md5 delete mode 100644 classJson_1_1Object_1_1Root__inherit__graph.png delete mode 100644 classJson_1_1Object__coll__graph.map delete mode 100644 classJson_1_1Object__coll__graph.md5 delete mode 100644 classJson_1_1Object__coll__graph.png delete mode 100644 classJson_1_1Object__inherit__graph.map delete mode 100644 classJson_1_1Object__inherit__graph.md5 delete mode 100644 classJson_1_1Object__inherit__graph.png delete mode 100644 classJson_1_1WriterObject-members.html delete mode 100644 classJson_1_1WriterObject.html delete mode 100644 classJson_1_1WriterObject__coll__graph.map delete mode 100644 classJson_1_1WriterObject__coll__graph.md5 delete mode 100644 classJson_1_1WriterObject__coll__graph.png delete mode 100644 inherit_graph_1065.map delete mode 100644 inherit_graph_1065.md5 delete mode 100644 inherit_graph_1065.png delete mode 100644 inherit_graph_1066.map delete mode 100644 inherit_graph_1066.md5 delete mode 100644 inherit_graph_1066.png delete mode 100644 inherit_graph_1067.map delete mode 100644 inherit_graph_1067.md5 delete mode 100644 inherit_graph_1067.png diff --git a/AMMInfo_8cpp_source.html b/AMMInfo_8cpp_source.html index e9debc51c3..a284420224 100644 --- a/AMMInfo_8cpp_source.html +++ b/AMMInfo_8cpp_source.html @@ -230,7 +230,7 @@ $(document).ready(function() { init_codefold(0); });
142 auto const r = getValuesFromContextParams();
143 if (!r)
144 {
-
145 RPC::inject_error(r.error(), result);
+
145 RPC::inject_error(r.error(), result);
146 return result;
147 }
148
@@ -341,7 +341,7 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet amm(Asset const &issue1, Asset const &issue2) noexcept
AMM entry.
Definition Indexes.cpp:428
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
diff --git a/AccountChannels_8cpp_source.html b/AccountChannels_8cpp_source.html index 2cda0d4375..72ab8e27e0 100644 --- a/AccountChannels_8cpp_source.html +++ b/AccountChannels_8cpp_source.html @@ -150,12 +150,12 @@ $(document).ready(function() { init_codefold(0); });
64 auto id = parseBase58<AccountID>(params[jss::account].asString());
65 if (!id)
66 {
-
67 return rpcError(rpcACT_MALFORMED);
+
67 return rpcError(rpcACT_MALFORMED);
68 }
69 AccountID const accountID{std::move(id.value())};
70
71 if (!ledger->exists(keylet::account(accountID)))
-
72 return rpcError(rpcACT_NOT_FOUND);
+
72 return rpcError(rpcACT_NOT_FOUND);
73
74 std::string strDst;
75 if (params.isMember(jss::destination_account))
@@ -165,7 +165,7 @@ $(document).ready(function() { init_codefold(0); });
79 return strDst.empty() ? std::nullopt : parseBase58<AccountID>(strDst);
80 }();
81 if (!strDst.empty() && !raDstAccount)
-
82 return rpcError(rpcACT_MALFORMED);
+
82 return rpcError(rpcACT_MALFORMED);
83
84 unsigned int limit;
85 if (auto err = readLimitField(limit, RPC::Tuning::accountChannels, context))
@@ -193,13 +193,13 @@ $(document).ready(function() { init_codefold(0); });
107 std::stringstream marker(params[jss::marker].asString());
108 std::string value;
109 if (!std::getline(marker, value, ','))
-
110 return rpcError(rpcINVALID_PARAMS);
+
110 return rpcError(rpcINVALID_PARAMS);
111
112 if (!startAfter.parseHex(value))
-
113 return rpcError(rpcINVALID_PARAMS);
+
113 return rpcError(rpcINVALID_PARAMS);
114
115 if (!std::getline(marker, value, ','))
-
116 return rpcError(rpcINVALID_PARAMS);
+
116 return rpcError(rpcINVALID_PARAMS);
117
118 try
119 {
@@ -207,7 +207,7 @@ $(document).ready(function() { init_codefold(0); });
121 }
122 catch (boost::bad_lexical_cast&)
123 {
-
124 return rpcError(rpcINVALID_PARAMS);
+
124 return rpcError(rpcINVALID_PARAMS);
125 }
126
127 // We then must check if the object pointed to by the marker is actually
@@ -215,10 +215,10 @@ $(document).ready(function() { init_codefold(0); });
129 auto const sle = ledger->read({ltANY, startAfter});
130
131 if (!sle)
-
132 return rpcError(rpcINVALID_PARAMS);
+
132 return rpcError(rpcINVALID_PARAMS);
133
134 if (!RPC::isRelatedToAccount(*ledger, sle, accountID))
-
135 return rpcError(rpcINVALID_PARAMS);
+
135 return rpcError(rpcINVALID_PARAMS);
136 }
137
138 auto count = 0;
@@ -257,7 +257,7 @@ $(document).ready(function() { init_codefold(0); });
171 return true;
172 }))
173 {
-
174 return rpcError(rpcINVALID_PARAMS);
+
174 return rpcError(rpcINVALID_PARAMS);
175 }
176
177 // Both conditions need to be checked because marker is set on the limit-th
@@ -297,11 +297,11 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static LimitRange constexpr accountChannels
Limits for the account_channels command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
bool isRelatedToAccount(ReadView const &ledger, std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Tests if a ledger entry (SLE) is owned by the specified account.
std::uint64_t getStartHint(std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Gets the start hint for traversing account objects.
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
@@ -311,8 +311,8 @@ $(document).ready(function() { init_codefold(0); });
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
std::optional< KeyType > publicKeyType(Slice const &slice)
Returns the type of public key.
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
@ AccountPublic
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ ltANY
A special type, matching any ledger entry type.
bool forEachItemAfter(ReadView const &view, Keylet const &root, uint256 const &after, std::uint64_t const hint, unsigned int limit, std::function< bool(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items after an item in the given directory.
Definition View.cpp:786
void addChannel(Json::Value &jsonLines, SLE const &line)
diff --git a/AccountCurrenciesHandler_8cpp_source.html b/AccountCurrenciesHandler_8cpp_source.html index 41058ae6b2..757c0ca09a 100644 --- a/AccountCurrenciesHandler_8cpp_source.html +++ b/AccountCurrenciesHandler_8cpp_source.html @@ -125,13 +125,13 @@ $(document).ready(function() { init_codefold(0); });
41 auto id = parseBase58<AccountID>(strIdent);
42 if (!id)
43 {
-
44 RPC::inject_error(rpcACT_MALFORMED, result);
+
44 RPC::inject_error(rpcACT_MALFORMED, result);
45 return result;
46 }
47 auto const accountID{std::move(id.value())};
48
49 if (!ledger->exists(keylet::account(accountID)))
-
50 return rpcError(rpcACT_NOT_FOUND);
+
50 return rpcError(rpcACT_NOT_FOUND);
51
52 std::set<Currency> send, receive;
53 for (auto const& rspEntry : RPCTrustLine::getItems(accountID, *ledger))
@@ -171,15 +171,15 @@ $(document).ready(function() { init_codefold(0); });
T erase(T... args)
T insert(T... args)
@ arrayValue
array value (ordered list)
Definition json_value.h:26
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
Json::Value doAccountCurrencies(RPC::JsonContext &context)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Currency const & badCurrency()
We deliberately disallow the currency that looks like "XRP" because too many people were using it ins...
@ rpcACT_NOT_FOUND
Definition ErrorCodes.h:51
@ rpcACT_MALFORMED
Definition ErrorCodes.h:71
diff --git a/AccountInfo_8cpp_source.html b/AccountInfo_8cpp_source.html index be938a6a23..c4f4e43cc6 100644 --- a/AccountInfo_8cpp_source.html +++ b/AccountInfo_8cpp_source.html @@ -171,7 +171,7 @@ $(document).ready(function() { init_codefold(0); });
97 auto id = parseBase58<AccountID>(strIdent);
98 if (!id)
99 {
-
100 RPC::inject_error(rpcACT_MALFORMED, result);
+
100 RPC::inject_error(rpcACT_MALFORMED, result);
101 return result;
102 }
103 auto const accountID{std::move(id.value())};
@@ -216,7 +216,7 @@ $(document).ready(function() { init_codefold(0); });
142 {
143 // It doesn't make sense to request the queue
144 // with any closed or validated ledger.
-
145 RPC::inject_error(rpcINVALID_PARAMS, result);
+
145 RPC::inject_error(rpcINVALID_PARAMS, result);
146 return result;
147 }
148
@@ -270,7 +270,7 @@ $(document).ready(function() { init_codefold(0); });
196 if (context.apiVersion > 1u && params.isMember(jss::signer_lists) &&
197 !params[jss::signer_lists].isBool())
198 {
-
199 RPC::inject_error(rpcINVALID_PARAMS, result);
+
199 RPC::inject_error(rpcINVALID_PARAMS, result);
200 return result;
201 }
202
@@ -399,7 +399,7 @@ $(document).ready(function() { init_codefold(0); });
325 else
326 {
327 result[jss::account] = toBase58(accountID);
-
328 RPC::inject_error(rpcACT_NOT_FOUND, result);
+
328 RPC::inject_error(rpcACT_NOT_FOUND, result);
329 }
330
331 return result;
@@ -427,9 +427,9 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
unsigned int UInt
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet signers(AccountID const &account) noexcept
A SignerList.
Definition Indexes.cpp:312
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
diff --git a/AccountLines_8cpp_source.html b/AccountLines_8cpp_source.html index 718cb72452..25921cb250 100644 --- a/AccountLines_8cpp_source.html +++ b/AccountLines_8cpp_source.html @@ -163,13 +163,13 @@ $(document).ready(function() { init_codefold(0); });
77 auto id = parseBase58<AccountID>(params[jss::account].asString());
78 if (!id)
79 {
-
80 RPC::inject_error(rpcACT_MALFORMED, result);
+
80 RPC::inject_error(rpcACT_MALFORMED, result);
81 return result;
82 }
83 auto const accountID{std::move(id.value())};
84
85 if (!ledger->exists(keylet::account(accountID)))
-
86 return rpcError(rpcACT_NOT_FOUND);
+
86 return rpcError(rpcACT_NOT_FOUND);
87
88 std::string strPeer;
89 if (params.isMember(jss::peer))
@@ -180,7 +180,7 @@ $(document).ready(function() { init_codefold(0); });
94 }();
95 if (!strPeer.empty() && !raPeerAccount)
96 {
-
97 RPC::inject_error(rpcACT_MALFORMED, result);
+
97 RPC::inject_error(rpcACT_MALFORMED, result);
98 return result;
99 }
100
@@ -216,13 +216,13 @@ $(document).ready(function() { init_codefold(0); });
130 std::stringstream marker(params[jss::marker].asString());
131 std::string value;
132 if (!std::getline(marker, value, ','))
-
133 return rpcError(rpcINVALID_PARAMS);
+
133 return rpcError(rpcINVALID_PARAMS);
134
135 if (!startAfter.parseHex(value))
-
136 return rpcError(rpcINVALID_PARAMS);
+
136 return rpcError(rpcINVALID_PARAMS);
137
138 if (!std::getline(marker, value, ','))
-
139 return rpcError(rpcINVALID_PARAMS);
+
139 return rpcError(rpcINVALID_PARAMS);
140
141 try
142 {
@@ -230,7 +230,7 @@ $(document).ready(function() { init_codefold(0); });
144 }
145 catch (boost::bad_lexical_cast&)
146 {
-
147 return rpcError(rpcINVALID_PARAMS);
+
147 return rpcError(rpcINVALID_PARAMS);
148 }
149
150 // We then must check if the object pointed to by the marker is actually
@@ -238,10 +238,10 @@ $(document).ready(function() { init_codefold(0); });
152 auto const sle = ledger->read({ltANY, startAfter});
153
154 if (!sle)
-
155 return rpcError(rpcINVALID_PARAMS);
+
155 return rpcError(rpcINVALID_PARAMS);
156
157 if (!RPC::isRelatedToAccount(*ledger, sle, accountID))
-
158 return rpcError(rpcINVALID_PARAMS);
+
158 return rpcError(rpcINVALID_PARAMS);
159 }
160
161 auto count = 0;
@@ -303,7 +303,7 @@ $(document).ready(function() { init_codefold(0); });
217 return true;
218 }))
219 {
-
220 return rpcError(rpcINVALID_PARAMS);
+
220 return rpcError(rpcINVALID_PARAMS);
221 }
222 }
223
@@ -347,12 +347,12 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static LimitRange constexpr accountLines
Limits for the account_lines command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
bool isRelatedToAccount(ReadView const &ledger, std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Tests if a ledger entry (SLE) is owned by the specified account.
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
std::uint64_t getStartHint(std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Gets the start hint for traversing account objects.
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
@@ -360,8 +360,8 @@ $(document).ready(function() { init_codefold(0); });
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
void addLine(Json::Value &jsonLines, RPCTrustLine const &line)
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doAccountLines(RPC::JsonContext &context)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ ltANY
A special type, matching any ledger entry type.
bool forEachItemAfter(ReadView const &view, Keylet const &root, uint256 const &after, std::uint64_t const hint, unsigned int limit, std::function< bool(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items after an item in the given directory.
Definition View.cpp:786
@ lsfHighReserve
diff --git a/AccountLines__test_8cpp_source.html b/AccountLines__test_8cpp_source.html index 81c031b464..63b2b204b0 100644 --- a/AccountLines__test_8cpp_source.html +++ b/AccountLines__test_8cpp_source.html @@ -1527,9 +1527,9 @@ $(document).ready(function() { init_codefold(0); });
@ nullValue
'null' value
Definition json_value.h:20
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr std::uint32_t const tfTransferable
Definition TxFlags.h:123
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
diff --git a/AccountObjects_8cpp_source.html b/AccountObjects_8cpp_source.html index f53de4b0c3..465f2a7f44 100644 --- a/AccountObjects_8cpp_source.html +++ b/AccountObjects_8cpp_source.html @@ -114,7 +114,7 @@ $(document).ready(function() { init_codefold(0); });
41 auto id = parseBase58<AccountID>(params[jss::account].asString());
42 if (!id)
43 {
-
44 return rpcError(rpcACT_MALFORMED);
+
44 return rpcError(rpcACT_MALFORMED);
45 }
46
47 std::shared_ptr<ReadView const> ledger;
@@ -124,7 +124,7 @@ $(document).ready(function() { init_codefold(0); });
51 auto const accountID{id.value()};
52
53 if (!ledger->exists(keylet::account(accountID)))
-
54 return rpcError(rpcACT_NOT_FOUND);
+
54 return rpcError(rpcACT_NOT_FOUND);
55
56 unsigned int limit;
57 if (auto err = readLimitField(limit, RPC::Tuning::accountNFTokens, context))
@@ -446,13 +446,13 @@ $(document).ready(function() { init_codefold(0); });
378 auto const id = parseBase58<AccountID>(params[jss::account].asString());
379 if (!id)
380 {
-
381 RPC::inject_error(rpcACT_MALFORMED, result);
+
381 RPC::inject_error(rpcACT_MALFORMED, result);
382 return result;
383 }
384 auto const accountID{id.value()};
385
386 if (!ledger->exists(keylet::account(accountID)))
-
387 return rpcError(rpcACT_NOT_FOUND);
+
387 return rpcError(rpcACT_NOT_FOUND);
388
389 std::optional<std::vector<LedgerEntryType>> typeFilter;
390
@@ -572,12 +572,12 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
static LimitRange constexpr accountNFTokens
Limits for the account_nftokens command, in pages.
static LimitRange constexpr accountObjects
Limits for the account_objects command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
std::pair< RPC::Status, LedgerEntryType > chooseLedgerEntryType(Json::Value const &params)
Chooses the ledger entry type based on RPC parameters.
bool isAccountObjectsValidType(LedgerEntryType const &type)
Checks if the type is a valid filtering type for the account_objects method.
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
Keylet nftpage_max(AccountID const &owner)
A keylet for the owner's last possible NFT page.
Definition Indexes.cpp:393
@@ -599,9 +599,9 @@ $(document).ready(function() { init_codefold(0); });
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
Json::Value doAccountNFTs(RPC::JsonContext &context)
General RPC command that can retrieve objects in the account root.
Number root(Number f, unsigned d)
Definition Number.cpp:644
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
bool getAccountObjects(ReadView const &ledger, AccountID const &account, std::optional< std::vector< LedgerEntryType > > const &typeFilter, uint256 dirIndex, uint256 entryIndex, std::uint32_t const limit, Json::Value &jvResult)
Gathers all objects for an account in a ledger.
Json::Value doAccountObjects(RPC::JsonContext &context)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
LedgerEntryType
Identifiers for on-ledger objects.
@ ltANY
A special type, matching any ledger entry type.
@ rpcACT_NOT_FOUND
Definition ErrorCodes.h:51
diff --git a/AccountOffers_8cpp_source.html b/AccountOffers_8cpp_source.html index 505cf6ab58..5e2e76b2df 100644 --- a/AccountOffers_8cpp_source.html +++ b/AccountOffers_8cpp_source.html @@ -139,7 +139,7 @@ $(document).ready(function() { init_codefold(0); });
53 auto id = parseBase58<AccountID>(params[jss::account].asString());
54 if (!id)
55 {
-
56 RPC::inject_error(rpcACT_MALFORMED, result);
+
56 RPC::inject_error(rpcACT_MALFORMED, result);
57 return result;
58 }
59 auto const accountID{std::move(id.value())};
@@ -148,7 +148,7 @@ $(document).ready(function() { init_codefold(0); });
62 result[jss::account] = toBase58(accountID);
63
64 if (!ledger->exists(keylet::account(accountID)))
-
65 return rpcError(rpcACT_NOT_FOUND);
+
65 return rpcError(rpcACT_NOT_FOUND);
66
67 unsigned int limit;
68 if (auto err = readLimitField(limit, RPC::Tuning::accountOffers, context))
@@ -191,10 +191,10 @@ $(document).ready(function() { init_codefold(0); });
105 auto const sle = ledger->read({ltANY, startAfter});
106
107 if (!sle)
-
108 return rpcError(rpcINVALID_PARAMS);
+
108 return rpcError(rpcINVALID_PARAMS);
109
110 if (!RPC::isRelatedToAccount(*ledger, sle, accountID))
-
111 return rpcError(rpcINVALID_PARAMS);
+
111 return rpcError(rpcINVALID_PARAMS);
112 }
113
114 auto count = 0;
@@ -230,7 +230,7 @@ $(document).ready(function() { init_codefold(0); });
144 return true;
145 }))
146 {
-
147 return rpcError(rpcINVALID_PARAMS);
+
147 return rpcError(rpcINVALID_PARAMS);
148 }
149
150 // Both conditions need to be checked because marker is set on the limit-th
@@ -264,12 +264,12 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static LimitRange constexpr accountOffers
Limits for the account_offers command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
bool isRelatedToAccount(ReadView const &ledger, std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Tests if a ledger entry (SLE) is owned by the specified account.
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
std::uint64_t getStartHint(std::shared_ptr< SLE const > const &sle, AccountID const &accountID)
Gets the start hint for traversing account objects.
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
@@ -279,8 +279,8 @@ $(document).ready(function() { init_codefold(0); });
std::uint64_t getQuality(uint256 const &uBase)
Definition Indexes.cpp:131
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
void appendOfferJson(std::shared_ptr< SLE const > const &offer, Json::Value &offers)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
STAmount amountFromQuality(std::uint64_t rate)
Definition STAmount.cpp:965
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ ltANY
A special type, matching any ledger entry type.
bool forEachItemAfter(ReadView const &view, Keylet const &root, uint256 const &after, std::uint64_t const hint, unsigned int limit, std::function< bool(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items after an item in the given directory.
Definition View.cpp:786
@ rpcACT_NOT_FOUND
Definition ErrorCodes.h:51
diff --git a/AccountTx_8cpp_source.html b/AccountTx_8cpp_source.html index fdb93c240e..fd7d6b2ddc 100644 --- a/AccountTx_8cpp_source.html +++ b/AccountTx_8cpp_source.html @@ -483,7 +483,7 @@ $(document).ready(function() { init_codefold(0); });
391doAccountTxJson(RPC::JsonContext& context)
392{
393 if (!context.app.config().useTxTables())
-
394 return rpcError(rpcNOT_ENABLED);
+
394 return rpcError(rpcNOT_ENABLED);
395
396 auto& params = context.params;
397 AccountTxArgs args;
@@ -521,7 +521,7 @@ $(document).ready(function() { init_codefold(0); });
429 auto const account =
430 parseBase58<AccountID>(params[jss::account].asString());
431 if (!account)
-
432 return rpcError(rpcACT_MALFORMED);
+
432 return rpcError(rpcACT_MALFORMED);
433
434 args.account = *account;
435
@@ -590,10 +590,10 @@ $(document).ready(function() { init_codefold(0); });
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
@ uintValue
unsigned integer value
Definition json_value.h:22
static LimitRange constexpr accountTx
Limits for the account_tx command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
LedgerShortcut
void insertDeliverMax(Json::Value &tx_json, TxType txnType, unsigned int apiVersion)
Copy Amount field to DeliverMax field in transaction output JSON.
Definition DeliverMax.cpp:9
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
void insertMPTokenIssuanceID(Json::Value &response, std::shared_ptr< STTx const > const &transaction, TxMeta const &transactionMeta)
void insertNFTSyntheticInJson(Json::Value &, std::shared_ptr< STTx const > const &, TxMeta const &)
Adds common synthetic fields to transaction-related JSON responses.
std::optional< Json::Value > readLimitField(unsigned int &limit, Tuning::LimitRange const &range, JsonContext const &context)
Retrieves the limit value from a JsonContext or sets a default.
@@ -603,9 +603,9 @@ $(document).ready(function() { init_codefold(0); });
std::variant< std::optional< LedgerSpecifier >, Json::Value > parseLedgerArgs(RPC::Context &context, Json::Value const &params)
Definition AccountTx.cpp:35
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doAccountTxJson(RPC::JsonContext &context)
std::variant< LedgerRange, RPC::Status > getLedgerRange(RPC::Context &context, std::optional< LedgerSpecifier > const &ledgerSpecifier)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
std::string to_string_iso(date::sys_time< Duration > tp)
Definition chrono.h:73
std::pair< AccountTxResult, RPC::Status > doAccountTxHelp(RPC::Context &context, AccountTxArgs const &args)
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition Role.cpp:106
diff --git a/AccountTx__test_8cpp_source.html b/AccountTx__test_8cpp_source.html index 32dfa67185..a094dd772c 100644 --- a/AccountTx__test_8cpp_source.html +++ b/AccountTx__test_8cpp_source.html @@ -1083,8 +1083,8 @@ $(document).ready(function() { init_codefold(0); });
@ nullValue
'null' value
Definition json_value.h:20
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
Keylet payChan(AccountID const &src, AccountID const &dst, std::uint32_t seq) noexcept
A PaymentChannel.
Definition Indexes.cpp:377
Keylet check(AccountID const &id, std::uint32_t seq) noexcept
A Check.
Definition Indexes.cpp:318
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
diff --git a/AmendmentTable_8cpp_source.html b/AmendmentTable_8cpp_source.html index 52fb2d4fd7..f3d57ac559 100644 --- a/AmendmentTable_8cpp_source.html +++ b/AmendmentTable_8cpp_source.html @@ -1243,7 +1243,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void voteAmendment(soci::session &session, uint256 const &amendment, std::string const &name, AmendmentVote vote)
voteAmendment Set the veto value for a particular amendment.
Definition Wallet.cpp:270
@ match
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
T get(Section const &section, std::string const &name, T const &defaultValue=T{})
Retrieve a key/value pair from a section.
@ DefaultNo
diff --git a/ApiVersion_8h_source.html b/ApiVersion_8h_source.html index 51453f9b15..6ab007605f 100644 --- a/ApiVersion_8h_source.html +++ b/ApiVersion_8h_source.html @@ -120,15 +120,15 @@ $(document).ready(function() { init_codefold(0); });
58static_assert(apiBetaVersion >= apiMaximumSupportedVersion);
59static_assert(apiMaximumValidVersion >= apiMaximumSupportedVersion);
60
-
61template <class JsonObject>
-
62void
-
-
63setVersion(JsonObject& parent, unsigned int apiVersion, bool betaEnabled)
-
64{
-
65 XRPL_ASSERT(
- -
67 "xrpl::RPC::setVersion : input is valid");
-
68 auto& retObj = addObject(parent, jss::version);
+
61inline void
+
+
62setVersion(Json::Value& parent, unsigned int apiVersion, bool betaEnabled)
+
63{
+
64 XRPL_ASSERT(
+ +
66 "xrpl::RPC::setVersion : input is valid");
+
67
+
68 auto& retObj = parent[jss::version] = Json::objectValue;
69
71 {
@@ -236,13 +236,14 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
+
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static constexpr auto apiBetaVersion
Definition ApiVersion.h:47
static constexpr auto apiInvalidVersion
Definition ApiVersion.h:41
-
void setVersion(JsonObject &parent, unsigned int apiVersion, bool betaEnabled)
Definition ApiVersion.h:63
static constexpr auto apiMinimumSupportedVersion
Definition ApiVersion.h:42
static constexpr auto apiMaximumValidVersion
Definition ApiVersion.h:48
static constexpr std::integral_constant< unsigned, Version > apiVersion
Definition ApiVersion.h:39
static constexpr auto apiMaximumSupportedVersion
Definition ApiVersion.h:43
+
void setVersion(Json::Value &parent, unsigned int apiVersion, bool betaEnabled)
Definition ApiVersion.h:62
static constexpr auto apiCommandLineVersion
Definition ApiVersion.h:45
unsigned int getAPIVersionNumber(Json::Value const &jv, bool betaEnabled)
Retrieve the api version number from the json value.
Definition ApiVersion.h:104
static constexpr auto apiVersionIfUnspecified
Definition ApiVersion.h:44
diff --git a/Application_8cpp_source.html b/Application_8cpp_source.html index 64a62eb3d6..dea98f7623 100644 --- a/Application_8cpp_source.html +++ b/Application_8cpp_source.html @@ -2746,7 +2746,7 @@ $(document).ready(function() { init_codefold(0); });
DatabaseCon::Setup setup_DatabaseCon(Config const &c, std::optional< beast::Journal > j=std::nullopt)
void initAccountIdCache(std::size_t count)
Initialize the global cache used to map AccountID to base58 conversions.
Definition AccountID.cpp:88
std::unique_ptr< InboundTransactions > make_InboundTransactions(Application &app, beast::insight::Collector::ptr const &collector, std::function< void(std::shared_ptr< SHAMap > const &, bool)> gotSet)
-
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Object or Json::Value with a description of the ledger.
+
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Value with a description of the ledger.
Overlay::Setup setup_Overlay(BasicConfig const &config)
HashRouter::Setup setup_HashRouter(Config const &config)
void forceValidity(HashRouter &router, uint256 const &txid, Validity validity)
Sets the validity of a given transaction in the cache.
Definition apply.cpp:93
diff --git a/BookOffers_8cpp_source.html b/BookOffers_8cpp_source.html index 64348e38fe..4c31e311ee 100644 --- a/BookOffers_8cpp_source.html +++ b/BookOffers_8cpp_source.html @@ -106,7 +106,7 @@ $(document).ready(function() { init_codefold(0); });
22 // logic. It needs to be moved elsewhere and documented,
23 // and encapsulated into a function.
24 if (context.app.getJobQueue().getJobCountGE(jtCLIENT) > 200)
-
25 return rpcError(rpcTOO_BUSY);
+
25 return rpcError(rpcTOO_BUSY);
26
28 auto jvResult = RPC::lookupLedger(lpLedger, context);
@@ -313,20 +313,20 @@ $(document).ready(function() { init_codefold(0); });
constexpr bool parseHex(std::string_view sv)
Parse a hex string into a base_uint.
Definition base_uint.h:484
@ nullValue
'null' value
Definition json_value.h:20
static LimitRange constexpr bookOffers
Limits for the book_offers command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
Json::Value computeBookChanges(std::shared_ptr< L const > const &lpAccepted)
Definition BookChanges.h:28
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
-
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:282
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:260
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeMediumBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
bool isXRP(AccountID const &c)
Definition AccountID.h:71
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doBookChanges(RPC::JsonContext &context)
Json::Value doBookOffers(RPC::JsonContext &context)
@ jtCLIENT
Definition Job.h:25
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool to_issuer(AccountID &, std::string const &)
Convert hex or base58 string to AccountID.
AccountID const & noAccount()
A placeholder for empty accounts.
AccountID const & xrpAccount()
Compute AccountID from public key.
diff --git a/Book__test_8cpp_source.html b/Book__test_8cpp_source.html index 90289d96e7..ab3c331aa0 100644 --- a/Book__test_8cpp_source.html +++ b/Book__test_8cpp_source.html @@ -2208,7 +2208,7 @@ $(document).ready(function() { init_codefold(0); });
Json::Value offer(Account const &account, STAmount const &takerPays, STAmount const &takerGets, std::uint32_t flags)
Create an offer.
Definition offer.cpp:10
std::unique_ptr< WSClient > makeWSClient(Config const &cfg, bool v2, unsigned rpc_version, std::unordered_map< std::string, std::string > const &headers)
Returns a client operating through WebSockets/S.
Definition WSClient.cpp:304
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
constexpr std::uint32_t tfHybrid
Definition TxFlags.h:83
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
diff --git a/CanDelete_8cpp_source.html b/CanDelete_8cpp_source.html index 2bb3b279dc..05312a0004 100644 --- a/CanDelete_8cpp_source.html +++ b/CanDelete_8cpp_source.html @@ -184,7 +184,7 @@ $(document).ready(function() { init_codefold(0); });
T max(T... args)
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doCanDelete(RPC::JsonContext &context)
Definition CanDelete.cpp:16
@ rpcLGR_NOT_FOUND
Definition ErrorCodes.h:53
diff --git a/Connect_8cpp_source.html b/Connect_8cpp_source.html index 0447d4a1fe..66d79f1f3d 100644 --- a/Connect_8cpp_source.html +++ b/Connect_8cpp_source.html @@ -114,7 +114,7 @@ $(document).ready(function() { init_codefold(0); });
30 if (context.params.isMember(jss::port) &&
31 !context.params[jss::port].isConvertibleTo(Json::intValue))
32 {
- +
34 }
35
36 int iPort;
@@ -149,11 +149,11 @@ $(document).ready(function() { init_codefold(0); });
virtual void connect(beast::IP::Endpoint const &address)=0
Establish a peer connection to the specified endpoint.
@ intValue
signed integer value
Definition json_value.h:21
Json::Value makeObjectValue(Value const &value, Json::StaticString const &field=jss::message)
Return a Json::objectValue with a single entry.
Definition Handler.h:47
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doConnect(RPC::JsonContext &context)
Definition Connect.cpp:20
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcNOT_SYNCED
Definition ErrorCodes.h:48
@ rpcINVALID_PARAMS
Definition ErrorCodes.h:65
Application & app
Definition Context.h:22
diff --git a/Consensus_8h_source.html b/Consensus_8h_source.html index 8c9594c557..12852fbcae 100644 --- a/Consensus_8h_source.html +++ b/Consensus_8h_source.html @@ -1803,7 +1803,7 @@ $(document).ready(function() { init_codefold(0); });
@ proposing
We are normal participant in consensus and propose our position.
@ switchedLedger
We switched ledgers since we started this consensus round but are now running on what we believe is t...
@ observing
We are observing peer positions, but not proposing our position.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
auto constexpr ledgerDefaultTimeResolution
Initial resolution of ledger close time.
std::chrono::duration< Rep, Period > getNextLedgerTimeResolution(std::chrono::duration< Rep, Period > previousResolution, bool previousAgree, Seq ledgerSeq)
Calculates the close time resolution for the specified ledger.
diff --git a/DepositAuthorized_8cpp_source.html b/DepositAuthorized_8cpp_source.html index fc9a1bf0eb..c1e7e974df 100644 --- a/DepositAuthorized_8cpp_source.html +++ b/DepositAuthorized_8cpp_source.html @@ -117,7 +117,7 @@ $(document).ready(function() { init_codefold(0); });
33
34 auto srcID = parseBase58<AccountID>(params[jss::source_account].asString());
35 if (!srcID)
- +
37 auto const srcAcct{std::move(srcID.value())};
38
39 // Validate destination_account.
@@ -131,7 +131,7 @@ $(document).ready(function() { init_codefold(0); });
47 auto dstID =
48 parseBase58<AccountID>(params[jss::destination_account].asString());
49 if (!dstID)
- +
51 auto const dstAcct{std::move(dstID.value())};
52
53 // Validate ledger.
@@ -144,7 +144,7 @@ $(document).ready(function() { init_codefold(0); });
60 // If source account is not in the ledger it can't be authorized.
61 if (!ledger->exists(keylet::account(srcAcct)))
62 {
- +
64 return result;
65 }
66
@@ -152,7 +152,7 @@ $(document).ready(function() { init_codefold(0); });
68 auto const sleDest = ledger->read(keylet::account(dstAcct));
69 if (!sleDest)
70 {
- +
72 return result;
73 }
74
@@ -206,14 +206,14 @@ $(document).ready(function() { init_codefold(0); });
122 ledger->read(keylet::credential(credH));
123 if (!sleCred)
124 {
- +
126 rpcBAD_CREDENTIALS, "credentials don't exist", result);
127 return result;
128 }
129
130 if (!(sleCred->getFlags() & lsfAccepted))
131 {
- +
133 rpcBAD_CREDENTIALS, "credentials aren't accepted", result);
134 return result;
135 }
@@ -221,14 +221,14 @@ $(document).ready(function() { init_codefold(0); });
138 sleCred, ledger->header().parentCloseTime))
139 {
- +
141 rpcBAD_CREDENTIALS, "credentials are expired", result);
142 return result;
143 }
144
145 if ((*sleCred)[sfSubject] != srcAcct)
146 {
- +
149 "credentials doesn't belong to the root account",
150 result);
@@ -239,7 +239,7 @@ $(document).ready(function() { init_codefold(0); });
155 (*sleCred)[sfIssuer], (*sleCred)[sfCredentialType]);
156 if (!ins)
157 {
- +
159 rpcBAD_CREDENTIALS, "duplicates in credentials", result);
160 return result;
161 }
@@ -274,19 +274,19 @@ $(document).ready(function() { init_codefold(0); });
constexpr bool parseHex(std::string_view sv)
Parse a hex string into a base_uint.
Definition base_uint.h:484
T emplace(T... args)
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
bool checkExpired(std::shared_ptr< SLE const > const &sleCredential, NetClock::time_point const &closed)
Keylet depositPreauth(AccountID const &owner, AccountID const &preauthorized) noexcept
A DepositPreauth.
Definition Indexes.cpp:324
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
Keylet credential(AccountID const &subject, AccountID const &issuer, Slice const &credType) noexcept
Definition Indexes.cpp:535
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doDepositAuthorized(RPC::JsonContext &context)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
std::size_t constexpr maxCredentialsArraySize
The maximum number of credentials can be passed in array.
Definition Protocol.h:225
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ lsfDepositAuth
@ lsfAccepted
@ rpcBAD_CREDENTIALS
Definition ErrorCodes.h:133
diff --git a/DisputedTx_8h_source.html b/DisputedTx_8h_source.html index df4811e824..260c748f5f 100644 --- a/DisputedTx_8h_source.html +++ b/DisputedTx_8h_source.html @@ -426,7 +426,7 @@ $(document).ready(function() { init_codefold(0); });
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ proposing
We are normal participant in consensus and propose our position.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::pair< std::size_t, std::optional< ConsensusParms::AvalancheState > > getNeededWeight(ConsensusParms const &p, ConsensusParms::AvalancheState currentState, int percentTime, std::size_t currentRounds, std::size_t minimumRounds)
diff --git a/DoManifest_8cpp_source.html b/DoManifest_8cpp_source.html index 7b2de0723b..3698fb71e9 100644 --- a/DoManifest_8cpp_source.html +++ b/DoManifest_8cpp_source.html @@ -109,7 +109,7 @@ $(document).ready(function() { init_codefold(0); });
25 auto const pk = parseBase58<PublicKey>(TokenType::NodePublic, requested);
26 if (!pk)
27 {
- +
29 return ret;
30 }
31
@@ -149,8 +149,8 @@ $(document).ready(function() { init_codefold(0); });
PublicKey getMasterKey(PublicKey const &pk) const
Returns ephemeral signing key's master public key.
Definition Manifest.cpp:303
std::optional< std::string > getManifest(PublicKey const &pk) const
Returns mainfest corresponding to a given public key.
Definition Manifest.cpp:339
std::optional< std::uint32_t > getSequence(PublicKey const &pk) const
Returns master key's current manifest sequence.
Definition Manifest.cpp:315
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
std::string base64_encode(std::uint8_t const *data, std::size_t len)
diff --git a/Env_8cpp_source.html b/Env_8cpp_source.html index 296a8e07e1..6e89ee8fde 100644 --- a/Env_8cpp_source.html +++ b/Env_8cpp_source.html @@ -925,20 +925,20 @@ $(document).ready(function() { init_codefold(0); });
A namespace for easy access to logging severity values.
Definition Journal.h:11
Severity
Severity level / threshold of a Journal message.
Definition Journal.h:13
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
Keylet mptIssuance(std::uint32_t seq, AccountID const &issuer) noexcept
Definition Indexes.cpp:508
Keylet line(AccountID const &id0, AccountID const &id1, Currency const &currency) noexcept
The index of a trust line for a given currency.
Definition Indexes.cpp:226
Keylet mptoken(MPTID const &issuanceID, AccountID const &holder) noexcept
Definition Indexes.cpp:522
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
-
void fill_seq(Json::Value &jv, ReadView const &view)
Set the sequence number automatically.
Definition utility.cpp:53
+
void fill_seq(Json::Value &jv, ReadView const &view)
Set the sequence number automatically.
Definition utility.cpp:52
Json::Value trust(Account const &account, STAmount const &amount, std::uint32_t flags)
Modify a trust line.
Definition trust.cpp:13
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
Json::Value pay(AccountID const &account, AccountID const &to, AnyAmount amount)
Create a payment.
Definition pay.cpp:11
static autofill_t const autofill
Definition tags.h:23
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
-
STObject parse(Json::Value const &jv)
Convert JSON to STObject.
Definition utility.cpp:19
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
+
STObject parse(Json::Value const &jv)
Convert JSON to STObject.
Definition utility.cpp:18
auto const amount
-
void fill_fee(Json::Value &jv, ReadView const &view)
Set the fee automatically.
Definition utility.cpp:45
+
void fill_fee(Json::Value &jv, ReadView const &view)
Set the fee automatically.
Definition utility.cpp:44
Json::Value fset(Account const &account, std::uint32_t on, std::uint32_t off=0)
Add and/or remove flag.
Definition flags.cpp:10
PrettyAmount drops(Integer i)
Returns an XRP PrettyAmount, which is trivially convertible to STAmount.
std::unique_ptr< AbstractClient > makeJSONRPCClient(Config const &cfg, unsigned rpc_version)
Returns a client using JSON-RPC over HTTP/S.
diff --git a/ErrorCodes_8cpp_source.html b/ErrorCodes_8cpp_source.html index 809930189c..895aee3b1c 100644 --- a/ErrorCodes_8cpp_source.html +++ b/ErrorCodes_8cpp_source.html @@ -249,68 +249,90 @@ $(document).ready(function() { init_codefold(0); });
160
161//------------------------------------------------------------------------------
162
-
163ErrorInfo const&
+
163void
- +
165{
-
166 if (code <= rpcSUCCESS || code > rpcLAST)
- -
168 return detail::sortedErrorInfos[code - 1];
-
169}
+
166 ErrorInfo const& info(get_error_info(code));
+
167 json[jss::error] = info.token;
+
168 json[jss::error_code] = info.code;
+
169 json[jss::error_message] = info.message;
+
170}
-
170
- -
- -
173{
-
174 Json::Value json;
-
175 inject_error(code, json);
-
176 return json;
-
177}
+
171
+
172void
+
+ +
174{
+
175 ErrorInfo const& info(get_error_info(code));
+
176 json[jss::error] = info.token;
+
177 json[jss::error_code] = info.code;
+
178 json[jss::error_message] = message;
+
179}
-
178
- -
- -
181{
-
182 Json::Value json;
-
183 inject_error(code, message, json);
-
184 return json;
-
185}
+
180
+
181ErrorInfo const&
+
+ +
183{
+
184 if (code <= rpcSUCCESS || code > rpcLAST)
+ +
186 return detail::sortedErrorInfos[code - 1];
+
187}
-
186
-
187bool
-
- -
189{
-
190 if (json.isObject() && json.isMember(jss::error))
-
191 return true;
-
192 return false;
-
193}
+
188
+ +
+ +
191{
+
192 Json::Value json;
+
193 inject_error(code, json);
+
194 return json;
+
195}
-
194
-
195int
-
- -
197{
-
198 return get_error_info(code).http_status;
-
199}
+
196
+ +
+ +
199{
+
200 Json::Value json;
+
201 inject_error(code, message, json);
+
202 return json;
+
203}
-
200
-
201} // namespace RPC
-
202
- -
- -
205{
-
206 XRPL_ASSERT(
- -
208 "xrpl::RPC::rpcErrorString : input contains an error");
-
209 return jv[jss::error].asString() + jv[jss::error_message].asString();
-
210}
+
204
+
205bool
+
+ +
207{
+
208 if (json.isObject() && json.isMember(jss::error))
+
209 return true;
+
210 return false;
+
211}
-
211
-
212} // namespace xrpl
+
212
+
213int
+
+ +
215{
+
216 return get_error_info(code).http_status;
+
217}
+
+
218
+
219} // namespace RPC
+
220
+ +
+ +
223{
+
224 XRPL_ASSERT(
+ +
226 "xrpl::RPC::rpcErrorString : input contains an error");
+
227 return jv[jss::error].asString() + jv[jss::error_message].asString();
+
228}
+
+
229
+
230} // namespace xrpl
Represents a JSON value.
Definition json_value.h:131
@@ -322,13 +344,13 @@ $(document).ready(function() { init_codefold(0); });
constexpr auto sortedErrorInfos
static constexpr ErrorInfo unorderedErrorInfos[]
constexpr ErrorInfo unknownError
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
int error_code_http_status(error_code_i code)
Returns http status that corresponds to the error code.
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
int error_code_http_status(error_code_i code)
Returns http status that corresponds to the error code.
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
std::string rpcErrorString(Json::Value const &jv)
Returns a single string with the contents of an RPC error.
+
std::string rpcErrorString(Json::Value const &jv)
Returns a single string with the contents of an RPC error.
error_code_i
Definition ErrorCodes.h:21
@ rpcSRC_CUR_MALFORMED
Definition ErrorCodes.h:105
@ rpcCOMMAND_MISSING
Definition ErrorCodes.h:83
@@ -408,6 +430,9 @@ $(document).ready(function() { init_codefold(0); });
Maps an rpc error code to its token, default message, and HTTP status.
Definition ErrorCodes.h:170
+
error_code_i code
Definition ErrorCodes.h:200
+
Json::StaticString token
Definition ErrorCodes.h:201
+
Json::StaticString message
Definition ErrorCodes.h:202
diff --git a/ErrorCodes_8h_source.html b/ErrorCodes_8h_source.html index 4a86451aad..11feb61adb 100644 --- a/ErrorCodes_8h_source.html +++ b/ErrorCodes_8h_source.html @@ -296,205 +296,177 @@ $(document).ready(function() { init_codefold(0); });
207ErrorInfo const&
209
-
212template <class JsonValue>
-
213void
-
-
214inject_error(error_code_i code, JsonValue& json)
-
215{
-
216 ErrorInfo const& info(get_error_info(code));
-
217 json[jss::error] = info.token;
-
218 json[jss::error_code] = info.code;
-
219 json[jss::error_message] = info.message;
-
220}
+
212void
+ +
214
+
215void
+
216inject_error(error_code_i code, std::string const& message, Json::Value& json);
+ + + +
224make_error(error_code_i code, std::string const& message);
+
229inline Json::Value
+
+ +
231{
+
232 return make_error(rpcINVALID_PARAMS, message);
+
233}
-
221
-
222template <class JsonValue>
-
223void
-
-
224inject_error(int code, JsonValue& json)
-
225{
-
226 inject_error(error_code_i(code), json);
-
227}
+
234
+
235inline std::string
+
+ +
237{
+
238 return "Missing field '" + name + "'.";
+
239}
-
228
-
229template <class JsonValue>
-
230void
-
-
231inject_error(error_code_i code, std::string const& message, JsonValue& json)
-
232{
-
233 ErrorInfo const& info(get_error_info(code));
-
234 json[jss::error] = info.token;
-
235 json[jss::error_code] = info.code;
-
236 json[jss::error_message] = message;
-
237}
+
240
+
241inline Json::Value
+
+ +
243{
+ +
245}
-
238
- - - -
246make_error(error_code_i code, std::string const& message);
-
251inline Json::Value
-
- -
253{
-
254 return make_error(rpcINVALID_PARAMS, message);
-
255}
+
246
+
247inline Json::Value
+ -
256
-
257inline std::string
-
- -
259{
-
260 return "Missing field '" + name + "'.";
-
261}
+
252
+
253inline std::string
+
+ +
255{
+
256 return "Invalid field '" + name + "', not object.";
+
257}
-
262
-
263inline Json::Value
-
- -
265{
- -
267}
+
258
+
259inline Json::Value
+
+ +
261{
+ +
263}
-
268
-
269inline Json::Value
-
- -
271{
-
272 return missing_field_error(std::string(name));
-
273}
+
264
+
265inline Json::Value
+
+ +
267{
+
268 return object_field_error(std::string(name));
+
269}
-
274
-
275inline std::string
-
- -
277{
-
278 return "Invalid field '" + name + "', not object.";
-
279}
+
270
+
271inline std::string
+
+ +
273{
+
274 return "Invalid field '" + name + "'.";
+
275}
-
280
-
281inline Json::Value
-
- -
283{
- -
285}
+
276
+
277inline std::string
+ -
286
-
287inline Json::Value
-
- -
289{
-
290 return object_field_error(std::string(name));
-
291}
+
282
+
283inline Json::Value
+
+ +
285{
+ +
287}
-
292
-
293inline std::string
-
- -
295{
-
296 return "Invalid field '" + name + "'.";
-
297}
+
288
+
289inline Json::Value
+ -
298
-
299inline std::string
-
- -
301{
- -
303}
+
294
+
295inline std::string
+
+ +
297{
+
298 return "Invalid field '" + name + "', not " + type + ".";
+
299}
-
304
-
305inline Json::Value
-
- -
307{
- -
309}
+
300
+
301inline std::string
+
+ +
303{
+
304 return expected_field_message(std::string(name), type);
+
305}
-
310
-
311inline Json::Value
-
- -
313{
-
314 return invalid_field_error(std::string(name));
-
315}
+
306
+
307inline Json::Value
+
+ +
309{
+
310 return make_param_error(expected_field_message(name, type));
+
311}
-
316
-
317inline std::string
-
- -
319{
-
320 return "Invalid field '" + name + "', not " + type + ".";
-
321}
+
312
+
313inline Json::Value
+
+ +
315{
+
316 return expected_field_error(std::string(name), type);
+
317}
-
322
-
323inline std::string
-
- -
325{
-
326 return expected_field_message(std::string(name), type);
-
327}
-
-
328
-
329inline Json::Value
-
- -
331{
-
332 return make_param_error(expected_field_message(name, type));
-
333}
+
318
+
319inline Json::Value
+
+ +
321{
+
322 return make_param_error("not a validator");
+
323}
+
324
+
328bool
+
329contains_error(Json::Value const& json);
+
330
+
332int
+
334
-
335inline Json::Value
-
- -
337{
-
338 return expected_field_error(std::string(name), type);
-
339}
-
+
335} // namespace RPC
+
336
+ +
339rpcErrorString(Json::Value const& jv);
340
-
341inline Json::Value
-
- -
343{
-
344 return make_param_error("not a validator");
-
345}
-
-
346
-
350bool
-
351contains_error(Json::Value const& json);
-
352
-
354int
- -
356
-
357} // namespace RPC
-
358
- -
361rpcErrorString(Json::Value const& jv);
-
362
-
363} // namespace xrpl
-
364
-
365#endif
+
341} // namespace xrpl
+
342
+
343#endif
Lightweight wrapper to tag static string.
Definition json_value.h:45
Represents a JSON value.
Definition json_value.h:131
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
int error_code_http_status(error_code_i code)
Returns http status that corresponds to the error code.
-
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:258
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
-
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:282
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
-
std::string object_field_message(std::string const &name)
Definition ErrorCodes.h:276
-
Json::Value not_validator_error()
Definition ErrorCodes.h:342
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
-
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:294
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
int error_code_http_status(error_code_i code)
Returns http status that corresponds to the error code.
+
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:236
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:260
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
std::string object_field_message(std::string const &name)
Definition ErrorCodes.h:254
+
Json::Value not_validator_error()
Definition ErrorCodes.h:320
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
+
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:272
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
std::string rpcErrorString(Json::Value const &jv)
Returns a single string with the contents of an RPC error.
+
std::string rpcErrorString(Json::Value const &jv)
Returns a single string with the contents of an RPC error.
error_code_i
Definition ErrorCodes.h:21
@ rpcSRC_CUR_MALFORMED
Definition ErrorCodes.h:105
@ rpcCOMMAND_MISSING
Definition ErrorCodes.h:83
diff --git a/Feature1_8cpp_source.html b/Feature1_8cpp_source.html index ce54b0f040..4e9a9ca7a8 100644 --- a/Feature1_8cpp_source.html +++ b/Feature1_8cpp_source.html @@ -105,7 +105,7 @@ $(document).ready(function() { init_codefold(0); });
21 // ensure that the `feature` param is a string
22 if (!context.params[jss::feature].isString())
23 {
- +
25 }
26 }
27
@@ -138,12 +138,12 @@ $(document).ready(function() { init_codefold(0); });
54 // If the feature is not found by name, try to parse the `feature` param as
55 // a feature ID. If that fails, return an error.
56 if (!feature && !feature.parseHex(context.params[jss::feature].asString()))
- +
58
59 if (context.params.isMember(jss::vetoed))
60 {
61 if (!isAdmin)
- +
63
64 if (context.params[jss::vetoed].asBool())
65 table.veto(feature);
@@ -153,7 +153,7 @@ $(document).ready(function() { init_codefold(0); });
69
70 Json::Value jvReply = table.getJson(feature, isAdmin);
71 if (!jvReply)
- +
73
74 auto m = majorities.find(feature);
75 if (m != majorities.end())
@@ -179,9 +179,9 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
bool isAdmin(Port const &port, Json::Value const &params, beast::IP::Address const &remoteIp)
Definition Role.cpp:66
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
majorityAmendments_t getMajorityAmendments(ReadView const &view)
Definition View.cpp:1040
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Json::Value doFeature(RPC::JsonContext &context)
Definition Feature1.cpp:17
@ rpcNO_PERMISSION
Definition ErrorCodes.h:34
@ rpcBAD_FEATURE
Definition ErrorCodes.h:76
diff --git a/Fee1_8cpp_source.html b/Fee1_8cpp_source.html index 8a8f4f99d7..5df84d5dd4 100644 --- a/Fee1_8cpp_source.html +++ b/Fee1_8cpp_source.html @@ -100,7 +100,7 @@ $(document).ready(function() { init_codefold(0); });
16
17 // LCOV_EXCL_START
18 UNREACHABLE("xrpl::doFee : invalid result type");
- +
20 return context.params;
21 // LCOV_EXCL_STOP
22}
@@ -111,7 +111,7 @@ $(document).ready(function() { init_codefold(0); });
virtual TxQ & getTxQ()=0
Json::Value doRPC(Application &app) const
Summarize current fee metrics for the fee RPC command.
Definition TxQ.cpp:1838
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doFee(RPC::JsonContext &context)
Definition Fee1.cpp:11
@ rpcINTERNAL
Definition ErrorCodes.h:111
diff --git a/Freeze__test_8cpp_source.html b/Freeze__test_8cpp_source.html index 7417e078b6..06b6711643 100644 --- a/Freeze__test_8cpp_source.html +++ b/Freeze__test_8cpp_source.html @@ -2253,7 +2253,7 @@ $(document).ready(function() { init_codefold(0); });
constexpr std::uint32_t asfGlobalFreeze
Definition TxFlags.h:64
constexpr std::uint32_t tfPassive
Definition TxFlags.h:79
constexpr std::uint32_t tfFillOrKill
Definition TxFlags.h:81
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
constexpr std::uint32_t tfClearFreeze
Definition TxFlags.h:100
constexpr std::uint32_t tfClearDeepFreeze
Definition TxFlags.h:102
constexpr std::uint32_t tfSetDeepFreeze
Definition TxFlags.h:101
diff --git a/GRPCHandlers_8h_source.html b/GRPCHandlers_8h_source.html index 2927f13123..dae1fe7d29 100644 --- a/GRPCHandlers_8h_source.html +++ b/GRPCHandlers_8h_source.html @@ -121,7 +121,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::pair< org::xrpl::rpc::v1::GetLedgerDiffResponse, grpc::Status > doLedgerDiffGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerDiffRequest > &context)
Definition LedgerDiff.cpp:6
std::pair< org::xrpl::rpc::v1::GetLedgerDataResponse, grpc::Status > doLedgerDataGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerDataRequest > &context)
-
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
+
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
std::pair< org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status > doLedgerEntryGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerEntryRequest > &context)
diff --git a/GRPCServer_8cpp_source.html b/GRPCServer_8cpp_source.html index cae8079388..5f27684c78 100644 --- a/GRPCServer_8cpp_source.html +++ b/GRPCServer_8cpp_source.html @@ -826,7 +826,7 @@ $(document).ready(function() { init_codefold(0); });
STL namespace.
@ NO_CONDITION
Definition Handler.h:21
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
error_code_i conditionMet(Condition condition_required, T &context)
Definition Handler.h:62
Charge const feeMediumBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@@ -836,7 +836,7 @@ $(document).ready(function() { init_codefold(0); });
Role
Indicates the level of administrative permission to grant.
Definition Role.h:25
-
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
+
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
@ jtRPC
Definition Job.h:32
std::pair< org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status > doLedgerEntryGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerEntryRequest > &context)
void erase(STObject &st, TypedField< U > const &f)
Remove a field in an STObject.
Definition STExchange.h:153
diff --git a/GatewayBalances_8cpp_source.html b/GatewayBalances_8cpp_source.html index 027e4ca47c..beebbc75de 100644 --- a/GatewayBalances_8cpp_source.html +++ b/GatewayBalances_8cpp_source.html @@ -137,7 +137,7 @@ $(document).ready(function() { init_codefold(0); });
53 // Get info on account.
54 auto id = parseBase58<AccountID>(strIdent);
55 if (!id)
- +
57 auto const accountID{std::move(id.value())};
59
@@ -145,7 +145,7 @@ $(document).ready(function() { init_codefold(0); });
61
62 if (context.apiVersion > 1u && !ledger->exists(keylet::account(accountID)))
63 {
- +
65 return result;
66 }
67
@@ -193,11 +193,11 @@ $(document).ready(function() { init_codefold(0); });
109 // not have currency issued by the account from the request.
110 if (context.apiVersion < 2u)
111 {
- +
113 }
114 else
115 {
- +
117 }
118 return result;
119 }
@@ -372,8 +372,8 @@ $(document).ready(function() { init_codefold(0); });
T empty(T... args)
T insert(T... args)
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeHeavyBurdenRPC
TER valid(STTx const &tx, ReadView const &view, AccountID const &src, beast::Journal j)
@@ -382,7 +382,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void forEachItem(ReadView const &view, Keylet const &root, std::function< void(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items in the given directory.
Definition View.cpp:759
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcACT_NOT_FOUND
Definition ErrorCodes.h:51
@ rpcINVALID_HOTWALLET
Definition ErrorCodes.h:62
@ rpcINVALID_PARAMS
Definition ErrorCodes.h:65
diff --git a/GetAggregatePrice_8cpp_source.html b/GetAggregatePrice_8cpp_source.html index ccfd604533..a0bb4b2651 100644 --- a/GetAggregatePrice_8cpp_source.html +++ b/GetAggregatePrice_8cpp_source.html @@ -219,7 +219,7 @@ $(document).ready(function() { init_codefold(0); });
142 if (!params[jss::oracles].isArray() || params[jss::oracles].size() == 0 ||
143 params[jss::oracles].size() > maxOracles)
144 {
- +
146 return result;
147 }
148
@@ -275,34 +275,34 @@ $(document).ready(function() { init_codefold(0); });
198 auto const trim = getField(jss::trim);
200 {
- +
202 return result;
203 }
204 if (params.isMember(jss::trim) &&
205 (std::get<std::uint32_t>(trim) == 0 ||
207 {
- +
209 return result;
210 }
211
212 auto const timeThreshold = getField(jss::time_threshold, 0);
213 if (std::holds_alternative<error_code_i>(timeThreshold))
214 {
-
215 RPC::inject_error(std::get<error_code_i>(timeThreshold), result);
+
215 RPC::inject_error(std::get<error_code_i>(timeThreshold), result);
216 return result;
217 }
218
219 auto const baseAsset = getCurrency(sfBaseAsset, jss::base_asset);
221 {
-
222 RPC::inject_error(std::get<error_code_i>(baseAsset), result);
+
222 RPC::inject_error(std::get<error_code_i>(baseAsset), result);
223 return result;
224 }
225 auto const quoteAsset = getCurrency(sfQuoteAsset, jss::quote_asset);
227 {
-
228 RPC::inject_error(std::get<error_code_i>(quoteAsset), result);
+
228 RPC::inject_error(std::get<error_code_i>(quoteAsset), result);
229 return result;
230 }
231
@@ -314,7 +314,7 @@ $(document).ready(function() { init_codefold(0); });
237 if (!oracle.isMember(jss::oracle_document_id) ||
238 !oracle.isMember(jss::account))
239 {
- +
241 return result;
242 }
243 auto const documentID = validUInt(oracle, jss::oracle_document_id)
@@ -324,7 +324,7 @@ $(document).ready(function() { init_codefold(0); });
247 parseBase58<AccountID>(oracle[jss::account].asString());
248 if (!account || account->isZero() || !documentID)
249 {
- +
251 return result;
252 }
253
@@ -364,7 +364,7 @@ $(document).ready(function() { init_codefold(0); });
287
288 if (prices.empty())
289 {
- +
291 return result;
292 }
293
@@ -389,7 +389,7 @@ $(document).ready(function() { init_codefold(0); });
312 if (prices.empty())
313 {
314 // LCOV_EXCL_START
- +
316 return result;
317 // LCOV_EXCL_STOP
318 }
@@ -466,8 +466,8 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
T make_optional(T... args)
bool lexicalCastChecked(Out &out, In in)
Intelligently convert from one type to another.
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet oracle(AccountID const &account, std::uint32_t const &documentID) noexcept
Definition Indexes.cpp:502
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/GetCounts_8h_source.html b/GetCounts_8h_source.html index 4d513732c0..74a8380a0a 100644 --- a/GetCounts_8h_source.html +++ b/GetCounts_8h_source.html @@ -86,16 +86,14 @@ $(document).ready(function() { init_codefold(0); });
3
4#include <xrpld/app/main/Application.h>
5
-
6#include <xrpl/json/Object.h>
+
6namespace xrpl {
7
-
8namespace xrpl {
-
9
- -
11getCountsJson(Application& app, int minObjectCount);
+ +
9getCountsJson(Application& app, int minObjectCount);
+
10
+
11}
12
-
13}
-
14
-
15#endif
+
13#endif
Represents a JSON value.
Definition json_value.h:131
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value getCountsJson(Application &app, int minObjectCount)
Definition GetCounts.cpp:43
diff --git a/InnerObjectFormats__test_8cpp_source.html b/InnerObjectFormats__test_8cpp_source.html index c71c37bd56..d631b2fa95 100644 --- a/InnerObjectFormats__test_8cpp_source.html +++ b/InnerObjectFormats__test_8cpp_source.html @@ -292,7 +292,7 @@ $(document).ready(function() { init_codefold(0); });
A transaction testing environment.
Definition Env.h:102
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/JSONRPC__test_8cpp_source.html b/JSONRPC__test_8cpp_source.html index 07309394a4..8ef7efce9b 100644 --- a/JSONRPC__test_8cpp_source.html +++ b/JSONRPC__test_8cpp_source.html @@ -3073,7 +3073,7 @@ $(document).ready(function() { init_codefold(0); });
static constexpr std::integral_constant< unsigned, Version > apiVersion
Definition ApiVersion.h:39
Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
Returns a Json::objectValue.
std::function< void(std::shared_ptr< Transaction > &transaction, bool bUnlimited, bool bLocal, NetworkOPs::FailHard failType)> ProcessTransactionFn
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Json::Value trust(AccountID const &account, STAmount const &amount, std::uint32_t flags=0)
Definition AMM.cpp:791
Json::Value pay(Account const &account, AccountID const &to, STAmount const &amount)
Definition AMM.cpp:803
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
diff --git a/KeyGeneration__test_8cpp_source.html b/KeyGeneration__test_8cpp_source.html index 89b5823b13..2a60b59cc6 100644 --- a/KeyGeneration__test_8cpp_source.html +++ b/KeyGeneration__test_8cpp_source.html @@ -1031,7 +1031,7 @@ $(document).ready(function() { init_codefold(0); });
static key_strings const secp256k1_strings
std::optional< std::pair< PublicKey, SecretKey > > keypairForSignature(Json::Value const &params, Json::Value &error, unsigned int apiVersion)
Generates a keypair for signature from RPC parameters.
static key_strings const ed25519_strings
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
Json::Value walletPropose(Json::Value const &params)
diff --git a/LedgerData_8cpp_source.html b/LedgerData_8cpp_source.html index ec1c147b84..4a6e4f970c 100644 --- a/LedgerData_8cpp_source.html +++ b/LedgerData_8cpp_source.html @@ -300,13 +300,13 @@ $(document).ready(function() { init_codefold(0); });
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
int constexpr pageLength(bool isBinary)
Maximum number of pages in a LedgerData response.
std::pair< RPC::Status, LedgerEntryType > chooseLedgerEntryType(Json::Value const &params)
Chooses the ledger entry type based on RPC parameters.
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
Status ledgerFromRequest(T &ledger, GRPCContext< R > const &context)
Retrieves a ledger from a gRPC request context.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet unchecked(uint256 const &key) noexcept
Any ledger entry.
Definition Indexes.cpp:350
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doLedgerData(RPC::JsonContext &)
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::pair< org::xrpl::rpc::v1::GetLedgerDataResponse, grpc::Status > doLedgerDataGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerDataRequest > &context)
std::string serializeHex(STObject const &o)
Serialize an object to a hex string.
Definition serialize.h:22
@@ -316,8 +316,8 @@ $(document).ready(function() { init_codefold(0); }); - - + +
RequestType params
Definition Context.h:52
diff --git a/LedgerEntryHelpers_8h_source.html b/LedgerEntryHelpers_8h_source.html index 61aef21b3d..82f7ff23e4 100644 --- a/LedgerEntryHelpers_8h_source.html +++ b/LedgerEntryHelpers_8h_source.html @@ -431,8 +431,8 @@ $(document).ready(function() { init_codefold(0); });
std::optional< T > parse(Json::Value const &param)
Expected< uint256, Json::Value > requiredUInt256(Json::Value const &params, Json::StaticString const fieldName, std::string const &err)
Unexpected< Json::Value > invalidFieldError(std::string const &err, Json::StaticString const field, std::string const &type)
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:258
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:236
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
Issue issueFromJson(Json::Value const &v)
Definition Issue.cpp:76
diff --git a/LedgerEntry_8cpp_source.html b/LedgerEntry_8cpp_source.html index 8963a2283b..caa76d9850 100644 --- a/LedgerEntry_8cpp_source.html +++ b/LedgerEntry_8cpp_source.html @@ -1115,10 +1115,10 @@ $(document).ready(function() { init_codefold(0); });
Unexpected< Json::Value > malformedError(std::string const &err, std::string const &message)
Expected< uint256, Json::Value > requiredUInt256(Json::Value const &params, Json::StaticString const fieldName, std::string const &err)
Unexpected< Json::Value > invalidFieldError(std::string const &err, Json::StaticString const field, std::string const &type)
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
Status ledgerFromRequest(T &ledger, GRPCContext< R > const &context)
Retrieves a ledger from a gRPC request context.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
std::set< std::pair< AccountID, Slice > > makeSorted(STArray const &credentials)
Keylet oracle(AccountID const &account, std::uint32_t const &documentID) noexcept
Definition Indexes.cpp:502
Keylet did(AccountID const &account) noexcept
Definition Indexes.cpp:496
diff --git a/LedgerEntry__test_8cpp_source.html b/LedgerEntry__test_8cpp_source.html index 971c37698e..6ceb66002e 100644 --- a/LedgerEntry__test_8cpp_source.html +++ b/LedgerEntry__test_8cpp_source.html @@ -2620,8 +2620,8 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
-
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:258
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
+
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:236
Keylet payChan(AccountID const &src, AccountID const &dst, std::uint32_t seq) noexcept
A PaymentChannel.
Definition Indexes.cpp:377
Keylet check(AccountID const &id, std::uint32_t seq) noexcept
A Check.
Definition Indexes.cpp:318
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
diff --git a/LedgerHandler_8cpp_source.html b/LedgerHandler_8cpp_source.html index b1326501c5..75be028e7a 100644 --- a/LedgerHandler_8cpp_source.html +++ b/LedgerHandler_8cpp_source.html @@ -162,232 +162,273 @@ $(document).ready(function() { init_codefold(0); });
76}
77
-
78} // namespace RPC
-
79
- -
- -
82{
-
83 auto begin = std::chrono::system_clock::now();
-
84 org::xrpl::rpc::v1::GetLedgerRequest& request = context.params;
-
85 org::xrpl::rpc::v1::GetLedgerResponse response;
-
86 grpc::Status status = grpc::Status::OK;
-
87
- -
89 if (auto status = RPC::ledgerFromRequest(ledger, context))
-
90 {
-
91 grpc::Status errorStatus;
-
92 if (status.toErrorCode() == rpcINVALID_PARAMS)
+
78void
+
+ +
80{
+
81 if (ledger_)
+
82 {
+
83 copyFrom(value, result_);
+ +
85 }
+
86 else
+
87 {
+
88 auto& master = context_.app.getLedgerMaster();
+
89 {
+
90 auto& closed = value[jss::closed] = Json::objectValue;
+
91 addJson(closed, {*master.getClosedLedger(), &context_, 0});
+
92 }
93 {
-
94 errorStatus = grpc::Status(
-
95 grpc::StatusCode::INVALID_ARGUMENT, status.message());
+
94 auto& open = value[jss::open] = Json::objectValue;
+
95 addJson(open, {*master.getCurrentLedger(), &context_, 0});
96 }
-
97 else
-
98 {
-
99 errorStatus =
-
100 grpc::Status(grpc::StatusCode::NOT_FOUND, status.message());
-
101 }
-
102 return {response, errorStatus};
-
103 }
-
104
-
105 Serializer s;
-
106 addRaw(ledger->header(), s, true);
-
107
-
108 response.set_ledger_header(s.peekData().data(), s.getLength());
-
109
-
110 if (request.transactions())
-
111 {
-
112 try
-
113 {
-
114 for (auto& i : ledger->txs)
-
115 {
-
116 XRPL_ASSERT(
-
117 i.first, "xrpl::doLedgerGrpc : non-null transaction");
-
118 if (request.expand())
-
119 {
-
120 auto txn = response.mutable_transactions_list()
-
121 ->add_transactions();
-
122 Serializer sTxn = i.first->getSerializer();
-
123 txn->set_transaction_blob(sTxn.data(), sTxn.getLength());
-
124 if (i.second)
-
125 {
-
126 Serializer sMeta = i.second->getSerializer();
-
127 txn->set_metadata_blob(sMeta.data(), sMeta.getLength());
-
128 }
-
129 }
-
130 else
-
131 {
-
132 auto const& hash = i.first->getTransactionID();
-
133 response.mutable_hashes_list()->add_hashes(
-
134 hash.data(), hash.size());
-
135 }
-
136 }
-
137 }
-
138 catch (std::exception const& e)
-
139 {
-
140 JLOG(context.j.error())
-
141 << __func__ << " - Error deserializing transaction in ledger "
-
142 << ledger->header().seq
-
143 << " . skipping transaction and following transactions. You "
-
144 "should look into this further";
-
145 }
-
146 }
-
147
-
148 if (request.get_objects())
-
149 {
- -
151 context.app.getLedgerMaster().getLedgerBySeq(ledger->seq() - 1);
-
152
- - -
155 if (!base)
-
156 {
-
157 grpc::Status errorStatus{
-
158 grpc::StatusCode::NOT_FOUND, "parent ledger not validated"};
-
159 return {response, errorStatus};
-
160 }
-
161
- - -
164 if (!desired)
-
165 {
-
166 grpc::Status errorStatus{
-
167 grpc::StatusCode::NOT_FOUND, "ledger not validated"};
-
168 return {response, errorStatus};
-
169 }
-
170 SHAMap::Delta differences;
-
171
-
172 int maxDifferences = std::numeric_limits<int>::max();
-
173
-
174 bool res = base->stateMap().compare(
-
175 desired->stateMap(), differences, maxDifferences);
-
176 if (!res)
-
177 {
-
178 grpc::Status errorStatus{
-
179 grpc::StatusCode::RESOURCE_EXHAUSTED,
-
180 "too many differences between specified ledgers"};
-
181 return {response, errorStatus};
-
182 }
-
183
-
184 for (auto& [k, v] : differences)
-
185 {
-
186 auto obj = response.mutable_ledger_objects()->add_objects();
-
187 auto inBase = v.first;
-
188 auto inDesired = v.second;
-
189
-
190 obj->set_key(k.data(), k.size());
-
191 if (inDesired)
-
192 {
-
193 XRPL_ASSERT(
-
194 inDesired->size() > 0,
-
195 "xrpl::doLedgerGrpc : non-empty desired");
-
196 obj->set_data(inDesired->data(), inDesired->size());
-
197 }
-
198 if (inBase && inDesired)
-
199 obj->set_mod_type(
-
200 org::xrpl::rpc::v1::RawLedgerObject::MODIFIED);
-
201 else if (inBase && !inDesired)
-
202 obj->set_mod_type(org::xrpl::rpc::v1::RawLedgerObject::DELETED);
-
203 else
-
204 obj->set_mod_type(org::xrpl::rpc::v1::RawLedgerObject::CREATED);
-
205 auto const blob = inDesired ? inDesired->slice() : inBase->slice();
-
206 auto const objectType =
-
207 static_cast<LedgerEntryType>(blob[1] << 8 | blob[2]);
-
208
-
209 if (request.get_object_neighbors())
-
210 {
-
211 if (!(inBase && inDesired))
-
212 {
-
213 auto lb = desired->stateMap().lower_bound(k);
-
214 auto ub = desired->stateMap().upper_bound(k);
-
215 if (lb != desired->stateMap().end())
-
216 obj->set_predecessor(
-
217 lb->key().data(), lb->key().size());
-
218 if (ub != desired->stateMap().end())
-
219 obj->set_successor(ub->key().data(), ub->key().size());
-
220 if (objectType == ltDIR_NODE)
-
221 {
-
222 auto sle = std::make_shared<SLE>(SerialIter{blob}, k);
-
223 if (!sle->isFieldPresent(sfOwner))
-
224 {
-
225 auto bookBase = keylet::quality({ltDIR_NODE, k}, 0);
-
226 if (!inBase && inDesired)
-
227 {
-
228 auto firstBook =
-
229 desired->stateMap().upper_bound(
-
230 bookBase.key);
-
231 if (firstBook != desired->stateMap().end() &&
-
232 firstBook->key() <
-
233 getQualityNext(bookBase.key) &&
-
234 firstBook->key() == k)
-
235 {
-
236 auto succ = response.add_book_successors();
-
237 succ->set_book_base(
-
238 bookBase.key.data(),
-
239 bookBase.key.size());
-
240 succ->set_first_book(
-
241 firstBook->key().data(),
-
242 firstBook->key().size());
-
243 }
-
244 }
-
245 if (inBase && !inDesired)
-
246 {
-
247 auto oldFirstBook =
-
248 base->stateMap().upper_bound(bookBase.key);
-
249 if (oldFirstBook != base->stateMap().end() &&
-
250 oldFirstBook->key() <
-
251 getQualityNext(bookBase.key) &&
-
252 oldFirstBook->key() == k)
-
253 {
-
254 auto succ = response.add_book_successors();
-
255 succ->set_book_base(
-
256 bookBase.key.data(),
-
257 bookBase.key.size());
-
258 auto newFirstBook =
-
259 desired->stateMap().upper_bound(
-
260 bookBase.key);
-
261
-
262 if (newFirstBook !=
-
263 desired->stateMap().end() &&
-
264 newFirstBook->key() <
-
265 getQualityNext(bookBase.key))
-
266 {
-
267 succ->set_first_book(
-
268 newFirstBook->key().data(),
-
269 newFirstBook->key().size());
-
270 }
-
271 }
-
272 }
-
273 }
-
274 }
-
275 }
-
276 }
-
277 }
-
278 response.set_objects_included(true);
-
279 response.set_object_neighbors_included(request.get_object_neighbors());
-
280 response.set_skiplist_included(true);
-
281 }
-
282
-
283 response.set_validated(context.ledgerMaster.isValidated(*ledger));
-
284
- -
286 auto duration =
-
287 std::chrono::duration_cast<std::chrono::milliseconds>(end - begin)
-
288 .count() *
-
289 1.0;
-
290 JLOG(context.j.warn())
-
291 << __func__ << " - Extract time = " << duration
-
292 << " - num objects = " << response.ledger_objects().objects_size()
-
293 << " - num txns = " << response.transactions_list().transactions_size()
-
294 << " - ms per obj "
-
295 << duration / response.ledger_objects().objects_size()
-
296 << " - ms per txn "
-
297 << duration / response.transactions_list().transactions_size();
-
298
-
299 return {response, status};
-
300}
+
97 }
+
98
+ +
100 if (context_.params.isMember(jss::type))
+
101 {
+
102 Json::Value& w = warnings.append(Json::objectValue);
+
103 w[jss::id] = warnRPC_FIELDS_DEPRECATED;
+
104 w[jss::message] =
+
105 "Some fields from your request are deprecated. Please check the "
+
106 "documentation at "
+
107 "https://xrpl.org/docs/references/http-websocket-apis/ "
+
108 "and update your request. Field `type` is deprecated.";
+
109 }
+
110
+
111 if (warnings.size())
+
112 value[jss::warnings] = std::move(warnings);
+
113}
-
301} // namespace xrpl
+
114
+
115} // namespace RPC
+
116
+ +
+ +
119{
+
120 auto begin = std::chrono::system_clock::now();
+
121 org::xrpl::rpc::v1::GetLedgerRequest& request = context.params;
+
122 org::xrpl::rpc::v1::GetLedgerResponse response;
+
123 grpc::Status status = grpc::Status::OK;
+
124
+ +
126 if (auto status = RPC::ledgerFromRequest(ledger, context))
+
127 {
+
128 grpc::Status errorStatus;
+
129 if (status.toErrorCode() == rpcINVALID_PARAMS)
+
130 {
+
131 errorStatus = grpc::Status(
+
132 grpc::StatusCode::INVALID_ARGUMENT, status.message());
+
133 }
+
134 else
+
135 {
+
136 errorStatus =
+
137 grpc::Status(grpc::StatusCode::NOT_FOUND, status.message());
+
138 }
+
139 return {response, errorStatus};
+
140 }
+
141
+
142 Serializer s;
+
143 addRaw(ledger->header(), s, true);
+
144
+
145 response.set_ledger_header(s.peekData().data(), s.getLength());
+
146
+
147 if (request.transactions())
+
148 {
+
149 try
+
150 {
+
151 for (auto& i : ledger->txs)
+
152 {
+
153 XRPL_ASSERT(
+
154 i.first, "xrpl::doLedgerGrpc : non-null transaction");
+
155 if (request.expand())
+
156 {
+
157 auto txn = response.mutable_transactions_list()
+
158 ->add_transactions();
+
159 Serializer sTxn = i.first->getSerializer();
+
160 txn->set_transaction_blob(sTxn.data(), sTxn.getLength());
+
161 if (i.second)
+
162 {
+
163 Serializer sMeta = i.second->getSerializer();
+
164 txn->set_metadata_blob(sMeta.data(), sMeta.getLength());
+
165 }
+
166 }
+
167 else
+
168 {
+
169 auto const& hash = i.first->getTransactionID();
+
170 response.mutable_hashes_list()->add_hashes(
+
171 hash.data(), hash.size());
+
172 }
+
173 }
+
174 }
+
175 catch (std::exception const& e)
+
176 {
+
177 JLOG(context.j.error())
+
178 << __func__ << " - Error deserializing transaction in ledger "
+
179 << ledger->header().seq
+
180 << " . skipping transaction and following transactions. You "
+
181 "should look into this further";
+
182 }
+
183 }
+
184
+
185 if (request.get_objects())
+
186 {
+ +
188 context.app.getLedgerMaster().getLedgerBySeq(ledger->seq() - 1);
+
189
+ + +
192 if (!base)
+
193 {
+
194 grpc::Status errorStatus{
+
195 grpc::StatusCode::NOT_FOUND, "parent ledger not validated"};
+
196 return {response, errorStatus};
+
197 }
+
198
+ + +
201 if (!desired)
+
202 {
+
203 grpc::Status errorStatus{
+
204 grpc::StatusCode::NOT_FOUND, "ledger not validated"};
+
205 return {response, errorStatus};
+
206 }
+
207 SHAMap::Delta differences;
+
208
+
209 int maxDifferences = std::numeric_limits<int>::max();
+
210
+
211 bool res = base->stateMap().compare(
+
212 desired->stateMap(), differences, maxDifferences);
+
213 if (!res)
+
214 {
+
215 grpc::Status errorStatus{
+
216 grpc::StatusCode::RESOURCE_EXHAUSTED,
+
217 "too many differences between specified ledgers"};
+
218 return {response, errorStatus};
+
219 }
+
220
+
221 for (auto& [k, v] : differences)
+
222 {
+
223 auto obj = response.mutable_ledger_objects()->add_objects();
+
224 auto inBase = v.first;
+
225 auto inDesired = v.second;
+
226
+
227 obj->set_key(k.data(), k.size());
+
228 if (inDesired)
+
229 {
+
230 XRPL_ASSERT(
+
231 inDesired->size() > 0,
+
232 "xrpl::doLedgerGrpc : non-empty desired");
+
233 obj->set_data(inDesired->data(), inDesired->size());
+
234 }
+
235 if (inBase && inDesired)
+
236 obj->set_mod_type(
+
237 org::xrpl::rpc::v1::RawLedgerObject::MODIFIED);
+
238 else if (inBase && !inDesired)
+
239 obj->set_mod_type(org::xrpl::rpc::v1::RawLedgerObject::DELETED);
+
240 else
+
241 obj->set_mod_type(org::xrpl::rpc::v1::RawLedgerObject::CREATED);
+
242 auto const blob = inDesired ? inDesired->slice() : inBase->slice();
+
243 auto const objectType =
+
244 static_cast<LedgerEntryType>(blob[1] << 8 | blob[2]);
+
245
+
246 if (request.get_object_neighbors())
+
247 {
+
248 if (!(inBase && inDesired))
+
249 {
+
250 auto lb = desired->stateMap().lower_bound(k);
+
251 auto ub = desired->stateMap().upper_bound(k);
+
252 if (lb != desired->stateMap().end())
+
253 obj->set_predecessor(
+
254 lb->key().data(), lb->key().size());
+
255 if (ub != desired->stateMap().end())
+
256 obj->set_successor(ub->key().data(), ub->key().size());
+
257 if (objectType == ltDIR_NODE)
+
258 {
+
259 auto sle = std::make_shared<SLE>(SerialIter{blob}, k);
+
260 if (!sle->isFieldPresent(sfOwner))
+
261 {
+
262 auto bookBase = keylet::quality({ltDIR_NODE, k}, 0);
+
263 if (!inBase && inDesired)
+
264 {
+
265 auto firstBook =
+
266 desired->stateMap().upper_bound(
+
267 bookBase.key);
+
268 if (firstBook != desired->stateMap().end() &&
+
269 firstBook->key() <
+
270 getQualityNext(bookBase.key) &&
+
271 firstBook->key() == k)
+
272 {
+
273 auto succ = response.add_book_successors();
+
274 succ->set_book_base(
+
275 bookBase.key.data(),
+
276 bookBase.key.size());
+
277 succ->set_first_book(
+
278 firstBook->key().data(),
+
279 firstBook->key().size());
+
280 }
+
281 }
+
282 if (inBase && !inDesired)
+
283 {
+
284 auto oldFirstBook =
+
285 base->stateMap().upper_bound(bookBase.key);
+
286 if (oldFirstBook != base->stateMap().end() &&
+
287 oldFirstBook->key() <
+
288 getQualityNext(bookBase.key) &&
+
289 oldFirstBook->key() == k)
+
290 {
+
291 auto succ = response.add_book_successors();
+
292 succ->set_book_base(
+
293 bookBase.key.data(),
+
294 bookBase.key.size());
+
295 auto newFirstBook =
+
296 desired->stateMap().upper_bound(
+
297 bookBase.key);
+
298
+
299 if (newFirstBook !=
+
300 desired->stateMap().end() &&
+
301 newFirstBook->key() <
+
302 getQualityNext(bookBase.key))
+
303 {
+
304 succ->set_first_book(
+
305 newFirstBook->key().data(),
+
306 newFirstBook->key().size());
+
307 }
+
308 }
+
309 }
+
310 }
+
311 }
+
312 }
+
313 }
+
314 }
+
315 response.set_objects_included(true);
+
316 response.set_object_neighbors_included(request.get_object_neighbors());
+
317 response.set_skiplist_included(true);
+
318 }
+
319
+
320 response.set_validated(context.ledgerMaster.isValidated(*ledger));
+
321
+ +
323 auto duration =
+
324 std::chrono::duration_cast<std::chrono::milliseconds>(end - begin)
+
325 .count() *
+
326 1.0;
+
327 JLOG(context.j.warn())
+
328 << __func__ << " - Extract time = " << duration
+
329 << " - num objects = " << response.ledger_objects().objects_size()
+
330 << " - num txns = " << response.transactions_list().transactions_size()
+
331 << " - ms per obj "
+
332 << duration / response.ledger_objects().objects_size()
+
333 << " - ms per txn "
+
334 << duration / response.transactions_list().transactions_size();
+
335
+
336 return {response, status};
+
337}
+
+
338} // namespace xrpl
+
Represents a JSON value.
Definition json_value.h:131
+
Value & append(Value const &value)
Append value to array at the end.
bool isMember(char const *key) const
Return true if the object has a member named key.
Stream error() const
Definition Journal.h:327
Stream warn() const
Definition Journal.h:321
@@ -397,13 +438,14 @@ $(document).ready(function() { init_codefold(0); });
std::shared_ptr< Ledger const > getLedgerBySeq(std::uint32_t index)
bool isValidated(ReadView const &ledger)
bool isLoadedLocal() const
-
std::shared_ptr< ReadView const > ledger_
- - +
void writeResult(Json::Value &)
+
std::shared_ptr< ReadView const > ledger_
+ + -
std::vector< TxQ::TxDetails > queueTxs_
+
std::vector< TxQ::TxDetails > queueTxs_
- +
Blob const & peekData() const
Definition Serializer.h:183
@@ -415,6 +457,8 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
T max(T... args)
+
@ arrayValue
array value (ordered list)
Definition json_value.h:26
+
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
Status ledgerFromRequest(T &ledger, GRPCContext< R > const &context)
Retrieves a ledger from a gRPC request context.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
@@ -422,24 +466,28 @@ $(document).ready(function() { init_codefold(0); });
Keylet quality(Keylet const &k, std::uint64_t q) noexcept
The initial directory page for a specific quality.
Definition Indexes.cpp:262
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
+
std::pair< org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status > doLedgerGrpc(RPC::GRPCContext< org::xrpl::rpc::v1::GetLedgerRequest > &context)
+
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
void addRaw(LedgerHeader const &, Serializer &, bool includeHash=false)
uint256 getQualityNext(uint256 const &uBase)
Definition Indexes.cpp:123
+
@ open
We haven't closed our ledger yet, but others might have.
+
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Value with a description of the ledger.
LedgerEntryType
Identifiers for on-ledger objects.
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition Role.cpp:106
@ rpcTOO_BUSY
Definition ErrorCodes.h:37
@ rpcNO_PERMISSION
Definition ErrorCodes.h:34
@ rpcINVALID_PARAMS
Definition ErrorCodes.h:65
+
@ warnRPC_FIELDS_DEPRECATED
Definition ErrorCodes.h:158
- - - - - - - + + + + + + +
beast::Journal const j
Definition Context.h:21
Application & app
Definition Context.h:22
Resource::Charge & loadType
Definition Context.h:23
diff --git a/LedgerHandler_8h_source.html b/LedgerHandler_8h_source.html index 973a868676..51833021f7 100644 --- a/LedgerHandler_8h_source.html +++ b/LedgerHandler_8h_source.html @@ -92,127 +92,75 @@ $(document).ready(function() { init_codefold(0); });
9#include <xrpld/rpc/Status.h>
10#include <xrpld/rpc/detail/Handler.h>
11
-
12#include <xrpl/json/Object.h>
-
13#include <xrpl/ledger/ReadView.h>
-
14#include <xrpl/protocol/ApiVersion.h>
-
15#include <xrpl/protocol/jss.h>
-
16
-
17namespace Json {
-
18class Object;
-
19}
-
20
-
21namespace xrpl {
-
22namespace RPC {
-
23
-
24struct JsonContext;
-
25
-
26// ledger [id|index|current|closed] [full]
-
27// {
-
28// ledger: 'current' | 'closed' | <uint256> | <number>, // optional
-
29// full: true | false // optional, defaults to false.
-
30// }
-
31
-
- -
33{
-
34public:
-
35 explicit LedgerHandler(JsonContext&);
-
36
-
37 Status
-
38 check();
-
39
-
40 template <class Object>
-
41 void
-
42 writeResult(Object&);
+
12#include <xrpl/ledger/ReadView.h>
+
13#include <xrpl/protocol/ApiVersion.h>
+
14#include <xrpl/protocol/jss.h>
+
15
+
16namespace Json {
+
17class Object;
+
18}
+
19
+
20namespace xrpl {
+
21namespace RPC {
+
22
+
23struct JsonContext;
+
24
+
25// ledger [id|index|current|closed] [full]
+
26// {
+
27// ledger: 'current' | 'closed' | <uint256> | <number>, // optional
+
28// full: true | false // optional, defaults to false.
+
29// }
+
30
+
+ +
32{
+
33public:
+
34 explicit LedgerHandler(JsonContext&);
+
35
+
36 Status
+
37 check();
+
38
+
39 void
+ +
41
+
42 static constexpr char name[] = "ledger";
43
-
44 static constexpr char name[] = "ledger";
+
44 static constexpr unsigned minApiVer = RPC::apiMinimumSupportedVersion;
45
-
46 static constexpr unsigned minApiVer = RPC::apiMinimumSupportedVersion;
+
46 static constexpr unsigned maxApiVer = RPC::apiMaximumValidVersion;
47
-
48 static constexpr unsigned maxApiVer = RPC::apiMaximumValidVersion;
+
48 static constexpr Role role = Role::USER;
49
-
50 static constexpr Role role = Role::USER;
+
50 static constexpr Condition condition = NO_CONDITION;
51
-
52 static constexpr Condition condition = NO_CONDITION;
-
53
-
54private:
- - - - -
59 int options_ = 0;
-
60};
+
52private:
+ + + + +
57 int options_ = 0;
+
58};
-
61
-
64//
-
65// Implementation.
-
66
-
67template <class Object>
-
68void
-
- -
70{
-
71 if (ledger_)
-
72 {
-
73 Json::copyFrom(value, result_);
- -
75 }
-
76 else
-
77 {
-
78 auto& master = context_.app.getLedgerMaster();
-
79 {
-
80 auto&& closed = Json::addObject(value, jss::closed);
-
81 addJson(closed, {*master.getClosedLedger(), &context_, 0});
-
82 }
-
83 {
-
84 auto&& open = Json::addObject(value, jss::open);
-
85 addJson(open, {*master.getCurrentLedger(), &context_, 0});
-
86 }
-
87 }
-
88
- -
90 if (context_.params.isMember(jss::type))
-
91 {
- -
93 w[jss::id] = warnRPC_FIELDS_DEPRECATED;
-
94 w[jss::message] =
-
95 "Some fields from your request are deprecated. Please check the "
-
96 "documentation at "
-
97 "https://xrpl.org/docs/references/http-websocket-apis/ "
-
98 "and update your request. Field `type` is deprecated.";
-
99 }
-
100
-
101 if (warnings.size())
-
102 value[jss::warnings] = std::move(warnings);
-
103}
-
-
104
-
105} // namespace RPC
-
106} // namespace xrpl
-
107
-
108#endif
+
59
+
60} // namespace RPC
+
61} // namespace xrpl
+
62
+
63#endif
Represents a JSON value.
Definition json_value.h:131
-
Value & append(Value const &value)
Append value to array at the end.
-
bool isMember(char const *key) const
Return true if the object has a member named key.
-
virtual LedgerMaster & getLedgerMaster()=0
- -
static constexpr unsigned maxApiVer
-
std::shared_ptr< ReadView const > ledger_
-
static constexpr unsigned minApiVer
- - -
static constexpr Condition condition
+ +
static constexpr unsigned maxApiVer
+
void writeResult(Json::Value &)
+
std::shared_ptr< ReadView const > ledger_
+
static constexpr unsigned minApiVer
+ + +
static constexpr Condition condition
-
static constexpr char name[]
-
static constexpr Role role
-
std::vector< TxQ::TxDetails > queueTxs_
- -
void writeResult(Object &)
+
static constexpr char name[]
+
static constexpr Role role
+
std::vector< TxQ::TxDetails > queueTxs_
+
JSON (JavaScript Object Notation).
Definition json_errors.h:6
-
@ arrayValue
array value (ordered list)
Definition json_value.h:26
-
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value & addObject(Json::Value &, Json::StaticString const &key)
Add a new subobject at a named key in a Json object.
Definition Object.h:408
-
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
Definition Object.cpp:213
@ NO_CONDITION
Definition Handler.h:21
static constexpr auto apiMinimumSupportedVersion
Definition ApiVersion.h:42
@@ -220,13 +168,8 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Role
Indicates the level of administrative permission to grant.
Definition Role.h:25
-
@ open
We haven't closed our ledger yet, but others might have.
-
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Object or Json::Value with a description of the ledger.
-
@ warnRPC_FIELDS_DEPRECATED
Definition ErrorCodes.h:158
-
Application & app
Definition Context.h:22
-
Json::Value params
Definition Context.h:44
Status represents the results of an operation that might fail.
Definition Status.h:21
diff --git a/LedgerHistory_8cpp_source.html b/LedgerHistory_8cpp_source.html index c05063af9c..fee00417c4 100644 --- a/LedgerHistory_8cpp_source.html +++ b/LedgerHistory_8cpp_source.html @@ -689,7 +689,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::shared_ptr< Ledger > loadByHash(uint256 const &ledgerHash, Application &app, bool acquire)
Definition Ledger.cpp:1115
void LogicError(std::string const &how) noexcept
Called when faulty logic causes a broken invariant.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
Stopwatch & stopwatch()
Returns an instance of a wall clock.
Definition chrono.h:100
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
static void log_metadata_difference(ReadView const &builtLedger, ReadView const &validLedger, uint256 const &tx, beast::Journal j)
diff --git a/LedgerRPC__test_8cpp_source.html b/LedgerRPC__test_8cpp_source.html index 9b8466c4e5..18feafb6b6 100644 --- a/LedgerRPC__test_8cpp_source.html +++ b/LedgerRPC__test_8cpp_source.html @@ -886,7 +886,7 @@ $(document).ready(function() { init_codefold(0); });
Set the expected result code for a JTx The test will fail if the code doesn't match.
Definition ter.h:16
T empty(T... args)
@ nullValue
'null' value
Definition json_value.h:20
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
Json::Value pay(AccountID const &account, AccountID const &to, AnyAmount amount)
Create a payment.
Definition pay.cpp:11
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
diff --git a/LedgerRequest_8cpp_source.html b/LedgerRequest_8cpp_source.html index a69efdcd0e..af954721cb 100644 --- a/LedgerRequest_8cpp_source.html +++ b/LedgerRequest_8cpp_source.html @@ -120,7 +120,7 @@ $(document).ready(function() { init_codefold(0); });
Charge const feeHeavyBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doLedgerRequest(RPC::JsonContext &)
-
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Object or Json::Value with a description of the ledger.
+
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Value with a description of the ledger.
Resource::Charge & loadType
Definition Context.h:23
diff --git a/LedgerRequest__test_8cpp_source.html b/LedgerRequest__test_8cpp_source.html index 40d1a3460f..3b2b807658 100644 --- a/LedgerRequest__test_8cpp_source.html +++ b/LedgerRequest__test_8cpp_source.html @@ -498,7 +498,7 @@ $(document).ready(function() { init_codefold(0); });
@ nullValue
'null' value
Definition json_value.h:20
static constexpr std::integral_constant< unsigned, Version > apiVersion
Definition ApiVersion.h:39
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void forAllApiVersions(Fn const &fn, Args &&... args)
Definition ApiVersion.h:158
T to_string(T... args)
diff --git a/LedgerToJson_8cpp_source.html b/LedgerToJson_8cpp_source.html index 6405282f76..d6a5a0afd5 100644 --- a/LedgerToJson_8cpp_source.html +++ b/LedgerToJson_8cpp_source.html @@ -115,331 +115,342 @@ $(document).ready(function() { init_codefold(0); });
32 return fill.options & LedgerFill::binary;
33}
34
-
35template <class Object>
-
36void
-
37fillJson(
-
38 Object& json,
-
39 bool closed,
-
40 LedgerHeader const& info,
-
41 bool bFull,
-
42 unsigned apiVersion)
-
43{
-
44 json[jss::parent_hash] = to_string(info.parentHash);
-
45 json[jss::ledger_index] = (apiVersion > 1)
-
46 ? Json::Value(info.seq)
-
47 : Json::Value(std::to_string(info.seq));
-
48
-
49 if (closed)
-
50 {
-
51 json[jss::closed] = true;
-
52 }
-
53 else if (!bFull)
-
54 {
-
55 json[jss::closed] = false;
-
56 return;
-
57 }
-
58
-
59 json[jss::ledger_hash] = to_string(info.hash);
-
60 json[jss::transaction_hash] = to_string(info.txHash);
-
61 json[jss::account_hash] = to_string(info.accountHash);
-
62 json[jss::total_coins] = to_string(info.drops);
-
63
-
64 json[jss::close_flags] = info.closeFlags;
-
65
-
66 // Always show fields that contribute to the ledger hash
-
67 json[jss::parent_close_time] =
-
68 info.parentCloseTime.time_since_epoch().count();
-
69 json[jss::close_time] = info.closeTime.time_since_epoch().count();
-
70 json[jss::close_time_resolution] = info.closeTimeResolution.count();
-
71
-
72 if (info.closeTime != NetClock::time_point{})
-
73 {
-
74 json[jss::close_time_human] = to_string(info.closeTime);
-
75 if (!getCloseAgree(info))
-
76 json[jss::close_time_estimated] = true;
-
77 json[jss::close_time_iso] = to_string_iso(info.closeTime);
-
78 }
-
79}
-
80
-
81template <class Object>
-
82void
-
83fillJsonBinary(Object& json, bool closed, LedgerHeader const& info)
-
84{
-
85 if (!closed)
-
86 json[jss::closed] = false;
-
87 else
-
88 {
-
89 json[jss::closed] = true;
-
90
-
91 Serializer s;
-
92 addRaw(info, s);
-
93 json[jss::ledger_data] = strHex(s.peekData());
-
94 }
-
95}
-
96
- -
98fillJsonTx(
-
99 LedgerFill const& fill,
-
100 bool bBinary,
-
101 bool bExpanded,
- - -
104{
-
105 if (!bExpanded)
-
106 return to_string(txn->getTransactionID());
-
107
- -
109 auto const txnType = txn->getTxnType();
-
110 if (bBinary)
-
111 {
-
112 txJson[jss::tx_blob] = serializeHex(*txn);
-
113 if (fill.context->apiVersion > 1)
-
114 txJson[jss::hash] = to_string(txn->getTransactionID());
-
115
-
116 auto const json_meta =
-
117 (fill.context->apiVersion > 1 ? jss::meta_blob : jss::meta);
-
118 if (stMeta)
-
119 txJson[json_meta] = serializeHex(*stMeta);
-
120 }
-
121 else if (fill.context->apiVersion > 1)
-
122 {
-
123 copyFrom(
-
124 txJson[jss::tx_json],
-
125 txn->getJson(JsonOptions::disable_API_prior_V2, false));
-
126 txJson[jss::hash] = to_string(txn->getTransactionID());
- -
128 txJson[jss::tx_json], txnType, fill.context->apiVersion);
-
129
-
130 if (stMeta)
-
131 {
-
132 txJson[jss::meta] = stMeta->getJson(JsonOptions::none);
-
133
-
134 // If applicable, insert delivered amount
-
135 if (txnType == ttPAYMENT || txnType == ttCHECK_CASH)
- -
137 txJson[jss::meta],
-
138 fill.ledger,
-
139 txn,
-
140 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
-
141
-
142 // If applicable, insert mpt issuance id
- -
144 txJson[jss::meta],
-
145 txn,
-
146 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
-
147 }
-
148
-
149 if (!fill.ledger.open())
-
150 txJson[jss::ledger_hash] = to_string(fill.ledger.header().hash);
-
151
-
152 bool const validated =
-
153 fill.context->ledgerMaster.isValidated(fill.ledger);
-
154 txJson[jss::validated] = validated;
-
155 if (validated)
-
156 {
-
157 auto const seq = fill.ledger.seq();
-
158 txJson[jss::ledger_index] = seq;
-
159 if (fill.closeTime)
-
160 txJson[jss::close_time_iso] = to_string_iso(*fill.closeTime);
-
161 }
-
162 }
-
163 else
-
164 {
-
165 copyFrom(txJson, txn->getJson(JsonOptions::none));
-
166 RPC::insertDeliverMax(txJson, txnType, fill.context->apiVersion);
-
167 if (stMeta)
-
168 {
-
169 txJson[jss::metaData] = stMeta->getJson(JsonOptions::none);
-
170
-
171 // If applicable, insert delivered amount
-
172 if (txnType == ttPAYMENT || txnType == ttCHECK_CASH)
- -
174 txJson[jss::metaData],
-
175 fill.ledger,
-
176 txn,
-
177 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
-
178
-
179 // If applicable, insert mpt issuance id
- -
181 txJson[jss::metaData],
-
182 txn,
-
183 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
-
184 }
-
185 }
-
186
-
187 if ((fill.options & LedgerFill::ownerFunds) &&
-
188 txn->getTxnType() == ttOFFER_CREATE)
-
189 {
-
190 auto const account = txn->getAccountID(sfAccount);
-
191 auto const amount = txn->getFieldAmount(sfTakerGets);
-
192
-
193 // If the offer create is not self funded then add the
-
194 // owner balance
-
195 if (account != amount.getIssuer())
-
196 {
-
197 auto const ownerFunds = accountFunds(
-
198 fill.ledger,
-
199 account,
-
200 amount,
- -
202 beast::Journal{beast::Journal::getNullSink()});
-
203 txJson[jss::owner_funds] = ownerFunds.getText();
-
204 }
-
205 }
-
206
-
207 return txJson;
-
208}
-
209
-
210template <class Object>
-
211void
-
212fillJsonTx(Object& json, LedgerFill const& fill)
-
213{
-
214 auto&& txns = setArray(json, jss::transactions);
-
215 auto bBinary = isBinary(fill);
-
216 auto bExpanded = isExpanded(fill);
-
217
-
218 try
-
219 {
-
220 auto appendAll = [&](auto const& txs) {
-
221 for (auto& i : txs)
-
222 {
-
223 txns.append(
-
224 fillJsonTx(fill, bBinary, bExpanded, i.first, i.second));
-
225 }
-
226 };
-
227
-
228 appendAll(fill.ledger.txs);
-
229 }
-
230 catch (std::exception const& ex)
-
231 {
-
232 // Nothing the user can do about this.
-
233 if (fill.context)
-
234 {
-
235 JLOG(fill.context->j.error())
-
236 << "Exception in " << __func__ << ": " << ex.what();
-
237 }
-
238 }
-
239}
-
240
-
241template <class Object>
-
242void
-
243fillJsonState(Object& json, LedgerFill const& fill)
-
244{
-
245 auto& ledger = fill.ledger;
-
246 auto&& array = Json::setArray(json, jss::accountState);
-
247 auto expanded = isExpanded(fill);
-
248 auto binary = isBinary(fill);
-
249
-
250 for (auto const& sle : ledger.sles)
-
251 {
-
252 if (binary)
-
253 {
-
254 auto&& obj = appendObject(array);
-
255 obj[jss::hash] = to_string(sle->key());
-
256 obj[jss::tx_blob] = serializeHex(*sle);
-
257 }
-
258 else if (expanded)
-
259 array.append(sle->getJson(JsonOptions::none));
-
260 else
-
261 array.append(to_string(sle->key()));
-
262 }
-
263}
-
264
-
265template <class Object>
-
266void
-
267fillJsonQueue(Object& json, LedgerFill const& fill)
-
268{
-
269 auto&& queueData = Json::setArray(json, jss::queue_data);
-
270 auto bBinary = isBinary(fill);
-
271 auto bExpanded = isExpanded(fill);
-
272
-
273 for (auto const& tx : fill.txQueue)
-
274 {
-
275 auto&& txJson = appendObject(queueData);
-
276 txJson[jss::fee_level] = to_string(tx.feeLevel);
-
277 if (tx.lastValid)
-
278 txJson[jss::LastLedgerSequence] = *tx.lastValid;
-
279
-
280 txJson[jss::fee] = to_string(tx.consequences.fee());
-
281 auto const spend =
-
282 tx.consequences.potentialSpend() + tx.consequences.fee();
-
283 txJson[jss::max_spend_drops] = to_string(spend);
-
284 txJson[jss::auth_change] = tx.consequences.isBlocker();
-
285
-
286 txJson[jss::account] = to_string(tx.account);
-
287 txJson["retries_remaining"] = tx.retriesRemaining;
-
288 txJson["preflight_result"] = transToken(tx.preflightResult);
-
289 if (tx.lastResult)
-
290 txJson["last_result"] = transToken(*tx.lastResult);
-
291
-
292 auto&& temp = fillJsonTx(fill, bBinary, bExpanded, tx.txn, nullptr);
-
293 if (fill.context->apiVersion > 1)
-
294 copyFrom(txJson, temp);
-
295 else
-
296 copyFrom(txJson[jss::tx], temp);
-
297 }
-
298}
-
299
-
300template <class Object>
-
301void
-
302fillJson(Object& json, LedgerFill const& fill)
-
303{
-
304 // TODO: what happens if bBinary and bExtracted are both set?
-
305 // Is there a way to report this back?
-
306 auto bFull = isFull(fill);
-
307 if (isBinary(fill))
-
308 fillJsonBinary(json, !fill.ledger.open(), fill.ledger.header());
-
309 else
-
310 fillJson(
-
311 json,
-
312 !fill.ledger.open(),
-
313 fill.ledger.header(),
-
314 bFull,
-
315 (fill.context ? fill.context->apiVersion
-
316 : RPC::apiMaximumSupportedVersion));
-
317
-
318 if (bFull || fill.options & LedgerFill::dumpTxrp)
-
319 fillJsonTx(json, fill);
+
35void
+
36fillJson(
+
37 Json::Value& json,
+
38 bool closed,
+
39 LedgerHeader const& info,
+
40 bool bFull,
+
41 unsigned apiVersion)
+
42{
+
43 json[jss::parent_hash] = to_string(info.parentHash);
+
44 json[jss::ledger_index] = (apiVersion > 1)
+
45 ? Json::Value(info.seq)
+
46 : Json::Value(std::to_string(info.seq));
+
47
+
48 if (closed)
+
49 {
+
50 json[jss::closed] = true;
+
51 }
+
52 else if (!bFull)
+
53 {
+
54 json[jss::closed] = false;
+
55 return;
+
56 }
+
57
+
58 json[jss::ledger_hash] = to_string(info.hash);
+
59 json[jss::transaction_hash] = to_string(info.txHash);
+
60 json[jss::account_hash] = to_string(info.accountHash);
+
61 json[jss::total_coins] = to_string(info.drops);
+
62
+
63 json[jss::close_flags] = info.closeFlags;
+
64
+
65 // Always show fields that contribute to the ledger hash
+
66 json[jss::parent_close_time] =
+
67 info.parentCloseTime.time_since_epoch().count();
+
68 json[jss::close_time] = info.closeTime.time_since_epoch().count();
+
69 json[jss::close_time_resolution] = info.closeTimeResolution.count();
+
70
+
71 if (info.closeTime != NetClock::time_point{})
+
72 {
+
73 json[jss::close_time_human] = to_string(info.closeTime);
+
74 if (!getCloseAgree(info))
+
75 json[jss::close_time_estimated] = true;
+
76 json[jss::close_time_iso] = to_string_iso(info.closeTime);
+
77 }
+
78}
+
79
+
80void
+
81fillJsonBinary(Json::Value& json, bool closed, LedgerHeader const& info)
+
82{
+
83 if (!closed)
+
84 json[jss::closed] = false;
+
85 else
+
86 {
+
87 json[jss::closed] = true;
+
88
+
89 Serializer s;
+
90 addRaw(info, s);
+
91 json[jss::ledger_data] = strHex(s.peekData());
+
92 }
+
93}
+
94
+ +
96fillJsonTx(
+
97 LedgerFill const& fill,
+
98 bool bBinary,
+
99 bool bExpanded,
+ + +
102{
+
103 if (!bExpanded)
+
104 return to_string(txn->getTransactionID());
+
105
+ +
107 auto const txnType = txn->getTxnType();
+
108 if (bBinary)
+
109 {
+
110 txJson[jss::tx_blob] = serializeHex(*txn);
+
111 if (fill.context->apiVersion > 1)
+
112 txJson[jss::hash] = to_string(txn->getTransactionID());
+
113
+
114 auto const json_meta =
+
115 (fill.context->apiVersion > 1 ? jss::meta_blob : jss::meta);
+
116 if (stMeta)
+
117 txJson[json_meta] = serializeHex(*stMeta);
+
118 }
+
119 else if (fill.context->apiVersion > 1)
+
120 {
+
121 copyFrom(
+
122 txJson[jss::tx_json],
+
123 txn->getJson(JsonOptions::disable_API_prior_V2, false));
+
124 txJson[jss::hash] = to_string(txn->getTransactionID());
+ +
126 txJson[jss::tx_json], txnType, fill.context->apiVersion);
+
127
+
128 if (stMeta)
+
129 {
+
130 txJson[jss::meta] = stMeta->getJson(JsonOptions::none);
+
131
+
132 // If applicable, insert delivered amount
+
133 if (txnType == ttPAYMENT || txnType == ttCHECK_CASH)
+ +
135 txJson[jss::meta],
+
136 fill.ledger,
+
137 txn,
+
138 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
+
139
+
140 // If applicable, insert mpt issuance id
+ +
142 txJson[jss::meta],
+
143 txn,
+
144 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
+
145 }
+
146
+
147 if (!fill.ledger.open())
+
148 txJson[jss::ledger_hash] = to_string(fill.ledger.header().hash);
+
149
+
150 bool const validated =
+
151 fill.context->ledgerMaster.isValidated(fill.ledger);
+
152 txJson[jss::validated] = validated;
+
153 if (validated)
+
154 {
+
155 auto const seq = fill.ledger.seq();
+
156 txJson[jss::ledger_index] = seq;
+
157 if (fill.closeTime)
+
158 txJson[jss::close_time_iso] = to_string_iso(*fill.closeTime);
+
159 }
+
160 }
+
161 else
+
162 {
+
163 copyFrom(txJson, txn->getJson(JsonOptions::none));
+
164 RPC::insertDeliverMax(txJson, txnType, fill.context->apiVersion);
+
165 if (stMeta)
+
166 {
+
167 txJson[jss::metaData] = stMeta->getJson(JsonOptions::none);
+
168
+
169 // If applicable, insert delivered amount
+
170 if (txnType == ttPAYMENT || txnType == ttCHECK_CASH)
+ +
172 txJson[jss::metaData],
+
173 fill.ledger,
+
174 txn,
+
175 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
+
176
+
177 // If applicable, insert mpt issuance id
+ +
179 txJson[jss::metaData],
+
180 txn,
+
181 {txn->getTransactionID(), fill.ledger.seq(), *stMeta});
+
182 }
+
183 }
+
184
+
185 if ((fill.options & LedgerFill::ownerFunds) &&
+
186 txn->getTxnType() == ttOFFER_CREATE)
+
187 {
+
188 auto const account = txn->getAccountID(sfAccount);
+
189 auto const amount = txn->getFieldAmount(sfTakerGets);
+
190
+
191 // If the offer create is not self funded then add the
+
192 // owner balance
+
193 if (account != amount.getIssuer())
+
194 {
+
195 auto const ownerFunds = accountFunds(
+
196 fill.ledger,
+
197 account,
+
198 amount,
+ +
200 beast::Journal{beast::Journal::getNullSink()});
+
201 txJson[jss::owner_funds] = ownerFunds.getText();
+
202 }
+
203 }
+
204
+
205 return txJson;
+
206}
+
207
+
208void
+
209fillJsonTx(Json::Value& json, LedgerFill const& fill)
+
210{
+
211 auto& txns = json[jss::transactions] = Json::arrayValue;
+
212 auto bBinary = isBinary(fill);
+
213 auto bExpanded = isExpanded(fill);
+
214
+
215 try
+
216 {
+
217 auto appendAll = [&](auto const& txs) {
+
218 for (auto& i : txs)
+
219 {
+
220 txns.append(
+
221 fillJsonTx(fill, bBinary, bExpanded, i.first, i.second));
+
222 }
+
223 };
+
224
+
225 appendAll(fill.ledger.txs);
+
226 }
+
227 catch (std::exception const& ex)
+
228 {
+
229 // Nothing the user can do about this.
+
230 if (fill.context)
+
231 {
+
232 JLOG(fill.context->j.error())
+
233 << "Exception in " << __func__ << ": " << ex.what();
+
234 }
+
235 }
+
236}
+
237
+
238void
+
239fillJsonState(Json::Value& json, LedgerFill const& fill)
+
240{
+
241 auto& ledger = fill.ledger;
+
242 auto& array = json[jss::accountState] = Json::arrayValue;
+
243 auto expanded = isExpanded(fill);
+
244 auto binary = isBinary(fill);
+
245
+
246 for (auto const& sle : ledger.sles)
+
247 {
+
248 if (binary)
+
249 {
+
250 auto& obj = array.append(Json::objectValue);
+
251 obj[jss::hash] = to_string(sle->key());
+
252 obj[jss::tx_blob] = serializeHex(*sle);
+
253 }
+
254 else if (expanded)
+
255 array.append(sle->getJson(JsonOptions::none));
+
256 else
+
257 array.append(to_string(sle->key()));
+
258 }
+
259}
+
260
+
261void
+
262fillJsonQueue(Json::Value& json, LedgerFill const& fill)
+
263{
+
264 auto& queueData = json[jss::queue_data] = Json::arrayValue;
+
265 auto bBinary = isBinary(fill);
+
266 auto bExpanded = isExpanded(fill);
+
267
+
268 for (auto const& tx : fill.txQueue)
+
269 {
+
270 auto& txJson = queueData.append(Json::objectValue);
+
271 txJson[jss::fee_level] = to_string(tx.feeLevel);
+
272 if (tx.lastValid)
+
273 txJson[jss::LastLedgerSequence] = *tx.lastValid;
+
274
+
275 txJson[jss::fee] = to_string(tx.consequences.fee());
+
276 auto const spend =
+
277 tx.consequences.potentialSpend() + tx.consequences.fee();
+
278 txJson[jss::max_spend_drops] = to_string(spend);
+
279 txJson[jss::auth_change] = tx.consequences.isBlocker();
+
280
+
281 txJson[jss::account] = to_string(tx.account);
+
282 txJson["retries_remaining"] = tx.retriesRemaining;
+
283 txJson["preflight_result"] = transToken(tx.preflightResult);
+
284 if (tx.lastResult)
+
285 txJson["last_result"] = transToken(*tx.lastResult);
+
286
+
287 auto&& temp = fillJsonTx(fill, bBinary, bExpanded, tx.txn, nullptr);
+
288 if (fill.context->apiVersion > 1)
+
289 copyFrom(txJson, temp);
+
290 else
+
291 copyFrom(txJson[jss::tx], temp);
+
292 }
+
293}
+
294
+
295void
+
296fillJson(Json::Value& json, LedgerFill const& fill)
+
297{
+
298 // TODO: what happens if bBinary and bExtracted are both set?
+
299 // Is there a way to report this back?
+
300 auto bFull = isFull(fill);
+
301 if (isBinary(fill))
+
302 fillJsonBinary(json, !fill.ledger.open(), fill.ledger.header());
+
303 else
+
304 fillJson(
+
305 json,
+
306 !fill.ledger.open(),
+
307 fill.ledger.header(),
+
308 bFull,
+
309 (fill.context ? fill.context->apiVersion
+
310 : RPC::apiMaximumSupportedVersion));
+
311
+
312 if (bFull || fill.options & LedgerFill::dumpTxrp)
+
313 fillJsonTx(json, fill);
+
314
+
315 if (bFull || fill.options & LedgerFill::dumpState)
+
316 fillJsonState(json, fill);
+
317}
+
318
+
319} // namespace
320
-
321 if (bFull || fill.options & LedgerFill::dumpState)
-
322 fillJsonState(json, fill);
-
323}
-
324
-
325} // namespace
+
321void
+
+
322addJson(Json::Value& json, LedgerFill const& fill)
+
323{
+
324 auto& object = json[jss::ledger] = Json::objectValue;
+
325 fillJson(object, fill);
326
-
327void
-
-
328addJson(Json::Value& json, LedgerFill const& fill)
-
329{
-
330 auto&& object = Json::addObject(json, jss::ledger);
-
331 fillJson(object, fill);
-
332
-
333 if ((fill.options & LedgerFill::dumpQueue) && !fill.txQueue.empty())
-
334 fillJsonQueue(json, fill);
-
335}
+
327 if ((fill.options & LedgerFill::dumpQueue) && !fill.txQueue.empty())
+
328 fillJsonQueue(json, fill);
+
329}
-
336
- -
-
338getJson(LedgerFill const& fill)
-
339{
-
340 Json::Value json;
-
341 fillJson(json, fill);
-
342 return json;
-
343}
+
330
+ +
+
332getJson(LedgerFill const& fill)
+
333{
+
334 Json::Value json;
+
335 fillJson(json, fill);
+
336 return json;
+
337}
-
344
-
345} // namespace xrpl
+
338
+
339void
+
+ +
341{
+
342 if (!to) // Short circuit this very common case.
+
343 to = from;
+
344 else
+
345 {
+
346 // TODO: figure out if there is a way to remove this clause
+
347 // or check that it does/needs to do a deep copy
+
348 XRPL_ASSERT(from.isObjectOrNull(), "copyFrom : invalid input type");
+
349 auto const members = from.getMemberNames();
+
350 for (auto const& m : members)
+
351 to[m] = from[m];
+
352 }
+
353}
+
+
354
+
355} // namespace xrpl
Represents a JSON value.
Definition json_value.h:131
+
bool isObjectOrNull() const
+
Members getMemberNames() const
Return a list of the member names.
A generic endpoint for log messages.
Definition Journal.h:41
std::chrono::time_point< NetClock > time_point
Definition chrono.h:50
T fill(T... args)
+
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value & setArray(Json::Value &, Json::StaticString const &key)
Add a new subarray at a named key in a Json object.
Definition Object.h:396
-
Json::Value & addObject(Json::Value &, Json::StaticString const &key)
Add a new subobject at a named key in a Json object.
Definition Object.h:408
-
Json::Value & appendObject(Json::Value &)
Append a new subobject to a Json object.
Definition Object.h:432
-
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
Definition Object.cpp:213
void insertDeliverMax(Json::Value &tx_json, TxType txnType, unsigned int apiVersion)
Copy Amount field to DeliverMax field in transaction output JSON.
Definition DeliverMax.cpp:9
void insertMPTokenIssuanceID(Json::Value &response, std::shared_ptr< STTx const > const &transaction, TxMeta const &transactionMeta)
void insertDeliveredAmount(Json::Value &meta, ReadView const &, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &)
Add a delivered_amount field to the meta input/output parameter.
@@ -447,27 +458,28 @@ $(document).ready(function() { init_codefold(0); });
auto const amount
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ fhIGNORE_FREEZE
Definition View.h:59
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
std::string transToken(TER code)
Definition TER.cpp:245
bool getCloseAgree(LedgerHeader const &info)
STAmount accountFunds(ReadView const &view, AccountID const &id, STAmount const &saDefault, FreezeHandling freezeHandling, beast::Journal j)
Definition View.cpp:657
+
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
void addRaw(LedgerHeader const &, Serializer &, bool includeHash=false)
std::string serializeHex(STObject const &o)
Serialize an object to a hex string.
Definition serialize.h:22
std::string to_string_iso(date::sys_time< Duration > tp)
Definition chrono.h:73
-
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Object or Json::Value with a description of the ledger.
+
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Value with a description of the ledger.
- - - - - - - - + + + + + + + +
T to_string(T... args)
T what(T... args)
diff --git a/LedgerToJson_8h_source.html b/LedgerToJson_8h_source.html index e89bcb620a..572594bfa7 100644 --- a/LedgerToJson_8h_source.html +++ b/LedgerToJson_8h_source.html @@ -90,80 +90,83 @@ $(document).ready(function() { init_codefold(0); });
7#include <xrpld/rpc/Context.h>
8
9#include <xrpl/basics/chrono.h>
-
10#include <xrpl/json/Object.h>
-
11#include <xrpl/protocol/serialize.h>
-
12
-
13namespace xrpl {
-
14
-
- -
16{
-
- -
18 ReadView const& l,
-
19 RPC::Context const* ctx,
-
20 int o = 0,
- -
22 : ledger(l), options(o), txQueue(std::move(q)), context(ctx)
-
23 {
-
24 if (context)
- -
26 }
+
10#include <xrpl/protocol/serialize.h>
+
11
+
12namespace xrpl {
+
13
+
+ +
15{
+
+ +
17 ReadView const& l,
+
18 RPC::Context const* ctx,
+
19 int o = 0,
+ +
21 : ledger(l), options(o), txQueue(std::move(q)), context(ctx)
+
22 {
+
23 if (context)
+ +
25 }
-
27
- -
44
-
49void
- -
51
- -
54getJson(LedgerFill const&);
-
55
-
56} // namespace xrpl
+
43
+
47void
+ +
49
+ +
52getJson(LedgerFill const&);
+
53
+
55void
+
56copyFrom(Json::Value& to, Json::Value const& from);
57
-
58#endif
+
58} // namespace xrpl
+
59
+
60#endif
Represents a JSON value.
Definition json_value.h:131
std::optional< NetClock::time_point > getCloseTimeBySeq(LedgerIndex ledgerIndex)
A view into a ledger.
Definition ReadView.h:32
LedgerIndex seq() const
Returns the sequence number of the base ledger.
Definition ReadView.h:99
STL namespace.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
-
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Object or Json::Value with a description of the ledger.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
+
void addJson(Json::Value &json, LedgerFill const &fill)
Given a Ledger and options, fill a Json::Value with a description of the ledger.
- - - - - - - - - - -
LedgerFill(ReadView const &l, RPC::Context const *ctx, int o=0, std::vector< TxQ::TxDetails > q={})
-
RPC::Context const * context
-
std::vector< TxQ::TxDetails > txQueue
-
std::optional< NetClock::time_point > closeTime
-
ReadView const & ledger
+ + + + + + + + + + +
LedgerFill(ReadView const &l, RPC::Context const *ctx, int o=0, std::vector< TxQ::TxDetails > q={})
+
RPC::Context const * context
+
std::vector< TxQ::TxDetails > txQueue
+
std::optional< NetClock::time_point > closeTime
+
ReadView const & ledger
The context of information needed to call an RPC.
Definition Context.h:20
LedgerMaster & ledgerMaster
Definition Context.h:25
diff --git a/Ledger_8cpp_source.html b/Ledger_8cpp_source.html index ff0fc50abb..7fea0064a2 100644 --- a/Ledger_8cpp_source.html +++ b/Ledger_8cpp_source.html @@ -1511,7 +1511,7 @@ $(document).ready(function() { init_codefold(0); });
bool isFlagLedger(LedgerIndex seq)
Returns true if the given ledgerIndex is a flag ledgerIndex.
Definition Ledger.cpp:945
static Hasher::result_type digest(void const *data, std::size_t size) noexcept
Definition tokens.cpp:138
boost::intrusive_ptr< SHAMapItem > make_shamapitem(uint256 const &tag, Slice data)
Definition SHAMapItem.h:142
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
sha512_half_hasher::result_type sha512Half(Args const &... args)
Returns the SHA512-Half of a series of objects.
Definition digest.h:205
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
Rules makeRulesGivenLedger(DigestAwareReadView const &ledger, Rules const &current)
Definition ReadView.cpp:50
diff --git a/LogLevel_8cpp_source.html b/LogLevel_8cpp_source.html index 22266b37b6..040d4cfd6e 100644 --- a/LogLevel_8cpp_source.html +++ b/LogLevel_8cpp_source.html @@ -120,7 +120,7 @@ $(document).ready(function() { init_codefold(0); });
36 Logs::fromString(context.params[jss::severity].asString()));
37
38 if (sv == lsINVALID)
- +
40
41 auto severity = Logs::toSeverity(sv);
42 // log_level severity
@@ -145,7 +145,7 @@ $(document).ready(function() { init_codefold(0); });
61 return Json::objectValue;
62 }
63
- +
65}
66
@@ -168,7 +168,7 @@ $(document).ready(function() { init_codefold(0); });
Json::Value doLogLevel(RPC::JsonContext &)
Definition LogLevel.cpp:15
LogSeverity
Definition Log.h:19
@ lsINVALID
Definition Log.h:20
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcINVALID_PARAMS
Definition ErrorCodes.h:65
Application & app
Definition Context.h:22
diff --git a/Manifest__test_8cpp_source.html b/Manifest__test_8cpp_source.html index 1eaaed442a..b88812de15 100644 --- a/Manifest__test_8cpp_source.html +++ b/Manifest__test_8cpp_source.html @@ -1251,7 +1251,7 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
T max(T... args)
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
KeyType
Definition KeyType.h:9
diff --git a/NFTOffers_8cpp_source.html b/NFTOffers_8cpp_source.html index fb2d2b68cd..f29836424f 100644 --- a/NFTOffers_8cpp_source.html +++ b/NFTOffers_8cpp_source.html @@ -143,7 +143,7 @@ $(document).ready(function() { init_codefold(0); });
57 return result;
58
59 if (!ledger->exists(directory))
- +
61
62 Json::Value result;
63 result[jss::nft_id] = to_string(nftId);
@@ -165,12 +165,12 @@ $(document).ready(function() { init_codefold(0); });
79 return RPC::expected_field_error(jss::marker, "string");
80
81 if (!startAfter.parseHex(marker.asString()))
- +
83
84 auto const sle = ledger->read(keylet::nftoffer(startAfter));
85
86 if (!sle || nftId != sle->getFieldH256(sfNFTokenID))
- +
88
89 startHint = sle->getFieldU64(sfNFTokenOfferNode);
90 appendNftOfferJson(context.app, sle, jsonOffers);
@@ -198,7 +198,7 @@ $(document).ready(function() { init_codefold(0); });
112 return false;
113 }))
114 {
- +
116 }
117
118 if (offers.size() == reserve)
@@ -260,9 +260,9 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static LimitRange constexpr nftOffers
Limits for the nft_buy_offers & nft_sell_offers commands.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Charge const feeMediumBurdenRPC
Keylet nftoffer(AccountID const &owner, std::uint32_t seq)
An offer from an account to buy or sell an NFT.
Definition Indexes.cpp:409
@@ -272,7 +272,7 @@ $(document).ready(function() { init_codefold(0); });
Json::Value doNFTSellOffers(RPC::JsonContext &)
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Json::Value doNFTBuyOffers(RPC::JsonContext &)
static Json::Value enumerateNFTOffers(RPC::JsonContext &context, uint256 const &nftId, Keylet const &directory)
Definition NFTOffers.cpp:45
bool forEachItemAfter(ReadView const &view, Keylet const &root, uint256 const &after, std::uint64_t const hint, unsigned int limit, std::function< bool(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items after an item in the given directory.
Definition View.cpp:786
diff --git a/NetworkOPs_8cpp_source.html b/NetworkOPs_8cpp_source.html index 02e3d91fc6..f69c215b4f 100644 --- a/NetworkOPs_8cpp_source.html +++ b/NetworkOPs_8cpp_source.html @@ -3921,7 +3921,7 @@ $(document).ready(function() { init_codefold(0); });
3719 << toBase58(subInfo.index_->accountId_) << " no database";
3720 if (auto sptr = subInfo.sinkWptr_.lock(); sptr)
3721 {
-
3722 sptr->send(rpcError(rpcINTERNAL), true);
+
3722 sptr->send(rpcError(rpcINTERNAL), true);
3723 unsubAccountHistory(sptr, subInfo.index_->accountId_, false);
3724 }
3725 return;
@@ -4097,7 +4097,7 @@ $(document).ready(function() { init_codefold(0); });
3895 JLOG(m_journal.debug())
3896 << "AccountHistory job for account "
3897 << toBase58(accountId) << " getMoreTxns failed.";
-
3898 send(rpcError(rpcINTERNAL), true);
+
3898 send(rpcError(rpcINTERNAL), true);
3899 return;
3900 // LCOV_EXCL_STOP
3901 }
@@ -4114,7 +4114,7 @@ $(document).ready(function() { init_codefold(0); });
3912 JLOG(m_journal.debug())
3913 << "AccountHistory job for account "
3914 << toBase58(accountId) << " empty tx or meta.";
-
3915 send(rpcError(rpcINTERNAL), true);
+
3915 send(rpcError(rpcINTERNAL), true);
3916 return;
3917 }
3918 auto curTxLedger =
@@ -4129,7 +4129,7 @@ $(document).ready(function() { init_codefold(0); });
3927 JLOG(m_journal.debug())
3928 << "AccountHistory job for account "
3929 << toBase58(accountId) << " no ledger.";
-
3930 send(rpcError(rpcINTERNAL), true);
+
3930 send(rpcError(rpcINTERNAL), true);
3931 return;
3932 // LCOV_EXCL_STOP
3933 }
@@ -4145,7 +4145,7 @@ $(document).ready(function() { init_codefold(0); });
3943 << "AccountHistory job for account "
3944 << toBase58(accountId)
3945 << " getSTransaction failed.";
-
3946 send(rpcError(rpcINTERNAL), true);
+
3946 send(rpcError(rpcINTERNAL), true);
3947 return;
3948 // LCOV_EXCL_STOP
3949 }
@@ -5558,7 +5558,7 @@ $(document).ready(function() { init_codefold(0); });
@ fhIGNORE_FREEZE
Definition View.h:59
csprng_engine & crypto_prng()
The default cryptographically secure PRNG.
std::optional< std::uint64_t > mulDiv(std::uint64_t value, std::uint64_t mul, std::uint64_t div)
Return value*mul/div accurately.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
@ INVALID
Definition Transaction.h:29
@ OBSOLETE
Definition Transaction.h:35
@ INCLUDED
Definition Transaction.h:30
@@ -5582,7 +5582,6 @@ $(document).ready(function() { init_codefold(0); });
std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)
Generate a key pair deterministically.
STAmount accountHolds(ReadView const &view, AccountID const &account, Currency const &currency, AccountID const &issuer, FreezeHandling zeroIfFrozen, beast::Journal j)
Definition View.cpp:461
@ current
This was a new validation and was added.
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
constexpr std::size_t maxPoppedTransactions
STAmount accountFunds(ReadView const &view, AccountID const &id, STAmount const &saDefault, FreezeHandling freezeHandling, beast::Journal j)
Definition View.cpp:657
bool isGlobalFrozen(ReadView const &view, AccountID const &issuer)
Definition View.cpp:163
@@ -5607,6 +5606,7 @@ $(document).ready(function() { init_codefold(0); });
uint256 getBookBase(Book const &book)
Definition Indexes.cpp:98
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
std::string to_string_iso(date::sys_time< Duration > tp)
Definition chrono.h:73
std::unique_ptr< LocalTxs > make_LocalTxs()
Definition LocalTxs.cpp:173
std::pair< Validity, std::string > checkValidity(HashRouter &router, STTx const &tx, Rules const &rules, Config const &config)
Checks transaction signature and local checks.
Definition apply.cpp:25
diff --git a/NoRippleCheck_8cpp_source.html b/NoRippleCheck_8cpp_source.html index 0a736894b7..ce0e678c3e 100644 --- a/NoRippleCheck_8cpp_source.html +++ b/NoRippleCheck_8cpp_source.html @@ -178,13 +178,13 @@ $(document).ready(function() { init_codefold(0); });
92 auto id = parseBase58<AccountID>(params[jss::account].asString());
93 if (!id)
94 {
- +
96 return result;
97 }
98 auto const accountID{std::move(id.value())};
99 auto const sle = ledger->read(keylet::account(accountID));
100 if (!sle)
- +
102
103 std::uint32_t seq = sle->getFieldU32(sfSequence);
104
@@ -291,9 +291,9 @@ $(document).ready(function() { init_codefold(0); });
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
unsigned int UInt
static LimitRange constexpr noRippleCheck
Limits for the no_ripple_check command.
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@@ -301,8 +301,8 @@ $(document).ready(function() { init_codefold(0); });
constexpr std::uint32_t tfSetNoRipple
Definition TxFlags.h:97
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
base_uint< 256 > uint256
Definition base_uint.h:539
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
constexpr std::uint32_t tfClearNoRipple
Definition TxFlags.h:98
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
XRPAmount scaleFeeLoad(XRPAmount fee, LoadFeeTrack const &feeTrack, Fees const &fees, bool bUnlimited)
bool forEachItemAfter(ReadView const &view, Keylet const &root, uint256 const &after, std::uint64_t const hint, unsigned int limit, std::function< bool(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items after an item in the given directory.
Definition View.cpp:786
@ lsfDefaultRipple
diff --git a/Node_8cpp_source.html b/Node_8cpp_source.html index 7839add8c1..c6c4b1ed48 100644 --- a/Node_8cpp_source.html +++ b/Node_8cpp_source.html @@ -1489,7 +1489,7 @@ $(document).ready(function() { init_codefold(0); });
std::optional< LedgerHashPair > getHashesByIndex(soci::session &session, LedgerIndex ledgerIndex, beast::Journal j)
getHashesByIndex Returns hash of the ledger and hash of parent ledger for the ledger of given sequenc...
Definition Node.cpp:545
PrettyAmount drops(Integer i)
Returns an XRP PrettyAmount, which is trivially convertible to STAmount.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
ClosedInterval< T > range(T low, T high)
Create a closed range interval.
Definition RangeSet.h:35
constexpr std::array< char const *, 8 > TxDBInit
Definition DBInit.h:53
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
diff --git a/Object_8cpp_source.html b/Object_8cpp_source.html deleted file mode 100644 index f5e12b5f7d..0000000000 --- a/Object_8cpp_source.html +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - - -rippled: Object.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Object.cpp
-
-
-
1#include <xrpl/basics/contract.h>
-
2#include <xrpl/beast/utility/instrumentation.h>
-
3#include <xrpl/json/Object.h>
-
4#include <xrpl/json/Output.h>
-
5#include <xrpl/json/Writer.h>
-
6#include <xrpl/json/json_value.h>
-
7
-
8#include <stdexcept>
-
9#include <utility>
-
10
-
11namespace Json {
-
12
-
- -
14 : parent_(parent), writer_(writer), enabled_(true)
-
15{
-
16 checkWritable("Collection::Collection()");
-
17 if (parent_)
-
18 {
-
19 check(parent_->enabled_, "Parent not enabled in constructor");
-
20 parent_->enabled_ = false;
-
21 }
-
22}
-
-
23
-
- -
25{
-
26 if (writer_)
-
27 writer_->finish();
-
28 if (parent_)
-
29 parent_->enabled_ = true;
-
30}
-
-
31
- -
- -
34{
-
35 parent_ = that.parent_;
-
36 writer_ = that.writer_;
-
37 enabled_ = that.enabled_;
-
38
-
39 that.parent_ = nullptr;
-
40 that.writer_ = nullptr;
-
41 that.enabled_ = false;
-
42
-
43 return *this;
-
44}
-
-
45
-
- -
47{
-
48 *this = std::move(that);
-
49}
-
-
50
-
51void
-
- -
53{
-
54 if (!enabled_)
-
55 xrpl::Throw<std::logic_error>(label + ": not enabled");
-
56 if (!writer_)
-
57 xrpl::Throw<std::logic_error>(label + ": not writable");
-
58}
-
-
59
-
60//------------------------------------------------------------------------------
-
61
-
- -
63{
- -
65}
-
-
66
- -
- -
69{
-
70 checkWritable("Object::setObject");
-
71 if (writer_)
- -
73 return Object(this, writer_);
-
74}
-
-
75
- -
- -
78{
-
79 checkWritable("Object::setArray");
-
80 if (writer_)
- -
82 return Array(this, writer_);
-
83}
-
-
84
-
85//------------------------------------------------------------------------------
-
86
- -
- -
89{
-
90 checkWritable("Array::appendObject");
-
91 if (writer_)
- -
93 return Object(this, writer_);
-
94}
-
-
95
- -
- -
98{
-
99 checkWritable("Array::makeArray");
-
100 if (writer_)
- -
102 return Array(this, writer_);
-
103}
-
-
104
-
105//------------------------------------------------------------------------------
-
106
-
- -
108 : object_(object), key_(key)
-
109{
-
110}
-
-
111
- -
- -
114{
-
115 return Proxy(*this, key);
-
116}
-
-
117
- -
- -
120{
-
121 return Proxy(*this, std::string(key));
-
122}
-
-
123
-
124//------------------------------------------------------------------------------
-
125
-
126void
-
- -
128{
-
129 auto t = v.type();
-
130 switch (t)
-
131 {
-
132 case Json::nullValue:
-
133 return append(nullptr);
-
134 case Json::intValue:
-
135 return append(v.asInt());
-
136 case Json::uintValue:
-
137 return append(v.asUInt());
-
138 case Json::realValue:
-
139 return append(v.asDouble());
- -
141 return append(v.asString());
- -
143 return append(v.asBool());
-
144
-
145 case Json::objectValue: {
-
146 auto object = appendObject();
-
147 copyFrom(object, v);
-
148 return;
-
149 }
-
150
-
151 case Json::arrayValue: {
-
152 auto array = appendArray();
-
153 for (auto& item : v)
-
154 array.append(item);
-
155 return;
-
156 }
-
157 }
-
158 UNREACHABLE("Json::Array::append : invalid type"); // LCOV_EXCL_LINE
-
159}
-
-
160
-
161void
-
- -
163{
-
164 auto t = v.type();
-
165 switch (t)
-
166 {
-
167 case Json::nullValue:
-
168 return set(k, nullptr);
-
169 case Json::intValue:
-
170 return set(k, v.asInt());
-
171 case Json::uintValue:
-
172 return set(k, v.asUInt());
-
173 case Json::realValue:
-
174 return set(k, v.asDouble());
- -
176 return set(k, v.asString());
- -
178 return set(k, v.asBool());
-
179
-
180 case Json::objectValue: {
-
181 auto object = setObject(k);
-
182 copyFrom(object, v);
-
183 return;
-
184 }
-
185
-
186 case Json::arrayValue: {
-
187 auto array = setArray(k);
-
188 for (auto& item : v)
-
189 array.append(item);
-
190 return;
-
191 }
-
192 }
-
193 UNREACHABLE("Json::Object::set : invalid type"); // LCOV_EXCL_LINE
-
194}
-
-
195
-
196//------------------------------------------------------------------------------
-
197
-
198namespace {
-
199
-
200template <class Object>
-
201void
-
202doCopyFrom(Object& to, Json::Value const& from)
-
203{
-
204 XRPL_ASSERT(from.isObjectOrNull(), "Json::doCopyFrom : valid input type");
-
205 auto members = from.getMemberNames();
-
206 for (auto& m : members)
-
207 to[m] = from[m];
-
208}
-
209
-
210} // namespace
-
211
-
212void
-
- -
214{
-
215 if (!to) // Short circuit this very common case.
-
216 to = from;
-
217 else
-
218 doCopyFrom(to, from);
-
219}
-
-
220
-
221void
-
-
222copyFrom(Object& to, Json::Value const& from)
-
223{
-
224 doCopyFrom(to, from);
-
225}
-
-
226
-
227WriterObject
-
- -
229{
-
230 return WriterObject(stringOutput(s));
-
231}
-
-
232
-
233} // namespace Json
- -
Represents a JSON array being written to a Writer.
Definition Object.h:228
-
Object appendObject()
Append a new Object and return it.
Definition Object.cpp:88
-
Array appendArray()
Append a new Array and return it.
Definition Object.cpp:97
-
void append(Scalar const &)
Append a scalar to the Arrary.
Definition Object.h:379
- -
void checkWritable(std::string const &label)
Definition Object.cpp:52
- -
Collection & operator=(Collection &&c) noexcept
Definition Object.cpp:33
- -
Collection()=delete
-
Collection * parent_
Definition Object.h:150
-
Writer * writer_
Definition Object.h:151
- -
Proxy(Object &object, std::string const &key)
Definition Object.cpp:107
- -
Represents a JSON object being written to a Writer.
Definition Object.h:161
-
Proxy operator[](std::string const &key)
Definition Object.cpp:113
-
void set(std::string const &key, Scalar const &)
Set a scalar value in the Object for a key.
Definition Object.h:388
-
friend class Array
Definition Object.h:211
-
Array setArray(std::string const &key)
Make a new Array at a key and return it.
Definition Object.cpp:77
-
Object setObject(std::string const &key)
Make a new Object at a key and return it.
Definition Object.cpp:68
-
Lightweight wrapper to tag static string.
Definition json_value.h:45
-
Represents a JSON value.
Definition json_value.h:131
-
bool isObjectOrNull() const
-
Int asInt() const
-
UInt asUInt() const
-
Members getMemberNames() const
Return a list of the member names.
-
ValueType type() const
-
std::string asString() const
Returns the unquoted string value.
-
bool asBool() const
-
double asDouble() const
-
An Object that contains its own Writer.
Definition Object.h:316
-
Writer implements an O(1)-space, O(1)-granular output JSON writer.
-
void finish()
Finish the collection most recently started.
-
void startRoot(CollectionType)
Start a new collection at the root level.
- - -
void startAppend(CollectionType)
Start a new collection inside an array.
-
void startSet(CollectionType, std::string const &key)
Start a new collection inside an object.
-
JSON (JavaScript Object Notation).
Definition json_errors.h:6
-
Output stringOutput(std::string &s)
-
Json::Value & appendArray(Json::Value &)
Append a new subarray to a Json array.
Definition Object.h:420
-
@ booleanValue
bool value
Definition json_value.h:25
-
@ nullValue
'null' value
Definition json_value.h:20
-
@ stringValue
UTF-8 string value.
Definition json_value.h:24
-
@ realValue
double value
Definition json_value.h:23
-
@ arrayValue
array value (ordered list)
Definition json_value.h:26
-
@ intValue
signed integer value
Definition json_value.h:21
-
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
@ uintValue
unsigned integer value
Definition json_value.h:22
-
WriterObject stringWriterObject(std::string &)
Definition Object.cpp:228
-
Json::Value & appendObject(Json::Value &)
Append a new subobject to a Json object.
Definition Object.h:432
-
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
Definition Object.cpp:213
-
void check(bool condition, std::string const &message)
- - -
- - - - diff --git a/Object_8h_source.html b/Object_8h_source.html deleted file mode 100644 index ea3bad9462..0000000000 --- a/Object_8h_source.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - -rippled: Object.h Source File - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Object.h
-
-
-
1#ifndef XRPL_JSON_OBJECT_H_INCLUDED
-
2#define XRPL_JSON_OBJECT_H_INCLUDED
-
3
-
4#include <xrpl/json/Writer.h>
-
5
-
6#include <memory>
-
7
-
8namespace Json {
-
9
-
- -
134{
-
135public:
-
136 Collection(Collection&& c) noexcept;
- -
138 operator=(Collection&& c) noexcept;
-
139 Collection() = delete;
-
140
-
141 ~Collection();
-
142
-
143protected:
-
144 // A null parent means "no parent at all".
-
145 // Writers cannot be null.
-
146 Collection(Collection* parent, Writer*);
-
147 void
-
148 checkWritable(std::string const& label);
-
149
- - - -
153};
-
-
154
-
155class Array;
-
156
-
157//------------------------------------------------------------------------------
-
158
-
-
160class Object : protected Collection
-
161{
-
162public:
-
164 class Root;
-
165
-
179 template <typename Scalar>
-
180 void
-
181 set(std::string const& key, Scalar const&);
-
182
-
183 void
-
184 set(std::string const& key, Json::Value const&);
-
185
-
186 // Detail class and method used to implement operator[].
-
187 class Proxy;
-
188
-
189 Proxy
-
190 operator[](std::string const& key);
-
191 Proxy
-
192 operator[](Json::StaticString const& key);
-
193
-
199 Object
-
200 setObject(std::string const& key);
-
201
-
207 Array
-
208 setArray(std::string const& key);
-
209
-
210protected:
-
211 friend class Array;
-
-
212 Object(Collection* parent, Writer* w) : Collection(parent, w)
-
213 {
-
214 }
-
-
215};
-
-
216
-
-
217class Object::Root : public Object
-
218{
-
219public:
-
221 Root(Writer&);
-
222};
-
-
223
-
224//------------------------------------------------------------------------------
-
225
-
-
227class Array : private Collection
-
228{
-
229public:
-
235 template <typename Scalar>
-
236 void
-
237 append(Scalar const&);
-
238
-
243 void
-
244 append(Json::Value const&);
-
245
-
251 Object
-
252 appendObject();
-
253
-
259 Array
-
260 appendArray();
-
261
-
262protected:
-
263 friend class Object;
-
-
264 Array(Collection* parent, Writer* w) : Collection(parent, w)
-
265 {
-
266 }
-
-
267};
-
-
268
-
269//------------------------------------------------------------------------------
-
270
-
271// Generic accessor functions to allow Json::Value and Collection to
-
272// interoperate.
-
273
- - -
277
-
279Array
-
280setArray(Object&, Json::StaticString const& key);
-
281
- - -
285
-
287Object
-
288addObject(Object&, Json::StaticString const& key);
-
289
- - -
293
-
295Array
-
296appendArray(Array&);
-
297
- - -
301
-
303Object
-
304appendObject(Array&);
-
305
-
307void
-
308copyFrom(Json::Value& to, Json::Value const& from);
-
309
-
311void
-
312copyFrom(Object& to, Json::Value const& from);
-
313
-
- -
316{
-
317public:
-
-
318 WriterObject(Output const& output)
-
319 : writer_(std::make_unique<Writer>(output))
-
320 , object_(std::make_unique<Object::Root>(*writer_))
-
321 {
-
322 }
-
-
323
-
324 WriterObject(WriterObject&& other) = default;
-
325
-
326 Object*
-
- -
328 {
-
329 return object_.get();
-
330 }
-
-
331
-
332 Object&
-
- -
334 {
-
335 return *object_;
-
336 }
-
-
337
-
338private:
- - -
341};
-
-
342
- - -
345
-
346//------------------------------------------------------------------------------
-
347// Implementation details.
-
348
-
349// Detail class for Object::operator[].
-
- -
351{
-
352private:
- - -
355
-
356public:
-
357 Proxy(Object& object, std::string const& key);
-
358
-
359 template <class T>
-
360 void
-
-
361 operator=(T const& t)
-
362 {
-
363 object_.set(key_, t);
-
364 // Note: This function shouldn't return *this, because it's a trap.
-
365 //
-
366 // In Json::Value, foo[jss::key] returns a reference to a
-
367 // mutable Json::Value contained _inside_ foo. But in the case of
-
368 // Json::Object, where we write once only, there isn't any such
-
369 // reference that can be returned. Returning *this would return an
-
370 // object "a level higher" than in Json::Value, leading to obscure bugs,
-
371 // particularly in generic code.
-
372 }
-
-
373};
-
-
374
-
375//------------------------------------------------------------------------------
-
376
-
377template <typename Scalar>
-
378void
-
-
379Array::append(Scalar const& value)
-
380{
-
381 checkWritable("append");
-
382 if (writer_)
-
383 writer_->append(value);
-
384}
-
-
385
-
386template <typename Scalar>
-
387void
-
-
388Object::set(std::string const& key, Scalar const& value)
-
389{
-
390 checkWritable("set");
-
391 if (writer_)
-
392 writer_->set(key, value);
-
393}
-
-
394
-
395inline Json::Value&
-
- -
397{
-
398 return (json[key] = Json::arrayValue);
-
399}
-
-
400
-
401inline Array
-
- -
403{
-
404 return json.setArray(std::string(key));
-
405}
-
-
406
-
407inline Json::Value&
-
- -
409{
-
410 return (json[key] = Json::objectValue);
-
411}
-
-
412
-
413inline Object
-
- -
415{
-
416 return object.setObject(std::string(key));
-
417}
-
-
418
-
419inline Json::Value&
-
- -
421{
-
422 return json.append(Json::arrayValue);
-
423}
-
-
424
-
425inline Array
-
- -
427{
-
428 return json.appendArray();
-
429}
-
-
430
-
431inline Json::Value&
-
- -
433{
-
434 return json.append(Json::objectValue);
-
435}
-
-
436
-
437inline Object
-
- -
439{
-
440 return json.appendObject();
-
441}
-
-
442
-
443} // namespace Json
-
444
-
445#endif
- -
Represents a JSON array being written to a Writer.
Definition Object.h:228
-
Object appendObject()
Append a new Object and return it.
Definition Object.cpp:88
-
Array(Collection *parent, Writer *w)
Definition Object.h:264
-
Array appendArray()
Append a new Array and return it.
Definition Object.cpp:97
-
void append(Scalar const &)
Append a scalar to the Arrary.
Definition Object.h:379
- -
void checkWritable(std::string const &label)
Definition Object.cpp:52
- -
Collection & operator=(Collection &&c) noexcept
Definition Object.cpp:33
- -
Collection()=delete
-
Collection * parent_
Definition Object.h:150
-
Writer * writer_
Definition Object.h:151
- -
Object & object_
Definition Object.h:353
-
void operator=(T const &t)
Definition Object.h:361
-
std::string const key_
Definition Object.h:354
- -
Represents a JSON object being written to a Writer.
Definition Object.h:161
-
Proxy operator[](std::string const &key)
Definition Object.cpp:113
-
Object(Collection *parent, Writer *w)
Definition Object.h:212
-
void set(std::string const &key, Scalar const &)
Set a scalar value in the Object for a key.
Definition Object.h:388
-
Array setArray(std::string const &key)
Make a new Array at a key and return it.
Definition Object.cpp:77
-
Object setObject(std::string const &key)
Make a new Object at a key and return it.
Definition Object.cpp:68
-
Lightweight wrapper to tag static string.
Definition json_value.h:45
-
Represents a JSON value.
Definition json_value.h:131
-
Value & append(Value const &value)
Append value to array at the end.
-
An Object that contains its own Writer.
Definition Object.h:316
-
std::unique_ptr< Writer > writer_
Definition Object.h:339
-
WriterObject(WriterObject &&other)=default
-
WriterObject(Output const &output)
Definition Object.h:318
-
Object * operator->()
Definition Object.h:327
-
std::unique_ptr< Object::Root > object_
Definition Object.h:340
-
Object & operator*()
Definition Object.h:333
-
Writer implements an O(1)-space, O(1)-granular output JSON writer.
-
void append(Scalar t)
Append a value to an array.
-
void set(std::string const &tag, Type t)
Add a key, value assignment to an object.
- - -
JSON (JavaScript Object Notation).
Definition json_errors.h:6
-
Json::Value & appendArray(Json::Value &)
Append a new subarray to a Json array.
Definition Object.h:420
-
@ arrayValue
array value (ordered list)
Definition json_value.h:26
-
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
WriterObject stringWriterObject(std::string &)
Definition Object.cpp:228
-
Json::Value & setArray(Json::Value &, Json::StaticString const &key)
Add a new subarray at a named key in a Json object.
Definition Object.h:396
-
Json::Value & addObject(Json::Value &, Json::StaticString const &key)
Add a new subobject at a named key in a Json object.
Definition Object.h:408
-
Json::Value & appendObject(Json::Value &)
Append a new subobject to a Json object.
Definition Object.h:432
-
void copyFrom(Json::Value &to, Json::Value const &from)
Copy all the keys and values from one object into another.
Definition Object.cpp:213
-
STL namespace.
- -
- - - - diff --git a/Object__test_8cpp_source.html b/Object__test_8cpp_source.html deleted file mode 100644 index fa557dfebc..0000000000 --- a/Object__test_8cpp_source.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - -rippled: Object_test.cpp Source File - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Object_test.cpp
-
-
-
1#include <test/json/TestOutputSuite.h>
-
2
-
3#include <xrpl/beast/unit_test.h>
-
4#include <xrpl/json/Object.h>
-
5
-
6namespace Json {
-
7
-
- -
9{
-
10 void
-
-
11 setup(std::string const& testName)
-
12 {
-
13 testcase(testName);
-
14 output_.clear();
-
15 }
-
-
16
- -
18
-
19 Object&
- -
26
-
27 void
-
-
28 expectResult(std::string const& expected)
-
29 {
-
30 writerObject_.reset();
-
31 TestOutputSuite::expectResult(expected);
-
32 }
-
-
33
-
34public:
-
35 void
-
- -
37 {
-
38 setup("trivial");
-
39
-
40 {
-
41 auto& root = makeRoot();
-
42 (void)root;
-
43 }
-
44 expectResult("{}");
-
45 }
-
-
46
-
47 void
-
- -
49 {
-
50 setup("simple");
-
51 {
-
52 auto& root = makeRoot();
-
53 root["hello"] = "world";
-
54 root["skidoo"] = 23;
-
55 root["awake"] = false;
-
56 root["temperature"] = 98.6;
-
57 }
-
58
- -
60 "{\"hello\":\"world\","
-
61 "\"skidoo\":23,"
-
62 "\"awake\":false,"
-
63 "\"temperature\":98.6}");
-
64 }
-
-
65
-
66 void
-
- -
68 {
-
69 setup("oneSub");
-
70 {
-
71 auto& root = makeRoot();
-
72 root.setArray("ar");
-
73 }
-
74 expectResult("{\"ar\":[]}");
-
75 }
-
-
76
-
77 void
-
- -
79 {
-
80 setup("subs");
-
81 {
-
82 auto& root = makeRoot();
-
83
-
84 {
-
85 // Add an array with three entries.
-
86 auto array = root.setArray("ar");
-
87 array.append(23);
-
88 array.append(false);
-
89 array.append(23.5);
-
90 }
-
91
-
92 {
-
93 // Add an object with one entry.
-
94 auto obj = root.setObject("obj");
-
95 obj["hello"] = "world";
-
96 }
-
97
-
98 {
-
99 // Add another object with two entries.
-
100 Json::Value value;
-
101 value["h"] = "w";
-
102 value["f"] = false;
-
103 root["obj2"] = value;
-
104 }
-
105 }
-
106
-
107 // Json::Value has an unstable order...
-
108 auto case1 =
-
109 "{\"ar\":[23,false,23.5],"
-
110 "\"obj\":{\"hello\":\"world\"},"
-
111 "\"obj2\":{\"h\":\"w\",\"f\":false}}";
-
112 auto case2 =
-
113 "{\"ar\":[23,false,23.5],"
-
114 "\"obj\":{\"hello\":\"world\"},"
-
115 "\"obj2\":{\"f\":false,\"h\":\"w\"}}";
-
116 writerObject_.reset();
-
117 BEAST_EXPECT(output_ == case1 || output_ == case2);
-
118 }
-
-
119
-
120 void
-
- -
122 {
-
123 setup("subsShort");
-
124
-
125 {
-
126 auto& root = makeRoot();
-
127
-
128 {
-
129 // Add an array with three entries.
-
130 auto array = root.setArray("ar");
-
131 array.append(23);
-
132 array.append(false);
-
133 array.append(23.5);
-
134 }
-
135
-
136 // Add an object with one entry.
-
137 root.setObject("obj")["hello"] = "world";
-
138
-
139 {
-
140 // Add another object with two entries.
-
141 auto object = root.setObject("obj2");
-
142 object.set("h", "w");
-
143 object.set("f", false);
-
144 }
-
145 }
- -
147 "{\"ar\":[23,false,23.5],"
-
148 "\"obj\":{\"hello\":\"world\"},"
-
149 "\"obj2\":{\"h\":\"w\",\"f\":false}}");
-
150 }
-
-
151
-
152 void
-
- -
154 {
-
155 {
-
156 setup("object failure assign");
-
157 auto& root = makeRoot();
-
158 auto obj = root.setObject("o1");
-
159 expectException([&]() { root["fail"] = "complete"; });
-
160 }
-
161 {
-
162 setup("object failure object");
-
163 auto& root = makeRoot();
-
164 auto obj = root.setObject("o1");
-
165 expectException([&]() { root.setObject("o2"); });
-
166 }
-
167 {
-
168 setup("object failure Array");
-
169 auto& root = makeRoot();
-
170 auto obj = root.setArray("o1");
-
171 expectException([&]() { root.setArray("o2"); });
-
172 }
-
173 }
-
-
174
-
175 void
-
- -
177 {
-
178 {
-
179 setup("array failure append");
-
180 auto& root = makeRoot();
-
181 auto array = root.setArray("array");
-
182 auto subarray = array.appendArray();
-
183 auto fail = [&]() { array.append("fail"); };
- -
185 }
-
186 {
-
187 setup("array failure appendArray");
-
188 auto& root = makeRoot();
-
189 auto array = root.setArray("array");
-
190 auto subarray = array.appendArray();
-
191 auto fail = [&]() { array.appendArray(); };
- -
193 }
-
194 {
-
195 setup("array failure appendObject");
-
196 auto& root = makeRoot();
-
197 auto array = root.setArray("array");
-
198 auto subarray = array.appendArray();
-
199 auto fail = [&]() { array.appendObject(); };
- -
201 }
-
202 }
-
-
203
-
204 void
-
- -
206 {
-
207 setup("repeating keys");
-
208 auto& root = makeRoot();
-
209 root.set("foo", "bar");
-
210 root.set("baz", 0);
-
211 // setting key again throws in !NDEBUG builds
-
212 auto set_again = [&]() { root.set("foo", "bar"); };
-
213#ifdef NDEBUG
-
214 set_again();
-
215 pass();
-
216#else
-
217 expectException(set_again);
-
218#endif
-
219 }
-
-
220
-
221 void
-
-
222 run() override
-
223 {
-
224 testTrivial();
-
225 testSimple();
-
226
-
227 testOneSub();
-
228 testSubs();
- -
230
- - - -
234 }
-
-
235};
-
-
236
-
237BEAST_DEFINE_TESTSUITE(JsonObject, json, xrpl);
-
238
-
239} // namespace Json
- - -
void setup(std::string const &testName)
-
void expectResult(std::string const &expected)
- -
std::unique_ptr< WriterObject > writerObject_
- - - - - -
void run() override
Runs the suite.
- - - -
Represents a JSON object being written to a Writer.
Definition Object.h:161
-
Represents a JSON value.
Definition json_value.h:131
-
void pass()
Record a successful test condition.
Definition suite.h:508
-
testcase_t testcase
Memberspace for declaring test cases.
Definition suite.h:152
-
void fail(String const &reason, char const *file, int line)
Record a failure.
Definition suite.h:530
-
bool expectException(Functor f, std::string const &message="")
Definition TestSuite.h:81
- - -
T clear(T... args)
-
T is_same_v
-
JSON (JavaScript Object Notation).
Definition json_errors.h:6
-
WriterObject stringWriterObject(std::string &)
Definition Object.cpp:228
-
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
- -
- - - - diff --git a/Offer__test_8cpp_source.html b/Offer__test_8cpp_source.html index b2d3fec0b7..958376ef7f 100644 --- a/Offer__test_8cpp_source.html +++ b/Offer__test_8cpp_source.html @@ -5703,7 +5703,7 @@ $(document).ready(function() { init_codefold(0); });
Issue const & xrpIssue()
Returns an asset specifier that represents XRP.
Definition Issue.h:96
constexpr std::uint32_t tfImmediateOrCancel
Definition TxFlags.h:80
constexpr std::uint32_t tfFillOrKill
Definition TxFlags.h:81
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
constexpr std::uint32_t tfSetNoRipple
Definition TxFlags.h:97
void forEachItem(ReadView const &view, Keylet const &root, std::function< void(std::shared_ptr< SLE const > const &)> const &f)
Iterate all items in the given directory.
Definition View.cpp:759
diff --git a/OwnerInfo_8cpp_source.html b/OwnerInfo_8cpp_source.html index f1c7bb7786..f60c321e37 100644 --- a/OwnerInfo_8cpp_source.html +++ b/OwnerInfo_8cpp_source.html @@ -115,12 +115,12 @@ $(document).ready(function() { init_codefold(0); });
31 std::optional<AccountID> const accountID = parseBase58<AccountID>(strIdent);
32 ret[jss::accepted] = accountID.has_value()
33 ? context.netOps.getOwnerInfo(closedLedger, accountID.value())
- +
35
36 auto const& currentLedger = context.ledgerMaster.getCurrentLedger();
37 ret[jss::current] = accountID.has_value()
38 ? context.netOps.getOwnerInfo(currentLedger, *accountID)
- +
40 return ret;
41}
@@ -133,10 +133,10 @@ $(document).ready(function() { init_codefold(0); });
std::shared_ptr< Ledger const > getClosedLedger()
std::shared_ptr< ReadView const > getCurrentLedger()
virtual Json::Value getOwnerInfo(std::shared_ptr< ReadView const > lpLedger, AccountID const &account)=0
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doOwnerInfo(RPC::JsonContext &)
Definition OwnerInfo.cpp:16
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcACT_MALFORMED
Definition ErrorCodes.h:71
T has_value(T... args)
diff --git a/OwnerInfo__test_8cpp_source.html b/OwnerInfo__test_8cpp_source.html index 9e2e2ce5b1..9e206c2d96 100644 --- a/OwnerInfo__test_8cpp_source.html +++ b/OwnerInfo__test_8cpp_source.html @@ -307,7 +307,7 @@ $(document).ready(function() { init_codefold(0); });
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
owner_count< ltOFFER > offers
Match the number of offers in the account's owner directory.
Definition owners.h:73
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
diff --git a/PathFind_8cpp_source.html b/PathFind_8cpp_source.html index 14c79b6338..36c83e7ef5 100644 --- a/PathFind_8cpp_source.html +++ b/PathFind_8cpp_source.html @@ -98,18 +98,18 @@ $(document).ready(function() { init_codefold(0); });
15{
16 if (context.app.config().PATH_SEARCH_MAX == 0)
- +
18
19 auto lpLedger = context.ledgerMaster.getClosedLedger();
20
21 if (!context.params.isMember(jss::subcommand) ||
22 !context.params[jss::subcommand].isString())
23 {
- +
25 }
26
27 if (!context.infoSub)
-
28 return rpcError(rpcNO_EVENTS);
+
28 return rpcError(rpcNO_EVENTS);
29
30 context.infoSub->setApiVersion(context.apiVersion);
31
@@ -128,7 +128,7 @@ $(document).ready(function() { init_codefold(0); });
44 InfoSubRequest::pointer request = context.infoSub->getRequest();
45
46 if (!request)
- +
48
49 context.infoSub->clearRequest();
50 return request->doClose();
@@ -139,12 +139,12 @@ $(document).ready(function() { init_codefold(0); });
55 InfoSubRequest::pointer request = context.infoSub->getRequest();
56
57 if (!request)
- +
59
60 return request->doStatus(context.params);
61 }
62
- +
64}
65
@@ -164,7 +164,7 @@ $(document).ready(function() { init_codefold(0); });
Charge const feeHeavyBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doPathFind(RPC::JsonContext &)
Definition PathFind.cpp:14
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcNO_PF_REQUEST
Definition ErrorCodes.h:67
@ rpcNO_EVENTS
Definition ErrorCodes.h:35
@ rpcNOT_SUPPORTED
Definition ErrorCodes.h:113
diff --git a/PathRequest_8cpp_source.html b/PathRequest_8cpp_source.html index 59027e8836..d351811780 100644 --- a/PathRequest_8cpp_source.html +++ b/PathRequest_8cpp_source.html @@ -256,7 +256,7 @@ $(document).ready(function() { init_codefold(0); });
158 if (!convert_all_ && (saSendMax || saDstAmount <= beast::zero))
159 {
160 // If send max specified, dst amt must be -1.
- +
162 return false;
163 }
164
@@ -265,7 +265,7 @@ $(document).ready(function() { init_codefold(0); });
167 if (!lrLedger->exists(keylet::account(*raSrcAccount)))
168 {
169 // Source account does not exist.
- +
171 return false;
172 }
173
@@ -280,14 +280,14 @@ $(document).ready(function() { init_codefold(0); });
182 if (!saDstAmount.native())
183 {
184 // Only XRP can be send to a non-existent account.
- +
186 return false;
187 }
188
189 if (!convert_all_ && saDstAmount < STAmount(lrLedger->fees().reserve))
190 {
191 // Payment must meet reserve.
- +
193 return false;
194 }
195 }
@@ -357,19 +357,19 @@ $(document).ready(function() { init_codefold(0); });
255{
256 if (!jvParams.isMember(jss::source_account))
257 {
- +
259 return PFR_PJ_INVALID;
260 }
261
262 if (!jvParams.isMember(jss::destination_account))
263 {
- +
265 return PFR_PJ_INVALID;
266 }
267
268 if (!jvParams.isMember(jss::destination_amount))
269 {
- +
271 return PFR_PJ_INVALID;
272 }
273
@@ -377,7 +377,7 @@ $(document).ready(function() { init_codefold(0); });
275 parseBase58<AccountID>(jvParams[jss::source_account].asString());
276 if (!raSrcAccount)
277 {
- +
279 return PFR_PJ_INVALID;
280 }
281
@@ -385,13 +385,13 @@ $(document).ready(function() { init_codefold(0); });
283 parseBase58<AccountID>(jvParams[jss::destination_account].asString());
284 if (!raDstAccount)
285 {
- +
287 return PFR_PJ_INVALID;
288 }
289
290 if (!amountFromJsonNoThrow(saDstAmount, jvParams[jss::destination_amount]))
291 {
- +
293 return PFR_PJ_INVALID;
294 }
295
@@ -402,7 +402,7 @@ $(document).ready(function() { init_codefold(0); });
301 (!convert_all_ && saDstAmount <= beast::zero))
302 {
- +
304 return PFR_PJ_INVALID;
305 }
306
@@ -411,7 +411,7 @@ $(document).ready(function() { init_codefold(0); });
309 // Send_max requires destination amount to be -1.
310 if (!convert_all_)
311 {
- +
313 return PFR_PJ_INVALID;
314 }
315
@@ -423,7 +423,7 @@ $(document).ready(function() { init_codefold(0); });
321 (*saSendMax <= beast::zero &&
322 *saSendMax != STAmount(saSendMax->issue(), 1u, 0, true)))
323 {
- +
325 return PFR_PJ_INVALID;
326 }
327 }
@@ -434,7 +434,7 @@ $(document).ready(function() { init_codefold(0); });
332 if (!jvSrcCurrencies.isArray() || jvSrcCurrencies.size() == 0 ||
333 jvSrcCurrencies.size() > RPC::Tuning::max_src_cur)
334 {
- +
336 return PFR_PJ_INVALID;
337 }
338
@@ -448,7 +448,7 @@ $(document).ready(function() { init_codefold(0); });
346 !c[jss::currency].isString() ||
347 !to_currency(srcCurrencyID, c[jss::currency].asString()))
348 {
- +
350 return PFR_PJ_INVALID;
351 }
352
@@ -458,7 +458,7 @@ $(document).ready(function() { init_codefold(0); });
356 (!c[jss::issuer].isString() ||
357 !to_issuer(srcIssuerID, c[jss::issuer].asString())))
358 {
- +
360 return PFR_PJ_INVALID;
361 }
362
@@ -466,7 +466,7 @@ $(document).ready(function() { init_codefold(0); });
364 {
365 if (srcIssuerID.isNonZero())
366 {
- +
368 return PFR_PJ_INVALID;
369 }
370 }
@@ -486,7 +486,7 @@ $(document).ready(function() { init_codefold(0); });
384 saSendMax->getIssuer() != *raSrcAccount &&
385 srcIssuerID != saSendMax->getIssuer())
386 {
- +
388 return PFR_PJ_INVALID;
389 }
390
@@ -525,7 +525,7 @@ $(document).ready(function() { init_codefold(0); });
423 if (!jvParams[jss::domain].isString() ||
424 !num.parseHex(jvParams[jss::domain].asString()))
425 {
- +
427 return PFR_PJ_INVALID;
428 }
429 else
@@ -845,7 +845,7 @@ $(document).ready(function() { init_codefold(0); });
731 else
732 {
733 bLastSuccess = false;
-
734 newStatus = rpcError(rpcINTERNAL);
+
734 newStatus = rpcError(rpcINTERNAL);
735 }
736
737 if (fast && quick_reply_ == steady_clock::time_point{})
@@ -987,8 +987,8 @@ $(document).ready(function() { init_codefold(0); });
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
std::string transHuman(TER code)
Definition TER.cpp:254
hash_set< Currency > accountSourceCurrencies(AccountID const &account, std::shared_ptr< RippleLineCache > const &lrCache, bool includeXRP)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
bool amountFromJsonNoThrow(STAmount &result, Json::Value const &jvSource)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool to_issuer(AccountID &, std::string const &)
Convert hex or base58 string to AccountID.
@ tapNONE
Definition ApplyView.h:12
hash_set< Currency > accountDestCurrencies(AccountID const &account, std::shared_ptr< RippleLineCache > const &lrCache, bool includeXRP)
diff --git a/PathRequests_8cpp_source.html b/PathRequests_8cpp_source.html index f3e34c23f9..be58e54a5c 100644 --- a/PathRequests_8cpp_source.html +++ b/PathRequests_8cpp_source.html @@ -365,7 +365,7 @@ $(document).ready(function() { init_codefold(0); });
275 {
276 // The newPathRequest failed. Tell the caller.
-
277 jvRes = rpcError(rpcTOO_BUSY);
+
277 jvRes = rpcError(rpcTOO_BUSY);
278 req.reset();
279 }
280 }
@@ -427,8 +427,8 @@ $(document).ready(function() { init_codefold(0); });
TER valid(STTx const &tx, ReadView const &view, AccountID const &src, beast::Journal j)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
@ jtPATH_FIND
Definition Job.h:64
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcTOO_BUSY
Definition ErrorCodes.h:37
T remove_if(T... args)
T reset(T... args)
diff --git a/PayChanClaim_8cpp_source.html b/PayChanClaim_8cpp_source.html index 30c8b5b644..f2e1409561 100644 --- a/PayChanClaim_8cpp_source.html +++ b/PayChanClaim_8cpp_source.html @@ -138,14 +138,14 @@ $(document).ready(function() { init_codefold(0); });
54
55 uint256 channelId;
56 if (!channelId.parseHex(params[jss::channel_id].asString()))
- +
58
59 std::optional<std::uint64_t> const optDrops = params[jss::amount].isString()
60 ? to_uint64(params[jss::amount].asString())
62
63 if (!optDrops)
- +
65
66 std::uint64_t const drops = *optDrops;
67
@@ -194,30 +194,30 @@ $(document).ready(function() { init_codefold(0); });
108 {
109 auto pkHex = strUnHex(strPk);
110 if (!pkHex)
- +
112 auto const pkType = publicKeyType(makeSlice(*pkHex));
113 if (!pkType)
- +
115 pk.emplace(makeSlice(*pkHex));
116 }
117 }
118
119 uint256 channelId;
120 if (!channelId.parseHex(params[jss::channel_id].asString()))
- +
122
123 std::optional<std::uint64_t> const optDrops = params[jss::amount].isString()
124 ? to_uint64(params[jss::amount].asString())
125 : std::nullopt;
126
127 if (!optDrops)
- +
129
130 std::uint64_t const drops = *optDrops;
131
132 auto sig = strUnHex(params[jss::signature].asString());
133 if (!sig || !sig->size())
- +
135
136 Serializer msg;
137 serializePayChanAuthorization(msg, channelId, XRPAmount(drops));
@@ -244,10 +244,10 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
std::optional< std::pair< PublicKey, SecretKey > > keypairForSignature(Json::Value const &params, Json::Value &error, unsigned int apiVersion)
Generates a keypair for signature from RPC parameters.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
std::optional< std::uint64_t > to_uint64(std::string const &s)
@@ -255,11 +255,11 @@ $(document).ready(function() { init_codefold(0); });
Json::Value doChannelAuthorize(RPC::JsonContext &)
void serializePayChanAuthorization(Serializer &msg, uint256 const &key, XRPAmount const &amt)
std::optional< KeyType > publicKeyType(Slice const &slice)
Returns the type of public key.
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doChannelVerify(RPC::JsonContext &)
std::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Buffer sign(PublicKey const &pk, SecretKey const &sk, Slice const &message)
Generate a signature for a message.
std::enable_if_t< std::is_same< T, char >::value||std::is_same< T, unsigned char >::value, Slice > makeSlice(std::array< T, N > const &a)
Definition Slice.h:225
@ rpcCHANNEL_AMT_MALFORMED
Definition ErrorCodes.h:82
diff --git a/PayChan__test_8cpp_source.html b/PayChan__test_8cpp_source.html index 900c0ff6be..f615d82f29 100644 --- a/PayChan__test_8cpp_source.html +++ b/PayChan__test_8cpp_source.html @@ -2328,7 +2328,7 @@ $(document).ready(function() { init_codefold(0); });
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
Json::Value fclear(Account const &account, std::uint32_t off)
Remove account flag.
Definition flags.h:102
FeatureBitset testable_amendments()
Definition Env.h:55
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
Json::Value fset(Account const &account, std::uint32_t on, std::uint32_t off=0)
Add and/or remove flag.
Definition flags.cpp:10
Json::Value acctdelete(Account const &account, Account const &dest)
Delete account.
owner_count< ltTICKET > tickets
Match the number of tickets on the account.
Definition ticket.h:45
diff --git a/PerfLog__test_8cpp_source.html b/PerfLog__test_8cpp_source.html index b54d923a2b..22e81369c4 100644 --- a/PerfLog__test_8cpp_source.html +++ b/PerfLog__test_8cpp_source.html @@ -1224,7 +1224,7 @@ $(document).ready(function() { init_codefold(0); });
STL namespace.
std::set< char const * > getHandlerNames()
Return names of all methods.
Definition Handler.cpp:301
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
std::unique_ptr< PerfLog > make_PerfLog(PerfLog::Setup const &setup, Application &app, beast::Journal journal, std::function< void()> &&signalStop)
auto make_vector(Input const &input)
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
diff --git a/RCLCxLedger_8h_source.html b/RCLCxLedger_8h_source.html index 7dc2fe9498..3b885460a8 100644 --- a/RCLCxLedger_8h_source.html +++ b/RCLCxLedger_8h_source.html @@ -195,7 +195,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
bool getCloseAgree(LedgerHeader const &info)
uint256 LedgerHash
std::uint32_t LedgerIndex
A ledger index.
Definition Protocol.h:255
diff --git a/RPCCall_8cpp_source.html b/RPCCall_8cpp_source.html index 7fd5d9ae7d..0e43377291 100644 --- a/RPCCall_8cpp_source.html +++ b/RPCCall_8cpp_source.html @@ -290,14 +290,14 @@ $(document).ready(function() { init_codefold(0); });
193
194 std::string const strPk = jvParams[0u].asString();
- +
197
198 jvRequest[jss::public_key] = strPk;
199
200 return jvRequest;
201 }
202
- +
204 }
205
@@ -327,7 +327,7 @@ $(document).ready(function() { init_codefold(0); });
226
227 auto const account = parseBase58<AccountID>(jvParams[0u].asString());
228 if (!account)
- +
230
231 jvRequest[jss::account] = toBase58(*account);
232
@@ -373,8 +373,8 @@ $(document).ready(function() { init_codefold(0); });
272 if (uLedgerMax != -1 && uLedgerMax < uLedgerMin)
273 {
274 if (apiVersion_ == 1)
- -
276 return rpcError(rpcNOT_SYNCED);
+ +
276 return rpcError(rpcNOT_SYNCED);
277 }
278
279 jvRequest[jss::ledger_index_min] = jvParams[1u].asInt();
@@ -549,7 +549,7 @@ $(document).ready(function() { init_codefold(0); });
439 parseEvented(Json::Value const& jvParams)
440 {
-
441 return rpcError(rpcNO_EVENTS);
+
441 return rpcError(rpcNO_EVENTS);
442 }
443
@@ -575,7 +575,7 @@ $(document).ready(function() { init_codefold(0); });
462 else if (boost::iequals(action, "accept"))
463 jvRequest[jss::vetoed] = Json::Value(false);
464 else
- +
466 }
467
468 return jvRequest;
@@ -624,7 +624,7 @@ $(document).ready(function() { init_codefold(0); });
507 return jvRequest;
508 }
509 }
- +
511 }
512
@@ -642,14 +642,14 @@ $(document).ready(function() { init_codefold(0); });
523 if (reader.parse(jvParams[1u].asString(), jvRequest))
524 {
525 if (!jvRequest.isObjectOrNull())
- +
527
528 jvRequest[jss::method] = jvParams[0u];
529
530 return jvRequest;
531 }
532
- +
534 }
535
@@ -726,7 +726,7 @@ $(document).ready(function() { init_codefold(0); });
603 }
604 return jv1;
605 }
-
606 auto jv_error = rpcError(rpcINVALID_PARAMS);
+
606 auto jv_error = rpcError(rpcINVALID_PARAMS);
607 if (jv.isMember(jss::jsonrpc))
608 jv_error[jss::jsonrpc] = jv[jss::jsonrpc];
609 if (jv.isMember(jss::ripplerpc))
@@ -802,7 +802,7 @@ $(document).ready(function() { init_codefold(0); });
673
674 if (jvParams.size() == 2 &&
675 !jvParseLedger(jvRequest, jvParams[1u].asString()))
- +
677
678 return jvRequest;
679 }
@@ -884,7 +884,7 @@ $(document).ready(function() { init_codefold(0); });
743 index++;
744
745 if (!keyTypeFromString(jvParams[index].asString()))
- +
747 jvRequest[jss::key_type] = jvParams[index];
748 index++;
749 }
@@ -898,14 +898,14 @@ $(document).ready(function() { init_codefold(0); });
757 // verify the channel id is a valid 256 bit number
758 uint256 channelId;
759 if (!channelId.parseHex(jvParams[index].asString()))
- +
761 jvRequest[jss::channel_id] = to_string(channelId);
762 index++;
763 }
764
765 if (!jvParams[index].isString() ||
766 !to_uint64(jvParams[index].asString()))
- +
768 jvRequest[jss::amount] = jvParams[index];
769
770 // If additional parameters are appended, be sure to increment index
@@ -923,7 +923,7 @@ $(document).ready(function() { init_codefold(0); });
780 std::string const strPk = jvParams[0u].asString();
781
782 if (!validPublicKey(strPk))
- +
784
786
@@ -932,12 +932,12 @@ $(document).ready(function() { init_codefold(0); });
789 // verify the channel id is a valid 256 bit number
790 uint256 channelId;
791 if (!channelId.parseHex(jvParams[1u].asString()))
- +
793 }
794 jvRequest[jss::channel_id] = jvParams[1u].asString();
795
796 if (!jvParams[2u].isString() || !to_uint64(jvParams[2u].asString()))
- +
798 jvRequest[jss::amount] = jvParams[2u];
799
800 jvRequest[jss::signature] = jvParams[3u].asString();
@@ -969,14 +969,14 @@ $(document).ready(function() { init_codefold(0); });
824 }
825 else
826 {
- +
828 }
829 }
830 else
831 {
832 if (jvParseLedger(jvRequest, strParam))
833 return jvRequest;
- +
835 }
836 }
837
@@ -993,7 +993,7 @@ $(document).ready(function() { init_codefold(0); });
846 unsigned int iCursor = jvParams.size();
847
848 if (!parseBase58<AccountID>(strIdent))
- +
850
851 // Get info on account.
@@ -1001,7 +1001,7 @@ $(document).ready(function() { init_codefold(0); });
854 jvRequest[jss::account] = strIdent;
855
856 if (iCursor == 2 && !jvParseLedger(jvRequest, jvParams[1u].asString()))
- +
858
859 return jvRequest;
860 }
@@ -1014,7 +1014,7 @@ $(document).ready(function() { init_codefold(0); });
865 std::string strVaultID = jvParams[0u].asString();
866 uint256 id = beast::zero;
867 if (!id.parseHex(strVaultID))
- +
869
871 jvRequest[jss::vault_id] = strVaultID;
@@ -1073,7 +1073,7 @@ $(document).ready(function() { init_codefold(0); });
918 return jvRequest;
919 }
920
- +
922 }
923
@@ -1101,7 +1101,7 @@ $(document).ready(function() { init_codefold(0); });
944 if (jvParams.size() == 2)
945 {
946 if (!jvParams[1u].isString() || jvParams[1u].asString() != "binary")
- +
948 jvRequest[jss::binary] = true;
949 }
950
@@ -1161,7 +1161,7 @@ $(document).ready(function() { init_codefold(0); });
1002 return jvRequest;
1003 }
1004
- +
1006 }
1007
@@ -1184,7 +1184,7 @@ $(document).ready(function() { init_codefold(0); });
1023 }
1024 }
1025
- +
1027 }
1028
@@ -1200,7 +1200,7 @@ $(document).ready(function() { init_codefold(0); });
1037
1038 std::string const txHash = jvParams[0u].asString();
1039 if (txHash.length() != 64)
- +
1041
1042 Json::Value jvRequest{Json::objectValue};
1043 jvRequest[jss::tx_hash] = txHash;
@@ -1211,7 +1211,7 @@ $(document).ready(function() { init_codefold(0); });
1048 // find a match.
1049 if (jvRequest.isMember(jss::ledger_index) &&
1050 jvRequest[jss::ledger_index] == 0)
- +
1052
1053 return jvRequest;
1054 }
@@ -1497,7 +1497,7 @@ $(document).ready(function() { init_codefold(0); });
1316 << " maximum=" << command.maxParams
1317 << " actual=" << count;
1318
-
1319 return rpcError(rpcBAD_SYNTAX);
+
1319 return rpcError(rpcBAD_SYNTAX);
1320 }
1321
1322 return (this->*(command.parse))(jvParams);
@@ -1506,7 +1506,7 @@ $(document).ready(function() { init_codefold(0); });
1325
1326 // The command could not be found
1327 if (!allowAnyCommand)
- +
1329
1330 return parseAsIs(jvParams);
1331 }
@@ -1785,7 +1785,7 @@ $(document).ready(function() { init_codefold(0); });
1589 // Transport error.
1590 Json::Value jvRpcError = jvOutput;
1591
-
1592 jvOutput = rpcError(rpcJSON_RPC);
+
1592 jvOutput = rpcError(rpcJSON_RPC);
1593 jvOutput["result"] = jvRpcError;
1594 }
1595
@@ -1816,13 +1816,13 @@ $(document).ready(function() { init_codefold(0); });
1620 }
1621 catch (RequestNotParseable& e)
1622 {
-
1623 jvOutput = rpcError(rpcINVALID_PARAMS);
+
1623 jvOutput = rpcError(rpcINVALID_PARAMS);
1624 jvOutput["error_what"] = e.what();
1625 nRet = rpcINVALID_PARAMS;
1626 }
1627 catch (std::exception& e)
1628 {
-
1629 jvOutput = rpcError(rpcINTERNAL);
+
1629 jvOutput = rpcError(rpcINTERNAL);
1630 jvOutput["error_what"] = e.what();
1631 nRet = rpcINTERNAL;
1632 }
@@ -2029,8 +2029,8 @@ $(document).ready(function() { init_codefold(0); });
unsigned int UInt
int fromCommandLine(Config const &config, std::vector< std::string > const &vCmd, Logs &logs)
Definition RPCCall.cpp:1642
void fromNetwork(boost::asio::io_context &io_context, std::string const &strIp, std::uint16_t const iPort, std::string const &strUsername, std::string const &strPassword, std::string const &strPath, std::string const &strMethod, Json::Value const &jvParams, bool const bSSL, bool const quiet, Logs &logs, std::function< void(Json::Value const &jvInput)> callbackFuncP, std::unordered_map< std::string, std::string > headers)
Definition RPCCall.cpp:1658
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
static constexpr auto apiCommandLineVersion
Definition ApiVersion.h:45
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::optional< KeyType > keyTypeFromString(std::string const &s)
Definition KeyType.h:15
@@ -2041,7 +2041,6 @@ $(document).ready(function() { init_codefold(0); });
std::string base64_encode(std::uint8_t const *data, std::size_t len)
std::pair< int, Json::Value > rpcClient(std::vector< std::string > const &args, Config const &config, Logs &logs, unsigned int apiVersion, std::unordered_map< std::string, std::string > const &headers)
Internal invocation of RPC client.
Definition RPCCall.cpp:1489
std::optional< KeyType > publicKeyType(Slice const &slice)
Returns the type of public key.
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
ServerHandler::Setup setup_ServerHandler(Config const &config, std::ostream &&log)
constexpr auto megabytes(T value) noexcept
std::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
@@ -2050,6 +2049,7 @@ $(document).ready(function() { init_codefold(0); });
TokenType
Definition tokens.h:19
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
std::enable_if_t< std::is_same< T, char >::value||std::is_same< T, unsigned char >::value, Slice > makeSlice(std::array< T, N > const &a)
Definition Slice.h:225
std::string createHTTPPost(std::string const &strHost, std::string const &strPath, std::string const &strMsg, std::unordered_map< std::string, std::string > const &mapRequestHeaders)
Definition RPCCall.cpp:43
Json::Value rpcCmdToJson(std::vector< std::string > const &args, Json::Value &retParams, unsigned int apiVersion, beast::Journal j)
Definition RPCCall.cpp:1448
diff --git a/RPCCall__test_8cpp_source.html b/RPCCall__test_8cpp_source.html index b97c0c3c25..fd6846eb9b 100644 --- a/RPCCall__test_8cpp_source.html +++ b/RPCCall__test_8cpp_source.html @@ -6117,7 +6117,7 @@ $(document).ready(function() { init_codefold(0); });
static constexpr auto apiMinimumSupportedVersion
Definition ApiVersion.h:42
static constexpr auto apiMaximumValidVersion
Definition ApiVersion.h:48
-
Json::Value cmdToJSONRPC(std::vector< std::string > const &args, beast::Journal j, unsigned int apiVersion)
Given a rippled unit test rpc command, return the corresponding JSON.
Definition utility.cpp:67
+
Json::Value cmdToJSONRPC(std::vector< std::string > const &args, beast::Journal j, unsigned int apiVersion)
Given a rippled unit test rpc command, return the corresponding JSON.
Definition utility.cpp:66
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
std::unique_ptr< Config > makeNetworkConfig(uint32_t networkID)
static RPCCallTestData const rpcCallTestArray[]
diff --git a/RPCErr_8cpp_source.html b/RPCErr_8cpp_source.html index 53e50b4f21..909aa1def5 100644 --- a/RPCErr_8cpp_source.html +++ b/RPCErr_8cpp_source.html @@ -93,10 +93,10 @@ $(document).ready(function() { init_codefold(0); });
10// VFALCO NOTE Deprecated function
-
12rpcError(int iError)
+
13{
-
15 RPC::inject_error(iError, jvResult);
+
15 RPC::inject_error(iError, jvResult);
16 return jvResult;
17}
@@ -115,10 +115,11 @@ $(document).ready(function() { init_codefold(0); });
bool isObject() const
bool isMember(char const *key) const
Return true if the object has a member named key.
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
bool isRpcError(Json::Value jvResult)
Definition RPCErr.cpp:21
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
+
error_code_i
Definition ErrorCodes.h:21
@@ -130,7 +130,7 @@ $(document).ready(function() { init_codefold(0); });
csprng_engine & crypto_prng()
The default cryptographically secure PRNG.
Json::Value doRandom(RPC::JsonContext &)
Definition Random.cpp:20
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcINTERNAL
Definition ErrorCodes.h:111
diff --git a/Reservations_8cpp_source.html b/Reservations_8cpp_source.html index a60dd874fa..5ef5fe93d5 100644 --- a/Reservations_8cpp_source.html +++ b/Reservations_8cpp_source.html @@ -136,7 +136,7 @@ $(document).ready(function() { init_codefold(0); });
52 std::optional<PublicKey> optPk = parseBase58<PublicKey>(
53 TokenType::NodePublic, params[jss::public_key].asString());
54 if (!optPk)
- +
56 PublicKey const& nodeId = *optPk;
57
58 auto const previous = context.app.peerReservations().insert_or_assign(
@@ -166,7 +166,7 @@ $(document).ready(function() { init_codefold(0); });
80 std::optional<PublicKey> optPk = parseBase58<PublicKey>(
81 TokenType::NodePublic, params[jss::public_key].asString());
82 if (!optPk)
- +
84 PublicKey const& nodeId = *optPk;
85
86 auto const previous = context.app.peerReservations().erase(nodeId);
@@ -208,14 +208,14 @@ $(document).ready(function() { init_codefold(0); });
A public key.
Definition PublicKey.h:43
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doPeerReservationsList(RPC::JsonContext &)
Json::Value doPeerReservationsDel(RPC::JsonContext &)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value doPeerReservationsAdd(RPC::JsonContext &)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcPUBLIC_MALFORMED
Definition ErrorCodes.h:98
diff --git a/RipplePathFind_8cpp_source.html b/RipplePathFind_8cpp_source.html index 80a03a0015..39f74e3ccf 100644 --- a/RipplePathFind_8cpp_source.html +++ b/RipplePathFind_8cpp_source.html @@ -98,7 +98,7 @@ $(document).ready(function() { init_codefold(0); });
15{
16 if (context.app.config().PATH_SEARCH_MAX == 0)
- +
18
20
@@ -116,8 +116,8 @@ $(document).ready(function() { init_codefold(0); });
33 {
34 if (context.apiVersion == 1)
-
35 return rpcError(rpcNO_NETWORK);
-
36 return rpcError(rpcNOT_SYNCED);
+
35 return rpcError(rpcNO_NETWORK);
+
36 return rpcError(rpcNOT_SYNCED);
37 }
38
@@ -228,7 +228,7 @@ $(document).ready(function() { init_codefold(0); });
144
145 RPC::LegacyPathFind lpf(isUnlimited(context.role), context.app);
146 if (!lpf.isOk())
-
147 return rpcError(rpcTOO_BUSY);
+
147 return rpcError(rpcTOO_BUSY);
148
149 auto result = context.app.getPathRequests().doLegacyPathRequest(
150 context.consumer, lpLedger, context.params);
@@ -260,7 +260,7 @@ $(document).ready(function() { init_codefold(0); });
Charge const feeHeavyBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doRipplePathFind(RPC::JsonContext &)
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition Role.cpp:106
@ rpcTOO_BUSY
Definition ErrorCodes.h:37
@ rpcNO_NETWORK
Definition ErrorCodes.h:47
diff --git a/SHAMapStore__test_8cpp_source.html b/SHAMapStore__test_8cpp_source.html index 86f5b46943..848d4d8215 100644 --- a/SHAMapStore__test_8cpp_source.html +++ b/SHAMapStore__test_8cpp_source.html @@ -807,7 +807,7 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
T make_pair(T... args)
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
XRP_t const XRP
Converts to XRP Issue or STAmount.
Definition amount.cpp:92
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
diff --git a/STParsedJSON_8cpp_source.html b/STParsedJSON_8cpp_source.html index 76c6384beb..2dea679adf 100644 --- a/STParsedJSON_8cpp_source.html +++ b/STParsedJSON_8cpp_source.html @@ -1379,7 +1379,7 @@ $(document).ready(function() { init_codefold(0); });
T max(T... args)
T min(T... args)
unsigned int UInt
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
static Json::Value invalid_data(std::string const &object, std::string const &field)
static Json::Value unknown_field(std::string const &object, std::string const &field)
static std::optional< STObject > parseObject(std::string const &json_name, Json::Value const &json, SField const &inName, int depth, Json::Value &error)
diff --git a/STParsedJSON__test_8cpp_source.html b/STParsedJSON__test_8cpp_source.html index 1e156898fc..86c9ac0e37 100644 --- a/STParsedJSON__test_8cpp_source.html +++ b/STParsedJSON__test_8cpp_source.html @@ -2517,7 +2517,7 @@ $(document).ready(function() { init_codefold(0); });
unsigned int UInt
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
@ current
This was a new validation and was added.
diff --git a/STValidation_8h_source.html b/STValidation_8h_source.html index 5bb0a85e09..70dea5118e 100644 --- a/STValidation_8h_source.html +++ b/STValidation_8h_source.html @@ -394,7 +394,7 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void LogicError(std::string const &how) noexcept
Called when faulty logic causes a broken invariant.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
beast::Journal debugLog()
Returns a debug journal.
Definition Log.cpp:457
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
@ soeREQUIRED
Definition SOTemplate.h:16
diff --git a/ServerDefinitions_8cpp_source.html b/ServerDefinitions_8cpp_source.html index e978524f13..0286d7a147 100644 --- a/ServerDefinitions_8cpp_source.html +++ b/ServerDefinitions_8cpp_source.html @@ -419,7 +419,7 @@ $(document).ready(function() { init_codefold(0); });
JSON (JavaScript Object Notation).
Definition json_errors.h:6
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
static std::string to_string(TableType type)
to_string Returns the name of a table according to its TableType.
Definition Node.cpp:28
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
sha512_half_hasher::result_type sha512Half(Args const &... args)
Returns the SHA512-Half of a series of objects.
Definition digest.h:205
diff --git a/ServerHandler_8cpp_source.html b/ServerHandler_8cpp_source.html index 8e2ecf3746..29d1f87883 100644 --- a/ServerHandler_8cpp_source.html +++ b/ServerHandler_8cpp_source.html @@ -539,7 +539,7 @@ $(document).ready(function() { init_codefold(0); });
421 {boost::beast::websocket::policy_error, "threshold exceeded"});
422 // FIX: This rpcError is not delivered since the session
423 // was just closed.
-
424 return rpcError(rpcSLOW_DOWN);
+
424 return rpcError(rpcSLOW_DOWN);
425 }
426
427 // Requests without "command" are invalid.
@@ -589,7 +589,7 @@ $(document).ready(function() { init_codefold(0); });
471 if (Role::FORBID == role)
472 {
473 loadType = Resource::feeMalformedRPC;
-
474 jr[jss::result] = rpcError(rpcFORBIDDEN);
+
474 jr[jss::result] = rpcError(rpcFORBIDDEN);
475 }
476 else
477 {
@@ -1532,7 +1532,7 @@ $(document).ready(function() { init_codefold(0); });
Role roleRequired(unsigned int version, bool betaEnabled, std::string const &method)
Status doCommand(RPC::JsonContext &context, Json::Value &result)
Execute an RPC command and store the results in a Json::Value.
unsigned int getAPIVersionNumber(Json::Value const &jv, bool betaEnabled)
Retrieve the api version number from the json value.
Definition ApiVersion.h:104
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeReferenceRPC
Charge const feeMalformedRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@@ -1552,7 +1552,6 @@ $(document).ready(function() { init_codefold(0); });
Resource::Consumer requestInboundEndpoint(Resource::Manager &manager, beast::IP::Endpoint const &remoteAddress, Role const &role, std::string_view user, std::string_view forwardedFor)
Definition Role.cpp:123
static Json::Value make_json_error(Json::Int code, Json::Value &&message)
std::string_view forwardedFor(http_request_type const &request)
Definition Role.cpp:243
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
ServerHandler::Setup setup_ServerHandler(Config const &config, std::ostream &&log)
static Port to_Port(ParsedPort const &parsed, std::ostream &log)
@@ -1561,6 +1560,7 @@ $(document).ready(function() { init_codefold(0); });
@ jtCLIENT_RPC
Definition Job.h:30
@ jtCLIENT_WEBSOCKET
Definition Job.h:31
Json::Int constexpr forbidden
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Json::Int constexpr method_not_found
std::unique_ptr< Server > make_Server(Handler &handler, boost::asio::io_context &io_context, beast::Journal journal)
Create the HTTP server using the specified handler.
Definition Server.h:16
diff --git a/SetAuth__test_8cpp_source.html b/SetAuth__test_8cpp_source.html index 2ab62a686e..7475f8ae37 100644 --- a/SetAuth__test_8cpp_source.html +++ b/SetAuth__test_8cpp_source.html @@ -177,7 +177,7 @@ $(document).ready(function() { init_codefold(0); });
Json::Value fset(Account const &account, std::uint32_t on, std::uint32_t off=0)
Add and/or remove flag.
Definition flags.cpp:10
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
constexpr std::uint32_t tfSetfAuth
Definition TxFlags.h:96
constexpr std::uint32_t asfRequireAuth
Definition TxFlags.h:59
@ tecPATH_DRY
Definition TER.h:276
diff --git a/SignFor_8cpp_source.html b/SignFor_8cpp_source.html index 47da21edb2..3bf5a6d041 100644 --- a/SignFor_8cpp_source.html +++ b/SignFor_8cpp_source.html @@ -133,7 +133,7 @@ $(document).ready(function() { init_codefold(0); });
std::chrono::seconds getValidatedLedgerAge()
static FailHard doFailHard(bool noMeansDont)
Definition NetworkOPs.h:76
Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeHeavyBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doSignFor(RPC::JsonContext &)
Definition SignFor.cpp:16
diff --git a/SignHandler_8cpp_source.html b/SignHandler_8cpp_source.html index 1c0e362d94..ee7f2ea0d2 100644 --- a/SignHandler_8cpp_source.html +++ b/SignHandler_8cpp_source.html @@ -136,7 +136,7 @@ $(document).ready(function() { init_codefold(0); });
static FailHard doFailHard(bool noMeansDont)
Definition NetworkOPs.h:76
Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeHeavyBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doSign(RPC::JsonContext &)
diff --git a/Simulate_8cpp_source.html b/Simulate_8cpp_source.html index b6a38b823e..83e9df4f1a 100644 --- a/Simulate_8cpp_source.html +++ b/Simulate_8cpp_source.html @@ -130,7 +130,7 @@ $(document).ready(function() { init_codefold(0); });
46 << "Failed to find source account "
47 << "in current ledger: " << toBase58(*srcAddressID);
48
- +
50 }
51
52 return hasTicketSeq ? 0 : context.app.getTxQ().nextQueuableSeq(sle).value();
@@ -175,7 +175,7 @@ $(document).ready(function() { init_codefold(0); });
89 else if (signer[jss::Signer][jss::TxnSignature] != "")
90 {
91 // Transaction must not be signed
-
92 return rpcError(rpcTX_SIGNED);
+
92 return rpcError(rpcTX_SIGNED);
93 }
94 }
95 }
@@ -188,7 +188,7 @@ $(document).ready(function() { init_codefold(0); });
102 else if (sigObject[jss::TxnSignature] != "")
103 {
104 // Transaction must not be signed
-
105 return rpcError(rpcTX_SIGNED);
+
105 return rpcError(rpcTX_SIGNED);
106 }
107 return std::nullopt;
108}
@@ -496,16 +496,16 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
Json::Value getCurrentNetworkFee(Role const role, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app, Json::Value const &tx, int mult, int div)
-
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:282
+
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:260
void insertMPTokenIssuanceID(Json::Value &response, std::shared_ptr< STTx const > const &transaction, TxMeta const &transactionMeta)
void insertDeliveredAmount(Json::Value &meta, ReadView const &, std::shared_ptr< STTx const > const &serializedTx, TxMeta const &)
Add a delivered_amount field to the meta input/output parameter.
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
void insertNFTSyntheticInJson(Json::Value &, std::shared_ptr< STTx const > const &, TxMeta const &)
Adds common synthetic fields to transaction-related JSON responses.
-
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:294
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:272
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeMediumBurdenRPC
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@@ -517,10 +517,10 @@ $(document).ready(function() { init_codefold(0); });
bool transResultInfo(TER code, std::string &token, std::string &text)
Definition TER.cpp:230
static Json::Value simulateTxn(RPC::JsonContext &context, std::shared_ptr< Transaction > transaction)
Definition Simulate.cpp:214
static Expected< std::uint32_t, Json::Value > getAutofillSequence(Json::Value const &tx_json, RPC::JsonContext &context)
Definition Simulate.cpp:22
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
static std::optional< Json::Value > autofillSignature(Json::Value &sigObject)
Definition Simulate.cpp:56
std::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
static Json::Value getTxJsonFromParams(Json::Value const &params)
Definition Simulate.cpp:152
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ tapDRY_RUN
Definition ApplyView.h:30
Json::Value doSimulate(RPC::JsonContext &)
Definition Simulate.cpp:301
std::enable_if_t< std::is_same< T, char >::value||std::is_same< T, unsigned char >::value, Slice > makeSlice(std::array< T, N > const &a)
Definition Slice.h:225
diff --git a/Status_8cpp_source.html b/Status_8cpp_source.html index d232d9f152..f80b3ecccb 100644 --- a/Status_8cpp_source.html +++ b/Status_8cpp_source.html @@ -176,16 +176,16 @@ $(document).ready(function() { init_codefold(0); });
Represents a JSON value.
Definition json_value.h:131
T empty(T... args)
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
bool transResultInfo(TER code, std::string &token, std::string &text)
Definition TER.cpp:230
T str(T... args)
-
Strings const & messages() const
Definition Status.h:111
- +
Strings const & messages() const
Definition Status.h:110
+
error_code_i toErrorCode() const
Returns the Status as an error_code_i.
Definition Status.h:87
- +
std::string message() const
Return the first message, if any.
Definition Status.cpp:61
std::string codeString() const
Definition Status.cpp:9
TER toTER() const
Returns the Status as a TER.
Definition Status.h:77
@@ -193,7 +193,7 @@ $(document).ready(function() { init_codefold(0); });
void fillJson(Json::Value &)
Fill a Json::Value with an RPC 2.0 response.
Definition Status.cpp:42
-
Strings messages_
Definition Status.h:138
+
Strings messages_
Definition Status.h:137
std::string toString() const
Definition Status.cpp:75
T to_string(T... args)
diff --git a/Status_8h_source.html b/Status_8h_source.html index d68b7a2eda..00d25ea7af 100644 --- a/Status_8h_source.html +++ b/Status_8h_source.html @@ -177,57 +177,56 @@ $(document).ready(function() { init_codefold(0); });
93 }
94
-
97 template <class Object>
-
98 void
-
-
99 inject(Object& object) const
-
100 {
-
101 if (auto ec = toErrorCode())
-
102 {
-
103 if (messages_.empty())
-
104 inject_error(ec, object);
-
105 else
-
106 inject_error(ec, message(), object);
-
107 }
-
108 }
+
97 void
+
+
98 inject(Json::Value& object) const
+
99 {
+
100 if (auto ec = toErrorCode())
+
101 {
+
102 if (messages_.empty())
+
103 inject_error(ec, object);
+
104 else
+
105 inject_error(ec, message(), object);
+
106 }
+
107 }
-
109
-
110 Strings const&
-
-
111 messages() const
-
112 {
-
113 return messages_;
-
114 }
+
108
+
109 Strings const&
+
+
110 messages() const
+
111 {
+
112 return messages_;
+
113 }
-
115
- -
118 message() const;
-
119
-
120 Type
-
-
121 type() const
-
122 {
-
123 return type_;
-
124 }
+
114
+ +
117 message() const;
+
118
+
119 Type
+
+
120 type() const
+
121 {
+
122 return type_;
+
123 }
-
125
- -
127 toString() const;
-
128
-
132 void
- -
134
-
135private:
- - - -
139};
+
124
+ +
126 toString() const;
+
127
+
131 void
+ +
133
+
134private:
+ + + +
138};
-
140
-
141} // namespace RPC
-
142} // namespace xrpl
-
143
-
144#endif
+
139
+
140} // namespace RPC
+
141} // namespace xrpl
+
142
+
143#endif
Represents a JSON value.
Definition json_value.h:131
@@ -236,24 +235,24 @@ $(document).ready(function() { init_codefold(0); });
STL namespace.
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
constexpr TERUnderlyingType TERtoInt(TELcodes v)
Definition TER.h:356
error_code_i
Definition ErrorCodes.h:21
Status represents the results of an operation that might fail.
Definition Status.h:21
-
Strings const & messages() const
Definition Status.h:111
+
Strings const & messages() const
Definition Status.h:110
Status(error_code_i e, std::string const &s)
Definition Status.h:50
- +
error_code_i toErrorCode() const
Returns the Status as an error_code_i.
Definition Status.h:87
- +
Status(TER ter, Strings d={})
Definition Status.h:40
std::string message() const
Return the first message, if any.
Definition Status.cpp:61
std::string codeString() const
Definition Status.cpp:9
static constexpr Code OK
Definition Status.h:27
std::vector< std::string > Strings
Definition Status.h:25
+
void inject(Json::Value &object) const
Apply the Status to a JsonObject.
Definition Status.h:98
Status(T code, Strings d={})
Definition Status.h:35
TER toTER() const
Returns the Status as a TER.
Definition Status.h:77
-
void inject(Object &object) const
Apply the Status to a JsonObject.
Definition Status.h:99
bool operator!() const
Returns true if the Status is OK.
Definition Status.h:69
@@ -261,9 +260,9 @@ $(document).ready(function() { init_codefold(0); });
void fillJson(Json::Value &)
Fill a Json::Value with an RPC 2.0 response.
Definition Status.cpp:42
-
Type type() const
Definition Status.h:121
+
Type type() const
Definition Status.h:120
-
Strings messages_
Definition Status.h:138
+
Strings messages_
Definition Status.h:137
Status(error_code_i e, Strings d={})
Definition Status.h:45
std::string toString() const
Definition Status.cpp:75
diff --git a/Status__test_8cpp_source.html b/Status__test_8cpp_source.html index 87a8e111d0..d10c6cb464 100644 --- a/Status__test_8cpp_source.html +++ b/Status__test_8cpp_source.html @@ -339,7 +339,7 @@ $(document).ready(function() { init_codefold(0); });
@ rpcSUCCESS
Definition ErrorCodes.h:25
T size(T... args)
Status represents the results of an operation that might fail.
Definition Status.h:21
-
Strings const & messages() const
Definition Status.h:111
+
Strings const & messages() const
Definition Status.h:110
std::string codeString() const
Definition Status.cpp:9
static constexpr Code OK
Definition Status.h:27
TER toTER() const
Returns the Status as a TER.
Definition Status.h:77
diff --git a/Submit_8cpp_source.html b/Submit_8cpp_source.html index 6e95a8aab5..590a0f331e 100644 --- a/Submit_8cpp_source.html +++ b/Submit_8cpp_source.html @@ -144,7 +144,7 @@ $(document).ready(function() { init_codefold(0); });
58 auto ret = strUnHex(context.params[jss::tx_blob].asString());
59
60 if (!ret || !ret->size())
- +
62
63 SerialIter sitTrans(makeSlice(*ret));
64
@@ -280,7 +280,7 @@ $(document).ready(function() { init_codefold(0); });
T is_same_v
Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
Returns a Json::objectValue.
ProcessTransactionFn getProcessTxnFn(NetworkOPs &netOPs)
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Charge const feeMediumBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ Valid
Signature and local checks are good / passed.
@@ -289,10 +289,10 @@ $(document).ready(function() { init_codefold(0); });
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
bool transResultInfo(TER code, std::string &token, std::string &text)
Definition TER.cpp:230
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
static NetworkOPs::FailHard getFailHard(RPC::JsonContext const &context)
Definition Submit.cpp:14
std::optional< Blob > strUnHex(std::size_t strSize, Iterator begin, Iterator end)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
std::pair< Validity, std::string > checkValidity(HashRouter &router, STTx const &tx, Rules const &rules, Config const &config)
Checks transaction signature and local checks.
Definition apply.cpp:25
@ temUNCERTAIN
Definition TER.h:104
Json::Value doSubmit(RPC::JsonContext &)
Definition Submit.cpp:26
diff --git a/Subscribe_8cpp_source.html b/Subscribe_8cpp_source.html index 1c7efb958c..4d32f24409 100644 --- a/Subscribe_8cpp_source.html +++ b/Subscribe_8cpp_source.html @@ -109,13 +109,13 @@ $(document).ready(function() { init_codefold(0); });
25 {
26 // Must be a JSON-RPC call.
27 JLOG(context.j.info()) << "doSubscribe: RPC subscribe requires a url";
- +
29 }
30
31 if (context.params.isMember(jss::url))
32 {
33 if (context.role != Role::ADMIN)
- +
35
36 std::string strUrl = context.params[jss::url].asString();
37 std::string strUsername = context.params.isMember(jss::url_username)
@@ -183,13 +183,13 @@ $(document).ready(function() { init_codefold(0); });
99 if (!context.params[jss::streams].isArray())
100 {
101 JLOG(context.j.info()) << "doSubscribe: streams requires an array.";
- +
103 }
104
105 for (auto const& it : context.params[jss::streams])
106 {
107 if (!it.isString())
- +
109
110 std::string streamName = it.asString();
111 if (streamName == "server")
@@ -226,7 +226,7 @@ $(document).ready(function() { init_codefold(0); });
142 else if (streamName == "peer_status")
143 {
144 if (context.role != Role::ADMIN)
- +
146 context.netOps.subPeerStatus(ispSub);
147 }
148 else if (streamName == "consensus")
@@ -235,7 +235,7 @@ $(document).ready(function() { init_codefold(0); });
151 }
152 else
153 {
- +
155 }
156 }
157 }
@@ -246,22 +246,22 @@ $(document).ready(function() { init_codefold(0); });
162 if (context.params.isMember(accountsProposed))
163 {
164 if (!context.params[accountsProposed].isArray())
- +
166
167 auto ids = RPC::parseAccountIds(context.params[accountsProposed]);
168 if (ids.empty())
- +
170 context.netOps.subAccount(ispSub, ids, true);
171 }
172
173 if (context.params.isMember(jss::accounts))
174 {
175 if (!context.params[jss::accounts].isArray())
- +
177
178 auto ids = RPC::parseAccountIds(context.params[jss::accounts]);
179 if (ids.empty())
- +
181 context.netOps.subAccount(ispSub, ids, false);
182 JLOG(context.j.debug()) << "doSubscribe: accounts: " << ids.size();
183 }
@@ -269,21 +269,21 @@ $(document).ready(function() { init_codefold(0); });
185 if (context.params.isMember(jss::account_history_tx_stream))
186 {
187 if (!context.app.config().useTxTables())
-
188 return rpcError(rpcNOT_ENABLED);
+
188 return rpcError(rpcNOT_ENABLED);
189
191 auto const& req = context.params[jss::account_history_tx_stream];
192 if (!req.isMember(jss::account) || !req[jss::account].isString())
- +
194
195 auto const id = parseBase58<AccountID>(req[jss::account].asString());
196 if (!id)
- +
198
199 if (auto result = context.netOps.subAccountHistory(ispSub, *id);
200 result != rpcSUCCESS)
201 {
-
202 return rpcError(result);
+
202 return rpcError(result);
203 }
204
205 jvResult[jss::warning] =
@@ -296,7 +296,7 @@ $(document).ready(function() { init_codefold(0); });
212 if (context.params.isMember(jss::books))
213 {
214 if (!context.params[jss::books].isArray())
- +
216
217 for (auto& j : context.params[jss::books])
218 {
@@ -304,7 +304,7 @@ $(document).ready(function() { init_codefold(0); });
220 !j.isMember(jss::taker_gets) ||
221 !j[jss::taker_pays].isObjectOrNull() ||
222 !j[jss::taker_gets].isObjectOrNull())
- +
224
225 Book book;
226 Json::Value taker_pays = j[jss::taker_pays];
@@ -316,7 +316,7 @@ $(document).ready(function() { init_codefold(0); });
232 book.in.currency, taker_pays[jss::currency].asString()))
233 {
234 JLOG(context.j.info()) << "Bad taker_pays currency.";
- +
236 }
237
238 // Parse optional issuer.
@@ -329,7 +329,7 @@ $(document).ready(function() { init_codefold(0); });
245 noAccount() == book.in.account)
246 {
247 JLOG(context.j.info()) << "Bad taker_pays issuer.";
- +
249 }
250
251 // Parse mandatory currency.
@@ -338,7 +338,7 @@ $(document).ready(function() { init_codefold(0); });
254 book.out.currency, taker_gets[jss::currency].asString()))
255 {
256 JLOG(context.j.info()) << "Bad taker_gets currency.";
- +
258 }
259
260 // Parse optional issuer.
@@ -351,14 +351,14 @@ $(document).ready(function() { init_codefold(0); });
267 noAccount() == book.out.account)
268 {
269 JLOG(context.j.info()) << "Bad taker_gets issuer.";
- +
271 }
272
273 if (book.in.currency == book.out.currency &&
274 book.in.account == book.out.account)
275 {
276 JLOG(context.j.info()) << "taker_gets same as taker_pays.";
-
277 return rpcError(rpcBAD_MARKET);
+
277 return rpcError(rpcBAD_MARKET);
278 }
279
@@ -367,7 +367,7 @@ $(document).ready(function() { init_codefold(0); });
283 {
284 takerID = parseBase58<AccountID>(j[jss::taker].asString());
285 if (!takerID)
-
286 return rpcError(rpcBAD_ISSUER);
+
286 return rpcError(rpcBAD_ISSUER);
287 }
288
289 if (j.isMember(jss::domain))
@@ -376,7 +376,7 @@ $(document).ready(function() { init_codefold(0); });
292 if (!j[jss::domain].isString() ||
293 !domain.parseHex(j[jss::domain].asString()))
294 {
- +
296 }
297 else
298 {
@@ -387,7 +387,7 @@ $(document).ready(function() { init_codefold(0); });
303 if (!isConsistent(book))
304 {
305 JLOG(context.j.warn()) << "Bad market: " << book;
-
306 return rpcError(rpcBAD_MARKET);
+
306 return rpcError(rpcBAD_MARKET);
307 }
308
309 context.netOps.subBook(ispSub, book);
@@ -502,16 +502,16 @@ $(document).ready(function() { init_codefold(0); });
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
static LimitRange constexpr bookOffers
Limits for the book_offers command.
hash_set< AccountID > parseAccountIds(Json::Value const &jvArray)
Parses an array of account IDs from a JSON value.
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
Charge const feeMediumBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
bool isConsistent(Book const &book)
Definition Book.cpp:10
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
Json::Value doSubscribe(RPC::JsonContext &)
Definition Subscribe.cpp:19
std::shared_ptr< RPCSub > make_RPCSub(InfoSub::Source &source, boost::asio::io_context &io_context, JobQueue &jobQueue, std::string const &strUrl, std::string const &strUsername, std::string const &strPassword, Logs &logs)
Definition RPCSub.cpp:189
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Book reversed(Book const &book)
Definition Book.cpp:30
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool to_issuer(AccountID &, std::string const &)
Convert hex or base58 string to AccountID.
AccountID const & noAccount()
A placeholder for empty accounts.
bool to_currency(Currency &, std::string const &)
Tries to convert a string to a Currency, returns true on success.
Definition UintTypes.cpp:65
diff --git a/TransactionEntry__test_8cpp_source.html b/TransactionEntry__test_8cpp_source.html index 3065d01e36..10a5bd896a 100644 --- a/TransactionEntry__test_8cpp_source.html +++ b/TransactionEntry__test_8cpp_source.html @@ -485,7 +485,7 @@ $(document).ready(function() { init_codefold(0); });
T empty(T... args)
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
void forAllApiVersions(Fn const &fn, Args &&... args)
Definition ApiVersion.h:158
diff --git a/TransactionSign_8cpp_source.html b/TransactionSign_8cpp_source.html index 91a7fc7733..c617d312f6 100644 --- a/TransactionSign_8cpp_source.html +++ b/TransactionSign_8cpp_source.html @@ -372,7 +372,7 @@ $(document).ready(function() { init_codefold(0); });
258 {
259 LegacyPathFind lpf(isUnlimited(role), app);
260 if (!lpf.isOk())
-
261 return rpcError(rpcTOO_BUSY);
+
261 return rpcError(rpcTOO_BUSY);
262
263 STPathSet result;
264
@@ -470,16 +470,16 @@ $(document).ready(function() { init_codefold(0); });
354 (validatedLedgerAge > Tuning::maxValidatedLedgerAge))
355 {
356 if (apiVersion == 1)
- +
358 else
- +
360 return ret;
361 }
362
363 // Check for load.
364 if (feeTrack.isLoadedCluster() && !isUnlimited(role))
365 {
- +
367 return ret;
368 }
369
@@ -604,7 +604,7 @@ $(document).ready(function() { init_codefold(0); });
480 JLOG(j.debug()) << "transactionSign: Failed to find source account "
481 << "in current ledger: " << toBase58(srcAddressID);
482
- +
484 }
485
486 if (signingArgs.editFields())
@@ -619,7 +619,7 @@ $(document).ready(function() { init_codefold(0); });
495 << "transactionSign: Failed to find source account "
496 << "in current ledger: " << toBase58(srcAddressID);
497
- +
499 }
500 tx_json[jss::Sequence] =
501 hasTicketSeq ? 0 : app.getTxQ().nextQueuableSeq(sle).value();
@@ -664,7 +664,7 @@ $(document).ready(function() { init_codefold(0); });
540 if (signingArgs.isMultiSigning())
541 {
542 if (tx_json.isMember(jss::TxnSignature))
- +
544
545 // If multisigning then we need to return the public key.
546 signingArgs.setPublicKey(pk);
@@ -672,14 +672,14 @@ $(document).ready(function() { init_codefold(0); });
548 else if (signingArgs.isSingleSigning())
549 {
550 if (tx_json.isMember(jss::Signers))
- +
552 }
553
554 if (verify)
555 {
556 if (!sle)
557 // XXX Ignore transactions for accounts not created.
- +
559
560 JLOG(j.trace()) << "verify: " << toBase58(calcAccountID(pk)) << " : "
561 << toBase58(srcAddressID);
@@ -709,20 +709,20 @@ $(document).ready(function() { init_codefold(0); });
585 auto delegatedSle = app.openLedger().current()->read(
586 keylet::account(delegatedAddressID));
587 if (!delegatedSle)
- +
589
590 auto const err =
591 acctMatchesPubKey(delegatedSle, delegatedAddressID, pk);
592
593 if (err != rpcSUCCESS)
-
594 return rpcError(err);
+
594 return rpcError(err);
595 }
596 else
597 {
598 auto const err = acctMatchesPubKey(sle, srcAddressID, pk);
599
600 if (err != rpcSUCCESS)
-
601 return rpcError(err);
+
601 return rpcError(err);
602 }
603 }
604 }
@@ -1357,7 +1357,7 @@ $(document).ready(function() { init_codefold(0); });
1216 account_state, *signerAccountID, signForParams.getPublicKey());
1217
1218 if (err != rpcSUCCESS)
-
1219 return rpcError(err);
+
1219 return rpcError(err);
1220 }
1221
1222 // Inject the newly generated signature into tx_json.Signers.
@@ -1448,7 +1448,7 @@ $(document).ready(function() { init_codefold(0); });
1306 << "transactionSubmitMultiSigned: Failed to find source account "
1307 << "in current ledger: " << toBase58(srcAddressID);
1308
- +
1310 }
1311
1312 {
@@ -1519,7 +1519,7 @@ $(document).ready(function() { init_codefold(0); });
1377
1378 // There may not be a TxnSignature field.
1379 if (stTx->isFieldPresent(sfTxnSignature))
- +
1381
1382 // The Fee field must be in XRP and greater than zero.
1383 auto const fee = stTx->getFieldAmount(sfFee);
@@ -1719,26 +1719,26 @@ $(document).ready(function() { init_codefold(0); });
static std::pair< Json::Value, Transaction::pointer > transactionConstructImpl(std::shared_ptr< STTx const > const &stTx, Rules const &rules, Application &app)
static error_code_i acctMatchesPubKey(std::shared_ptr< SLE const > accountState, AccountID const &accountID, PublicKey const &publicKey)
static Json::Value sortAndValidateSigners(STArray &signers, AccountID const &signingForID)
-
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:306
-
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:318
+
Json::Value invalid_field_error(std::string const &name)
Definition ErrorCodes.h:284
+
std::string expected_field_message(std::string const &name, std::string const &type)
Definition ErrorCodes.h:296
Json::Value transactionSubmit(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
Returns a Json::objectValue.
-
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:258
+
std::string missing_field_message(std::string const &name)
Definition ErrorCodes.h:236
void insertDeliverMax(Json::Value &tx_json, TxType txnType, unsigned int apiVersion)
Copy Amount field to DeliverMax field in transaction output JSON.
Definition DeliverMax.cpp:9
Json::Value transactionSign(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
-
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:264
+
Json::Value missing_field_error(std::string const &name)
Definition ErrorCodes.h:242
static XRPAmount getTxFee(Application const &app, Config const &config, Json::Value tx)
Json::Value getCurrentNetworkFee(Role const role, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app, Json::Value const &tx, int mult, int div)
-
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:282
+
Json::Value object_field_error(std::string const &name)
Definition ErrorCodes.h:260
Json::Value checkFee(Json::Value &request, Role const role, bool doAutoFill, Config const &config, LoadFeeTrack const &feeTrack, TxQ const &txQ, Application const &app)
Fill in the fee on behalf of the client.
Json::Value transactionSignFor(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app)
Returns a Json::objectValue.
static constexpr std::integral_constant< unsigned, Version > apiVersion
Definition ApiVersion.h:39
-
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:252
+
Json::Value make_param_error(std::string const &message)
Returns a new json object that indicates invalid parameters.
Definition ErrorCodes.h:230
Json::Value transactionSubmitMultiSigned(Json::Value jvRequest, unsigned apiVersion, NetworkOPs::FailHard failType, Role role, std::chrono::seconds validatedLedgerAge, Application &app, ProcessTransactionFn const &processTransaction)
Returns a Json::objectValue.
-
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:294
+
std::string invalid_field_message(std::string const &name)
Definition ErrorCodes.h:272
std::optional< std::pair< PublicKey, SecretKey > > keypairForSignature(Json::Value const &params, Json::Value &error, unsigned int apiVersion)
Generates a keypair for signature from RPC parameters.
unsigned int getAPIVersionNumber(Json::Value const &jv, bool betaEnabled)
Retrieve the api version number from the json value.
Definition ApiVersion.h:104
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:166
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
void LogicError(std::string const &how) noexcept
Called when faulty logic causes a broken invariant.
@@ -1753,11 +1753,11 @@ $(document).ready(function() { init_codefold(0); });
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
XRPAmount toDrops(FeeLevel< T > const &level, XRPAmount baseFee)
Definition TxQ.h:844
bool transResultInfo(TER code, std::string &token, std::string &text)
Definition TER.cpp:230
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Role
Indicates the level of administrative permission to grant.
Definition Role.h:25
bool amountFromJsonNoThrow(STAmount &result, Json::Value const &jvSource)
bool passesLocalChecks(STObject const &st, std::string &)
Definition STTx.cpp:771
AccountID calcAccountID(PublicKey const &pk)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
std::pair< Validity, std::string > checkValidity(HashRouter &router, STTx const &tx, Rules const &rules, Config const &config)
Checks transaction signature and local checks.
Definition apply.cpp:25
@ temUNCERTAIN
Definition TER.h:104
XRPAmount scaleFeeLoad(XRPAmount fee, LoadFeeTrack const &feeTrack, Fees const &fees, bool bUnlimited)
diff --git a/Transaction__test_8cpp_source.html b/Transaction__test_8cpp_source.html index d542975b90..7159267bfe 100644 --- a/Transaction__test_8cpp_source.html +++ b/Transaction__test_8cpp_source.html @@ -1076,7 +1076,7 @@ $(document).ready(function() { init_codefold(0); });
T make_tuple(T... args)
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
std::optional< std::string > encodeCTID(uint32_t ledgerSeq, uint32_t txnIndex, uint32_t networkID) noexcept
Encodes ledger sequence, transaction index, and network ID into a CTID string.
Definition CTID.h:34
-
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
+
ErrorInfo const & get_error_info(error_code_i code)
Returns an ErrorInfo that reflects the error code.
std::optional< std::tuple< uint32_t, uint16_t, uint16_t > > decodeCTID(T const ctid) noexcept
Decodes a CTID string or integer into its component parts.
Definition CTID.h:64
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@ INVALID
Definition Transaction.h:29
diff --git a/TrustedPublisherServer_8h_source.html b/TrustedPublisherServer_8h_source.html index 14e1dedcd5..346ed3d100 100644 --- a/TrustedPublisherServer_8h_source.html +++ b/TrustedPublisherServer_8h_source.html @@ -906,7 +906,7 @@ $(document).ready(function() { init_codefold(0); });
STL namespace.
void write(nudb::detail::ostream &os, std::size_t t)
Definition varint.h:115
auto const data
General field definitions, or fields used in multiple transaction namespaces.
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
char const * getEnvLocalhostAddr()
Definition envconfig.h:17
std::shared_ptr< TrustedPublisherServer > make_TrustedPublisherServer(boost::asio::io_context &ioc, std::vector< TrustedPublisherServer::Validator > const &validators, NetClock::time_point validUntil, std::vector< std::pair< NetClock::time_point, NetClock::time_point > > const &futures, bool useSSL=false, int version=1, bool immediateStart=true, int sequence=1)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/TxHistory_8cpp_source.html b/TxHistory_8cpp_source.html index a952216adb..aa56b50cbd 100644 --- a/TxHistory_8cpp_source.html +++ b/TxHistory_8cpp_source.html @@ -104,17 +104,17 @@ $(document).ready(function() { init_codefold(0); });
21{
22 if (!context.app.config().useTxTables())
- +
24
26
27 if (!context.params.isMember(jss::start))
- +
29
30 unsigned int startIndex = context.params[jss::start].asUInt();
31
32 if ((startIndex > 10000) && (!isUnlimited(context.role)))
- +
34
35 auto trans = context.app.getRelationalDatabase().getTxHistory(startIndex);
36
@@ -147,7 +147,7 @@ $(document).ready(function() { init_codefold(0); });
Charge const feeMediumBurdenRPC
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value doTxHistory(RPC::JsonContext &)
Definition TxHistory.cpp:20
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition Role.cpp:106
@ rpcNO_PERMISSION
Definition ErrorCodes.h:34
@ rpcNOT_ENABLED
Definition ErrorCodes.h:40
diff --git a/TxQ__test_8cpp_source.html b/TxQ__test_8cpp_source.html index f768176e97..a4b6d207b8 100644 --- a/TxQ__test_8cpp_source.html +++ b/TxQ__test_8cpp_source.html @@ -5311,7 +5311,7 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
+
bool contains_error(Json::Value const &json)
Returns true if the json contains an rpc error specification.
std::size_t numUpVotedAmendments()
Amendments that this server will vote for by default.
Definition Feature.cpp:355
Json::Value create(Account const &account, std::uint32_t count)
Create one of more tickets.
Definition ticket.cpp:12
auto const data
General field definitions, or fields used in multiple transaction namespaces.
diff --git a/Tx_8cpp_source.html b/Tx_8cpp_source.html index 824c90a0aa..e6cadaf54d 100644 --- a/Tx_8cpp_source.html +++ b/Tx_8cpp_source.html @@ -360,7 +360,7 @@ $(document).ready(function() { init_codefold(0); });
267{
268 if (!context.app.config().useTxTables())
-
269 return rpcError(rpcNOT_ENABLED);
+
269 return rpcError(rpcNOT_ENABLED);
270
271 // Deserialize and validate JSON arguments
272
@@ -369,20 +369,20 @@ $(document).ready(function() { init_codefold(0); });
275 if (context.params.isMember(jss::transaction) &&
276 context.params.isMember(jss::ctid))
277 // specifying both is ambiguous
- +
279
280 if (context.params.isMember(jss::transaction))
281 {
282 uint256 hash;
283 if (!hash.parseHex(context.params[jss::transaction].asString()))
-
284 return rpcError(rpcNOT_IMPL);
+
284 return rpcError(rpcNOT_IMPL);
285 args.hash = hash;
286 }
287 else if (context.params.isMember(jss::ctid))
288 {
289 auto ctid = RPC::decodeCTID(context.params[jss::ctid].asString());
290 if (!ctid)
- +
292
293 auto const [lgr_seq, txn_idx, net_id] = *ctid;
294 if (net_id != context.app.config().NETWORK_ID)
@@ -396,7 +396,7 @@ $(document).ready(function() { init_codefold(0); });
302 args.ctid = {lgr_seq, txn_idx};
303 }
304 else
- +
306
307 args.binary = context.params.isMember(jss::binary) &&
308 context.params[jss::binary].asBool();
@@ -413,7 +413,7 @@ $(document).ready(function() { init_codefold(0); });
319 catch (...)
320 {
321 // One of the calls to `asUInt ()` failed.
- +
323 }
324 }
325
@@ -455,7 +455,7 @@ $(document).ready(function() { init_codefold(0); });
void insertMPTokenIssuanceID(Json::Value &response, std::shared_ptr< STTx const > const &transaction, TxMeta const &transactionMeta)
void insertNFTSyntheticInJson(Json::Value &, std::shared_ptr< STTx const > const &, TxMeta const &)
Adds common synthetic fields to transaction-related JSON responses.
std::optional< std::tuple< uint32_t, uint16_t, uint16_t > > decodeCTID(T const ctid) noexcept
Decodes a CTID string or integer into its component parts.
Definition CTID.h:64
-
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
+
Json::Value make_error(error_code_i code)
Returns a new json object that reflects the error code.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Json::Value populateJsonResponse(std::pair< AccountTxResult, RPC::Status > const &res, AccountTxArgs const &args, RPC::JsonContext const &context)
ClosedInterval< T > range(T low, T high)
Create a closed range interval.
Definition RangeSet.h:35
@@ -464,9 +464,9 @@ $(document).ready(function() { init_codefold(0); });
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
static bool isValidated(LedgerMaster &ledgerMaster, std::uint32_t seq, uint256 const &hash)
Definition Tx.cpp:24
std::pair< TxResult, RPC::Status > doTxHelp(RPC::Context &context, TxArgs args)
Definition Tx.cpp:55
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
boost::icl::closed_interval< T > ClosedInterval
A closed interval over the domain T.
Definition RangeSet.h:26
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
diff --git a/Unsubscribe_8cpp_source.html b/Unsubscribe_8cpp_source.html index 6780356dd1..cff4a1569e 100644 --- a/Unsubscribe_8cpp_source.html +++ b/Unsubscribe_8cpp_source.html @@ -104,13 +104,13 @@ $(document).ready(function() { init_codefold(0); });
20 if (!context.infoSub && !context.params.isMember(jss::url))
21 {
22 // Must be a JSON-RPC call.
- +
24 }
25
26 if (context.params.isMember(jss::url))
27 {
28 if (context.role != Role::ADMIN)
- +
30
31 std::string strUrl = context.params[jss::url].asString();
32 ispSub = context.netOps.findRpcSub(strUrl);
@@ -126,12 +126,12 @@ $(document).ready(function() { init_codefold(0); });
42 if (context.params.isMember(jss::streams))
43 {
44 if (!context.params[jss::streams].isArray())
- +
46
47 for (auto& it : context.params[jss::streams])
48 {
49 if (!it.isString())
- +
51
52 std::string streamName = it.asString();
53 if (streamName == "server")
@@ -170,7 +170,7 @@ $(document).ready(function() { init_codefold(0); });
86 }
87 else
88 {
- +
90 }
91 }
92 }
@@ -181,22 +181,22 @@ $(document).ready(function() { init_codefold(0); });
97 if (context.params.isMember(accountsProposed))
98 {
99 if (!context.params[accountsProposed].isArray())
- +
101
102 auto ids = RPC::parseAccountIds(context.params[accountsProposed]);
103 if (ids.empty())
- +
105 context.netOps.unsubAccount(ispSub, ids, true);
106 }
107
108 if (context.params.isMember(jss::accounts))
109 {
110 if (!context.params[jss::accounts].isArray())
- +
112
113 auto ids = RPC::parseAccountIds(context.params[jss::accounts]);
114 if (ids.empty())
- +
116 context.netOps.unsubAccount(ispSub, ids, false);
117 }
118
@@ -204,17 +204,17 @@ $(document).ready(function() { init_codefold(0); });
120 {
121 auto const& req = context.params[jss::account_history_tx_stream];
122 if (!req.isMember(jss::account) || !req[jss::account].isString())
- +
124
125 auto const id = parseBase58<AccountID>(req[jss::account].asString());
126 if (!id)
- +
128
129 bool stopHistoryOnly = false;
130 if (req.isMember(jss::stop_history_tx_only))
131 {
132 if (!req[jss::stop_history_tx_only].isBool())
- +
134 stopHistoryOnly = req[jss::stop_history_tx_only].asBool();
135 }
136 context.netOps.unsubAccountHistory(ispSub, *id, stopHistoryOnly);
@@ -227,7 +227,7 @@ $(document).ready(function() { init_codefold(0); });
143 if (context.params.isMember(jss::books))
144 {
145 if (!context.params[jss::books].isArray())
- +
147
148 for (auto& jv : context.params[jss::books])
149 {
@@ -236,7 +236,7 @@ $(document).ready(function() { init_codefold(0); });
152 !jv[jss::taker_pays].isObjectOrNull() ||
153 !jv[jss::taker_gets].isObjectOrNull())
154 {
- +
156 }
157
158 Json::Value taker_pays = jv[jss::taker_pays];
@@ -250,7 +250,7 @@ $(document).ready(function() { init_codefold(0); });
166 book.in.currency, taker_pays[jss::currency].asString()))
167 {
168 JLOG(context.j.info()) << "Bad taker_pays currency.";
- +
170 }
171 // Parse optional issuer.
172 else if (
@@ -263,7 +263,7 @@ $(document).ready(function() { init_codefold(0); });
179 {
180 JLOG(context.j.info()) << "Bad taker_pays issuer.";
181
- +
183 }
184
185 // Parse mandatory currency.
@@ -273,7 +273,7 @@ $(document).ready(function() { init_codefold(0); });
189 {
190 JLOG(context.j.info()) << "Bad taker_gets currency.";
191
- +
193 }
194 // Parse optional issuer.
195 else if (
@@ -286,13 +286,13 @@ $(document).ready(function() { init_codefold(0); });
202 {
203 JLOG(context.j.info()) << "Bad taker_gets issuer.";
204
- +
206 }
207
208 if (book.in == book.out)
209 {
210 JLOG(context.j.info()) << "taker_gets same as taker_pays.";
-
211 return rpcError(rpcBAD_MARKET);
+
211 return rpcError(rpcBAD_MARKET);
212 }
213
214 if (jv.isMember(jss::domain))
@@ -301,7 +301,7 @@ $(document).ready(function() { init_codefold(0); });
217 if (!jv[jss::domain].isString() ||
218 !domain.parseHex(jv[jss::domain].asString()))
219 {
- +
221 }
222 else
223 {
@@ -365,10 +365,10 @@ $(document).ready(function() { init_codefold(0); });
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
bool isConsistent(Book const &book)
Definition Book.cpp:10
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Book reversed(Book const &book)
Definition Book.cpp:30
Json::Value doUnsubscribe(RPC::JsonContext &)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
bool to_issuer(AccountID &, std::string const &)
Convert hex or base58 string to AccountID.
AccountID const & noAccount()
A placeholder for empty accounts.
bool to_currency(Currency &, std::string const &)
Tries to convert a string to a Currency, returns true on success.
Definition UintTypes.cpp:65
diff --git a/ValidationCreate_8cpp_source.html b/ValidationCreate_8cpp_source.html index 823fa58ce3..cc6bd18f1a 100644 --- a/ValidationCreate_8cpp_source.html +++ b/ValidationCreate_8cpp_source.html @@ -116,7 +116,7 @@ $(document).ready(function() { init_codefold(0); });
30 auto seed = validationSeed(context.params);
31
32 if (!seed)
-
33 return rpcError(rpcBAD_SEED);
+
33 return rpcError(rpcBAD_SEED);
34
35 auto const private_key = generateSecretKey(KeyType::secp256k1, *seed);
36
@@ -146,9 +146,9 @@ $(document).ready(function() { init_codefold(0); });
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
SecretKey generateSecretKey(KeyType type, Seed const &seed)
Generate a new secret key deterministically.
std::string seedAs1751(Seed const &seed)
Encode a Seed in RFC1751 format.
Definition Seed.cpp:116
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
@ rpcBAD_SEED
Definition ErrorCodes.h:80
std::optional< Seed > parseGenericSeed(std::string const &str, bool rfc1751=true)
Attempt to parse a string as a seed.
Definition Seed.cpp:78
static std::optional< Seed > validationSeed(Json::Value const &params)
diff --git a/Validation_8h_source.html b/Validation_8h_source.html index 9b87141cf0..1f7f2ca6db 100644 --- a/Validation_8h_source.html +++ b/Validation_8h_source.html @@ -334,7 +334,7 @@ $(document).ready(function() { init_codefold(0); });
std::pair< PeerID, std::uint32_t > PeerKey
The current key of a peer.
Definition Validation.h:26
tagged_integer< std::uint32_t, PeerIDTag > PeerID
Definition Validation.h:18
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/ValidatorInfo_8cpp_source.html b/ValidatorInfo_8cpp_source.html index e44bf4f7ff..892ec24212 100644 --- a/ValidatorInfo_8cpp_source.html +++ b/ValidatorInfo_8cpp_source.html @@ -136,7 +136,7 @@ $(document).ready(function() { init_codefold(0); });
PublicKey getMasterKey(PublicKey const &pk) const
Returns ephemeral signing key's master public key.
Definition Manifest.cpp:303
std::optional< std::string > getManifest(PublicKey const &pk) const
Returns mainfest corresponding to a given public key.
Definition Manifest.cpp:339
std::optional< std::uint32_t > getSequence(PublicKey const &pk) const
Returns master key's current manifest sequence.
Definition Manifest.cpp:315
-
Json::Value not_validator_error()
Definition ErrorCodes.h:342
+
Json::Value not_validator_error()
Definition ErrorCodes.h:320
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
std::string base64_encode(std::uint8_t const *data, std::size_t len)
diff --git a/ValidatorList__test_8cpp_source.html b/ValidatorList__test_8cpp_source.html index f6bdcb794e..69c05cddaf 100644 --- a/ValidatorList__test_8cpp_source.html +++ b/ValidatorList__test_8cpp_source.html @@ -4350,7 +4350,7 @@ $(document).ready(function() { init_codefold(0); });
T max(T... args)
auto const data
General field definitions, or fields used in multiple transaction namespaces.
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
std::unique_ptr< Config > envconfig()
creates and initializes a default configuration for jtx::Env
Definition envconfig.h:35
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/VaultInfo_8cpp_source.html b/VaultInfo_8cpp_source.html index 1baf2839f2..c1fadfc15a 100644 --- a/VaultInfo_8cpp_source.html +++ b/VaultInfo_8cpp_source.html @@ -106,7 +106,7 @@ $(document).ready(function() { init_codefold(0); });
22 {
23 if (!uNodeIndex.parseHex(params[jss::vault_id].asString()))
24 {
- +
26 return std::nullopt;
27 }
28 // else uNodeIndex holds the value we need
@@ -116,7 +116,7 @@ $(document).ready(function() { init_codefold(0); });
32 auto const id = parseBase58<AccountID>(params[jss::owner].asString());
33 if (!id)
34 {
- +
36 return std::nullopt;
37 }
38 else if (
@@ -124,7 +124,7 @@ $(document).ready(function() { init_codefold(0); });
40 params[jss::seq].asDouble() <= 0.0 ||
41 params[jss::seq].asDouble() > double(Json::Value::maxUInt))
42 {
- +
44 return std::nullopt;
45 }
46
@@ -133,7 +133,7 @@ $(document).ready(function() { init_codefold(0); });
49 else
50 {
51 // Invalid combination of fields vault_id/owner/seq
- +
53 return std::nullopt;
54 }
55
@@ -187,7 +187,7 @@ $(document).ready(function() { init_codefold(0); });
constexpr bool parseHex(std::string_view sv)
Parse a hex string into a base_uint.
Definition base_uint.h:484
T is_same_v
-
void inject_error(error_code_i code, JsonValue &json)
Add or update the json update to reflect the error code.
Definition ErrorCodes.h:214
+
void inject_error(error_code_i code, Json::Value &json)
Add or update the json update to reflect the error code.
Status lookupLedger(std::shared_ptr< ReadView const > &ledger, JsonContext const &context, Json::Value &result)
Looks up a ledger from a request and fills a Json::Value with ledger data.
Keylet mptIssuance(std::uint32_t seq, AccountID const &issuer) noexcept
Definition Indexes.cpp:508
Keylet vault(AccountID const &owner, std::uint32_t seq) noexcept
Definition Indexes.cpp:546
diff --git a/Version_8h_source.html b/Version_8h_source.html index 2607a3b1bf..c6a4655378 100644 --- a/Version_8h_source.html +++ b/Version_8h_source.html @@ -108,52 +108,52 @@ $(document).ready(function() { init_codefold(0); });
21 }
22
-
23 template <class Object>
-
24 void
-
-
25 writeResult(Object& obj)
-
26 {
- -
28 }
+
23 void
+
+ +
25 {
+ +
27 }
-
29
-
30 static constexpr char const* name = "version";
-
31
-
32 static constexpr unsigned minApiVer = RPC::apiMinimumSupportedVersion;
-
33
-
34 static constexpr unsigned maxApiVer = RPC::apiMaximumValidVersion;
-
35
-
36 static constexpr Role role = Role::USER;
-
37
-
38 static constexpr Condition condition = NO_CONDITION;
-
39
-
40private:
-
41 unsigned int apiVersion_;
- -
43};
+
28
+
29 static constexpr char const* name = "version";
+
30
+
31 static constexpr unsigned minApiVer = RPC::apiMinimumSupportedVersion;
+
32
+
33 static constexpr unsigned maxApiVer = RPC::apiMaximumValidVersion;
+
34
+
35 static constexpr Role role = Role::USER;
+
36
+
37 static constexpr Condition condition = NO_CONDITION;
+
38
+
39private:
+
40 unsigned int apiVersion_;
+ +
42};
-
44
-
45} // namespace RPC
-
46} // namespace xrpl
-
47
-
48#endif
+
43
+
44} // namespace RPC
+
45} // namespace xrpl
+
46
+
47#endif
+
Represents a JSON value.
Definition json_value.h:131
VersionHandler(JsonContext &c)
Definition Version.h:12
-
static constexpr Condition condition
Definition Version.h:38
-
unsigned int apiVersion_
Definition Version.h:41
-
static constexpr char const * name
Definition Version.h:30
+
static constexpr Condition condition
Definition Version.h:37
+
unsigned int apiVersion_
Definition Version.h:40
+
void writeResult(Json::Value &obj)
Definition Version.h:24
+
static constexpr char const * name
Definition Version.h:29
-
static constexpr Role role
Definition Version.h:36
-
static constexpr unsigned minApiVer
Definition Version.h:32
-
void writeResult(Object &obj)
Definition Version.h:25
-
static constexpr unsigned maxApiVer
Definition Version.h:34
- -
void setVersion(JsonObject &parent, unsigned int apiVersion, bool betaEnabled)
Definition ApiVersion.h:63
+
static constexpr Role role
Definition Version.h:35
+
static constexpr unsigned minApiVer
Definition Version.h:31
+
static constexpr unsigned maxApiVer
Definition Version.h:33
+
@ NO_CONDITION
Definition Handler.h:21
static constexpr auto apiMinimumSupportedVersion
Definition ApiVersion.h:42
static constexpr auto apiMaximumValidVersion
Definition ApiVersion.h:48
static constexpr std::integral_constant< unsigned, Version > apiVersion
Definition ApiVersion.h:39
+
void setVersion(Json::Value &parent, unsigned int apiVersion, bool betaEnabled)
Definition ApiVersion.h:62
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
Role
Indicates the level of administrative permission to grant.
Definition Role.h:25
diff --git a/WalletPropose_8cpp_source.html b/WalletPropose_8cpp_source.html index 0acef2ce84..0e20b3e085 100644 --- a/WalletPropose_8cpp_source.html +++ b/WalletPropose_8cpp_source.html @@ -156,7 +156,7 @@ $(document).ready(function() { init_codefold(0); });
68 keyType = keyTypeFromString(params[jss::key_type].asString());
69
70 if (!keyType)
- +
72 }
73
74 // ripple-lib encodes seed used to generate an Ed25519 wallet in a
@@ -175,7 +175,7 @@ $(document).ready(function() { init_codefold(0); });
87 // If the user *explicitly* requests a key type other than
88 // Ed25519 we return an error.
-
90 return rpcError(rpcBAD_SEED);
+
90 return rpcError(rpcBAD_SEED);
91
92 keyType = KeyType::ed25519;
93 }
@@ -256,7 +256,7 @@ $(document).ready(function() { init_codefold(0); });
T floor(T... args)
@ objectValue
object value (collection of name/value pairs).
Definition json_value.h:27
-
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:330
+
Json::Value expected_field_error(std::string const &name, std::string const &type)
Definition ErrorCodes.h:308
std::optional< Seed > parseRippleLibSeed(Json::Value const &value)
Parses a RippleLib seed from RPC parameters.
std::optional< Seed > getSeedFromRPC(Json::Value const &params, Json::Value &error)
Extracts a Seed from RPC parameters.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
@@ -270,10 +270,10 @@ $(document).ready(function() { init_codefold(0); });
double estimate_entropy(std::string const &input)
std::string seedAs1751(Seed const &seed)
Encode a Seed in RFC1751 format.
Definition Seed.cpp:116
std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)
Generate a key pair deterministically.
-
Json::Value rpcError(int iError)
Definition RPCErr.cpp:12
Json::Value walletPropose(Json::Value const &params)
AccountID calcAccountID(PublicKey const &pk)
+
Json::Value rpcError(error_code_i iError)
Definition RPCErr.cpp:12
Json::Value doWalletPropose(RPC::JsonContext &)
@ rpcBAD_SEED
Definition ErrorCodes.h:80
@ rpcINVALID_PARAMS
Definition ErrorCodes.h:65
diff --git a/annotated.html b/annotated.html index b4eb90662a..8d86baae73 100644 --- a/annotated.html +++ b/annotated.html @@ -282,38 +282,31 @@ $(function() {  Chash< xrpl::Issue >  Chash<::beast::IP::Address >  Chash<::beast::IP::Endpoint >Boost::hash support - NJsonJSON (JavaScript Object Notation) - CArrayRepresents a JSON array being written to a Writer - CCollection - CCompactDecorator for streaming out compact json - CDefaultValueAllocator - CDummyValueAllocatorInitializer - Cerror - CFastWriterOutputs a Value in JSON format without formatting (not human friendly) - CJsonMissingKeyError - CJsonObject_test - CJsonTypeMismatchError - CObjectRepresents a JSON object being written to a Writer - CProxy - CRoot - CReaderUnserialize a JSON document into a Value - CErrorInfo - CToken - CStaticStringLightweight wrapper to tag static string - CStyledStreamWriterWrites a Value in JSON format in a human friendly way, to a stream rather than to a string - CStyledWriterWrites a Value in JSON format in a human friendly way - CValueRepresents a JSON value - CCZString - CValueHolder - CValueAllocatorExperimental do not use: Allocator to customize member name and string value memory management done by Value - CValueConstIteratorConst iterator for object and array value - CValueIteratorIterator for object and array value - CValueIteratorBaseBase class for Value iterators - CWriterWriter implements an O(1)-space, O(1)-granular output JSON writer - CImpl - CCollection - CWriterBaseAbstract class for writers - CWriterObjectAn Object that contains its own Writer + NJsonJSON (JavaScript Object Notation) + CCompactDecorator for streaming out compact json + CDefaultValueAllocator + CDummyValueAllocatorInitializer + Cerror + CFastWriterOutputs a Value in JSON format without formatting (not human friendly) + CJsonMissingKeyError + CJsonTypeMismatchError + CReaderUnserialize a JSON document into a Value + CErrorInfo + CToken + CStaticStringLightweight wrapper to tag static string + CStyledStreamWriterWrites a Value in JSON format in a human friendly way, to a stream rather than to a string + CStyledWriterWrites a Value in JSON format in a human friendly way + CValueRepresents a JSON value + CCZString + CValueHolder + CValueAllocatorExperimental do not use: Allocator to customize member name and string value memory management done by Value + CValueConstIteratorConst iterator for object and array value + CValueIteratorIterator for object and array value + CValueIteratorBaseBase class for Value iterators + CWriterWriter implements an O(1)-space, O(1)-granular output JSON writer + CImpl + CCollection + CWriterBaseAbstract class for writers  NstdSTL namespace  Chash< xrpl::AccountID >  Chash< xrpl::Book > diff --git a/attester_8cpp_source.html b/attester_8cpp_source.html index d8478a277f..09322b1fbf 100644 --- a/attester_8cpp_source.html +++ b/attester_8cpp_source.html @@ -155,7 +155,7 @@ $(document).ready(function() { init_codefold(0); });
Buffer sign_claim_attestation(PublicKey const &pk, SecretKey const &sk, STXChainBridge const &bridge, AccountID const &sendingAccount, STAmount const &sendingAmount, AccountID const &rewardAccount, bool wasLockingChainSend, std::uint64_t claimID, std::optional< AccountID > const &dst)
Definition attester.cpp:13
-
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:28
+
void sign(Json::Value &jv, Account const &account, Json::Value &sigObject)
Sign automatically into a specific Json field of the jv object.
Definition utility.cpp:27
Buffer sign_create_account_attestation(PublicKey const &pk, SecretKey const &sk, STXChainBridge const &bridge, AccountID const &sendingAccount, STAmount const &sendingAmount, STAmount const &rewardAmount, AccountID const &rewardAccount, bool wasLockingChainSend, std::uint64_t createCount, AccountID const &dst)
Definition attester.cpp:36
Json::Value bridge(Account const &lockingChainDoor, Issue const &lockingChainIssue, Account const &issuingChainDoor, Issue const &issuingChainIssue)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
diff --git a/batch_8cpp_source.html b/batch_8cpp_source.html index 1ed2a542af..530af59c7b 100644 --- a/batch_8cpp_source.html +++ b/batch_8cpp_source.html @@ -257,7 +257,7 @@ $(document).ready(function() { init_codefold(0); });
@ arrayValue
array value (ordered list)
Definition json_value.h:26
Json::Value outer(jtx::Account const &account, uint32_t seq, STAmount const &fee, std::uint32_t flags)
Batch.
Definition batch.cpp:30
XRPAmount calcBatchFee(jtx::Env const &env, uint32_t const &numSigners, uint32_t const &txns=0)
Calculate Batch Fee.
Definition batch.cpp:19
-
STObject parse(Json::Value const &jv)
Convert JSON to STObject.
Definition utility.cpp:19
+
STObject parse(Json::Value const &jv)
Convert JSON to STObject.
Definition utility.cpp:18
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
std::string to_string(base_uint< Bits, Tag > const &a)
Definition base_uint.h:611
std::string strHex(FwdIt begin, FwdIt end)
Definition strHex.h:11
diff --git a/classJson_1_1Array-members.html b/classJson_1_1Array-members.html deleted file mode 100644 index 0bd5426af1..0000000000 --- a/classJson_1_1Array-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -rippled: Member List - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Json::Array Member List
-
-
- -

This is the complete list of members for Json::Array, including all inherited members.

- - - - - - - - - - - - - - - - -
append(Scalar const &)Json::Array
append(Json::Value const &)Json::Array
appendArray()Json::Array
appendObject()Json::Array
Array(Collection *parent, Writer *w)Json::Arrayprotected
checkWritable(std::string const &label)Json::Collectionprivate
Collection(Collection &&c) noexceptJson::Collectionprivate
Collection()=deleteJson::Collectionprivate
Collection(Collection *parent, Writer *)Json::Collectionprivate
enabled_Json::Collectionprivate
ObjectJson::Arrayfriend
operator=(Collection &&c) noexceptJson::Collectionprivate
parent_Json::Collectionprivate
writer_Json::Collectionprivate
~Collection()Json::Collectionprivate
- - - - diff --git a/classJson_1_1Array.html b/classJson_1_1Array.html deleted file mode 100644 index e81f97d5b5..0000000000 --- a/classJson_1_1Array.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - - - - -rippled: Json::Array Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -
- -

Represents a JSON array being written to a Writer. - More...

- -

#include <Object.h>

-
-Inheritance diagram for Json::Array:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for Json::Array:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - -

-Public Member Functions

template<typename Scalar >
void append (Scalar const &)
 Append a scalar to the Arrary.
 
void append (Json::Value const &)
 Appends a Json::Value to an array.
 
Object appendObject ()
 Append a new Object and return it.
 
Array appendArray ()
 Append a new Array and return it.
 
- - - -

-Protected Member Functions

 Array (Collection *parent, Writer *w)
 
- - - -

-Private Member Functions

void checkWritable (std::string const &label)
 
- - - - - - - -

-Private Attributes

Collectionparent_
 
Writerwriter_
 
bool enabled_
 
- - - -

-Friends

class Object
 
-

Detailed Description

-

Represents a JSON array being written to a Writer.

- -

Definition at line 227 of file Object.h.

-

Constructor & Destructor Documentation

- -

◆ Array()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
Json::Array::Array (Collectionparent,
Writerw 
)
-
-protected
-
- -

Definition at line 264 of file Object.h.

- -
-
-

Member Function Documentation

- -

◆ append() [1/2]

- -
-
-
-template<typename Scalar >
- - - - - - - - -
void Json::Array::append (Scalar const & value)
-
- -

Append a scalar to the Arrary.

-

Throws an exception if this array is disabled (which means that one of its sub-collections is enabled).

- -

Definition at line 379 of file Object.h.

- -
-
- -

◆ append() [2/2]

- -
-
- - - - - - - - -
void Json::Array::append (Json::Value const & v)
-
- -

Appends a Json::Value to an array.

-

Throws an exception if this Array was disabled.

- -

Definition at line 127 of file Object.cpp.

- -
-
- -

◆ appendObject()

- -
-
- - - - - - - -
Object Json::Array::appendObject ()
-
- -

Append a new Object and return it.

-

This Array is disabled until that sub-object is destroyed. Throws an exception if this Array was disabled.

- -

Definition at line 88 of file Object.cpp.

- -
-
- -

◆ appendArray()

- -
-
- - - - - - - -
Array Json::Array::appendArray ()
-
- -

Append a new Array and return it.

-

This Array is disabled until that sub-array is destroyed. Throws an exception if this Array was already disabled.

- -

Definition at line 97 of file Object.cpp.

- -
-
- -

◆ checkWritable()

- -
-
- - - - - -
- - - - - - - - -
void Json::Collection::checkWritable (std::string const & label)
-
-protectedinherited
-
- -

Definition at line 52 of file Object.cpp.

- -
-
-

Friends And Related Symbol Documentation

- -

◆ Object

- -
-
- - - - - -
- - - - -
friend class Object
-
-friend
-
- -

Definition at line 263 of file Object.h.

- -
-
-

Member Data Documentation

- -

◆ parent_

- -
-
- - - - - -
- - - - -
Collection* Json::Collection::parent_
-
-protectedinherited
-
- -

Definition at line 150 of file Object.h.

- -
-
- -

◆ writer_

- -
-
- - - - - -
- - - - -
Writer* Json::Collection::writer_
-
-protectedinherited
-
- -

Definition at line 151 of file Object.h.

- -
-
- -

◆ enabled_

- -
-
- - - - - -
- - - - -
bool Json::Collection::enabled_
-
-protectedinherited
-
- -

Definition at line 152 of file Object.h.

- -
-
-
- - - - diff --git a/classJson_1_1Array__coll__graph.map b/classJson_1_1Array__coll__graph.map deleted file mode 100644 index 0163193039..0000000000 --- a/classJson_1_1Array__coll__graph.map +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1Array__coll__graph.md5 b/classJson_1_1Array__coll__graph.md5 deleted file mode 100644 index e6e918471d..0000000000 --- a/classJson_1_1Array__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -52cd346b5c26bcc29c64a15a0de52db4 \ No newline at end of file diff --git a/classJson_1_1Array__coll__graph.png b/classJson_1_1Array__coll__graph.png deleted file mode 100644 index e6180250fe1793bbdab41c27cf16a3c359a38944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37852 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 diff --git a/classJson_1_1Array__inherit__graph.map b/classJson_1_1Array__inherit__graph.map deleted file mode 100644 index b7dcd66718..0000000000 --- a/classJson_1_1Array__inherit__graph.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/classJson_1_1Array__inherit__graph.md5 b/classJson_1_1Array__inherit__graph.md5 deleted file mode 100644 index 7753822437..0000000000 --- a/classJson_1_1Array__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -814898d6f5a5435e97bb5baf520e1651 \ No newline at end of file diff --git a/classJson_1_1Array__inherit__graph.png b/classJson_1_1Array__inherit__graph.png deleted file mode 100644 index 1443803b8e520a5d0825e8d488a1df0d22f286e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3735 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 ekA{KI8Kr= - - - - - - -rippled: Member List - - - - - - - - - - -
-
Json::Collection Member List
-
-
- -

This is the complete list of members for Json::Collection, including all inherited members.

- - - - - - - - - - -
checkWritable(std::string const &label)Json::Collectionprotected
Collection(Collection &&c) noexceptJson::Collection
Collection()=deleteJson::Collection
Collection(Collection *parent, Writer *)Json::Collectionprotected
enabled_Json::Collectionprotected
operator=(Collection &&c) noexceptJson::Collection
parent_Json::Collectionprotected
writer_Json::Collectionprotected
~Collection()Json::Collection
- - - - diff --git a/classJson_1_1Collection.html b/classJson_1_1Collection.html deleted file mode 100644 index 6a7a65ba32..0000000000 --- a/classJson_1_1Collection.html +++ /dev/null @@ -1,440 +0,0 @@ - - - - - - - -rippled: Json::Collection Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -
- -

#include <Object.h>

-
-Inheritance diagram for Json::Collection:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
-
-Collaboration diagram for Json::Collection:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - -

-Public Member Functions

 Collection (Collection &&c) noexcept
 
Collectionoperator= (Collection &&c) noexcept
 
 Collection ()=delete
 
 ~Collection ()
 
- - - - - -

-Protected Member Functions

 Collection (Collection *parent, Writer *)
 
void checkWritable (std::string const &label)
 
- - - - - - - -

-Protected Attributes

Collectionparent_
 
Writerwriter_
 
bool enabled_
 
-

Detailed Description

-
Collection is a base class for Array and Object, classes which provide the
-facade of JSON collections for the O(1) JSON writer, while still using no
-heap memory and only a very small amount of stack.
-
-From http://json.org, JSON has two types of collection: array, and object.
-Everything else is a *scalar* - a number, a string, a boolean, the special
-value null, or a legacy Json::Value.
-
-Collections must write JSON "as-it-goes" in order to get the strong
-performance guarantees.  This puts restrictions upon API users:
-
-1. Only one collection can be open for change at any one time.
-
-   This condition is enforced automatically and a std::logic_error thrown if
-

it is violated.

-
    -
  1. A tag may only be used once in an Object.

    -

    Some objects have many tags, so this condition might be a little expensive. Enforcement of this condition is turned on in debug builds and a std::logic_error is thrown when the tag is added for a second time.

    -
  2. -
-

Code samples:

Writer writer;
-

An empty object. { Object::Root (writer); } Outputs {}

-

An object with one scalar value. { Object::Root root (writer); write["hello"] = "world"; } Outputs {"hello":"world"}

-

Same, using chaining. { Object::Root (writer)["hello"] = "world"; } Output is the same.

-

Add several scalars, with chaining. { Object::Root (writer) .set ("hello", "world") .set ("flag", false) .set ("x", 42); } Outputs {"hello":"world","flag":false,"x":42}

-

Add an array. { Object::Root root (writer); { auto array = root.setArray ("hands"); array.append ("left"); array.append ("right"); } } Outputs {"hands":["left", "right"]}

-

Same, using chaining. { Object::Root (writer) .setArray ("hands") .append ("left") .append ("right"); } Output is the same.

-

Add an object. { Object::Root root (writer); { auto object = root.setObject ("hands"); object["left"] = false; object["right"] = true; } } Outputs {"hands":{"left":false,"right":true}}

-

Same, using chaining. { Object::Root (writer) .setObject ("hands") .set ("left", false) .set ("right", true); } } Outputs {"hands":{"left":false,"right":true}}

-

Typical ways to make mistakes and get a std::logic_error:

 Writer writer;
- Object::Root root (writer);
-

Repeat a tag. { root ["hello"] = "world"; root ["hello"] = "there"; // THROWS! in a debug build. }

-

Open a subcollection, then set something else. { auto object = root.setObject ("foo"); root ["hello"] = "world"; // THROWS! }

-

Open two subcollections at a time. { auto object = root.setObject ("foo"); auto array = root.setArray ("bar"); // THROWS!! }

-

For more examples, check the unit tests.

- -

Definition at line 133 of file Object.h.

-

Constructor & Destructor Documentation

- -

◆ Collection() [1/3]

- -
-
- - - - - -
- - - - - - - - -
Json::Collection::Collection (Collection && c)
-
-noexcept
-
- -

Definition at line 46 of file Object.cpp.

- -
-
- -

◆ Collection() [2/3]

- -
-
- - - - - -
- - - - - - - -
Json::Collection::Collection ()
-
-delete
-
- -
-
- -

◆ ~Collection()

- -
-
- - - - - - - -
Json::Collection::~Collection ()
-
- -

Definition at line 24 of file Object.cpp.

- -
-
- -

◆ Collection() [3/3]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
Json::Collection::Collection (Collectionparent,
Writerwriter 
)
-
-protected
-
- -

Definition at line 13 of file Object.cpp.

- -
-
-

Member Function Documentation

- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
Collection & Json::Collection::operator= (Collection && c)
-
-noexcept
-
- -

Definition at line 33 of file Object.cpp.

- -
-
- -

◆ checkWritable()

- -
-
- - - - - -
- - - - - - - - -
void Json::Collection::checkWritable (std::string const & label)
-
-protected
-
- -

Definition at line 52 of file Object.cpp.

- -
-
-

Member Data Documentation

- -

◆ parent_

- -
-
- - - - - -
- - - - -
Collection* Json::Collection::parent_
-
-protected
-
- -

Definition at line 150 of file Object.h.

- -
-
- -

◆ writer_

- -
-
- - - - - -
- - - - -
Writer* Json::Collection::writer_
-
-protected
-
- -

Definition at line 151 of file Object.h.

- -
-
- -

◆ enabled_

- -
-
- - - - - -
- - - - -
bool Json::Collection::enabled_
-
-protected
-
- -

Definition at line 152 of file Object.h.

- -
-
-
- - - - diff --git a/classJson_1_1Collection__coll__graph.map b/classJson_1_1Collection__coll__graph.map deleted file mode 100644 index b2c028c544..0000000000 --- a/classJson_1_1Collection__coll__graph.map +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1Collection__coll__graph.md5 b/classJson_1_1Collection__coll__graph.md5 deleted file mode 100644 index 840e1673f6..0000000000 --- a/classJson_1_1Collection__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -85c8e14418da938145053b5ca0fe95d8 \ No newline at end of file diff --git a/classJson_1_1Collection__coll__graph.png b/classJson_1_1Collection__coll__graph.png deleted file mode 100644 index d44f361bfef13759ac987485222aa26a308a5c8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35962 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 xF8n-0# - - - - - - - - diff --git a/classJson_1_1Collection__inherit__graph.md5 b/classJson_1_1Collection__inherit__graph.md5 deleted file mode 100644 index 521cffdcb6..0000000000 --- a/classJson_1_1Collection__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -143028fe9a1820c94f31a6ebdb3bd7f6 \ No newline at end of file diff --git a/classJson_1_1Collection__inherit__graph.png b/classJson_1_1Collection__inherit__graph.png deleted file mode 100644 index 01f699a8345a912b8d18d5bed585bfd5fb698ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9418 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 - - - - - - -rippled: Member List - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Json::JsonObject_test Member List
-
-
- -

This is the complete list of members for Json::JsonObject_test, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
abort_beast::unit_test::suiteprivate
aborted_beast::unit_test::suiteprivate
addPrefix(std::string const &message)xrpl::TestSuiteprivatestatic
arg() constbeast::unit_test::suite
except(F &&f, String const &reason)beast::unit_test::suite
except(F &&f)beast::unit_test::suite
except(F &&f, String const &reason)beast::unit_test::suite
except(F &&f)beast::unit_test::suite
expect(Condition const &shouldBeTrue)beast::unit_test::suite
expect(Condition const &shouldBeTrue, String const &reason)beast::unit_test::suite
expect(Condition const &shouldBeTrue, char const *file, int line)beast::unit_test::suite
expect(Condition const &shouldBeTrue, String const &reason, char const *file, int line)beast::unit_test::suite
expectCollectionEquals(Collection const &actual, Collection const &expected, std::string const &message="")xrpl::TestSuite
expectEquals(S actual, T expected, std::string const &message="")xrpl::TestSuite
expectException(Functor f, std::string const &message="")xrpl::TestSuite
expectException(Functor f, std::string const &message="")xrpl::TestSuite
expectNotEquals(S actual, T expected, std::string const &message="")xrpl::TestSuite
expectResult(std::string const &expected)Json::JsonObject_testprivate
xrpl::test::TestOutputSuite::expectResult(std::string const &expected, std::string const &message="")xrpl::test::TestOutputSuiteprotected
fail(String const &reason, char const *file, int line)beast::unit_test::suite
fail(std::string const &reason="")beast::unit_test::suite
logbeast::unit_test::suite
makeRoot()Json::JsonObject_testprivate
operator()(runner &r)beast::unit_test::suite
operator=(suite const &)=deletebeast::unit_test::suite
output_xrpl::test::TestOutputSuiteprotected
p_this_suite()beast::unit_test::suiteprivatestatic
pass()beast::unit_test::suite
propagate_abort()beast::unit_test::suiteprivate
run() overrideJson::JsonObject_testvirtual
runner_beast::unit_test::suiteprivate
setup(std::string const &testName)Json::JsonObject_testprivate
suite()beast::unit_test::suite
suite(suite const &)=deletebeast::unit_test::suite
testcasebeast::unit_test::suite
testFailureArray()Json::JsonObject_test
testFailureObject()Json::JsonObject_test
testKeyFailure()Json::JsonObject_test
testOneSub()Json::JsonObject_test
testSimple()Json::JsonObject_test
testSubs()Json::JsonObject_test
testSubsShort()Json::JsonObject_test
testTrivial()Json::JsonObject_test
this_suite()beast::unit_test::suitestatic
unexcept(F &&f, String const &reason)beast::unit_test::suite
unexcept(F &&f)beast::unit_test::suite
unexpected(Condition shouldBeFalse, String const &reason)beast::unit_test::suite
unexpected(Condition shouldBeFalse)beast::unit_test::suite
writer_xrpl::test::TestOutputSuiteprotected
writerObject_Json::JsonObject_testprivate
~suite()=defaultbeast::unit_test::suitevirtual
- - - - diff --git a/classJson_1_1JsonObject__test.html b/classJson_1_1JsonObject__test.html deleted file mode 100644 index 2d84c8b715..0000000000 --- a/classJson_1_1JsonObject__test.html +++ /dev/null @@ -1,1819 +0,0 @@ - - - - - - - -rippled: Json::JsonObject_test Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -
-
-Inheritance diagram for Json::JsonObject_test:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
-
-Collaboration diagram for Json::JsonObject_test:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

void testTrivial ()
 
void testSimple ()
 
void testOneSub ()
 
void testSubs ()
 
void testSubsShort ()
 
void testFailureObject ()
 
void testFailureArray ()
 
void testKeyFailure ()
 
void run () override
 Runs the suite.
 
template<class S , class T >
bool expectEquals (S actual, T expected, std::string const &message="")
 
template<class S , class T >
bool expectNotEquals (S actual, T expected, std::string const &message="")
 
template<class Collection >
bool expectCollectionEquals (Collection const &actual, Collection const &expected, std::string const &message="")
 
template<class Exception , class Functor >
bool expectException (Functor f, std::string const &message="")
 
template<class Functor >
bool expectException (Functor f, std::string const &message="")
 
template<class = void>
void operator() (runner &r)
 Invokes the test using the specified runner.
 
template<class = void>
void pass ()
 Record a successful test condition.
 
template<class F , class String >
bool except (F &&f, String const &reason)
 
template<class F >
bool except (F &&f)
 
template<class E , class F , class String >
bool except (F &&f, String const &reason)
 
template<class E , class F >
bool except (F &&f)
 
template<class F , class String >
bool unexcept (F &&f, String const &reason)
 
template<class F >
bool unexcept (F &&f)
 
std::string const & arg () const
 Return the argument associated with the runner.
 
template<class Condition , class String >
bool unexpected (Condition shouldBeFalse, String const &reason)
 
template<class Condition >
bool unexpected (Condition shouldBeFalse)
 
template<class String >
void fail (String const &reason, char const *file, int line)
 Record a failure.
 
template<class = void>
void fail (std::string const &reason="")
 
template<class Condition >
bool expect (Condition const &shouldBeTrue)
 Evaluate a test condition.
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason)
 
template<class Condition >
bool expect (Condition const &shouldBeTrue, char const *file, int line)
 
template<class Condition , class String >
bool expect (Condition const &shouldBeTrue, String const &reason, char const *file, int line)
 
- - - - -

-Static Public Member Functions

static suitethis_suite ()
 Returns the "current" running suite.
 
- - - - - - - -

-Public Attributes

log_os< char > log
 Logging output stream.
 
testcase_t testcase
 Memberspace for declaring test cases.
 
- - - -

-Protected Member Functions

void expectResult (std::string const &expected, std::string const &message="")
 
- - - - - -

-Protected Attributes

std::string output_
 
std::unique_ptr< Json::Writerwriter_
 
- - - - - - - - - -

-Private Member Functions

void setup (std::string const &testName)
 
ObjectmakeRoot ()
 
void expectResult (std::string const &expected)
 
void propagate_abort ()
 
- - - - - -

-Static Private Member Functions

static std::string addPrefix (std::string const &message)
 
static suite ** p_this_suite ()
 
- - - - - - - - - -

-Private Attributes

std::unique_ptr< WriterObjectwriterObject_
 
bool abort_ = false
 
bool aborted_ = false
 
runner * runner_ = nullptr
 
-

Detailed Description

-
-

Definition at line 8 of file Object_test.cpp.

-

Member Function Documentation

- -

◆ setup()

- -
-
- - - - - -
- - - - - - - - -
void Json::JsonObject_test::setup (std::string const & testName)
-
-private
-
- -

Definition at line 11 of file Object_test.cpp.

- -
-
- -

◆ makeRoot()

- -
-
- - - - - -
- - - - - - - -
Object & Json::JsonObject_test::makeRoot ()
-
-private
-
- -

Definition at line 20 of file Object_test.cpp.

- -
-
- -

◆ expectResult() [1/2]

- -
-
- - - - - -
- - - - - - - - -
void Json::JsonObject_test::expectResult (std::string const & expected)
-
-private
-
- -

Definition at line 28 of file Object_test.cpp.

- -
-
- -

◆ testTrivial()

- -
-
- - - - - - - -
void Json::JsonObject_test::testTrivial ()
-
- -

Definition at line 36 of file Object_test.cpp.

- -
-
- -

◆ testSimple()

- -
-
- - - - - - - -
void Json::JsonObject_test::testSimple ()
-
- -

Definition at line 48 of file Object_test.cpp.

- -
-
- -

◆ testOneSub()

- -
-
- - - - - - - -
void Json::JsonObject_test::testOneSub ()
-
- -

Definition at line 67 of file Object_test.cpp.

- -
-
- -

◆ testSubs()

- -
-
- - - - - - - -
void Json::JsonObject_test::testSubs ()
-
- -

Definition at line 78 of file Object_test.cpp.

- -
-
- -

◆ testSubsShort()

- -
-
- - - - - - - -
void Json::JsonObject_test::testSubsShort ()
-
- -

Definition at line 121 of file Object_test.cpp.

- -
-
- -

◆ testFailureObject()

- -
-
- - - - - - - -
void Json::JsonObject_test::testFailureObject ()
-
- -

Definition at line 153 of file Object_test.cpp.

- -
-
- -

◆ testFailureArray()

- -
-
- - - - - - - -
void Json::JsonObject_test::testFailureArray ()
-
- -

Definition at line 176 of file Object_test.cpp.

- -
-
- -

◆ testKeyFailure()

- -
-
- - - - - - - -
void Json::JsonObject_test::testKeyFailure ()
-
- -

Definition at line 205 of file Object_test.cpp.

- -
-
- -

◆ run()

- -
-
- - - - - -
- - - - - - - -
void Json::JsonObject_test::run ()
-
-overridevirtual
-
- -

Runs the suite.

- -

Implements beast::unit_test::suite.

- -

Definition at line 222 of file Object_test.cpp.

- -
-
- -

◆ expectResult() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void xrpl::test::TestOutputSuite::expectResult (std::string const & expected,
std::string const & message = "" 
)
-
-protectedinherited
-
- -

Definition at line 28 of file TestOutputSuite.h.

- -
-
- -

◆ expectEquals()

- -
-
-
-template<class S , class T >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool xrpl::TestSuite::expectEquals (actual,
expected,
std::string const & message = "" 
)
-
-inherited
-
- -

Definition at line 15 of file TestSuite.h.

- -
-
- -

◆ expectNotEquals()

- -
-
-
-template<class S , class T >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool xrpl::TestSuite::expectNotEquals (actual,
expected,
std::string const & message = "" 
)
-
-inherited
-
- -

Definition at line 33 of file TestSuite.h.

- -
-
- -

◆ expectCollectionEquals()

- -
-
-
-template<class Collection >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool xrpl::TestSuite::expectCollectionEquals (Collection const & actual,
Collection const & expected,
std::string const & message = "" 
)
-
-inherited
-
- -

Definition at line 51 of file TestSuite.h.

- -
-
- -

◆ expectException() [1/2]

- -
-
-
-template<class Exception , class Functor >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool xrpl::TestSuite::expectException (Functor f,
std::string const & message = "" 
)
-
-inherited
-
- -

Definition at line 81 of file TestSuite.h.

- -
-
- -

◆ expectException() [2/2]

- -
-
-
-template<class Functor >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool xrpl::TestSuite::expectException (Functor f,
std::string const & message = "" 
)
-
-inherited
-
- -

Definition at line 97 of file TestSuite.h.

- -
-
- -

◆ addPrefix()

- -
-
- - - - - -
- - - - - - - - -
static std::string xrpl::TestSuite::addPrefix (std::string const & message)
-
-staticprivateinherited
-
- -

Definition at line 113 of file TestSuite.h.

- -
-
- -

◆ this_suite()

- -
-
- - - - - -
- - - - - - - -
static suite * beast::unit_test::suite::this_suite ()
-
-staticinherited
-
- -

Returns the "current" running suite.

-

If no suite is running, nullptr is returned.

- -

Definition at line 158 of file suite.h.

- -
-
- -

◆ operator()()

- -
-
-
-template<class >
- - - - - -
- - - - - - - - -
void beast::unit_test::suite::operator() (runnerr)
-
-inherited
-
- -

Invokes the test using the specified runner.

-

Data members are set up here instead of the constructor as a convenience to writing the derived class to avoid repetition of forwarded constructor arguments to the base. Normally this is called by the framework for you.

- -

Definition at line 396 of file suite.h.

- -
-
- -

◆ pass()

- -
-
-
-template<class >
- - - - - -
- - - - - - - -
void beast::unit_test::suite::pass ()
-
-inherited
-
- -

Record a successful test condition.

- -

Definition at line 508 of file suite.h.

- -
-
- -

◆ fail() [1/2]

- -
-
-
-template<class String >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void beast::unit_test::suite::fail (String const & reason,
char const * file,
int line 
)
-
-inherited
-
- -

Record a failure.

-
Parameters
- - - - -
reasonOptional text added to the output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.
-
-
- -

Definition at line 530 of file suite.h.

- -
-
- -

◆ fail() [2/2]

- -
-
-
-template<class >
- - - - - -
- - - - - - - - -
void beast::unit_test::suite::fail (std::string const & reason = "")
-
-inherited
-
- -

Definition at line 517 of file suite.h.

- -
-
- -

◆ expect() [1/4]

- -
-
-
-template<class Condition >
- - - - - -
- - - - - - - - -
bool beast::unit_test::suite::expect (Condition const & shouldBeTrue)
-
-inherited
-
- -

Evaluate a test condition.

-

This function provides improved logging by incorporating the file name and line number into the reported output on failure, as well as additional text specified by the caller.

-
Parameters
- - - - - -
shouldBeTrueThe condition to test. The condition is evaluated in a boolean context.
reasonOptional added text to output on a failure.
fileThe source code file where the test failed.
lineThe source code line number where the test failed.
-
-
-
Returns
true if the test condition indicates success.
- -

Definition at line 226 of file suite.h.

- -
-
- -

◆ expect() [2/4]

- -
-
-
-template<class Condition , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::expect (Condition const & shouldBeTrue,
String const & reason 
)
-
-inherited
-
- -

Definition at line 413 of file suite.h.

- -
-
- -

◆ expect() [3/4]

- -
-
-
-template<class Condition >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::expect (Condition const & shouldBeTrue,
char const * file,
int line 
)
-
-inherited
-
- -

Definition at line 237 of file suite.h.

- -
-
- -

◆ expect() [4/4]

- -
-
-
-template<class Condition , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::expect (Condition const & shouldBeTrue,
String const & reason,
char const * file,
int line 
)
-
-inherited
-
- -

Definition at line 426 of file suite.h.

- -
-
- -

◆ except() [1/4]

- -
-
-
-template<class F , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::except (F && f,
String const & reason 
)
-
-inherited
-
- -

Definition at line 445 of file suite.h.

- -
-
- -

◆ except() [2/4]

- -
-
-
-template<class F >
- - - - - -
- - - - - - - - -
bool beast::unit_test::suite::except (F && f)
-
-inherited
-
- -

Definition at line 260 of file suite.h.

- -
-
- -

◆ except() [3/4]

- -
-
-
-template<class E , class F , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::except (F && f,
String const & reason 
)
-
-inherited
-
- -

Definition at line 462 of file suite.h.

- -
-
- -

◆ except() [4/4]

- -
-
-
-template<class E , class F >
- - - - - -
- - - - - - - - -
bool beast::unit_test::suite::except (F && f)
-
-inherited
-
- -

Definition at line 269 of file suite.h.

- -
-
- -

◆ unexcept() [1/2]

- -
-
-
-template<class F , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::unexcept (F && f,
String const & reason 
)
-
-inherited
-
- -

Definition at line 479 of file suite.h.

- -
-
- -

◆ unexcept() [2/2]

- -
-
-
-template<class F >
- - - - - -
- - - - - - - - -
bool beast::unit_test::suite::unexcept (F && f)
-
-inherited
-
- -

Definition at line 278 of file suite.h.

- -
-
- -

◆ arg()

- -
-
- - - - - -
- - - - - - - -
std::string const & beast::unit_test::suite::arg () const
-
-inherited
-
- -

Return the argument associated with the runner.

- -

Definition at line 285 of file suite.h.

- -
-
- -

◆ unexpected() [1/2]

- -
-
-
-template<class Condition , class String >
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool beast::unit_test::suite::unexpected (Condition shouldBeFalse,
String const & reason 
)
-
-inherited
-
- -

Definition at line 496 of file suite.h.

- -
-
- -

◆ unexpected() [2/2]

- -
-
-
-template<class Condition >
- - - - - -
- - - - - - - - -
bool beast::unit_test::suite::unexpected (Condition shouldBeFalse)
-
-inherited
-
- -

Definition at line 298 of file suite.h.

- -
-
- -

◆ p_this_suite()

- -
-
- - - - - -
- - - - - - - -
static suite ** beast::unit_test::suite::p_this_suite ()
-
-staticprivateinherited
-
- -

Definition at line 307 of file suite.h.

- -
-
- -

◆ propagate_abort()

- -
-
- - - - - -
- - - - - - - -
void beast::unit_test::suite::propagate_abort ()
-
-privateinherited
-
- -

Definition at line 536 of file suite.h.

- -
-
-

Member Data Documentation

- -

◆ writerObject_

- -
-
- - - - - -
- - - - -
std::unique_ptr<WriterObject> Json::JsonObject_test::writerObject_
-
-private
-
- -

Definition at line 17 of file Object_test.cpp.

- -
-
- -

◆ output_

- -
-
- - - - - -
- - - - -
std::string xrpl::test::TestOutputSuite::output_
-
-protectedinherited
-
- -

Definition at line 15 of file TestOutputSuite.h.

- -
-
- -

◆ writer_

- -
-
- - - - - -
- - - - -
std::unique_ptr<Json::Writer> xrpl::test::TestOutputSuite::writer_
-
-protectedinherited
-
- -

Definition at line 16 of file TestOutputSuite.h.

- -
-
- -

◆ abort_

- -
-
- - - - - -
- - - - -
bool beast::unit_test::suite::abort_ = false
-
-privateinherited
-
- -

Definition at line 54 of file suite.h.

- -
-
- -

◆ aborted_

- -
-
- - - - - -
- - - - -
bool beast::unit_test::suite::aborted_ = false
-
-privateinherited
-
- -

Definition at line 55 of file suite.h.

- -
-
- -

◆ runner_

- -
-
- - - - - -
- - - - -
runner* beast::unit_test::suite::runner_ = nullptr
-
-privateinherited
-
- -

Definition at line 56 of file suite.h.

- -
-
- -

◆ log

- -
-
- - - - - -
- - - - -
log_os<char> beast::unit_test::suite::log
-
-inherited
-
- -

Logging output stream.

-

Text sent to the log output stream will be forwarded to the output stream associated with the runner.

- -

Definition at line 149 of file suite.h.

- -
-
- -

◆ testcase

- -
-
- - - - - -
- - - - -
testcase_t beast::unit_test::suite::testcase
-
-inherited
-
- -

Memberspace for declaring test cases.

- -

Definition at line 152 of file suite.h.

- -
-
-
- - - - diff --git a/classJson_1_1JsonObject__test__coll__graph.map b/classJson_1_1JsonObject__test__coll__graph.map deleted file mode 100644 index 1d1d4e5834..0000000000 --- a/classJson_1_1JsonObject__test__coll__graph.map +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1JsonObject__test__coll__graph.md5 b/classJson_1_1JsonObject__test__coll__graph.md5 deleted file mode 100644 index 42fe79755a..0000000000 --- a/classJson_1_1JsonObject__test__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6ea1d0d7df14d763637ca1077f23d9de \ No newline at end of file diff --git a/classJson_1_1JsonObject__test__coll__graph.png b/classJson_1_1JsonObject__test__coll__graph.png deleted file mode 100644 index 449a04d7a2776edae9184c19e09c22b37ea40acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184947 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

9ZIKp&_{UJuam!w;W^G`&9P) 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 - - - - - - - - diff --git a/classJson_1_1JsonObject__test__inherit__graph.md5 b/classJson_1_1JsonObject__test__inherit__graph.md5 deleted file mode 100644 index 8478f06611..0000000000 --- a/classJson_1_1JsonObject__test__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -85daeffd130bec4a64b82082dabdffcf \ No newline at end of file diff --git a/classJson_1_1JsonObject__test__inherit__graph.png b/classJson_1_1JsonObject__test__inherit__graph.png deleted file mode 100644 index 6586522154577711fad4b99fd44b62a091fa141c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8842 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 diff --git a/classJson_1_1Object-members.html b/classJson_1_1Object-members.html deleted file mode 100644 index c650b5c2c6..0000000000 --- a/classJson_1_1Object-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -rippled: Member List - - - - - - - - - -

-
-
Json::Object Member List
-
-
- -

This is the complete list of members for Json::Object, including all inherited members.

- - - - - - - - - - - - - - - - - - -
ArrayJson::Objectfriend
checkWritable(std::string const &label)Json::Collectionprotected
Collection(Collection &&c) noexceptJson::Collectionprotected
Collection()=deleteJson::Collectionprotected
Collection(Collection *parent, Writer *)Json::Collectionprotected
enabled_Json::Collectionprotected
Object(Collection *parent, Writer *w)Json::Objectprotected
operator=(Collection &&c) noexceptJson::Collectionprotected
operator[](std::string const &key)Json::Object
operator[](Json::StaticString const &key)Json::Object
parent_Json::Collectionprotected
set(std::string const &key, Scalar const &)Json::Object
set(std::string const &key, Json::Value const &)Json::Object
setArray(std::string const &key)Json::Object
setObject(std::string const &key)Json::Object
writer_Json::Collectionprotected
~Collection()Json::Collectionprotected
- - - - diff --git a/classJson_1_1Object.html b/classJson_1_1Object.html deleted file mode 100644 index 1ffd16ab15..0000000000 --- a/classJson_1_1Object.html +++ /dev/null @@ -1,510 +0,0 @@ - - - - - - - -rippled: Json::Object Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -
- -

Represents a JSON object being written to a Writer. - More...

- -

#include <Object.h>

-
-Inheritance diagram for Json::Object:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for Json::Object:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - -

-Classes

class  Proxy
 
class  Root
 
- - - - - - - - - - - - - - - - - -

-Public Member Functions

template<typename Scalar >
void set (std::string const &key, Scalar const &)
 Set a scalar value in the Object for a key.
 
void set (std::string const &key, Json::Value const &)
 
Proxy operator[] (std::string const &key)
 
Proxy operator[] (Json::StaticString const &key)
 
Object setObject (std::string const &key)
 Make a new Object at a key and return it.
 
Array setArray (std::string const &key)
 Make a new Array at a key and return it.
 
- - - - - -

-Protected Member Functions

 Object (Collection *parent, Writer *w)
 
void checkWritable (std::string const &label)
 
- - - - - - - -

-Protected Attributes

Collectionparent_
 
Writerwriter_
 
bool enabled_
 
- - - -

-Friends

class Array
 
-

Detailed Description

-

Represents a JSON object being written to a Writer.

- -

Definition at line 160 of file Object.h.

-

Constructor & Destructor Documentation

- -

◆ Object()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
Json::Object::Object (Collectionparent,
Writerw 
)
-
-protected
-
- -

Definition at line 212 of file Object.h.

- -
-
-

Member Function Documentation

- -

◆ set() [1/2]

- -
-
-
-template<typename Scalar >
- - - - - - - - - - - - - - - - - - -
void Json::Object::set (std::string const & key,
Scalar const & value 
)
-
- -

Set a scalar value in the Object for a key.

-

A JSON scalar is a single value - a number, string, boolean, nullptr or a Json::Value.

-

set() throws an exception if this object is disabled (which means that one of its children is enabled).

-

In a debug build, set() also throws an exception if the key has already been set() before.

-

An operator[] is provided to allow writing object["key"] = scalar;.

- -

Definition at line 388 of file Object.h.

- -
-
- -

◆ set() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
void Json::Object::set (std::string const & key,
Json::Value const & v 
)
-
- -

Definition at line 162 of file Object.cpp.

- -
-
- -

◆ operator[]() [1/2]

- -
-
- - - - - - - - -
Object::Proxy Json::Object::operator[] (std::string const & key)
-
- -

Definition at line 113 of file Object.cpp.

- -
-
- -

◆ operator[]() [2/2]

- -
-
- - - - - - - - -
Object::Proxy Json::Object::operator[] (Json::StaticString const & key)
-
- -

Definition at line 119 of file Object.cpp.

- -
-
- -

◆ setObject()

- -
-
- - - - - - - - -
Object Json::Object::setObject (std::string const & key)
-
- -

Make a new Object at a key and return it.

-

This Object is disabled until that sub-object is destroyed. Throws an exception if this Object was already disabled.

- -

Definition at line 68 of file Object.cpp.

- -
-
- -

◆ setArray()

- -
-
- - - - - - - - -
Array Json::Object::setArray (std::string const & key)
-
- -

Make a new Array at a key and return it.

-

This Object is disabled until that sub-array is destroyed. Throws an exception if this Object was already disabled.

- -

Definition at line 77 of file Object.cpp.

- -
-
- -

◆ checkWritable()

- -
-
- - - - - -
- - - - - - - - -
void Json::Collection::checkWritable (std::string const & label)
-
-protectedinherited
-
- -

Definition at line 52 of file Object.cpp.

- -
-
-

Friends And Related Symbol Documentation

- -

◆ Array

- -
-
- - - - - -
- - - - -
friend class Array
-
-friend
-
- -

Definition at line 211 of file Object.h.

- -
-
-

Member Data Documentation

- -

◆ parent_

- -
-
- - - - - -
- - - - -
Collection* Json::Collection::parent_
-
-protectedinherited
-
- -

Definition at line 150 of file Object.h.

- -
-
- -

◆ writer_

- -
-
- - - - - -
- - - - -
Writer* Json::Collection::writer_
-
-protectedinherited
-
- -

Definition at line 151 of file Object.h.

- -
-
- -

◆ enabled_

- -
-
- - - - - -
- - - - -
bool Json::Collection::enabled_
-
-protectedinherited
-
- -

Definition at line 152 of file Object.h.

- -
-
-
- - - - diff --git a/classJson_1_1Object_1_1Proxy-members.html b/classJson_1_1Object_1_1Proxy-members.html deleted file mode 100644 index c3ed95881e..0000000000 --- a/classJson_1_1Object_1_1Proxy-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -rippled: Member List - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
Json::Object::Proxy Member List
-
-
- -

This is the complete list of members for Json::Object::Proxy, including all inherited members.

- - - - - -
key_Json::Object::Proxyprivate
object_Json::Object::Proxyprivate
operator=(T const &t)Json::Object::Proxy
Proxy(Object &object, std::string const &key)Json::Object::Proxy
- - - - diff --git a/classJson_1_1Object_1_1Proxy.html b/classJson_1_1Object_1_1Proxy.html deleted file mode 100644 index 172fc4b71b..0000000000 --- a/classJson_1_1Object_1_1Proxy.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - -rippled: Json::Object::Proxy Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
- -
Json::Object::Proxy Class Reference
-
-
- -

#include <Object.h>

-
-Collaboration diagram for Json::Object::Proxy:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - -

-Public Member Functions

 Proxy (Object &object, std::string const &key)
 
template<class T >
void operator= (T const &t)
 
- - - - - -

-Private Attributes

Objectobject_
 
std::string const key_
 
-

Detailed Description

-
-

Definition at line 350 of file Object.h.

-

Constructor & Destructor Documentation

- -

◆ Proxy()

- -
-
- - - - - - - - - - - - - - - - - - -
Json::Object::Proxy::Proxy (Objectobject,
std::string const & key 
)
-
- -

Definition at line 107 of file Object.cpp.

- -
-
-

Member Function Documentation

- -

◆ operator=()

- -
-
-
-template<class T >
- - - - - - - - -
void Json::Object::Proxy::operator= (T const & t)
-
- -

Definition at line 361 of file Object.h.

- -
-
-

Member Data Documentation

- -

◆ object_

- -
-
- - - - - -
- - - - -
Object& Json::Object::Proxy::object_
-
-private
-
- -

Definition at line 353 of file Object.h.

- -
-
- -

◆ key_

- -
-
- - - - - -
- - - - -
std::string const Json::Object::Proxy::key_
-
-private
-
- -

Definition at line 354 of file Object.h.

- -
-
-
- - - - diff --git a/classJson_1_1Object_1_1Proxy__coll__graph.map b/classJson_1_1Object_1_1Proxy__coll__graph.map deleted file mode 100644 index 3c4e9e8930..0000000000 --- a/classJson_1_1Object_1_1Proxy__coll__graph.map +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1Object_1_1Proxy__coll__graph.md5 b/classJson_1_1Object_1_1Proxy__coll__graph.md5 deleted file mode 100644 index 8908852d7c..0000000000 --- a/classJson_1_1Object_1_1Proxy__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -39c7b63f87302fa599fe10588df13e70 \ No newline at end of file diff --git a/classJson_1_1Object_1_1Proxy__coll__graph.png b/classJson_1_1Object_1_1Proxy__coll__graph.png deleted file mode 100644 index 50076d5d91f524437188cfc76dccafcab7f9220a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52756 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 b#ni%3vTT#>z4uQkd>lTcrIL2g^tb;3yT(!= diff --git a/classJson_1_1Object_1_1Root-members.html b/classJson_1_1Object_1_1Root-members.html deleted file mode 100644 index bb97e688c0..0000000000 --- a/classJson_1_1Object_1_1Root-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -rippled: Member List - - - - - - - - - - -
-
Json::Object::Root Member List
-
-
- -

This is the complete list of members for Json::Object::Root, including all inherited members.

- - - - - - - - - - - - - - - - - - -
checkWritable(std::string const &label)Json::Collectionprotected
Collection(Collection &&c) noexceptJson::Collectionprotected
Collection()=deleteJson::Collectionprotected
Collection(Collection *parent, Writer *)Json::Collectionprotected
enabled_Json::Collectionprotected
Object(Collection *parent, Writer *w)Json::Objectprotected
operator=(Collection &&c) noexceptJson::Collectionprotected
operator[](std::string const &key)Json::Object
operator[](Json::StaticString const &key)Json::Object
parent_Json::Collectionprotected
Root(Writer &)Json::Object::Root
set(std::string const &key, Scalar const &)Json::Object
set(std::string const &key, Json::Value const &)Json::Object
setArray(std::string const &key)Json::Object
setObject(std::string const &key)Json::Object
writer_Json::Collectionprotected
~Collection()Json::Collectionprotected
- - - - diff --git a/classJson_1_1Object_1_1Root.html b/classJson_1_1Object_1_1Root.html deleted file mode 100644 index 86e1b71001..0000000000 --- a/classJson_1_1Object_1_1Root.html +++ /dev/null @@ -1,502 +0,0 @@ - - - - - - - -rippled: Json::Object::Root Class Reference - - - - - - - - - -
-
- - - - - - -
-
rippled -
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
- -
- -

#include <Object.h>

-
-Inheritance diagram for Json::Object::Root:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for Json::Object::Root:
-
-
Collaboration graph
- - - - - - - - - - - - - - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Root (Writer &)
 Each Object::Root must be constructed with its own unique Writer.
 
template<typename Scalar >
void set (std::string const &key, Scalar const &)
 Set a scalar value in the Object for a key.
 
void set (std::string const &key, Json::Value const &)
 
Proxy operator[] (std::string const &key)
 
Proxy operator[] (Json::StaticString const &key)
 
Object setObject (std::string const &key)
 Make a new Object at a key and return it.
 
Array setArray (std::string const &key)
 Make a new Array at a key and return it.
 
- - - -

-Protected Member Functions

void checkWritable (std::string const &label)
 
- - - - - - - -

-Protected Attributes

Collectionparent_
 
Writerwriter_
 
bool enabled_
 
-

Detailed Description

-
-

Definition at line 217 of file Object.h.

-

Constructor & Destructor Documentation

- -

◆ Root()

- -
-
- - - - - - - - -
Json::Object::Root::Root (Writerw)
-
- -

Each Object::Root must be constructed with its own unique Writer.

- -

Definition at line 62 of file Object.cpp.

- -
-
-

Member Function Documentation

- -

◆ set() [1/2]

- -
-
-
-template<typename Scalar >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Json::Object::set (std::string const & key,
Scalar const & value 
)
-
-inherited
-
- -

Set a scalar value in the Object for a key.

-

A JSON scalar is a single value - a number, string, boolean, nullptr or a Json::Value.

-

set() throws an exception if this object is disabled (which means that one of its children is enabled).

-

In a debug build, set() also throws an exception if the key has already been set() before.

-

An operator[] is provided to allow writing object["key"] = scalar;.

- -

Definition at line 388 of file Object.h.

- -
-
- -

◆ set() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void Json::Object::set (std::string const & key,
Json::Value const & v 
)
-
-inherited
-
- -

Definition at line 162 of file Object.cpp.

- -
-
- -

◆ operator[]() [1/2]

- -
-
- - - - - -
- - - - - - - - -
Object::Proxy Json::Object::operator[] (std::string const & key)
-
-inherited
-
- -

Definition at line 113 of file Object.cpp.

- -
-
- -

◆ operator[]() [2/2]

- -
-
- - - - - -
- - - - - - - - -
Object::Proxy Json::Object::operator[] (Json::StaticString const & key)
-
-inherited
-
- -

Definition at line 119 of file Object.cpp.

- -
-
- -

◆ setObject()

- -
-
- - - - - -
- - - - - - - - -
Object Json::Object::setObject (std::string const & key)
-
-inherited
-
- -

Make a new Object at a key and return it.

-

This Object is disabled until that sub-object is destroyed. Throws an exception if this Object was already disabled.

- -

Definition at line 68 of file Object.cpp.

- -
-
- -

◆ setArray()

- -
-
- - - - - -
- - - - - - - - -
Array Json::Object::setArray (std::string const & key)
-
-inherited
-
- -

Make a new Array at a key and return it.

-

This Object is disabled until that sub-array is destroyed. Throws an exception if this Object was already disabled.

- -

Definition at line 77 of file Object.cpp.

- -
-
- -

◆ checkWritable()

- -
-
- - - - - -
- - - - - - - - -
void Json::Collection::checkWritable (std::string const & label)
-
-protectedinherited
-
- -

Definition at line 52 of file Object.cpp.

- -
-
-

Member Data Documentation

- -

◆ parent_

- -
-
- - - - - -
- - - - -
Collection* Json::Collection::parent_
-
-protectedinherited
-
- -

Definition at line 150 of file Object.h.

- -
-
- -

◆ writer_

- -
-
- - - - - -
- - - - -
Writer* Json::Collection::writer_
-
-protectedinherited
-
- -

Definition at line 151 of file Object.h.

- -
-
- -

◆ enabled_

- -
-
- - - - - -
- - - - -
bool Json::Collection::enabled_
-
-protectedinherited
-
- -

Definition at line 152 of file Object.h.

- -
-
-
- - - - diff --git a/classJson_1_1Object_1_1Root__coll__graph.map b/classJson_1_1Object_1_1Root__coll__graph.map deleted file mode 100644 index 33d3256c78..0000000000 --- a/classJson_1_1Object_1_1Root__coll__graph.map +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1Object_1_1Root__coll__graph.md5 b/classJson_1_1Object_1_1Root__coll__graph.md5 deleted file mode 100644 index 8711effed1..0000000000 --- a/classJson_1_1Object_1_1Root__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -cbea129dea552eefeb964ecc0acd4aad \ No newline at end of file diff --git a/classJson_1_1Object_1_1Root__coll__graph.png b/classJson_1_1Object_1_1Root__coll__graph.png deleted file mode 100644 index 69c69d677dc461e44afc31dfe3bf00d96d743a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39421 zcmb^ZWn7f)_dS5#ba#rhBB_KZ9nzwLAOlE;feKO*lB0kit%73EATWRk(%m2`q0(Ja zlF|}q-}?Cd{a>8Vd3Eq{o?)E1_+0o7{YQTkmC(&?e!zT)IoG zXI&FUxvu%0zou#v*ztR#E!(yIgKwg1JL{QIc^YN4|9||fkI@%XV?+M@w6W09bzQ<> zXiQtqZHcPueN9P8DIS!i=Kb#{WxlPw2alEx{n6Voz{Cp#dJgnBckW-nbax{O`EKn0 zyP|HUXHI_)iX+Q43=0V%H4Q$um7JL=5O?teJpK1ZgIvM?o&N9p(Z|ekTYBn0r}=*# zx;Sk9f4&%Nx6qTzs^E1mXkq5Z51WC)Tb@7jTg3bi_JqR2v8FXj|IVpqP!t!a`u8_J zS^ooh_r(Fs_^#`Z&kyRXYF|56Kd$!uZD@Us@6)GG0Xi8CbKf$Scl%;e}0>pFDYz zX7;6(RD*wB)*nof6w3U@tbHJwhh_Wu}T)=zJ zRU0iqJR~_e8Nnv22CHOzM;ZVL{>&Z{r9XZ&KvXHy!)44Ns_@(2(E5F z=1-{YO4Ss1{c#a)4(9ERqA#0lJT-Gz)4+{yZ!eKjP!J&3u3x{p5Xq&)sjIki{H<X_Ub^%r%c=5rX2dHM2jYpa(0#`i0%r*BZw)6?f% zXF5{z{`2RHBIf0cRbCqpqoQd14);Au%gSPnJ-()$-~RcbBlJyJR8$MxNzPVsPM`Lx z3-`DF4%z>$nUFR*PR{Dvs}oHHDLuKS{0rUL{4YeV^7g{>mWZSLGwt!h=`k+9ete^M3yFf$pYbjs3mJcvGu zfu8=_r{^c93vYc(gHO)Q&8@XQIYy8D+|f}|e6`xA>}OwoYK(r{rx&6ZkUs~U`Xc5g!=T~8uf)R`eeGNM#@DQ@l74{aOAJW6Z!putUng=z%(AWOZFXF#D$1h{wCpI@f zFGN5AkfSOG3jbvQg^$dvk3eucnyONRsU4WOGE%8k4Z0af?}nd+t3~*JnqL z9O+rBtdxKG;)T%!dno_A9FrpLo@^ssiz+V&dh_42B)GYgR3G1CtFJ8>KY|r;4z4Es!|NpkLn%cdYQVym+ zQKQS(ZmRW(lbf5mvNCc)=S@hW-!9pyQ>W5fpNk~W*%HEk*FlYT*X`o5H z^!jW%=jbU*OUs1?uZ?-0W5)=P_l~2A_kQ-#72WAAem*!j*f26ut+LN4?@3FewCD8X zzQ;lj6^uYm=Qbkdx95qz_18>C%jcJ;ttHuV2hYc*-}v&%b9XKy|K6NF(py6OYjyQO zP0iuSCPU9t)5BcuHp{}VaO{tfj#uF$Zs28bn>Q#Gj8=esEgNT?elIph!ohS3Zz{xTx{b*P0)qPP8_8SrKR&;_GVkmRV;+>6ddzQUngywadwy@z6iVKatedDP z?J`ALeXx6Hp$vlP_}cU*zV_tO=xEwKxU{~?`=_xBWXcrGBDD;<@_OT}e|}m)q86f(lRnqZ+0Yzu|=d8lTlKt?eA`^E>$eszy+}?`fNM27(V$I%8PG`u_{Wi zQeJT2Afcn{C;peXmQ*1W)+rsV(iA!jGMnTwpT6s#BGU*DOs^FJ4q03?E2nY z2hEJl%{_*FVpShVwz9FI{`#!L3fx^ocXv^v4CBngLKp;9!T=JQM~R7C@(K#$KYxbP zC~ha!i!<^EDqC4`+t}DRZT`Hvu&JNk&2i>7BdoQcgZkrC<-33u} z$X>pDsdeFkD(t?`H%>zsd~|oXysoROOZEVkO=qsD)ScfD64(`eSYgTZNMCrR3IX;> zbTk&WWPN{szX`vvFhwvmhYCzySBg5t!cJ(UKR*QM_cuE@J-xjfhKKjxu6?z+f+=b& zi*fT`QZq1Mym;c4@Lwc+;@`{3o+C=1eZ$Lo6Bt_9J za_*zbqepE!zRlfpr6g_$QwdQIvW?M~UD()tQ{f~N5;DtKdz}66xo?lTKXnQb3jHrB z8*mJ3h3xQSUo8IoX&CqA2Pa}k#zRa(MC2f1*lSLjPg{F6UPr3<@^3Pg5WUUK&FpfI z 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 - - - - - - diff --git a/classJson_1_1Object_1_1Root__inherit__graph.md5 b/classJson_1_1Object_1_1Root__inherit__graph.md5 deleted file mode 100644 index d36290cb60..0000000000 --- a/classJson_1_1Object_1_1Root__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -e5efc002ca4faa69d384778544d6bdc4 \ No newline at end of file diff --git a/classJson_1_1Object_1_1Root__inherit__graph.png b/classJson_1_1Object_1_1Root__inherit__graph.png deleted file mode 100644 index 9e4b33b6752c71f0bd6538768a4ffbe36d31be71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6250 zcmc&(WmHsQm>v-6Qlv{nKtM?;=@vn{q(eYJnxSDNMM6*{hoO<~Zb7=FW9X7@B!=3L zvp;tC?C(8$nBXvX?tSm~z3)?eQB{^Fz@@^4Kp+GPuVvK1`w#G}!NvryCm8NZ;0@DE zQCGf!(%kmv2fmQ7 zOjXeTJ(55P_Nk~aab@laKPBzpcA|pM|=G-a8{X`%N3JT8+ zYNM|&&qkZP&-D6iCkmG?_gh$mgeYxoZFhy%2jKGHm`s}w5qlp$uCDJd zj@DfF=bJiDqoawzpD6fj9`(h&VC3QX?t6Kvrll2}lfwcrhF$Zer>9qOcn)l4#!YO+ z90|;O1kTPHkiF1rFE#yraC|&!KU3pCKboV`H9ei^dHnYQEp23cJULY)=BMq+k_xYX zHp?q3p6dvAkELMp1Re|A8ixhUw5+V4sVUuErsd5w!v?np#KfwMN>PbPN&NXCAu_VE zOPiZtnwmuM$T_ka8)@9#-Fy4`&;n<9N%@q8rC>rHljZSaiT19p@J_uNdxWEt(=Z1d4i5*_+Q!3Bn=HF6 zh~(sU)W7YjzTn{C4BN@#Cr_S8VKcNZcZ7Fr3}@O_?k_GrKHXp73?j~`t<_By@l>B} zff=utfBW_gn}DFGWz5@dTo}1b6uN4%Ai(On@3x`u;V`HlcG&D3sL`65J$}$Jn zlo7A2&&IRM_{Q9?V%c@D@$i0+j%r-8@bbotjcEoE8#K5P5D`UDb@81#=gZMoRcfb7 zUtC-)t*>|e+nyA1Ud85Yx#A(`FfdvC<)4t0G~u-b)+PZCw~dD%D}U@y;07C1=5c6- zm?4$5)+B&>`dsZyS2(%5my``mOpwW{aR~^l&o_BP=@t@B^~NFVFTXtVfx_ zz&SZOKIY;gCLtjyHmF1Y^@CO8e5c}1rAta67SVSE0yK|KCQ{|io3_!>n8rpCL?7(t zI8_MjJvINwwEB8IZvz_}HevTY&Fm0LUQ1$X>b`@e-&Ks7va zY6b@VU<%Q=czH9^($eNn;rhmkw&N024ht#te&_xvqTW2ttFL!*D7jkhi?~Z0jNJxMj{DnI> zZ;i3qQLwYK+g2^iqVSb9Sk_>u(bV=@rxlw*b~d($U=xT1>}PYUTI4bxfM1BeeEEXx z*)kWuItT_uMEo!pG+vqdU49}XKoGw&}U_1BiDC^Y8Dz+CVjADjutiSLW2;pVns8~etaZ>(Z#rH)g?{HFbNByJm4nk`)5nfs?4KanPVD`o)W zhMF1TV!u>W;*3P6%ta0S9bVfj%fBs**?P?B3H8JxiRi(q7pck)u-82lU^`KZOOIjH zG(;Z0O4}a2N6WfaHNlZn6z!isbDO4WXj>G3d7e7KnPV3nFJk!DxTerj}e>|$WH3Nd{qF<0uEn{?)QvHeUmmSrO z*(juGx)Tw{nZFy&sA*U6!JviW+R9kL<_WCr&;hx>?Pt{U;EwfvWU)~`Q_$j3{ht3m z?WtCeghKvz|Np+y|ECA!cfgp;BqSu@Fq$c7@x8@Qfhp|P&C$`(WY^*jWjPt*Ju@?K zKz5a#d0DUCzkg3mOFOr`ZXGK@K*0rgt!6?nRx@e>`$w|$|0w&uV%&4n)`0s^`#;^? zkA;NlNZCi|1MxJqwaIXBa8MkXm<$*_Jw3_7?q8FWlbPx1Nl7~ZCu`*~iHahA{CK2= zw81Gl;wWLgqj`Wpb*`J=n-$R(0g_*x*0f{;F45Q5SJ%*>F-|!gzzIieo_~9je>#`j9ZLccad7P4GrO9zNk>ZA-mOpoVoq3JWS2a84U~!f)W!Gr|MjC+%E4J4d|TU zn3xzx7Z;MaxHvOprL|P%Fg8Qb`RRaYuW z96`w|CnzWwYWh0_2awIu_BK1XksxBJ=f=$j{fWHt-aZNnUp%&pYJ#$}vnj-UY60w$ z0L0E6z5yQx=jG)&LZPI-sFMePIhO%qw@plF14xzj@bJI}bR>6X>*Le-A#z`j;tIRU ze(n_^?W^`+Jo4_Ip4PcJ!v?$Qa*Ima$*=wWN*spu?WemliQ+IZ0f+gqy_g?A05D@5 z9v%YH2ek5gb2JByi;u74_wT^3w8C2kV(xo1BrM8>S}}QftN@)C0bL=X;P{<|melrk znURqZL6^VyGu3vZ7fJK5TVGr}yq>{9W)6<8;pCj($Z*RUD9~D&~UHVHZ0?5tH&CYCH%zpFb*MkGcX4Dq@BU#g- zG)aS6N67}5n%V;}(t@vE@#kNMFt7Rf`F)(Lk8Nvfqv}EkIt84cdt6;zRc=2dA*uR@ z-rmu%StzacCl8ob=O@$A(TRJZAA&&8f~oyDRqB7X0HY@&BC^w;o}Rt} z9N9TJ8DC-b#~JAK=F2@{#QOEN@ojJ6yNYMepTD0fH3dyXLPhmPRh1ZMS<`_ezW!vP zn9oG?%X@o+7suKt>`L6gMCrFc2m&P7ZonT0O|P`TRLK@dnVyx3^(<17xZ60Pm)sDJ>8(!{jo^k_oPDaZEkM9@J%AiPCO4GmvA$i z!ttFn+t9np+^{qJCD2w}p9F`D2cV^E#KKWU-K9N3n)mVx4z(83(TQeQ&o>(Aq*?Bb zm(~OalzlptI;d_A=XT{${f8~cLF3;VDz9-**0dCs#8=%C`%At#+ z)$c{=ur218Hw85kWsh!+w>|U5a91szs0(as`fld6bEbxWHj3``ME)6Vx!kgrRRRP< z`{&%j$EGkOA>}i}m;J>n&S$!$a{cyIUPxlk9`9cLrHnvpfg`mI?FB#Ft1*SZe^w=I zM0y3))e>J-Rk-<9#zWdL9;exQ3R9h-{aO!gy;7=6SAF>&I|Y@3XxoPnUln!QNXl(% zF<*b|7w2eOrzc-R6=%Kxs_Fkt#oXlwT1CcRC@3fd-((J78PRu8uyJp}jL}q^uUo=V z#U0TUl$5^p7JYFJsRlaR0#nv6lbXXa`dHK!}N6<(-x%gk-(e@ zpb{1rO^OX0FeNTecgxDkOo5$=px~A&f%2_dojnaM&?zbRJhuF)l-LG>4&W0Rb&3s4 zf&B+Ehu04I(l>tU!~FdG`T03WHhQKjtftG%u|N)x?Y=*c;wVyn@h}$s44O;3MAAl?Fv!mrA}z~H(uO#SwEg|mxGo%?>upyCWbN*p{qMj@eh z)Zak_GVgn4xU;hp8X3tXD3}l>h6=Txvk@2m08Xo^rBwz1wBBv^4UjiLqFMsFdKT6O zn2nX4-F!GhHX$+bTSCHX;D-SUt^z-|J#yp`gkD;6yRTtOz14@RE>Mf-$XDr|sj~eH zauFaeDuMe2!ko*z6CZMPd<@*2`RUFyaQEh>rv4=*oH`{&*&yhc38|?OxJLaO^|Js< z(WXWvkte%T=P;%Zs5{68sv6MEgP%WtB7GquA|ezoKM;dcE2W4~;^E-|d8WBN)z&6; zr!PRal~q@FwzmfXuO1yA-?cka!}{#m;?Y`PfGB2_cQ(ueM-3(9qVJ#{AVK<3CZ@7It<6fX2^{`ZzB(b5b`(bBI9aP9c%% zs;ZwrS*JW`cMY>R3`;UP0TsyI)`GjU9OqYU%0q0&VssH1tk>IrGH(L8F?5fCoL(7238OPb_Z#NguM z4t;nD&R{Jc&BEuJXaBm!el9`SoufdzXc=hP2x@`i*5<5}F+#2z z#9(~0>+7jN8CqJTQrLw>MU;Y$j{&u&*VZP0Ejrzs>x*WPrn)92p``4|*D7%3U=Irb zZE!cI1trZHrKQp3RR=(U@X!!$X_pPZZ1DK*BsIsD> zB5)ia6+XTVp;C@T~4 z^Yh;+kXJ0LkmJ7tD*%3gmeSDEdjmi*5eS*i&ZznWftCw`&xEvQE1i+xewKlN1YQO$ zLBx~C)YKFRA#`u=ODjJCkfg|h*cKFTesz8bs+OJ^&)-(4>J)*&VDz$Tr*-x9{Po{J z4g^}HA1o_!Cjh?#*vG@8Bb$+dp>+i_vnNua??4t(bZF9RX?PSwJX`A&SXlTR6Q5$J z5trb#lM}b6r)L%OuKMpJXb&C^4v2RUJuxhIv5WRwFDP)O0fB)|P-sVMtK`C3rO*Jb zrin?K9+Uzf2s!Z4KSMb<6AUTwKcj=Kj{K29_}4qF$k|RX{AWN9Uh|f2 a(LVdO-H%at@ecg+0HPqPEK@9H67U}yyIFYv diff --git a/classJson_1_1Object__coll__graph.map b/classJson_1_1Object__coll__graph.map deleted file mode 100644 index 9f6dffd0ee..0000000000 --- a/classJson_1_1Object__coll__graph.map +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/classJson_1_1Object__coll__graph.md5 b/classJson_1_1Object__coll__graph.md5 deleted file mode 100644 index 672771a1da..0000000000 --- a/classJson_1_1Object__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -99fc4aa8b6f4be4eed7cdad6b8a48574 \ No newline at end of file diff --git a/classJson_1_1Object__coll__graph.png b/classJson_1_1Object__coll__graph.png deleted file mode 100644 index 767faf0b6e2a6a19b3d7c48c74fdc32b01e64d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37996 zcmbq*cRZHu8~26my|Q=qCfOq^AtEwER>~eByUb*jl@cMvortWmWfUTnJtL!RnOW~~ zHJ;!5dH;PqpGOk+IIr_Oj_*3I+voMpkPsthP@Hw(MaBe@{myW?KVAa|z$^8Aff&g1DY)bUQfHtS^ z8YLs+wI#6vMj~?Z=w7FCU-~~!rfw9^-%l3y|Ga#RG!HMu@8A9JlR@Oahx_kal*WAj ze$1fMcX9BhxLsRHO^BWz*;D=OglAa+M0bu0V;bKPRPQaQ{e3$7bGmx$oajfc?WH$9 zgnL^{f_?|PKj+j+2Bw#)CNwANg9XLPreNH7ZM`5zR>^T zW2vCpb-CmJ9w+QQ;h&ckD)0D;L0nw?U3YiL;{&U@09q;M{-DRfX-}%{&ePx?9v*u5 z_!OOm z9drEf05>!=ls;ZFQ{ImZUW3@f4{4_?s@ya@Jj4)oF0QwRe$5et{#!#=VBtwdYj1ou zR2CH_hedC`BU&Fr$)#ztGG52cs^+P~@#NVvE?9&f#ck%c1eQC4gQhxWH`+w`6ct$n zFBYkkSk--edX8yvtcLFTk1za{%irE7ukFrd(+$&6Q-_}p$1^KdyIM-?C**MHzpL

@BGK6PjjF3m4&SXzUSLk+1c4Sz#ICu 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 diff --git a/classJson_1_1Object__inherit__graph.map b/classJson_1_1Object__inherit__graph.map deleted file mode 100644 index a15a33333b..0000000000 --- a/classJson_1_1Object__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/classJson_1_1Object__inherit__graph.md5 b/classJson_1_1Object__inherit__graph.md5 deleted file mode 100644 index 3a7b816df6..0000000000 --- a/classJson_1_1Object__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a0cfbcd0b1719f0f28ca3a0f3fc95ed8 \ No newline at end of file diff --git a/classJson_1_1Object__inherit__graph.png b/classJson_1_1Object__inherit__graph.png deleted file mode 100644 index b4e6764faafb64102d69f31854e56963104463cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6233 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 N1zA;@QmHqe{tLBS7Nh_G diff --git a/classJson_1_1StyledStreamWriter.html b/classJson_1_1StyledStreamWriter.html index 773676f4ea..bec502b74a 100644 --- a/classJson_1_1StyledStreamWriter.html +++ b/classJson_1_1StyledStreamWriter.html @@ -163,12 +163,12 @@ Private Attributes

Detailed Description

Writes a Value in JSON format in a human friendly way, to a stream rather than to a string.

The rules for line break and indent are as follow:

diff --git a/classbeast_1_1unit__test_1_1suite.html b/classbeast_1_1unit__test_1_1suite.html index 6709ab64d7..42edb00bed 100644 --- a/classbeast_1_1unit__test_1_1suite.html +++ b/classbeast_1_1unit__test_1_1suite.html @@ -953,7 +953,7 @@ template<class Condition >

Runs the suite.

-

Implemented in xrpl::test::AccountDelete_test, xrpl::AccountTxPaging_test, xrpl::AmendmentTable_test, xrpl::test::AMM_test, xrpl::test::AMMCalc_test, xrpl::test::AMMClawback_test, xrpl::test::AMMExtended_test, xrpl::test::Batch_test, xrpl::Check_test, xrpl::Clawback_test, xrpl::test::Credentials_test, xrpl::test::CrossingLimits_test, xrpl::test::Delegate_test, xrpl::test::DeliverMin_test, xrpl::test::DepositAuth_test, xrpl::test::DepositPreauth_test, xrpl::test::DID_test, xrpl::Discrepancy_test, xrpl::test::DNS_test, xrpl::test::Escrow_test, xrpl::test::EscrowToken_test, xrpl::test::FeeVote_test, xrpl::FixNFTokenPageLinks_test, xrpl::test::Flow_test, xrpl::test::Flow_manual_test, xrpl::Freeze_test, xrpl::test::HashRouter_test, xrpl::test::Invariants_test, xrpl::test::LedgerHistory_test, xrpl::LedgerLoad_test, xrpl::test::LedgerMaster_test, xrpl::test::LedgerReplay_test, xrpl::test::LedgerReplayer_test, xrpl::test::LedgerReplayerTimeout_test, xrpl::test::LedgerReplayerLong_test, xrpl::LoadFeeTrack_test, xrpl::test::Loan_test, xrpl::test::LoanBatch_test, xrpl::test::LoanArbitrary_test, xrpl::test::LoanBroker_test, xrpl::test::LPTokenTransfer_test, xrpl::test::Manifest_test, xrpl::test::MPToken_test, xrpl::test::MultiSign_test, xrpl::test::NetworkID_test, xrpl::test::NetworkOPs_test, xrpl::NFTokenBaseUtil_test, xrpl::NFTokenDisallowIncoming_test, xrpl::NFTokenWOMintOffer_test, xrpl::NFTokenWOModify_test, xrpl::NFTokenAllFeatures_test, xrpl::NFTokenAuth_test, xrpl::NFTokenBurn_test, xrpl::NFTokenDir_test, xrpl::test::OfferBaseUtil_test, xrpl::test::OfferWOSmallQOffers_test, xrpl::test::OfferAllFeatures_test, xrpl::test::Offer_manual_test, xrpl::OfferStream_test, xrpl::test::jtx::oracle::Oracle_test, xrpl::test::PlumpBook_test, xrpl::test::ThinBook_test, xrpl::test::OversizeMeta_test, xrpl::test::FindOversizeCross_test, xrpl::test::Path_test, xrpl::test::PayChan_test, xrpl::test::PayStrand_test, xrpl::test::PermissionedDEX_test, xrpl::test::PermissionedDomains_test, xrpl::test::PseudoTx_test, xrpl::test::RCLValidations_test, xrpl::test::ReducedOffer_test, xrpl::test::Regression_test, xrpl::test::SetAuth_test, xrpl::SetRegularKey_test, xrpl::test::SetTrust_test, xrpl::test::SHAMapStore_test, xrpl::test::TheoreticalQuality_test, xrpl::Ticket_test, xrpl::test::Transaction_ordering_test, xrpl::TrustAndBalance_test, xrpl::Apply_test, xrpl::test::TxQPosNegFlows_test, xrpl::test::TxQMetaInfo_test, xrpl::test::ValidatorKeys_test, xrpl::test::ValidatorList_test, xrpl::test::ValidatorSite_test, xrpl::Vault_test, xrpl::test::XChain_test, xrpl::test::XChainSim_test, xrpl::test::base_uint_test, xrpl::test::Buffer_test, xrpl::test::DetectCrash_test, xrpl::test::Expected_test, xrpl::FileUtilities_test, xrpl::hardened_hash_test, xrpl::tests::IntrusiveShared_test, xrpl::IOUAmount_test, xrpl::test::join_test, xrpl::KeyCache_test, xrpl::Number_test, xrpl::PerfLog_test, xrpl::StringUtilities_test, xrpl::TaggedCache_test, xrpl::test::units_test, xrpl::XRPAmount_test, beast::aged_set_test, beast::aged_map_test, beast::aged_multiset_test, beast::aged_multimap_test, beast::aged_unordered_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multiset_test, beast::aged_unordered_multimap_test, beast::abstract_clock_test, beast::basic_seconds_clock_test, xrpl::test::CurrentThreadName_test, io_latency_probe_test, beast::Journal_test, beast::PropertyStream_test, beast::Zero_test, beast::unit_test::print_test, beast::IP::IPEndpoint_test, beast::LexicalCast_test, beast::SemanticVersion_test, beast::XXHasher_test, xrpl::cryptoconditions::PreimageSha256_test, xrpl::test::ByzantineFailureSim_test, xrpl::test::Consensus_test, xrpl::test::DistributedValidators_test, xrpl::test::LedgerTiming_test, xrpl::test::LedgerTrie_test, xrpl::test::NegativeUNL_test, xrpl::test::NegativeUNLVoteInternal_test, xrpl::test::NegativeUNLVoteScoreTable_test, xrpl::test::NegativeUNLVoteGoodScore_test, xrpl::test::NegativeUNLVoteOffline_test, xrpl::test::NegativeUNLVoteMaxListed_test, xrpl::test::NegativeUNLVoteRetiredValidator_test, xrpl::test::NegativeUNLVoteNewValidator_test, xrpl::test::NegativeUNLVoteFilterValidations_test, xrpl::test::RCLCensorshipDetector_test, xrpl::test::ScaleFreeSim_test, xrpl::test::csf::Validations_test, xrpl::test::ClosureCounter_test, xrpl::Config_test, xrpl::test::Coroutine_test, xrpl::test::JobQueue_test, xrpl::SociDB_test, xrpl::Workers_test, xrpl::test::BasicNetwork_test, xrpl::test::Digraph_test, xrpl::test::Histogram_test, xrpl::test::Scheduler_test, Json::JsonObject_test, xrpl::test::Env_test, xrpl::test::WSClient_test, xrpl::test::BookDirs_test, xrpl::test::Directory_test, xrpl::test::PaymentSandbox_test, xrpl::test::PendingSaves_test, xrpl::test::SkipList_test, xrpl::test::View_test, xrpl::test::GetAmendments_test, xrpl::NodeStore::Backend_test, xrpl::NodeStore::NodeStoreBasic_test, xrpl::NodeStore::Database_test, xrpl::NodeStore::NuDBFactory_test, xrpl::NodeStore::Timing_test, xrpl::NodeStore::tests::varint_test, xrpl::tests::cluster_test, xrpl::test::compression_test, xrpl::test::handshake_test, xrpl::ProtocolVersion_test, xrpl::test::reduce_relay_test, xrpl::test::reduce_relay_simulate_test, xrpl::short_read_test, xrpl::test::traffic_count_test, xrpl::test::tx_reduce_relay_test, xrpl::PeerFinder::Livecache_test, xrpl::PeerFinder::PeerFinder_test, xrpl::test::ApiVersion_test, xrpl::BuildInfo_test, xrpl::Hooks_test, xrpl::InnerObjectFormatsParsedJSON_test, xrpl::Issue_test, xrpl::Memo_test, xrpl::test::MultiApiJson_test, xrpl::PublicKey_test, xrpl::Quality_test, xrpl::SecretKey_test, xrpl::Seed_test, xrpl::SeqProxy_test, xrpl::Serializer_test, xrpl::STAccount_test, xrpl::STAmount_test, xrpl::STInteger_test, xrpl::test::STIssue_test, xrpl::STNumber_test, xrpl::STObject_test, xrpl::STParsedJSON_test, xrpl::STTx_test, xrpl::InnerObjectFormatsSerializer_test, xrpl::STValidation_test, xrpl::TER_test, xrpl::Resource::ResourceManager_test, xrpl::AccountCurrencies_test, xrpl::test::AccountInfo_test, xrpl::RPC::AccountLines_test, xrpl::test::AccountObjects_test, xrpl::test::AccountOffers_test, xrpl::AccountSet_test, xrpl::test::AccountTx_test, xrpl::AmendmentBlocked_test, xrpl::test::AMMInfo_test, xrpl::test::Book_test, xrpl::test::BookChanges_test, xrpl::Connect_test, xrpl::test::DeliveredAmount_test, xrpl::test::DepositAuthorized_test, xrpl::Feature_test, xrpl::test::GatewayBalances_test, xrpl::test::jtx::oracle::GetAggregatePrice_test, xrpl::GetCounts_test, xrpl::test::Handler_test, xrpl::RPC::JSONRPC_test, xrpl::RPC::WalletPropose_test, xrpl::LedgerClosed_test, xrpl::LedgerData_test, xrpl::test::LedgerEntry_test, xrpl::test::LedgerEntry_XChain_test, xrpl::LedgerHeader_test, xrpl::RPC::LedgerRequest_test, xrpl::test::LedgerRPC_test, xrpl::test::ManifestRPC_test, xrpl::test::NoRipple_test, xrpl::NoRippleCheck_test, xrpl::NoRippleCheckLimits_test, xrpl::OwnerInfo_test, xrpl::Peers_test, xrpl::test::RobustTransaction_test, xrpl::test::Roles_test, xrpl::test::RPCCall_test, xrpl::test::RPCHelpers_test, xrpl::test::RPCOverload_test, xrpl::test::ServerDefinitions_test, xrpl::test::ServerInfo_test, xrpl::test::Simulate_test, xrpl::RPC::codeString_test, xrpl::RPC::fillJson_test, xrpl::test::Subscribe_test, xrpl::Transaction_test, xrpl::TransactionEntry_test, xrpl::TransactionHistory_test, xrpl::test::ValidatorInfo_test, xrpl::test::ValidatorRPC_test, xrpl::Version_test, xrpl::test::Server_test, xrpl::test::ServerStatus_test, xrpl::tests::FetchPack_test, xrpl::tests::SHAMap_test, xrpl::tests::SHAMapPathProof_test, and xrpl::tests::SHAMapSync_test.

+

Implemented in xrpl::test::AccountDelete_test, xrpl::AccountTxPaging_test, xrpl::AmendmentTable_test, xrpl::test::AMM_test, xrpl::test::AMMCalc_test, xrpl::test::AMMClawback_test, xrpl::test::AMMExtended_test, xrpl::test::Batch_test, xrpl::Check_test, xrpl::Clawback_test, xrpl::test::Credentials_test, xrpl::test::CrossingLimits_test, xrpl::test::Delegate_test, xrpl::test::DeliverMin_test, xrpl::test::DepositAuth_test, xrpl::test::DepositPreauth_test, xrpl::test::DID_test, xrpl::Discrepancy_test, xrpl::test::DNS_test, xrpl::test::Escrow_test, xrpl::test::EscrowToken_test, xrpl::test::FeeVote_test, xrpl::FixNFTokenPageLinks_test, xrpl::test::Flow_test, xrpl::test::Flow_manual_test, xrpl::Freeze_test, xrpl::test::HashRouter_test, xrpl::test::Invariants_test, xrpl::test::LedgerHistory_test, xrpl::LedgerLoad_test, xrpl::test::LedgerMaster_test, xrpl::test::LedgerReplay_test, xrpl::test::LedgerReplayer_test, xrpl::test::LedgerReplayerTimeout_test, xrpl::test::LedgerReplayerLong_test, xrpl::LoadFeeTrack_test, xrpl::test::Loan_test, xrpl::test::LoanBatch_test, xrpl::test::LoanArbitrary_test, xrpl::test::LoanBroker_test, xrpl::test::LPTokenTransfer_test, xrpl::test::Manifest_test, xrpl::test::MPToken_test, xrpl::test::MultiSign_test, xrpl::test::NetworkID_test, xrpl::test::NetworkOPs_test, xrpl::NFTokenBaseUtil_test, xrpl::NFTokenDisallowIncoming_test, xrpl::NFTokenWOMintOffer_test, xrpl::NFTokenWOModify_test, xrpl::NFTokenAllFeatures_test, xrpl::NFTokenAuth_test, xrpl::NFTokenBurn_test, xrpl::NFTokenDir_test, xrpl::test::OfferBaseUtil_test, xrpl::test::OfferWOSmallQOffers_test, xrpl::test::OfferAllFeatures_test, xrpl::test::Offer_manual_test, xrpl::OfferStream_test, xrpl::test::jtx::oracle::Oracle_test, xrpl::test::PlumpBook_test, xrpl::test::ThinBook_test, xrpl::test::OversizeMeta_test, xrpl::test::FindOversizeCross_test, xrpl::test::Path_test, xrpl::test::PayChan_test, xrpl::test::PayStrand_test, xrpl::test::PermissionedDEX_test, xrpl::test::PermissionedDomains_test, xrpl::test::PseudoTx_test, xrpl::test::RCLValidations_test, xrpl::test::ReducedOffer_test, xrpl::test::Regression_test, xrpl::test::SetAuth_test, xrpl::SetRegularKey_test, xrpl::test::SetTrust_test, xrpl::test::SHAMapStore_test, xrpl::test::TheoreticalQuality_test, xrpl::Ticket_test, xrpl::test::Transaction_ordering_test, xrpl::TrustAndBalance_test, xrpl::Apply_test, xrpl::test::TxQPosNegFlows_test, xrpl::test::TxQMetaInfo_test, xrpl::test::ValidatorKeys_test, xrpl::test::ValidatorList_test, xrpl::test::ValidatorSite_test, xrpl::Vault_test, xrpl::test::XChain_test, xrpl::test::XChainSim_test, xrpl::test::base_uint_test, xrpl::test::Buffer_test, xrpl::test::DetectCrash_test, xrpl::test::Expected_test, xrpl::FileUtilities_test, xrpl::hardened_hash_test, xrpl::tests::IntrusiveShared_test, xrpl::IOUAmount_test, xrpl::test::join_test, xrpl::KeyCache_test, xrpl::Number_test, xrpl::PerfLog_test, xrpl::StringUtilities_test, xrpl::TaggedCache_test, xrpl::test::units_test, xrpl::XRPAmount_test, beast::aged_set_test, beast::aged_map_test, beast::aged_multiset_test, beast::aged_multimap_test, beast::aged_unordered_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multiset_test, beast::aged_unordered_multimap_test, beast::abstract_clock_test, beast::basic_seconds_clock_test, xrpl::test::CurrentThreadName_test, io_latency_probe_test, beast::Journal_test, beast::PropertyStream_test, beast::Zero_test, beast::unit_test::print_test, beast::IP::IPEndpoint_test, beast::LexicalCast_test, beast::SemanticVersion_test, beast::XXHasher_test, xrpl::cryptoconditions::PreimageSha256_test, xrpl::test::ByzantineFailureSim_test, xrpl::test::Consensus_test, xrpl::test::DistributedValidators_test, xrpl::test::LedgerTiming_test, xrpl::test::LedgerTrie_test, xrpl::test::NegativeUNL_test, xrpl::test::NegativeUNLVoteInternal_test, xrpl::test::NegativeUNLVoteScoreTable_test, xrpl::test::NegativeUNLVoteGoodScore_test, xrpl::test::NegativeUNLVoteOffline_test, xrpl::test::NegativeUNLVoteMaxListed_test, xrpl::test::NegativeUNLVoteRetiredValidator_test, xrpl::test::NegativeUNLVoteNewValidator_test, xrpl::test::NegativeUNLVoteFilterValidations_test, xrpl::test::RCLCensorshipDetector_test, xrpl::test::ScaleFreeSim_test, xrpl::test::csf::Validations_test, xrpl::test::ClosureCounter_test, xrpl::Config_test, xrpl::test::Coroutine_test, xrpl::test::JobQueue_test, xrpl::SociDB_test, xrpl::Workers_test, xrpl::test::BasicNetwork_test, xrpl::test::Digraph_test, xrpl::test::Histogram_test, xrpl::test::Scheduler_test, xrpl::test::Env_test, xrpl::test::WSClient_test, xrpl::test::BookDirs_test, xrpl::test::Directory_test, xrpl::test::PaymentSandbox_test, xrpl::test::PendingSaves_test, xrpl::test::SkipList_test, xrpl::test::View_test, xrpl::test::GetAmendments_test, xrpl::NodeStore::Backend_test, xrpl::NodeStore::NodeStoreBasic_test, xrpl::NodeStore::Database_test, xrpl::NodeStore::NuDBFactory_test, xrpl::NodeStore::Timing_test, xrpl::NodeStore::tests::varint_test, xrpl::tests::cluster_test, xrpl::test::compression_test, xrpl::test::handshake_test, xrpl::ProtocolVersion_test, xrpl::test::reduce_relay_test, xrpl::test::reduce_relay_simulate_test, xrpl::short_read_test, xrpl::test::traffic_count_test, xrpl::test::tx_reduce_relay_test, xrpl::PeerFinder::Livecache_test, xrpl::PeerFinder::PeerFinder_test, xrpl::test::ApiVersion_test, xrpl::BuildInfo_test, xrpl::Hooks_test, xrpl::InnerObjectFormatsParsedJSON_test, xrpl::Issue_test, xrpl::Memo_test, xrpl::test::MultiApiJson_test, xrpl::PublicKey_test, xrpl::Quality_test, xrpl::SecretKey_test, xrpl::Seed_test, xrpl::SeqProxy_test, xrpl::Serializer_test, xrpl::STAccount_test, xrpl::STAmount_test, xrpl::STInteger_test, xrpl::test::STIssue_test, xrpl::STNumber_test, xrpl::STObject_test, xrpl::STParsedJSON_test, xrpl::STTx_test, xrpl::InnerObjectFormatsSerializer_test, xrpl::STValidation_test, xrpl::TER_test, xrpl::Resource::ResourceManager_test, xrpl::AccountCurrencies_test, xrpl::test::AccountInfo_test, xrpl::RPC::AccountLines_test, xrpl::test::AccountObjects_test, xrpl::test::AccountOffers_test, xrpl::AccountSet_test, xrpl::test::AccountTx_test, xrpl::AmendmentBlocked_test, xrpl::test::AMMInfo_test, xrpl::test::Book_test, xrpl::test::BookChanges_test, xrpl::Connect_test, xrpl::test::DeliveredAmount_test, xrpl::test::DepositAuthorized_test, xrpl::Feature_test, xrpl::test::GatewayBalances_test, xrpl::test::jtx::oracle::GetAggregatePrice_test, xrpl::GetCounts_test, xrpl::test::Handler_test, xrpl::RPC::JSONRPC_test, xrpl::RPC::WalletPropose_test, xrpl::LedgerClosed_test, xrpl::LedgerData_test, xrpl::test::LedgerEntry_test, xrpl::test::LedgerEntry_XChain_test, xrpl::LedgerHeader_test, xrpl::RPC::LedgerRequest_test, xrpl::test::LedgerRPC_test, xrpl::test::ManifestRPC_test, xrpl::test::NoRipple_test, xrpl::NoRippleCheck_test, xrpl::NoRippleCheckLimits_test, xrpl::OwnerInfo_test, xrpl::Peers_test, xrpl::test::RobustTransaction_test, xrpl::test::Roles_test, xrpl::test::RPCCall_test, xrpl::test::RPCHelpers_test, xrpl::test::RPCOverload_test, xrpl::test::ServerDefinitions_test, xrpl::test::ServerInfo_test, xrpl::test::Simulate_test, xrpl::RPC::codeString_test, xrpl::RPC::fillJson_test, xrpl::test::Subscribe_test, xrpl::Transaction_test, xrpl::TransactionEntry_test, xrpl::TransactionHistory_test, xrpl::test::ValidatorInfo_test, xrpl::test::ValidatorRPC_test, xrpl::Version_test, xrpl::test::Server_test, xrpl::test::ServerStatus_test, xrpl::tests::FetchPack_test, xrpl::tests::SHAMap_test, xrpl::tests::SHAMapPathProof_test, and xrpl::tests::SHAMapSync_test.

diff --git a/classes.html b/classes.html index af59121300..3c32ca5ecb 100644 --- a/classes.html +++ b/classes.html @@ -76,13 +76,13 @@ $(function() {
A
-
suite::abort_exception (beast::unit_test)
abstract_clock (beast)
abstract_clock_test (beast)
abstract_clock_wrapper (beast::detail)
AbstractClient (xrpl::test)
AbstractFetchPackContainer (xrpl)
AcceptedLedger (xrpl)
AcceptedLedgerTx (xrpl)
AcceptLedger (xrpl::test::csf)
short_read_test::Server::Acceptor (xrpl)
Account (xrpl::test::jtx)
account_txn_id (xrpl::test::jtx)
XChainSim_test::AccountCreate (xrpl::test)
AccountCurrencies_test (xrpl)
AccountDelete_test (xrpl::test)
AccountIdCache (xrpl::detail)
accountIDField (xrpl::test::jtx)
AccountIDTag (xrpl::detail)
AccountInfo_test (xrpl::test)
RippleLineCache::AccountKey (xrpl)
AccountLines_test (xrpl::RPC)
AccountObjects_test (xrpl::test)
AccountOffers_test (xrpl::test)
AccountRootsDeletedClean (xrpl)
AccountRootsNotDeleted (xrpl)
AccountSet_test (xrpl)
AccountStateSF (xrpl)
XChainSim_test::AccountStateTrack (xrpl::test)
AccountTx_test (xrpl::test)
RelationalDatabase::AccountTxArgs (xrpl)
RelationalDatabase::AccountTxMarker (xrpl)
RelationalDatabase::AccountTxOptions (xrpl)
RelationalDatabase::AccountTxPageOptions (xrpl)
AccountTxPaging_test (xrpl)
RelationalDatabase::AccountTxResult (xrpl)
RCLConsensus::Adaptor (xrpl)
Validations_test::Adaptor (xrpl::test::csf)
DeferredCredits::Adjustment (xrpl::detail)
adl_tester (beast)
adl_tester2 (beast::inner_adl_test)
aged_associative_container_extract_t (beast::detail)
aged_associative_container_extract_t< false > (beast::detail)
aged_associative_container_test_base (beast)
aged_container_iterator (beast::detail)
aged_map_test (beast)
aged_multimap_test (beast)
aged_multiset_test (beast)
aged_ordered_container (beast)
aged_ordered_container (beast::detail)
aged_set_test (beast)
aged_unordered_container (beast::detail)
aged_unordered_map_test (beast)
aged_unordered_multimap_test (beast)
aged_unordered_multiset_test (beast)
aged_unordered_set_test (beast)
aged_associative_container_test_base::AllocT (beast)
AmendmentBlocked_test (xrpl)
AmendmentSet (xrpl)
AmendmentState (xrpl)
AmendmentTable (xrpl)
AmendmentTable_test (xrpl)
AmendmentTableImpl (xrpl)
AMM (xrpl::test::jtx)
AMM_test (xrpl::test)
AMMBid (xrpl)
AMMCalc_test (xrpl::test)
AMMClawback (xrpl)
AMMClawback_test (xrpl::test)
AMMContext (xrpl)
AMMCreate (xrpl)
AMMDelete (xrpl)
AMMDeposit (xrpl)
AMMExtended_test (xrpl::test)
AMMInfo_test (xrpl::test)
AMMLiquidity (xrpl)
AMMOffer (xrpl)
QualityFunction::AMMTag (xrpl)
AMMTest (xrpl::test::jtx)
AMMTestBase (xrpl::test::jtx)
AMMVote (xrpl)
AMMWithdraw (xrpl)
amount (beast::unit_test)
amount (xrpl::test::jtx::token)
AmountSpec (xrpl)
CollectorRef::Any (xrpl::test::csf)
any_t (xrpl::test::jtx)
AnyAmount (xrpl::test::jtx)
ApiVersion_test (xrpl::test)
Env::AppBundle (xrpl::test::jtx)
Application (xrpl)
ApplicationImp (xrpl)
Apply_test (xrpl)
ApplyContext (xrpl)
ApplyResult (xrpl)
ApplyStateTable (xrpl::detail)
ApplyView (xrpl)
ApplyViewBase (xrpl::detail)
ApplyViewImpl (xrpl)
Array (Json)
as (xrpl::test::jtx::delegate)
Asset (xrpl)
Checker::async_op (xrpl::PeerFinder)
AsyncObject (xrpl)
AttestationBase (xrpl::Attestations)
AttestationClaim (xrpl::Attestations)
AttestationCreateAccount (xrpl::Attestations)
AuthorizeCredentials (xrpl::test::jtx::deposit)
autofill_t (xrpl::test::jtx)
AutoSocket
ConsensusParms::AvalancheCutoff (xrpl)
+
suite::abort_exception (beast::unit_test)
abstract_clock (beast)
abstract_clock_test (beast)
abstract_clock_wrapper (beast::detail)
AbstractClient (xrpl::test)
AbstractFetchPackContainer (xrpl)
AcceptedLedger (xrpl)
AcceptedLedgerTx (xrpl)
AcceptLedger (xrpl::test::csf)
short_read_test::Server::Acceptor (xrpl)
Account (xrpl::test::jtx)
account_txn_id (xrpl::test::jtx)
XChainSim_test::AccountCreate (xrpl::test)
AccountCurrencies_test (xrpl)
AccountDelete_test (xrpl::test)
AccountIdCache (xrpl::detail)
accountIDField (xrpl::test::jtx)
AccountIDTag (xrpl::detail)
AccountInfo_test (xrpl::test)
RippleLineCache::AccountKey (xrpl)
AccountLines_test (xrpl::RPC)
AccountObjects_test (xrpl::test)
AccountOffers_test (xrpl::test)
AccountRootsDeletedClean (xrpl)
AccountRootsNotDeleted (xrpl)
AccountSet_test (xrpl)
AccountStateSF (xrpl)
XChainSim_test::AccountStateTrack (xrpl::test)
AccountTx_test (xrpl::test)
RelationalDatabase::AccountTxArgs (xrpl)
RelationalDatabase::AccountTxMarker (xrpl)
RelationalDatabase::AccountTxOptions (xrpl)
RelationalDatabase::AccountTxPageOptions (xrpl)
AccountTxPaging_test (xrpl)
RelationalDatabase::AccountTxResult (xrpl)
RCLConsensus::Adaptor (xrpl)
Validations_test::Adaptor (xrpl::test::csf)
DeferredCredits::Adjustment (xrpl::detail)
adl_tester (beast)
adl_tester2 (beast::inner_adl_test)
aged_associative_container_extract_t (beast::detail)
aged_associative_container_extract_t< false > (beast::detail)
aged_associative_container_test_base (beast)
aged_container_iterator (beast::detail)
aged_map_test (beast)
aged_multimap_test (beast)
aged_multiset_test (beast)
aged_ordered_container (beast)
aged_ordered_container (beast::detail)
aged_set_test (beast)
aged_unordered_container (beast::detail)
aged_unordered_map_test (beast)
aged_unordered_multimap_test (beast)
aged_unordered_multiset_test (beast)
aged_unordered_set_test (beast)
aged_associative_container_test_base::AllocT (beast)
AmendmentBlocked_test (xrpl)
AmendmentSet (xrpl)
AmendmentState (xrpl)
AmendmentTable (xrpl)
AmendmentTable_test (xrpl)
AmendmentTableImpl (xrpl)
AMM (xrpl::test::jtx)
AMM_test (xrpl::test)
AMMBid (xrpl)
AMMCalc_test (xrpl::test)
AMMClawback (xrpl)
AMMClawback_test (xrpl::test)
AMMContext (xrpl)
AMMCreate (xrpl)
AMMDelete (xrpl)
AMMDeposit (xrpl)
AMMExtended_test (xrpl::test)
AMMInfo_test (xrpl::test)
AMMLiquidity (xrpl)
AMMOffer (xrpl)
QualityFunction::AMMTag (xrpl)
AMMTest (xrpl::test::jtx)
AMMTestBase (xrpl::test::jtx)
AMMVote (xrpl)
AMMWithdraw (xrpl)
amount (xrpl::test::jtx::token)
amount (beast::unit_test)
AmountSpec (xrpl)
CollectorRef::Any (xrpl::test::csf)
any_t (xrpl::test::jtx)
AnyAmount (xrpl::test::jtx)
ApiVersion_test (xrpl::test)
Env::AppBundle (xrpl::test::jtx)
Application (xrpl)
ApplicationImp (xrpl)
Apply_test (xrpl)
ApplyContext (xrpl)
ApplyResult (xrpl)
ApplyStateTable (xrpl::detail)
ApplyView (xrpl)
ApplyViewBase (xrpl::detail)
ApplyViewImpl (xrpl)
as (xrpl::test::jtx::delegate)
Asset (xrpl)
Checker::async_op (xrpl::PeerFinder)
AsyncObject (xrpl)
AttestationBase (xrpl::Attestations)
AttestationClaim (xrpl::Attestations)
AttestationCreateAccount (xrpl::Attestations)
AuthorizeCredentials (xrpl::test::jtx::deposit)
autofill_t (xrpl::test::jtx)
AutoSocket
ConsensusParms::AvalancheCutoff (xrpl)
B
Backend (xrpl::NodeStore)
Backend_test (xrpl::NodeStore)
bad_expected_access (xrpl)
BadLexicalCast (beast)
Balance (xrpl::test)
balance (xrpl::test::jtx)
TransfersNotFrozen::BalanceChange (xrpl)
BalanceTransfer (xrpl::test)
Barrier (xrpl::tests)
short_read_test::Base (xrpl)
base_uint (xrpl)
base_uint_test (xrpl::test)
BaseHTTPPeer (xrpl)
BasePeer (xrpl)
BaseWSPeer (xrpl)
Checker::basic_async_op (xrpl::PeerFinder)
basic_logstream (beast)
basic_prop (xrpl::test::jtx)
basic_seconds_clock (beast)
basic_seconds_clock_test (beast)
basic_semaphore (xrpl)
basic_sha512_half_hasher (xrpl::detail)
BasicApp
BasicConfig (xrpl)
BasicFullBelowCache (xrpl::detail)
BasicNetwork (xrpl::test::csf)
BasicNetwork_test (xrpl::test)
BasicSink (xrpl::test::csf)
LocalValues::BasicValue (xrpl::detail)
Batch (xrpl)
Batch_test (xrpl::test)
batch_view_t (xrpl)
BatchWriter (xrpl::NodeStore)
BatchWriteReport (xrpl::NodeStore)
BidArg (xrpl::test::jtx)
blobField (xrpl::test::jtx)
TrustedPublisherServer::BlobInfo (xrpl::test)
Book (xrpl)
book_t (xrpl::keylet)
Book_test (xrpl::test)
BookChanges_test (xrpl::test)
BookDirs (xrpl)
BookDirs_test (xrpl::test)
BookListeners (xrpl)
BookOfferCrossingStep (xrpl)
BookPaymentStep (xrpl)
BookSpec (xrpl::test::jtx)
BookStep (xrpl)
BookTip (xrpl)
Bootcache (xrpl::PeerFinder)
XChainSim_test::ChainStateTrack::BridgeCounters (xrpl::test)
BridgeDef (xrpl::test)
BridgeModify (xrpl)
Peer::BroadcastMesg (xrpl::test::csf)
brokerFee (xrpl::test::jtx::token)
Loan_test::BrokerInfo (xrpl::test)
ValidLoanBroker::BrokerInfo (xrpl)
Loan_test::BrokerParameters (xrpl::test)
aged_unordered_container::Buckets (beast::detail)
BaseHTTPPeer::buffer (xrpl)
Buffer (xrpl)
Buffer_test (xrpl::test)
BuildInfo_test (xrpl)
ByzantineFailureSim_test (xrpl::test)
C
-
DirectStepI::Cache (xrpl)
BookStep::Cache (xrpl)
AccountIdCache::CachedAccountID (xrpl::detail)
CachedView (xrpl)
CachedViewImpl (xrpl::detail)
BatchWriter::Callback (xrpl::NodeStore)
Workers::Callback (xrpl)
GRPCServerImpl::CallData (xrpl)
Scheduler::cancel_token (xrpl::test::csf)
CancelCheck (xrpl)
CancelOffer (xrpl)
CanCvtToNotTEC (xrpl)
CanCvtToNotTEC< TEFcodes > (xrpl)
CanCvtToNotTEC< TELcodes > (xrpl)
CanCvtToNotTEC< TEMcodes > (xrpl)
CanCvtToNotTEC< TERcodes > (xrpl)
CanCvtToNotTEC< TEScodes > (xrpl)
CanCvtToTER (xrpl)
CanCvtToTER< NotTEC > (xrpl)
CanCvtToTER< TECcodes > (xrpl)
CanCvtToTER< TEFcodes > (xrpl)
CanCvtToTER< TELcodes > (xrpl)
CanCvtToTER< TEMcodes > (xrpl)
CanCvtToTER< TERcodes > (xrpl)
CanCvtToTER< TEScodes > (xrpl)
NegativeUNLVote::Candidates (xrpl)
CanonicalTXSet (xrpl)
CaptureLogs (xrpl::test)
CaptureLogs::CaptureSink (xrpl::test)
case_results (xrpl::detail)
reporter::case_results (beast::unit_test::detail)
case_results (beast::unit_test)
CashCheck (xrpl)
XChainSim_test::ChainStateTrack (xrpl::test)
XChainSim_test::ChainStateTracker (xrpl::test)
Change (xrpl)
Charge (xrpl::Resource)
PeerImp::ChargeWithContext (xrpl)
Check_test (xrpl)
TER_test::CheckComparable (xrpl)
CheckDeliveredAmount (xrpl::test)
Checker (xrpl::PeerFinder)
CheckMessageLogs (xrpl::test)
CheckMessageLogs::CheckMessageSink (xrpl::test)
Checkpointer (xrpl)
CheckpointersCollection (xrpl)
DatabaseCon::CheckpointerSetup (xrpl)
OverlayImpl::Child (xrpl)
short_read_test::Base::Child (xrpl)
aged_unordered_container::chronological_t (beast::detail)
aged_ordered_container::chronological_t (beast::detail)
ci_equal_pred (beast::rfc2616::detail)
XChainSim_test::ChainStateTrack::Claims (xrpl::test)
Clawback (xrpl)
Clawback_test (xrpl)
Vault::ClawbackArgs (xrpl::test::jtx)
short_read_test::Client (xrpl)
ServerHandler::Setup::client_t (xrpl)
QualityFunction::CLOBLikeTag (xrpl)
CloseLedger (xrpl::test::csf)
ClosureCounter (xrpl)
ClosureCounter_test (xrpl::test)
Cluster (xrpl)
cluster_test (xrpl::tests)
ClusterNode (xrpl)
CmpByClaimID (xrpl::Attestations)
CmpByCreateCount (xrpl::Attestations)
codeString_test (xrpl::RPC)
CollectByNode (xrpl::test::csf)
Collection (Json)
Writer::Impl::Collection (Json)
CollectionAndDelimiter (xrpl)
CollectionAndDelimiter< char[N]> (xrpl)
CollectionAndDelimiter< Collection[N]> (xrpl)
Collector (beast::insight)
CollectorManager (xrpl)
CollectorManagerImp (xrpl)
CollectorRef (xrpl::test::csf)
CollectorRefs (xrpl::test::csf)
Collectors (xrpl::test::csf)
Compact (Json)
Cluster::Comparator (xrpl)
AsyncObject::CompletionCounter (xrpl)
compression_test (xrpl::test)
aged_associative_container_test_base::CompT (beast)
Condition (xrpl::cryptoconditions)
Config (xrpl)
Config (xrpl::PeerFinder)
aged_ordered_container::config_t (beast::detail)
aged_unordered_container::config_t (beast::detail)
Config_test (xrpl)
ConfigSection (xrpl)
Connect_test (xrpl)
ConnectAttempt (xrpl)
ConnectHandouts (xrpl::PeerFinder)
short_read_test::Server::Connection (xrpl)
short_read_test::Client::Connection (xrpl)
Consensus (xrpl)
Consensus_test (xrpl::test)
ConsensusCloseTimes (xrpl)
ConsensusParms (xrpl)
ConsensusProposal (xrpl)
ConsensusResult (xrpl)
ConsensusTimer (xrpl)
ConsensusTransSetSF (xrpl)
const_container (beast::unit_test::detail)
BookDirs::const_iterator (xrpl)
Dir::const_iterator (xrpl)
partitioned_unordered_map::const_iterator (xrpl)
SHAMap::const_iterator (xrpl)
ConstantDistribution (xrpl::test::csf)
Consumer (xrpl::Resource)
Context (xrpl::RPC)
aged_associative_container_test_base::ContType (beast)
aged_associative_container_test_base::ContType< Base, true > (beast)
CopyConst (beast::detail)
CopyConst< T const, U > (beast::detail)
JobQueue::Coro (xrpl)
Coro_create_t (xrpl)
Coroutine_test (xrpl::test)
CountedObject (xrpl)
CountedObjects (xrpl)
Counter (beast::insight)
CountedObjects::Counter (xrpl)
NetworkOPsImp::StateAccounting::CounterData (xrpl)
CounterImpl (beast::insight)
NetworkOPsImp::StateAccounting::Counters (xrpl)
PerfLogImp::Counters (xrpl::perf)
RelationalDatabase::CountMinMax (xrpl)
Counts (xrpl::PeerFinder)
create_genesis_t (xrpl)
CreateArg (xrpl::test::jtx::oracle)
CreateArg (xrpl::test::jtx)
Vault::CreateArgs (xrpl::test::jtx)
CreateCheck (xrpl)
CreateOffer (xrpl)
CreateTicket (xrpl)
CredentialAccept (xrpl)
CredentialCreate (xrpl)
CredentialDelete (xrpl)
Credentials_test (xrpl::test)
CrossingLimits_test (xrpl::test)
cryptoconditions_error_category (xrpl::cryptoconditions::detail)
csprng_engine (xrpl)
PerfLog_test::Cur (xrpl)
CurrencyTag (xrpl::detail)
Transaction::CurrentLedgerState (xrpl)
CurrentThreadName_test (xrpl::test)
CurrentTransactionRulesGuard (xrpl)
LedgerHistory::cv_entry (xrpl)
Value::CZString (Json)
+
DirectStepI::Cache (xrpl)
BookStep::Cache (xrpl)
AccountIdCache::CachedAccountID (xrpl::detail)
CachedView (xrpl)
CachedViewImpl (xrpl::detail)
BatchWriter::Callback (xrpl::NodeStore)
Workers::Callback (xrpl)
GRPCServerImpl::CallData (xrpl)
Scheduler::cancel_token (xrpl::test::csf)
CancelCheck (xrpl)
CancelOffer (xrpl)
CanCvtToNotTEC (xrpl)
CanCvtToNotTEC< TEFcodes > (xrpl)
CanCvtToNotTEC< TELcodes > (xrpl)
CanCvtToNotTEC< TEMcodes > (xrpl)
CanCvtToNotTEC< TERcodes > (xrpl)
CanCvtToNotTEC< TEScodes > (xrpl)
CanCvtToTER (xrpl)
CanCvtToTER< NotTEC > (xrpl)
CanCvtToTER< TECcodes > (xrpl)
CanCvtToTER< TEFcodes > (xrpl)
CanCvtToTER< TELcodes > (xrpl)
CanCvtToTER< TEMcodes > (xrpl)
CanCvtToTER< TERcodes > (xrpl)
CanCvtToTER< TEScodes > (xrpl)
NegativeUNLVote::Candidates (xrpl)
CanonicalTXSet (xrpl)
CaptureLogs (xrpl::test)
CaptureLogs::CaptureSink (xrpl::test)
case_results (xrpl::detail)
reporter::case_results (beast::unit_test::detail)
case_results (beast::unit_test)
CashCheck (xrpl)
XChainSim_test::ChainStateTrack (xrpl::test)
XChainSim_test::ChainStateTracker (xrpl::test)
Change (xrpl)
Charge (xrpl::Resource)
PeerImp::ChargeWithContext (xrpl)
Check_test (xrpl)
TER_test::CheckComparable (xrpl)
CheckDeliveredAmount (xrpl::test)
Checker (xrpl::PeerFinder)
CheckMessageLogs (xrpl::test)
CheckMessageLogs::CheckMessageSink (xrpl::test)
Checkpointer (xrpl)
CheckpointersCollection (xrpl)
DatabaseCon::CheckpointerSetup (xrpl)
OverlayImpl::Child (xrpl)
short_read_test::Base::Child (xrpl)
aged_unordered_container::chronological_t (beast::detail)
aged_ordered_container::chronological_t (beast::detail)
ci_equal_pred (beast::rfc2616::detail)
XChainSim_test::ChainStateTrack::Claims (xrpl::test)
Clawback (xrpl)
Clawback_test (xrpl)
Vault::ClawbackArgs (xrpl::test::jtx)
short_read_test::Client (xrpl)
ServerHandler::Setup::client_t (xrpl)
QualityFunction::CLOBLikeTag (xrpl)
CloseLedger (xrpl::test::csf)
ClosureCounter (xrpl)
ClosureCounter_test (xrpl::test)
Cluster (xrpl)
cluster_test (xrpl::tests)
ClusterNode (xrpl)
CmpByClaimID (xrpl::Attestations)
CmpByCreateCount (xrpl::Attestations)
codeString_test (xrpl::RPC)
CollectByNode (xrpl::test::csf)
Writer::Impl::Collection (Json)
CollectionAndDelimiter (xrpl)
CollectionAndDelimiter< char[N]> (xrpl)
CollectionAndDelimiter< Collection[N]> (xrpl)
Collector (beast::insight)
CollectorManager (xrpl)
CollectorManagerImp (xrpl)
CollectorRef (xrpl::test::csf)
CollectorRefs (xrpl::test::csf)
Collectors (xrpl::test::csf)
Compact (Json)
Cluster::Comparator (xrpl)
AsyncObject::CompletionCounter (xrpl)
compression_test (xrpl::test)
aged_associative_container_test_base::CompT (beast)
Condition (xrpl::cryptoconditions)
Config (xrpl)
Config (xrpl::PeerFinder)
aged_unordered_container::config_t (beast::detail)
aged_ordered_container::config_t (beast::detail)
Config_test (xrpl)
ConfigSection (xrpl)
Connect_test (xrpl)
ConnectAttempt (xrpl)
ConnectHandouts (xrpl::PeerFinder)
short_read_test::Client::Connection (xrpl)
short_read_test::Server::Connection (xrpl)
Consensus (xrpl)
Consensus_test (xrpl::test)
ConsensusCloseTimes (xrpl)
ConsensusParms (xrpl)
ConsensusProposal (xrpl)
ConsensusResult (xrpl)
ConsensusTimer (xrpl)
ConsensusTransSetSF (xrpl)
const_container (beast::unit_test::detail)
BookDirs::const_iterator (xrpl)
SHAMap::const_iterator (xrpl)
partitioned_unordered_map::const_iterator (xrpl)
Dir::const_iterator (xrpl)
ConstantDistribution (xrpl::test::csf)
Consumer (xrpl::Resource)
Context (xrpl::RPC)
aged_associative_container_test_base::ContType (beast)
aged_associative_container_test_base::ContType< Base, true > (beast)
CopyConst (beast::detail)
CopyConst< T const, U > (beast::detail)
JobQueue::Coro (xrpl)
Coro_create_t (xrpl)
Coroutine_test (xrpl::test)
CountedObject (xrpl)
CountedObjects (xrpl)
Counter (beast::insight)
CountedObjects::Counter (xrpl)
NetworkOPsImp::StateAccounting::CounterData (xrpl)
CounterImpl (beast::insight)
NetworkOPsImp::StateAccounting::Counters (xrpl)
PerfLogImp::Counters (xrpl::perf)
RelationalDatabase::CountMinMax (xrpl)
Counts (xrpl::PeerFinder)
create_genesis_t (xrpl)
CreateArg (xrpl::test::jtx)
CreateArg (xrpl::test::jtx::oracle)
Vault::CreateArgs (xrpl::test::jtx)
CreateCheck (xrpl)
CreateOffer (xrpl)
CreateTicket (xrpl)
CredentialAccept (xrpl)
CredentialCreate (xrpl)
CredentialDelete (xrpl)
Credentials_test (xrpl::test)
CrossingLimits_test (xrpl::test)
cryptoconditions_error_category (xrpl::cryptoconditions::detail)
csprng_engine (xrpl)
PerfLog_test::Cur (xrpl)
CurrencyTag (xrpl::detail)
Transaction::CurrentLedgerState (xrpl)
CurrentThreadName_test (xrpl::test)
CurrentTransactionRulesGuard (xrpl)
LedgerHistory::cv_entry (xrpl)
Value::CZString (Json)
D
data (xrpl::test::jtx::did)
Database (xrpl::NodeStore)
Database_test (xrpl::NodeStore)
DatabaseCon (xrpl)
DatabaseNodeImp (xrpl::NodeStore)
DatabasePairValid (xrpl::detail)
DatabaseRotating (xrpl::NodeStore)
DatabaseRotatingImp (xrpl::NodeStore)
DBConfig (xrpl)
DebugSink (xrpl)
DecayingSample (xrpl)
DecayWindow (xrpl)
DecodedBlob (xrpl::NodeStore)
defaultObject_t (xrpl::detail)
DefaultValueAllocator (Json)
DeferredCredits (xrpl::detail)
Delegate_test (xrpl::test)
DelegateSet (xrpl)
DeleteAccount (xrpl)
Vault::DeleteArgs (xrpl::test::jtx)
DeleteOracle (xrpl)
DeliveredAmount_test (xrpl::test)
DeliverMin (xrpl::test::jtx::check)
delivermin (xrpl::test::jtx)
DeliverMin_test (xrpl::test)
DepositArg (xrpl::test::jtx)
Vault::DepositArgs (xrpl::test::jtx)
DepositAuth_test (xrpl::test)
DepositAuthorized_test (xrpl::test)
DepositPreauth (xrpl)
DepositPreauth_test (xrpl::test)
dest_tag (xrpl::test::jtx)
destination (xrpl::test::jtx::token)
DetectCrash_test (xrpl::test)
Door::Detector (xrpl)
DID_test (xrpl::test)
DIDDelete (xrpl)
DIDSet (xrpl)
DigestAwareReadView (xrpl)
Digraph (xrpl::test::csf)
Digraph_test (xrpl::test)
Dir (xrpl)
DirectIOfferCrossingStep (xrpl)
DirectIPaymentStep (xrpl)
Directory_test (xrpl::test)
DirectoryTag (xrpl::detail)
DirectStepI (xrpl)
DirectStepInfo (xrpl::test)
DirGuard (xrpl::detail)
disabled_t (xrpl::test::jtx)
Discrepancy_test (xrpl)
DisputedTx (xrpl)
Consensus_test::Disruptor (xrpl::test)
DistributedValidators_test (xrpl::test)
divider (beast)
DNS_test (xrpl::test)
document (xrpl::test::jtx::did)
domain (xrpl::test::jtx)
Door (xrpl)
dtag (xrpl::test::jtx)
DummyPeerSet (xrpl)
DummyScheduler (xrpl::NodeStore)
DummyValueAllocatorInitializer (Json)
DynamicCastTagSharedIntrusive (xrpl)
@@ -103,7 +103,7 @@ $(function() {
CollectorRef::ICollector (xrpl::test::csf)
ids (xrpl::test::jtx::credentials)
Rules::Impl (xrpl)
Writer::Impl (Json)
Import (xrpl::Resource)
InboundLedger (xrpl)
InboundLedgers (xrpl)
InboundLedgersImp (xrpl)
InboundTransactions (xrpl)
InboundTransactionSet (xrpl)
InboundTransactionsImp (xrpl)
increment_t (xrpl::test::jtx)
InfoSub (xrpl)
InfoSubRequest (xrpl)
multi_runner_base::inner (xrpl::detail)
inner (xrpl::test::jtx::batch)
InnerObjectFormats (xrpl)
InnerObjectFormatsParsedJSON_test (xrpl)
InnerObjectFormatsSerializer_test (xrpl)
RippleCalc::Input (xrpl::path)
insert_suite (beast::unit_test::detail)
Ledger::Instance (xrpl::test::csf)
Zero_test::IntegerWrapper (beast)
IntrusiveRefCounts (xrpl)
IntrusiveShared_test (xrpl::tests)
InvariantChecker_PROTOTYPE (xrpl)
Invariants_test (xrpl::test)
invoice_id (xrpl::test::jtx)
io_latency_probe (beast)
io_latency_probe_test
ApplicationImp::io_latency_sampler (xrpl)
io_list (xrpl)
IOU (xrpl::test::jtx)
IOUAmount (xrpl)
IOUAmount_test (xrpl)
IPAddressConversion (beast)
IPEndpoint_test (beast::IP)
is_aged_container (beast)
is_aged_container< beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator > > (beast)
is_aged_container< beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator > > (beast)
is_boost_reverse_iterator (beast::detail)
is_boost_reverse_iterator< boost::intrusive::reverse_iterator< It > > (beast::detail)
is_contiguous_container (xrpl::detail)
is_contiguous_container< Container, std::void_t< decltype(std::declval< Container const >().size()), decltype(std::declval< Container const >().data()), typename Container::value_type > > (xrpl::detail)
is_contiguous_container< Slice > (xrpl::detail)
is_contiguously_hashable (beast)
is_contiguously_hashable< T[N], HashAlgorithm > (beast)
is_contiguously_hashable< xrpl::tagged_integer< Int, Tag >, HashAlgorithm > (beast)
is_empty_base_optimization_derived (beast::detail)
is_error_code_enum< xrpl::cryptoconditions::error > (std)
is_error_code_enum< xrpl::TokenCodecErrc > (std)
is_uniquely_represented (beast)
is_uniquely_represented< std::array< T, N > > (beast)
is_uniquely_represented< std::pair< T, U > > (beast)
is_uniquely_represented< std::tuple< T... > > (beast)
is_uniquely_represented< T const > (beast)
is_uniquely_represented< T const volatile > (beast)
is_uniquely_represented< T volatile > (beast)
is_uniquely_represented< T[N]> (beast)
is_uniquely_represented< xrpl::base_uint< Bits, Tag > > (beast)
Issue (xrpl)
Issue_test (xrpl)
issuer (xrpl::test::jtx::token)
TransfersNotFrozen::IssuerChanges (xrpl)
PropertyStream::Item (beast)
KnownFormats::Item (xrpl)
Gossip::Item (xrpl::Resource)
Import::Item (xrpl::Resource)
ReadViewFwdRange::iterator (xrpl::detail)
partitioned_unordered_map::iterator (xrpl)
J
-
Job (xrpl)
JobQueue (xrpl)
JobQueue_test (xrpl::test)
JobTypeData (xrpl)
JobTypeInfo (xrpl)
JobTypes (xrpl)
join_test (xrpl::test)
Journal (beast)
Journal_test (beast)
PerfLogImp::Counters::Jq (xrpl::perf)
JSON (antithesis)
json (xrpl::test::jtx)
json_body (xrpl)
JSONArray (antithesis)
JsonContext (xrpl::RPC)
JsonMissingKeyError (Json)
JsonObject_test (Json)
JsonOptions (xrpl)
JsonPropertyStream (xrpl)
JSONRPC_test (xrpl::RPC)
JSONRPCClient (xrpl::test)
JsonTypeMismatchError (Json)
JTx (xrpl::test::jtx)
JTxField (xrpl::test::jtx)
JTxField< SField, StoredValue, StoredValue > (xrpl::test::jtx)
JTxFieldWrapper (xrpl::test::jtx)
JTxFieldWrapper< blobField > (xrpl::test::jtx)
JumpCollector::Jump (xrpl::test::csf)
JumpCollector (xrpl::test::csf)
+
Job (xrpl)
JobQueue (xrpl)
JobQueue_test (xrpl::test)
JobTypeData (xrpl)
JobTypeInfo (xrpl)
JobTypes (xrpl)
join_test (xrpl::test)
Journal (beast)
Journal_test (beast)
PerfLogImp::Counters::Jq (xrpl::perf)
JSON (antithesis)
json (xrpl::test::jtx)
json_body (xrpl)
JSONArray (antithesis)
JsonContext (xrpl::RPC)
JsonMissingKeyError (Json)
JsonOptions (xrpl)
JsonPropertyStream (xrpl)
JSONRPC_test (xrpl::RPC)
JSONRPCClient (xrpl::test)
JsonTypeMismatchError (Json)
JTx (xrpl::test::jtx)
JTxField (xrpl::test::jtx)
JTxField< SField, StoredValue, StoredValue > (xrpl::test::jtx)
JTxFieldWrapper (xrpl::test::jtx)
JTxFieldWrapper< blobField > (xrpl::test::jtx)
JumpCollector::Jump (xrpl::test::csf)
JumpCollector (xrpl::test::csf)
K
Validations::KeepRange (xrpl)
CanonicalTXSet::Key (xrpl)
Key (xrpl::Resource)
Key::key_equal (xrpl::Resource)
key_strings (xrpl::RPC)
KeyCache_test (xrpl)
KeyEqual (xrpl)
Keylet (xrpl)
keyletDesc (xrpl)
TaggedCache::KeyOnlyEntry (xrpl)
ValidatorKeys::Keys (xrpl)
aged_ordered_container::KeyValueCompare (beast::detail)
aged_unordered_container::KeyValueEqual (beast::detail)
KnownFormats (xrpl)
@@ -118,16 +118,16 @@ $(function() {
NegativeUNL_test (xrpl::test)
NegativeUNLVote (xrpl)
NegativeUNLVoteFilterValidations_test (xrpl::test)
NegativeUNLVoteGoodScore_test (xrpl::test)
NegativeUNLVoteInternal_test (xrpl::test)
NegativeUNLVoteMaxListed_test (xrpl::test)
NegativeUNLVoteNewValidator_test (xrpl::test)
NegativeUNLVoteOffline_test (xrpl::test)
NegativeUNLVoteRetiredValidator_test (xrpl::test)
NegativeUNLVoteScoreTable_test (xrpl::test)
NetClock (xrpl)
Network (xrpl::test)
NetworkHistory (xrpl::test)
NetworkID_test (xrpl::test)
NetworkOfTwo (xrpl::test)
NetworkOPs (xrpl)
NetworkOPs_test (xrpl::test)
NetworkOPsImp (xrpl)
next_t (xrpl::keylet)
nflags (xrpl::test::jtx)
NFTokenAcceptOffer (xrpl)
NFTokenAllFeatures_test (xrpl)
NFTokenAuth_test (xrpl)
NFTokenBaseUtil_test (xrpl)
NFTokenBurn (xrpl)
NFTokenBurn_test (xrpl)
NFTokenCancelOffer (xrpl)
NFTokenCountTracking (xrpl)
NFTokenCreateOffer (xrpl)
NFTokenDir_test (xrpl)
NFTokenDisallowIncoming_test (xrpl)
NFTokenMint (xrpl)
NFTokenModify (xrpl)
NFTokenWOMintOffer_test (xrpl)
NFTokenWOModify_test (xrpl)
NoBadOffers (xrpl)
Validations_test::Node (xrpl::test::csf)
LockFreeStack::Node (beast)
Node (xrpl::ledger_trie_detail)
NoDeepFreezeTrustLinesWithoutFreeze (xrpl)
NodeFamily (xrpl)
NodeIDTag (xrpl::detail)
NodeObject (xrpl)
AccountTx_test::NodeSanity (xrpl::test)
NodeStoreBasic_test (xrpl::NodeStore)
NodeStoreScheduler (xrpl)
NoEdgeData (xrpl::detail)
NoModifiedUnmodifiableFields (xrpl)
None (xrpl::test::jtx)
none_t (xrpl::test::jtx)
nonhash (xrpl::test)
nonPresentObject_t (xrpl::detail)
NoRipple_test (xrpl::test)
NoRippleCheck_test (xrpl)
NoRippleCheckLimits_test (xrpl)
TER_test::NotConvertible (xrpl)
NoXRPTrustLines (xrpl)
NoZeroEscrow (xrpl)
NuDBBackend (xrpl::NodeStore)
NuDBFactory (xrpl::NodeStore)
NuDBFactory_test (xrpl::NodeStore)
NullBackend (xrpl::NodeStore)
NullCollector (beast::insight)
NullCollector (xrpl::test::csf)
NullCollectorImp (beast::insight::detail)
NullCounterImpl (beast::insight::detail)
NullEventImpl (beast::insight::detail)
NullFactory (xrpl::NodeStore)
NullGaugeImpl (beast::insight::detail)
NullHookImpl (beast::insight::detail)
NullJournalSink (beast)
NullMeterImpl (beast::insight::detail)
Number (xrpl)
Number_test (xrpl)
NumberParts (xrpl)
NumberRoundModeGuard (xrpl)
NumberSO (xrpl)
O
-
Object (Json)
Offer_manual_test (xrpl::test)
OfferAllFeatures_test (xrpl::test)
OfferBaseUtil_test (xrpl::test)
OfferStream (xrpl)
OfferStream_test (xrpl)
OfferWOSmallQOffers_test (xrpl::test)
open_ledger_t (xrpl)
OpenLedger (xrpl)
openssl_ripemd160_hasher (xrpl)
openssl_sha256_hasher (xrpl)
openssl_sha512_hasher (xrpl)
OpenView (xrpl)
OptionaledField (xrpl)
STObject::OptionalProxy (xrpl)
Oracle (xrpl::test::jtx::oracle)
Oracle_test (xrpl::test::jtx::oracle)
OrderBookDB (xrpl)
TxQ::OrderCandidates (xrpl)
RippleCalc::Output (xrpl::path)
Overlay (xrpl)
Overlay (xrpl::test)
OverlayImpl (xrpl)
OverlaySim (xrpl::test)
OversizeMeta_test (xrpl::test)
owner (xrpl::test::jtx::token)
owner_count (xrpl::test::jtx)
OwnerInfo_test (xrpl)
owners (xrpl::test::jtx)
+
Offer_manual_test (xrpl::test)
OfferAllFeatures_test (xrpl::test)
OfferBaseUtil_test (xrpl::test)
OfferStream (xrpl)
OfferStream_test (xrpl)
OfferWOSmallQOffers_test (xrpl::test)
open_ledger_t (xrpl)
OpenLedger (xrpl)
openssl_ripemd160_hasher (xrpl)
openssl_sha256_hasher (xrpl)
openssl_sha512_hasher (xrpl)
OpenView (xrpl)
OptionaledField (xrpl)
STObject::OptionalProxy (xrpl)
Oracle (xrpl::test::jtx::oracle)
Oracle_test (xrpl::test::jtx::oracle)
OrderBookDB (xrpl)
TxQ::OrderCandidates (xrpl)
RippleCalc::Output (xrpl::path)
Overlay (xrpl)
Overlay (xrpl::test)
OverlayImpl (xrpl)
OverlaySim (xrpl::test)
OversizeMeta_test (xrpl::test)
owner (xrpl::test::jtx::token)
owner_count (xrpl::test::jtx)
OwnerInfo_test (xrpl)
owners (xrpl::test::jtx)
P
-
packed_spinlock (xrpl)
aged_ordered_container::pair_value_compare (beast::detail)
Timing_test::parallel_for_lambda (xrpl::NodeStore)
LedgerServer::Parameter (xrpl::test)
NetworkHistory::Parameter (xrpl::test)
Timing_test::Params (xrpl::NodeStore)
parse_error (xrpl::test::jtx)
ParsedPort (xrpl)
Env::ParsedResult (xrpl::test::jtx)
parsedURL (xrpl)
partitioned_unordered_map (xrpl)
FlowDebugInfo::PassInfo (xrpl::path::detail)
path (xrpl::test::jtx)
Path (xrpl::test)
Path_test (xrpl::test)
Pathfinder (xrpl)
PathFindTrustLine (xrpl)
Pathfinder::PathRank (xrpl)
PathRequest (xrpl)
PathRequests (xrpl)
paths (xrpl::test::jtx)
PathSet (xrpl::test)
Workers::PausedTag (xrpl)
PayChan_test (xrpl::test)
PayChanClaim (xrpl)
PayChanCreate (xrpl)
PayChanFund (xrpl)
Payment (xrpl)
PaymentComponents (xrpl::detail)
Loan_test::PaymentParameters (xrpl::test)
PaymentSandbox (xrpl)
PaymentSandbox_test (xrpl::test)
PayStrand_test (xrpl::test)
Peer (xrpl)
BasicNetwork_test::Peer (xrpl::test)
Peer (xrpl::test::csf)
peer_in_cluster (xrpl)
peer_in_set (xrpl)
PeerDataCounts (xrpl::detail)
PeerFinder_test (xrpl::PeerFinder)
PeerGroup (xrpl::test::csf)
PeerImp (xrpl)
Slot::PeerInfo (xrpl::reduce_relay)
PeerPartial (xrpl::test)
PeerReservation (xrpl)
PeerReservationTable (xrpl)
Peers_test (xrpl)
PeerSet (xrpl)
PeerSetBuilder (xrpl)
PeerSetBuilderImpl (xrpl)
PeerSetImpl (xrpl)
PeerSim (xrpl::test)
tx_reduce_relay_test::PeerTest (xrpl::test)
PendingSaves (xrpl)
PendingSaves_test (xrpl::test)
PerfLog (xrpl::perf)
PerfLog_test (xrpl)
PerfLogImp (xrpl::perf)
PerfLogTest (xrpl::perf)
Permission (xrpl)
PermissionedDEX (xrpl::test::jtx)
PermissionedDEX_test (xrpl::test)
PermissionedDomainDelete (xrpl)
PermissionedDomains_test (xrpl::test)
PermissionedDomainSet (xrpl)
PlainHTTPPeer (xrpl)
PlainWSPeer (xrpl)
PlumpBook_test (xrpl::test)
Port (xrpl)
Peer::Position (xrpl::test::csf)
PowerLawDistribution (xrpl::test::csf)
Preamble (xrpl::cryptoconditions::der)
PreclaimContext (xrpl)
PreclaimResult (xrpl)
PreflightContext (xrpl)
PreflightResult (xrpl)
PreimageSha256 (xrpl::cryptoconditions)
PreimageSha256_test (xrpl::cryptoconditions)
PrettyAmount (xrpl::test::jtx)
PrettyAsset (xrpl::test::jtx)
print_test (beast::unit_test)
SField::private_access_tag_t (xrpl)
NodeObject::PrivateAccess (xrpl)
Account::privateCtorTag (xrpl::test::jtx)
Peer::ProcessingDelays (xrpl::test::csf)
Processor (xrpl)
progress (xrpl::NodeStore)
prop (xrpl::test::jtx)
JTx::prop_list (xrpl::test::jtx)
prop_type (xrpl::test::jtx)
PropertyStream (beast)
PropertyStream_test (beast)
ProtocolVersion_test (xrpl)
PropertyStream::Proxy (beast)
Object::Proxy (Json)
STObject::Proxy (xrpl)
PseudoTx_test (xrpl::test)
PublicKey (xrpl)
PublicKey_test (xrpl)
ValidatorList::PublisherList (xrpl)
ValidatorList::PublisherListCollection (xrpl)
ValidatorList::PublisherListStats (xrpl)
+
packed_spinlock (xrpl)
aged_ordered_container::pair_value_compare (beast::detail)
Timing_test::parallel_for_lambda (xrpl::NodeStore)
LedgerServer::Parameter (xrpl::test)
NetworkHistory::Parameter (xrpl::test)
Timing_test::Params (xrpl::NodeStore)
parse_error (xrpl::test::jtx)
ParsedPort (xrpl)
Env::ParsedResult (xrpl::test::jtx)
parsedURL (xrpl)
partitioned_unordered_map (xrpl)
FlowDebugInfo::PassInfo (xrpl::path::detail)
path (xrpl::test::jtx)
Path (xrpl::test)
Path_test (xrpl::test)
Pathfinder (xrpl)
PathFindTrustLine (xrpl)
Pathfinder::PathRank (xrpl)
PathRequest (xrpl)
PathRequests (xrpl)
paths (xrpl::test::jtx)
PathSet (xrpl::test)
Workers::PausedTag (xrpl)
PayChan_test (xrpl::test)
PayChanClaim (xrpl)
PayChanCreate (xrpl)
PayChanFund (xrpl)
Payment (xrpl)
PaymentComponents (xrpl::detail)
Loan_test::PaymentParameters (xrpl::test)
PaymentSandbox (xrpl)
PaymentSandbox_test (xrpl::test)
PayStrand_test (xrpl::test)
Peer (xrpl)
BasicNetwork_test::Peer (xrpl::test)
Peer (xrpl::test::csf)
peer_in_cluster (xrpl)
peer_in_set (xrpl)
PeerDataCounts (xrpl::detail)
PeerFinder_test (xrpl::PeerFinder)
PeerGroup (xrpl::test::csf)
PeerImp (xrpl)
Slot::PeerInfo (xrpl::reduce_relay)
PeerPartial (xrpl::test)
PeerReservation (xrpl)
PeerReservationTable (xrpl)
Peers_test (xrpl)
PeerSet (xrpl)
PeerSetBuilder (xrpl)
PeerSetBuilderImpl (xrpl)
PeerSetImpl (xrpl)
PeerSim (xrpl::test)
tx_reduce_relay_test::PeerTest (xrpl::test)
PendingSaves (xrpl)
PendingSaves_test (xrpl::test)
PerfLog (xrpl::perf)
PerfLog_test (xrpl)
PerfLogImp (xrpl::perf)
PerfLogTest (xrpl::perf)
Permission (xrpl)
PermissionedDEX (xrpl::test::jtx)
PermissionedDEX_test (xrpl::test)
PermissionedDomainDelete (xrpl)
PermissionedDomains_test (xrpl::test)
PermissionedDomainSet (xrpl)
PlainHTTPPeer (xrpl)
PlainWSPeer (xrpl)
PlumpBook_test (xrpl::test)
Port (xrpl)
Peer::Position (xrpl::test::csf)
PowerLawDistribution (xrpl::test::csf)
Preamble (xrpl::cryptoconditions::der)
PreclaimContext (xrpl)
PreclaimResult (xrpl)
PreflightContext (xrpl)
PreflightResult (xrpl)
PreimageSha256 (xrpl::cryptoconditions)
PreimageSha256_test (xrpl::cryptoconditions)
PrettyAmount (xrpl::test::jtx)
PrettyAsset (xrpl::test::jtx)
print_test (beast::unit_test)
SField::private_access_tag_t (xrpl)
NodeObject::PrivateAccess (xrpl)
Account::privateCtorTag (xrpl::test::jtx)
Peer::ProcessingDelays (xrpl::test::csf)
Processor (xrpl)
progress (xrpl::NodeStore)
prop (xrpl::test::jtx)
JTx::prop_list (xrpl::test::jtx)
prop_type (xrpl::test::jtx)
PropertyStream (beast)
PropertyStream_test (beast)
ProtocolVersion_test (xrpl)
PropertyStream::Proxy (beast)
STObject::Proxy (xrpl)
PseudoTx_test (xrpl::test)
PublicKey (xrpl)
PublicKey_test (xrpl)
ValidatorList::PublisherList (xrpl)
ValidatorList::PublisherListCollection (xrpl)
ValidatorList::PublisherListStats (xrpl)
Q
Quality_test (xrpl)
QualityFunction (xrpl)
qualityIn (xrpl::test::jtx)
qualityInPercent (xrpl::test::jtx)
qualityOut (xrpl::test::jtx)
qualityOutPercent (xrpl::test::jtx)
HTTPClientImp::Query (xrpl)
Scheduler::queue_type (xrpl::test::csf)
TimeoutCounter::QueueJobParameter (xrpl)
R
-
RandomAccountParams (xrpl::test)
Rate (xrpl)
Rate (xrpl::test::csf)
TaggedPointer::RawAllocateTag (xrpl)
RawStateTable (xrpl::detail)
RawView (xrpl)
RCLCensorshipDetector (xrpl)
RCLCensorshipDetector_test (xrpl::test)
RCLConsensus (xrpl)
RclConsensusLogger (xrpl)
RCLCxLedger (xrpl)
RCLCxPeerPos (xrpl)
RCLCxTx (xrpl)
RCLTxSet (xrpl)
RCLValidatedLedger (xrpl)
RCLValidation (xrpl)
RCLValidations_test (xrpl::test)
RCLValidationsAdaptor (xrpl)
Reader (Json)
json_body::reader (xrpl)
ReadView (xrpl)
ReadViewFwdIter (xrpl::detail)
ReadViewFwdRange (xrpl::detail)
aged_associative_container_test_base::AllocT::rebind (beast)
Receive (xrpl::test::csf)
SlotImp::recent_t (xrpl::PeerFinder)
recorder (beast::unit_test)
RedirectHandouts (xrpl::PeerFinder)
reduce_relay_simulate_test (xrpl::test)
reduce_relay_test (xrpl::test)
ReducedOffer_test (xrpl::test)
IntrusiveRefCounts::RefCountPair (xrpl)
Reg (xrpl::test::jtx)
Regression_test (xrpl::test)
RelationalDatabase (xrpl)
Relay (xrpl::test::csf)
RemoveArg (xrpl::test::jtx::oracle)
reporter (beast::unit_test::detail)
Request (xrpl::RPC)
require (xrpl::test::jtx)
requireAny (xrpl::test::jtx)
Resolver (xrpl)
ResolverAsio (xrpl)
ResolverAsioImpl (xrpl)
ValidatorSite::Site::Resource (xrpl)
ResourceManager_test (xrpl::Resource)
results (xrpl::detail)
Source::Results (xrpl::PeerFinder)
results (beast::unit_test)
reporter::results (beast::unit_test::detail)
RFC1751 (xrpl)
ripesha_hasher (xrpl)
RippleCalc (xrpl::path)
RippleCalcTestParams (xrpl::test)
RippledCfgGuard (xrpl::detail)
RippleLineCache (xrpl)
RobustTransaction_test (xrpl::test)
Roles_test (xrpl::test)
Object::Root (Json)
rootIndex (xrpl::test::jtx::token)
Peer::Router (xrpl::test::csf)
PerfLogImp::Counters::Rpc (xrpl::perf)
rpc (xrpl::test::jtx)
RPCCall_test (xrpl::test)
RPCCallImp (xrpl)
RPCCallTestData (xrpl::test)
RPCHelpers_test (xrpl::test)
RPCOverload_test (xrpl::test)
RPCParser (xrpl)
RPCSub (xrpl)
RPCSubImp (xrpl)
RPCTrustLine (xrpl)
Rules (xrpl)
runner (beast::unit_test)
+
RandomAccountParams (xrpl::test)
Rate (xrpl)
Rate (xrpl::test::csf)
TaggedPointer::RawAllocateTag (xrpl)
RawStateTable (xrpl::detail)
RawView (xrpl)
RCLCensorshipDetector (xrpl)
RCLCensorshipDetector_test (xrpl::test)
RCLConsensus (xrpl)
RclConsensusLogger (xrpl)
RCLCxLedger (xrpl)
RCLCxPeerPos (xrpl)
RCLCxTx (xrpl)
RCLTxSet (xrpl)
RCLValidatedLedger (xrpl)
RCLValidation (xrpl)
RCLValidations_test (xrpl::test)
RCLValidationsAdaptor (xrpl)
json_body::reader (xrpl)
Reader (Json)
ReadView (xrpl)
ReadViewFwdIter (xrpl::detail)
ReadViewFwdRange (xrpl::detail)
aged_associative_container_test_base::AllocT::rebind (beast)
Receive (xrpl::test::csf)
SlotImp::recent_t (xrpl::PeerFinder)
recorder (beast::unit_test)
RedirectHandouts (xrpl::PeerFinder)
reduce_relay_simulate_test (xrpl::test)
reduce_relay_test (xrpl::test)
ReducedOffer_test (xrpl::test)
IntrusiveRefCounts::RefCountPair (xrpl)
Reg (xrpl::test::jtx)
Regression_test (xrpl::test)
RelationalDatabase (xrpl)
Relay (xrpl::test::csf)
RemoveArg (xrpl::test::jtx::oracle)
reporter (beast::unit_test::detail)
Request (xrpl::RPC)
require (xrpl::test::jtx)
requireAny (xrpl::test::jtx)
Resolver (xrpl)
ResolverAsio (xrpl)
ResolverAsioImpl (xrpl)
ValidatorSite::Site::Resource (xrpl)
ResourceManager_test (xrpl::Resource)
results (beast::unit_test)
Source::Results (xrpl::PeerFinder)
results (xrpl::detail)
reporter::results (beast::unit_test::detail)
RFC1751 (xrpl)
ripesha_hasher (xrpl)
RippleCalc (xrpl::path)
RippleCalcTestParams (xrpl::test)
RippledCfgGuard (xrpl::detail)
RippleLineCache (xrpl)
RobustTransaction_test (xrpl::test)
Roles_test (xrpl::test)
rootIndex (xrpl::test::jtx::token)
Peer::Router (xrpl::test::csf)
PerfLogImp::Counters::Rpc (xrpl::perf)
rpc (xrpl::test::jtx)
RPCCall_test (xrpl::test)
RPCCallImp (xrpl)
RPCCallTestData (xrpl::test)
RPCHelpers_test (xrpl::test)
RPCOverload_test (xrpl::test)
RPCParser (xrpl)
RPCSub (xrpl)
RPCSubImp (xrpl)
RPCTrustLine (xrpl)
Rules (xrpl)
runner (beast::unit_test)
S
io_latency_probe::sample_op (beast)
Sandbox (xrpl)
save_stream_state (xrpl::detail)
SavedState (xrpl)
SHAMapStoreImp::SavedStateDB (xrpl)
saveNumberRoundMode (xrpl)
ScaleFreeSim_test (xrpl::test)
Scheduler (xrpl::NodeStore)
Scheduler (xrpl::test::csf)
Scheduler_test (xrpl::test)
scope_exit (xrpl)
scope_fail (xrpl)
scope_success (xrpl)
scope_unlock (xrpl)
suite::scoped_testcase (beast::unit_test)
Journal::ScopedStream (beast)
SecretKey (xrpl)
SecretKey_test (xrpl)
Section (xrpl)
Seed (xrpl)
Seed_test (xrpl)
selector (beast::unit_test)
Selector (xrpl::test::csf)
SemanticVersion (beast)
SemanticVersion_test (beast)
send_always (xrpl)
send_if_not_pred (xrpl)
send_if_pred (xrpl)
sendmax (xrpl::test::jtx)
SEnv (xrpl::test)
seq (xrpl::test::jtx)
SeqEnforcer (xrpl)
SeqProxy (xrpl)
SeqProxy_test (xrpl)
Sequence (xrpl::NodeStore)
SerialIter (xrpl)
Serializer (xrpl)
Serializer_test (xrpl)
Server (xrpl)
short_read_test::Server (xrpl)
Server_test (xrpl::test)
ServerDefinitions (xrpl::detail)
ServerDefinitions_test (xrpl::test)
NetworkOPsImp::ServerFeeSummary (xrpl)
ServerHandler (xrpl)
ServerHandler::ServerHandlerCreator (xrpl)
ServerImpl (xrpl)
ServerInfo_test (xrpl::test)
ServerStatus_test (xrpl::test)
Session (xrpl)
PropertyStream::Set (beast)
SetAccount (xrpl)
Vault::SetArgs (xrpl::test::jtx)
SetAuth_test (xrpl::test)
SetOracle (xrpl)
SetRegularKey (xrpl)
SetRegularKey_test (xrpl)
SetSignerList (xrpl)
SetTrust (xrpl)
SetTrust_test (xrpl::test)
TxQ::Setup (xrpl)
ServerHandler::Setup (xrpl)
Overlay::Setup (xrpl)
HashRouter::Setup (xrpl)
PerfLog::Setup (xrpl::perf)
DatabaseCon::Setup (xrpl)
LedgerLoad_test::SetupData (xrpl)
SField (xrpl)
SHAMap (xrpl)
SHAMap_test (xrpl::tests)
SHAMapAccountStateLeafNode (xrpl)
SHAMapAddNode (xrpl)
SHAMapHash (xrpl)
SHAMapInnerNode (xrpl)
SHAMapItem (xrpl)
SHAMapLeafNode (xrpl)
SHAMapMissingNode (xrpl)
SHAMapNodeID (xrpl)
SHAMapPathProof_test (xrpl::tests)
SHAMapStore (xrpl)
SHAMapStore_test (xrpl::test)
SHAMapStoreImp (xrpl)
SHAMapSync_test (xrpl::tests)
SHAMapSyncFilter (xrpl)
SHAMapTreeNode (xrpl)
SHAMapTxLeafNode (xrpl)
SHAMapTxPlusMetaLeafNode (xrpl)
Share (xrpl::test::csf)
SharedIntrusive (xrpl)
SharedIntrusiveAdoptIncrementStrongTag (xrpl)
SharedIntrusiveAdoptNoIncrementTag (xrpl)
SharedWeakCachePointer (xrpl)
SharedWeakUnion (xrpl)
ValidVault::Shares (xrpl)
short_read_test (xrpl)
sig (xrpl::test::jtx::batch)
sig (xrpl::test::jtx)
signer (xrpl::test::jtx)
SignerEntries (xrpl)
SignerEntries::SignerEntry (xrpl)
SigningForParams (xrpl::RPC::detail)
Env_ss::SignSubmitRunner (xrpl::test::jtx)
Sim (xrpl::test::csf)
SimDurationCollector (xrpl::test::csf)
SimpleWriter (xrpl)
Simulate_test (xrpl::test)
SingleMetrics (xrpl::metrics)
Journal::Sink (beast)
Logs::Sink (xrpl)
ValidatorSite::Site (xrpl)
SkipList_test (xrpl::test)
SkipListAcquire (xrpl)
SkipListAcquire::SkipListData (xrpl)
SlabAllocator (xrpl)
SlabAllocatorSet (xrpl)
SlabAllocator::SlabBlock (xrpl)
SlabAllocatorSet::SlabConfig (xrpl)
RawStateTable::sleAction (xrpl::detail)
RawStateTable::sles_iter_impl (xrpl::detail)
Ledger::sles_iter_impl (xrpl)
ReadView::sles_type (xrpl)
ValidPermissionedDomain::SleStatus (xrpl)
Slice (xrpl)
Slot (xrpl::PeerFinder)
Slot (xrpl::reduce_relay)
SlotHandouts (xrpl::PeerFinder)
SlotImp (xrpl::PeerFinder)
Slots (xrpl::reduce_relay)
XChainSim_test::SmBase (xrpl::test)
XChainSim_test::SmCreateAccount (xrpl::test)
XChainSim_test::SmTransfer (xrpl::test)
TxQ::FeeMetrics::Snapshot (xrpl)
SociDB_test (xrpl)
SOElement (xrpl)
SOTemplate (xrpl)
PropertyStream::Source (beast)
InfoSub::Source (xrpl)
Source (xrpl::PeerFinder)
source_tag (xrpl::test::jtx)
SourceStrings (xrpl::PeerFinder)
SourceStringsImp (xrpl::PeerFinder)
Span (xrpl::ledger_trie_detail)
SpanTip (xrpl)
spinlock (xrpl)
SQLiteDatabase (xrpl)
SQLiteDatabaseImp (xrpl)
Squelch (xrpl::reduce_relay)
SquelchHandler (xrpl::reduce_relay)
SSLHTTPPeer (xrpl)
SSLWSPeer (xrpl)
STAccount (xrpl)
STAccount_test (xrpl)
stag (xrpl::test::jtx)
STAmount (xrpl)
STAmount_test (xrpl)
stAmountField (xrpl::test::jtx)
STArray (xrpl)
StartRound (xrpl::test::csf)
aged_ordered_container::element::stashed (beast::detail)
aged_unordered_container::element::stashed (beast::detail)
NetworkOPsImp::StateAccounting (xrpl)
ExistingElementPool::StateGuard (xrpl::test)
StaticCastTagSharedIntrusive (xrpl)
StaticString (Json)
ManagerImp::Stats (xrpl::PeerFinder)
TaggedCache::Stats (xrpl)
Logic::Stats (xrpl::Resource)
OverlayImpl::Stats (xrpl)
NetworkOPsImp::Stats (xrpl)
LoadMonitor::Stats (xrpl)
LedgerMaster::Stats (xrpl)
StatsDCollector (beast::insight)
StatsDCollectorImp (beast::insight::detail)
StatsDCounterImpl (beast::insight::detail)
StatsDEventImpl (beast::insight::detail)
StatsDGaugeImpl (beast::insight::detail)
StatsDHookImpl (beast::insight::detail)
StatsDMeterImpl (beast::insight::detail)
StatsDMetricBase (beast::insight::detail)
Status (xrpl::RPC)
ValidatorSite::Site::Status (xrpl)
STBase (xrpl)
STBitString (xrpl)
STBlob (xrpl)
STCurrency (xrpl)
Step (xrpl)
TOfferStreamBase::StepCounter (xrpl)
ConnectAttempt::StepTimeouts (xrpl)
STExchange (xrpl)
STExchange< STBlob, Buffer > (xrpl)
STExchange< STBlob, PublicKey > (xrpl)
STExchange< STBlob, Slice > (xrpl)
STExchange< STInteger< U >, T > (xrpl)
STInteger (xrpl)
STInteger_test (xrpl)
STIssue (xrpl)
STIssue_test (xrpl::test)
STLedgerEntry (xrpl)
STNumber (xrpl)
STNumber_test (xrpl)
STObject (xrpl)
STObject_test (xrpl)
Store (xrpl::PeerFinder)
StoreSqdb (xrpl::PeerFinder)
STParsedJSON_test (xrpl)
STParsedJSONObject (xrpl)
STPath (xrpl)
STPathElement (xrpl)
STPathSet (xrpl)
StrandContext (xrpl)
StrandResult (xrpl)
Journal::Stream (beast)
StreambufWSMsg (xrpl)
StreamCollector (xrpl::test::csf)
StreamSink (xrpl::test)
StringUtilities_test (xrpl)
STTx (xrpl)
STTx_test (xrpl)
STValidation (xrpl)
STValidation_test (xrpl)
STVar (xrpl::detail)
STVector256 (xrpl)
STXChainBridge (xrpl)
StyledStreamWriter (Json)
StyledWriter (Json)
NetworkOPsImp::SubAccountHistoryIndex (xrpl)
NetworkOPsImp::SubAccountHistoryInfo (xrpl)
NetworkOPsImp::SubAccountHistoryInfoWeak (xrpl)
LedgerEntry_test::Subfield (xrpl::test)
Transaction::SubmitResult (xrpl)
Submitter (xrpl::test::csf)
SubmitTx (xrpl::test::csf)
Subscribe_test (xrpl::test)
ClosureCounter::Substitute (xrpl)
suite (beast::unit_test)
suite_info (beast::unit_test)
suite_list (beast::unit_test)
reporter::suite_results (beast::unit_test::detail)
suite_results (beast::unit_test)
suite_results (xrpl::detail)
SuiteJournal (xrpl::test)
SuiteJournalSink (xrpl::test)
SuiteLogs (xrpl::test::jtx)
@@ -142,7 +142,7 @@ $(function() {
Peer::ValAdaptor (xrpl::test::csf)
ValidAMM (xrpl)
Validation (xrpl::test::csf)
ValidationParms (xrpl)
Validations (xrpl)
Validations_test (xrpl::test::csf)
TrustedPublisherServer::Validator (xrpl::test)
Validator (xrpl::test)
ValidatorList_test::Validator (xrpl::test)
ValidatorBlobInfo (xrpl)
ValidatorInfo_test (xrpl::test)
ValidatorKeys (xrpl)
ValidatorKeys_test (xrpl::test)
ValidatorList (xrpl)
ValidatorList_test (xrpl::test)
ValidatorRPC_test (xrpl::test)
ValidatorSite (xrpl)
ValidatorSite_test (xrpl::test)
ValidatorsTxtGuard (xrpl::detail)
ValidatorToken (xrpl)
ValidClawback (xrpl)
ValidLoan (xrpl)
ValidLoanBroker (xrpl)
ValidMPTIssuance (xrpl)
ValidNewAccountRoot (xrpl)
ValidNFTokenPage (xrpl)
ValidPermissionedDEX (xrpl)
ValidPermissionedDomain (xrpl)
ValidPseudoAccounts (xrpl)
ValidVault (xrpl)
LocalValues::Value (xrpl::detail)
Value (Json)
DeferredCredits::Value (xrpl::detail)
ValueAllocator (Json)
ValueConstIterator (Json)
TaggedCache::ValueEntry (xrpl)
aged_unordered_container::ValueHash (beast::detail)
Value::ValueHolder (Json)
ValueIterator (Json)
ValueIteratorBase (Json)
STObject::ValueProxy (xrpl)
ValueUnit (xrpl::unit)
valueUnitField (xrpl::test::jtx)
varint_test (xrpl::NodeStore::tests)
varint_traits (xrpl::NodeStore)
varint_traits< T, true > (xrpl::NodeStore)
ValidVault::Vault (xrpl)
Vault (xrpl::test::jtx)
Vault_test (xrpl)
VaultClawback (xrpl)
VaultCreate (xrpl)
VaultDelete (xrpl)
VaultDeposit (xrpl)
LoanBroker_test::VaultInfo (xrpl::test)
VaultSet (xrpl)
VaultWithdraw (xrpl)
Loan_test::VerifyLoanStatus (xrpl::test)
Version_test (xrpl)
VersionHandler (xrpl::RPC)
View_test (xrpl::test)
MultiApiJson::visitor_t (xrpl::detail)
base_uint::VoidHelper (xrpl)
VotableValue (xrpl::detail)
VoteArg (xrpl::test::jtx)
W
-
WalletPropose_test (xrpl::RPC)
WeakIntrusive (xrpl)
WithdrawArg (xrpl::test::jtx)
Vault::WithdrawArgs (xrpl::test::jtx)
Work (xrpl::detail)
io_list::work (xrpl)
ResolverAsioImpl::Work (xrpl)
WorkBase (xrpl::detail)
Workers::Worker (xrpl)
Workers (xrpl)
Workers_test (xrpl)
WorkFile (xrpl::detail)
WorkPlain (xrpl::detail)
WorkSSL (xrpl::detail)
WrappedSink (beast)
Writer (Json)
json_body::writer (xrpl)
Writer (xrpl)
WriterBase (Json)
WriterFixture
WriterObject (Json)
WrongPrevLedger (xrpl::test::csf)
WSClient (xrpl::test)
WSClient_test (xrpl::test)
WSClientImpl (xrpl::test)
WSInfoSub (xrpl)
WSMsg (xrpl)
WSSession (xrpl)
+
WalletPropose_test (xrpl::RPC)
WeakIntrusive (xrpl)
WithdrawArg (xrpl::test::jtx)
Vault::WithdrawArgs (xrpl::test::jtx)
Work (xrpl::detail)
io_list::work (xrpl)
ResolverAsioImpl::Work (xrpl)
WorkBase (xrpl::detail)
Workers::Worker (xrpl)
Workers (xrpl)
Workers_test (xrpl)
WorkFile (xrpl::detail)
WorkPlain (xrpl::detail)
WorkSSL (xrpl::detail)
WrappedSink (beast)
Writer (Json)
json_body::writer (xrpl)
Writer (xrpl)
WriterBase (Json)
WriterFixture
WrongPrevLedger (xrpl::test::csf)
WSClient (xrpl::test)
WSClient_test (xrpl::test)
WSClientImpl (xrpl::test)
WSInfoSub (xrpl)
WSMsg (xrpl)
WSSession (xrpl)
X
XChain_test (xrpl::test)
XChainAddAccountCreateAttestation (xrpl)
XChainAddClaimAttestation (xrpl)
XChainAttestationsBase (xrpl)
XChainBridgeObjects (xrpl::test::jtx)
XChainClaim (xrpl)
XChainClaimAttestation (xrpl)
XChainClaimAttestations (xrpl)
XChainCommit (xrpl)
XChainCreateAccountAttestation (xrpl)
XChainCreateAccountAttestations (xrpl)
XChainCreateAccountCommit (xrpl)
XChainCreateBridge (xrpl)
XChainCreateClaimID (xrpl)
XChainSim_test (xrpl::test)
XEnv (xrpl::test)
xferFee (xrpl::test::jtx::token)
xor_shift_engine (beast::detail)
XRP_t (xrpl::test::jtx)
XRPAmount (xrpl)
XRPAmount_test (xrpl)
XRPBalanceChecks (xrpl)
XRPEndpointOfferCrossingStep (xrpl)
XRPEndpointPaymentStep (xrpl)
XRPEndpointStep (xrpl)
XRPEndpointStepInfo (xrpl::test)
XRPNotCreated (xrpl)
xxhasher (beast)
XXHasher_test (beast)
diff --git a/classxrpl_1_1Consensus.html b/classxrpl_1_1Consensus.html index a3fe96e64e..df23ec3a63 100644 --- a/classxrpl_1_1Consensus.html +++ b/classxrpl_1_1Consensus.html @@ -452,7 +452,7 @@ class xrpl::Consensus< Adaptor >

Generic implementation of consens

Result
Possible results from activating a slot.
-
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
+
Json::Value getJson(LedgerFill const &fill)
Return a new Json::Value representing the ledger with given options.
@ proposal
proposal for signing
void erase(STObject &st, TypedField< U > const &f)
Remove a field in an STObject.
Definition STExchange.h:153
diff --git a/classxrpl_1_1NodeStore_1_1TestBase.html b/classxrpl_1_1NodeStore_1_1TestBase.html index de8f5bac9a..b7c11a0aee 100644 --- a/classxrpl_1_1NodeStore_1_1TestBase.html +++ b/classxrpl_1_1NodeStore_1_1TestBase.html @@ -1257,7 +1257,7 @@ template<class Condition >

Runs the suite.

-

Implemented in xrpl::test::AccountDelete_test, xrpl::AccountTxPaging_test, xrpl::AmendmentTable_test, xrpl::test::AMM_test, xrpl::test::AMMCalc_test, xrpl::test::AMMClawback_test, xrpl::test::AMMExtended_test, xrpl::test::Batch_test, xrpl::Check_test, xrpl::Clawback_test, xrpl::test::Credentials_test, xrpl::test::CrossingLimits_test, xrpl::test::Delegate_test, xrpl::test::DeliverMin_test, xrpl::test::DepositAuth_test, xrpl::test::DepositPreauth_test, xrpl::test::DID_test, xrpl::Discrepancy_test, xrpl::test::DNS_test, xrpl::test::Escrow_test, xrpl::test::EscrowToken_test, xrpl::test::FeeVote_test, xrpl::FixNFTokenPageLinks_test, xrpl::test::Flow_test, xrpl::test::Flow_manual_test, xrpl::Freeze_test, xrpl::test::HashRouter_test, xrpl::test::Invariants_test, xrpl::test::LedgerHistory_test, xrpl::LedgerLoad_test, xrpl::test::LedgerMaster_test, xrpl::test::LedgerReplay_test, xrpl::test::LedgerReplayer_test, xrpl::test::LedgerReplayerTimeout_test, xrpl::test::LedgerReplayerLong_test, xrpl::LoadFeeTrack_test, xrpl::test::Loan_test, xrpl::test::LoanBatch_test, xrpl::test::LoanArbitrary_test, xrpl::test::LoanBroker_test, xrpl::test::LPTokenTransfer_test, xrpl::test::Manifest_test, xrpl::test::MPToken_test, xrpl::test::MultiSign_test, xrpl::test::NetworkID_test, xrpl::test::NetworkOPs_test, xrpl::NFTokenBaseUtil_test, xrpl::NFTokenDisallowIncoming_test, xrpl::NFTokenWOMintOffer_test, xrpl::NFTokenWOModify_test, xrpl::NFTokenAllFeatures_test, xrpl::NFTokenAuth_test, xrpl::NFTokenBurn_test, xrpl::NFTokenDir_test, xrpl::test::OfferBaseUtil_test, xrpl::test::OfferWOSmallQOffers_test, xrpl::test::OfferAllFeatures_test, xrpl::test::Offer_manual_test, xrpl::OfferStream_test, xrpl::test::jtx::oracle::Oracle_test, xrpl::test::PlumpBook_test, xrpl::test::ThinBook_test, xrpl::test::OversizeMeta_test, xrpl::test::FindOversizeCross_test, xrpl::test::Path_test, xrpl::test::PayChan_test, xrpl::test::PayStrand_test, xrpl::test::PermissionedDEX_test, xrpl::test::PermissionedDomains_test, xrpl::test::PseudoTx_test, xrpl::test::RCLValidations_test, xrpl::test::ReducedOffer_test, xrpl::test::Regression_test, xrpl::test::SetAuth_test, xrpl::SetRegularKey_test, xrpl::test::SetTrust_test, xrpl::test::SHAMapStore_test, xrpl::test::TheoreticalQuality_test, xrpl::Ticket_test, xrpl::test::Transaction_ordering_test, xrpl::TrustAndBalance_test, xrpl::Apply_test, xrpl::test::TxQPosNegFlows_test, xrpl::test::TxQMetaInfo_test, xrpl::test::ValidatorKeys_test, xrpl::test::ValidatorList_test, xrpl::test::ValidatorSite_test, xrpl::Vault_test, xrpl::test::XChain_test, xrpl::test::XChainSim_test, xrpl::test::base_uint_test, xrpl::test::Buffer_test, xrpl::test::DetectCrash_test, xrpl::test::Expected_test, xrpl::FileUtilities_test, xrpl::hardened_hash_test, xrpl::tests::IntrusiveShared_test, xrpl::IOUAmount_test, xrpl::test::join_test, xrpl::KeyCache_test, xrpl::Number_test, xrpl::PerfLog_test, xrpl::StringUtilities_test, xrpl::TaggedCache_test, xrpl::test::units_test, xrpl::XRPAmount_test, beast::aged_set_test, beast::aged_map_test, beast::aged_multiset_test, beast::aged_multimap_test, beast::aged_unordered_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multiset_test, beast::aged_unordered_multimap_test, beast::abstract_clock_test, beast::basic_seconds_clock_test, xrpl::test::CurrentThreadName_test, io_latency_probe_test, beast::Journal_test, beast::PropertyStream_test, beast::Zero_test, beast::unit_test::print_test, beast::IP::IPEndpoint_test, beast::LexicalCast_test, beast::SemanticVersion_test, beast::XXHasher_test, xrpl::cryptoconditions::PreimageSha256_test, xrpl::test::ByzantineFailureSim_test, xrpl::test::Consensus_test, xrpl::test::DistributedValidators_test, xrpl::test::LedgerTiming_test, xrpl::test::LedgerTrie_test, xrpl::test::NegativeUNL_test, xrpl::test::NegativeUNLVoteInternal_test, xrpl::test::NegativeUNLVoteScoreTable_test, xrpl::test::NegativeUNLVoteGoodScore_test, xrpl::test::NegativeUNLVoteOffline_test, xrpl::test::NegativeUNLVoteMaxListed_test, xrpl::test::NegativeUNLVoteRetiredValidator_test, xrpl::test::NegativeUNLVoteNewValidator_test, xrpl::test::NegativeUNLVoteFilterValidations_test, xrpl::test::RCLCensorshipDetector_test, xrpl::test::ScaleFreeSim_test, xrpl::test::csf::Validations_test, xrpl::test::ClosureCounter_test, xrpl::Config_test, xrpl::test::Coroutine_test, xrpl::test::JobQueue_test, xrpl::SociDB_test, xrpl::Workers_test, xrpl::test::BasicNetwork_test, xrpl::test::Digraph_test, xrpl::test::Histogram_test, xrpl::test::Scheduler_test, Json::JsonObject_test, xrpl::test::Env_test, xrpl::test::WSClient_test, xrpl::test::BookDirs_test, xrpl::test::Directory_test, xrpl::test::PaymentSandbox_test, xrpl::test::PendingSaves_test, xrpl::test::SkipList_test, xrpl::test::View_test, xrpl::test::GetAmendments_test, xrpl::NodeStore::Backend_test, xrpl::NodeStore::NodeStoreBasic_test, xrpl::NodeStore::Database_test, xrpl::NodeStore::NuDBFactory_test, xrpl::NodeStore::Timing_test, xrpl::NodeStore::tests::varint_test, xrpl::tests::cluster_test, xrpl::test::compression_test, xrpl::test::handshake_test, xrpl::ProtocolVersion_test, xrpl::test::reduce_relay_test, xrpl::test::reduce_relay_simulate_test, xrpl::short_read_test, xrpl::test::traffic_count_test, xrpl::test::tx_reduce_relay_test, xrpl::PeerFinder::Livecache_test, xrpl::PeerFinder::PeerFinder_test, xrpl::test::ApiVersion_test, xrpl::BuildInfo_test, xrpl::Hooks_test, xrpl::InnerObjectFormatsParsedJSON_test, xrpl::Issue_test, xrpl::Memo_test, xrpl::test::MultiApiJson_test, xrpl::PublicKey_test, xrpl::Quality_test, xrpl::SecretKey_test, xrpl::Seed_test, xrpl::SeqProxy_test, xrpl::Serializer_test, xrpl::STAccount_test, xrpl::STAmount_test, xrpl::STInteger_test, xrpl::test::STIssue_test, xrpl::STNumber_test, xrpl::STObject_test, xrpl::STParsedJSON_test, xrpl::STTx_test, xrpl::InnerObjectFormatsSerializer_test, xrpl::STValidation_test, xrpl::TER_test, xrpl::Resource::ResourceManager_test, xrpl::AccountCurrencies_test, xrpl::test::AccountInfo_test, xrpl::RPC::AccountLines_test, xrpl::test::AccountObjects_test, xrpl::test::AccountOffers_test, xrpl::AccountSet_test, xrpl::test::AccountTx_test, xrpl::AmendmentBlocked_test, xrpl::test::AMMInfo_test, xrpl::test::Book_test, xrpl::test::BookChanges_test, xrpl::Connect_test, xrpl::test::DeliveredAmount_test, xrpl::test::DepositAuthorized_test, xrpl::Feature_test, xrpl::test::GatewayBalances_test, xrpl::test::jtx::oracle::GetAggregatePrice_test, xrpl::GetCounts_test, xrpl::test::Handler_test, xrpl::RPC::JSONRPC_test, xrpl::RPC::WalletPropose_test, xrpl::LedgerClosed_test, xrpl::LedgerData_test, xrpl::test::LedgerEntry_test, xrpl::test::LedgerEntry_XChain_test, xrpl::LedgerHeader_test, xrpl::RPC::LedgerRequest_test, xrpl::test::LedgerRPC_test, xrpl::test::ManifestRPC_test, xrpl::test::NoRipple_test, xrpl::NoRippleCheck_test, xrpl::NoRippleCheckLimits_test, xrpl::OwnerInfo_test, xrpl::Peers_test, xrpl::test::RobustTransaction_test, xrpl::test::Roles_test, xrpl::test::RPCCall_test, xrpl::test::RPCHelpers_test, xrpl::test::RPCOverload_test, xrpl::test::ServerDefinitions_test, xrpl::test::ServerInfo_test, xrpl::test::Simulate_test, xrpl::RPC::codeString_test, xrpl::RPC::fillJson_test, xrpl::test::Subscribe_test, xrpl::Transaction_test, xrpl::TransactionEntry_test, xrpl::TransactionHistory_test, xrpl::test::ValidatorInfo_test, xrpl::test::ValidatorRPC_test, xrpl::Version_test, xrpl::test::Server_test, xrpl::test::ServerStatus_test, xrpl::tests::FetchPack_test, xrpl::tests::SHAMap_test, xrpl::tests::SHAMapPathProof_test, and xrpl::tests::SHAMapSync_test.

+

Implemented in xrpl::test::AccountDelete_test, xrpl::AccountTxPaging_test, xrpl::AmendmentTable_test, xrpl::test::AMM_test, xrpl::test::AMMCalc_test, xrpl::test::AMMClawback_test, xrpl::test::AMMExtended_test, xrpl::test::Batch_test, xrpl::Check_test, xrpl::Clawback_test, xrpl::test::Credentials_test, xrpl::test::CrossingLimits_test, xrpl::test::Delegate_test, xrpl::test::DeliverMin_test, xrpl::test::DepositAuth_test, xrpl::test::DepositPreauth_test, xrpl::test::DID_test, xrpl::Discrepancy_test, xrpl::test::DNS_test, xrpl::test::Escrow_test, xrpl::test::EscrowToken_test, xrpl::test::FeeVote_test, xrpl::FixNFTokenPageLinks_test, xrpl::test::Flow_test, xrpl::test::Flow_manual_test, xrpl::Freeze_test, xrpl::test::HashRouter_test, xrpl::test::Invariants_test, xrpl::test::LedgerHistory_test, xrpl::LedgerLoad_test, xrpl::test::LedgerMaster_test, xrpl::test::LedgerReplay_test, xrpl::test::LedgerReplayer_test, xrpl::test::LedgerReplayerTimeout_test, xrpl::test::LedgerReplayerLong_test, xrpl::LoadFeeTrack_test, xrpl::test::Loan_test, xrpl::test::LoanBatch_test, xrpl::test::LoanArbitrary_test, xrpl::test::LoanBroker_test, xrpl::test::LPTokenTransfer_test, xrpl::test::Manifest_test, xrpl::test::MPToken_test, xrpl::test::MultiSign_test, xrpl::test::NetworkID_test, xrpl::test::NetworkOPs_test, xrpl::NFTokenBaseUtil_test, xrpl::NFTokenDisallowIncoming_test, xrpl::NFTokenWOMintOffer_test, xrpl::NFTokenWOModify_test, xrpl::NFTokenAllFeatures_test, xrpl::NFTokenAuth_test, xrpl::NFTokenBurn_test, xrpl::NFTokenDir_test, xrpl::test::OfferBaseUtil_test, xrpl::test::OfferWOSmallQOffers_test, xrpl::test::OfferAllFeatures_test, xrpl::test::Offer_manual_test, xrpl::OfferStream_test, xrpl::test::jtx::oracle::Oracle_test, xrpl::test::PlumpBook_test, xrpl::test::ThinBook_test, xrpl::test::OversizeMeta_test, xrpl::test::FindOversizeCross_test, xrpl::test::Path_test, xrpl::test::PayChan_test, xrpl::test::PayStrand_test, xrpl::test::PermissionedDEX_test, xrpl::test::PermissionedDomains_test, xrpl::test::PseudoTx_test, xrpl::test::RCLValidations_test, xrpl::test::ReducedOffer_test, xrpl::test::Regression_test, xrpl::test::SetAuth_test, xrpl::SetRegularKey_test, xrpl::test::SetTrust_test, xrpl::test::SHAMapStore_test, xrpl::test::TheoreticalQuality_test, xrpl::Ticket_test, xrpl::test::Transaction_ordering_test, xrpl::TrustAndBalance_test, xrpl::Apply_test, xrpl::test::TxQPosNegFlows_test, xrpl::test::TxQMetaInfo_test, xrpl::test::ValidatorKeys_test, xrpl::test::ValidatorList_test, xrpl::test::ValidatorSite_test, xrpl::Vault_test, xrpl::test::XChain_test, xrpl::test::XChainSim_test, xrpl::test::base_uint_test, xrpl::test::Buffer_test, xrpl::test::DetectCrash_test, xrpl::test::Expected_test, xrpl::FileUtilities_test, xrpl::hardened_hash_test, xrpl::tests::IntrusiveShared_test, xrpl::IOUAmount_test, xrpl::test::join_test, xrpl::KeyCache_test, xrpl::Number_test, xrpl::PerfLog_test, xrpl::StringUtilities_test, xrpl::TaggedCache_test, xrpl::test::units_test, xrpl::XRPAmount_test, beast::aged_set_test, beast::aged_map_test, beast::aged_multiset_test, beast::aged_multimap_test, beast::aged_unordered_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multiset_test, beast::aged_unordered_multimap_test, beast::abstract_clock_test, beast::basic_seconds_clock_test, xrpl::test::CurrentThreadName_test, io_latency_probe_test, beast::Journal_test, beast::PropertyStream_test, beast::Zero_test, beast::unit_test::print_test, beast::IP::IPEndpoint_test, beast::LexicalCast_test, beast::SemanticVersion_test, beast::XXHasher_test, xrpl::cryptoconditions::PreimageSha256_test, xrpl::test::ByzantineFailureSim_test, xrpl::test::Consensus_test, xrpl::test::DistributedValidators_test, xrpl::test::LedgerTiming_test, xrpl::test::LedgerTrie_test, xrpl::test::NegativeUNL_test, xrpl::test::NegativeUNLVoteInternal_test, xrpl::test::NegativeUNLVoteScoreTable_test, xrpl::test::NegativeUNLVoteGoodScore_test, xrpl::test::NegativeUNLVoteOffline_test, xrpl::test::NegativeUNLVoteMaxListed_test, xrpl::test::NegativeUNLVoteRetiredValidator_test, xrpl::test::NegativeUNLVoteNewValidator_test, xrpl::test::NegativeUNLVoteFilterValidations_test, xrpl::test::RCLCensorshipDetector_test, xrpl::test::ScaleFreeSim_test, xrpl::test::csf::Validations_test, xrpl::test::ClosureCounter_test, xrpl::Config_test, xrpl::test::Coroutine_test, xrpl::test::JobQueue_test, xrpl::SociDB_test, xrpl::Workers_test, xrpl::test::BasicNetwork_test, xrpl::test::Digraph_test, xrpl::test::Histogram_test, xrpl::test::Scheduler_test, xrpl::test::Env_test, xrpl::test::WSClient_test, xrpl::test::BookDirs_test, xrpl::test::Directory_test, xrpl::test::PaymentSandbox_test, xrpl::test::PendingSaves_test, xrpl::test::SkipList_test, xrpl::test::View_test, xrpl::test::GetAmendments_test, xrpl::NodeStore::Backend_test, xrpl::NodeStore::NodeStoreBasic_test, xrpl::NodeStore::Database_test, xrpl::NodeStore::NuDBFactory_test, xrpl::NodeStore::Timing_test, xrpl::NodeStore::tests::varint_test, xrpl::tests::cluster_test, xrpl::test::compression_test, xrpl::test::handshake_test, xrpl::ProtocolVersion_test, xrpl::test::reduce_relay_test, xrpl::test::reduce_relay_simulate_test, xrpl::short_read_test, xrpl::test::traffic_count_test, xrpl::test::tx_reduce_relay_test, xrpl::PeerFinder::Livecache_test, xrpl::PeerFinder::PeerFinder_test, xrpl::test::ApiVersion_test, xrpl::BuildInfo_test, xrpl::Hooks_test, xrpl::InnerObjectFormatsParsedJSON_test, xrpl::Issue_test, xrpl::Memo_test, xrpl::test::MultiApiJson_test, xrpl::PublicKey_test, xrpl::Quality_test, xrpl::SecretKey_test, xrpl::Seed_test, xrpl::SeqProxy_test, xrpl::Serializer_test, xrpl::STAccount_test, xrpl::STAmount_test, xrpl::STInteger_test, xrpl::test::STIssue_test, xrpl::STNumber_test, xrpl::STObject_test, xrpl::STParsedJSON_test, xrpl::STTx_test, xrpl::InnerObjectFormatsSerializer_test, xrpl::STValidation_test, xrpl::TER_test, xrpl::Resource::ResourceManager_test, xrpl::AccountCurrencies_test, xrpl::test::AccountInfo_test, xrpl::RPC::AccountLines_test, xrpl::test::AccountObjects_test, xrpl::test::AccountOffers_test, xrpl::AccountSet_test, xrpl::test::AccountTx_test, xrpl::AmendmentBlocked_test, xrpl::test::AMMInfo_test, xrpl::test::Book_test, xrpl::test::BookChanges_test, xrpl::Connect_test, xrpl::test::DeliveredAmount_test, xrpl::test::DepositAuthorized_test, xrpl::Feature_test, xrpl::test::GatewayBalances_test, xrpl::test::jtx::oracle::GetAggregatePrice_test, xrpl::GetCounts_test, xrpl::test::Handler_test, xrpl::RPC::JSONRPC_test, xrpl::RPC::WalletPropose_test, xrpl::LedgerClosed_test, xrpl::LedgerData_test, xrpl::test::LedgerEntry_test, xrpl::test::LedgerEntry_XChain_test, xrpl::LedgerHeader_test, xrpl::RPC::LedgerRequest_test, xrpl::test::LedgerRPC_test, xrpl::test::ManifestRPC_test, xrpl::test::NoRipple_test, xrpl::NoRippleCheck_test, xrpl::NoRippleCheckLimits_test, xrpl::OwnerInfo_test, xrpl::Peers_test, xrpl::test::RobustTransaction_test, xrpl::test::Roles_test, xrpl::test::RPCCall_test, xrpl::test::RPCHelpers_test, xrpl::test::RPCOverload_test, xrpl::test::ServerDefinitions_test, xrpl::test::ServerInfo_test, xrpl::test::Simulate_test, xrpl::RPC::codeString_test, xrpl::RPC::fillJson_test, xrpl::test::Subscribe_test, xrpl::Transaction_test, xrpl::TransactionEntry_test, xrpl::TransactionHistory_test, xrpl::test::ValidatorInfo_test, xrpl::test::ValidatorRPC_test, xrpl::Version_test, xrpl::test::Server_test, xrpl::test::ServerStatus_test, xrpl::tests::FetchPack_test, xrpl::tests::SHAMap_test, xrpl::tests::SHAMapPathProof_test, and xrpl::tests::SHAMapSync_test.

diff --git a/classxrpl_1_1RPC_1_1LedgerHandler-members.html b/classxrpl_1_1RPC_1_1LedgerHandler-members.html index 3c8095a597..85722f2186 100644 --- a/classxrpl_1_1RPC_1_1LedgerHandler-members.html +++ b/classxrpl_1_1RPC_1_1LedgerHandler-members.html @@ -91,7 +91,7 @@ $(function() { queueTxs_xrpl::RPC::LedgerHandlerprivate result_xrpl::RPC::LedgerHandlerprivate rolexrpl::RPC::LedgerHandlerstatic - writeResult(Object &)xrpl::RPC::LedgerHandler + writeResult(Json::Value &)xrpl::RPC::LedgerHandler