This commit is contained in:
bthomee
2025-03-17 13:18:59 +00:00
parent 040e525da7
commit 61468040d9
9 changed files with 311 additions and 294 deletions

View File

@@ -134,7 +134,7 @@ $(function() {
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="algorithm_8h_source.html#l00026">algorithm.h:26</a></div></div>
<div class="ttc" id="anamespaceripple_html_a82ca6b1deeb34acfc5b0b4159b393786"><div class="ttname"><a href="namespaceripple.html#a82ca6b1deeb34acfc5b0b4159b393786">ripple::doLedgerGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status &gt; doLedgerGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHandler_8cpp_source.html#l00103">LedgerHandler.cpp:103</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01004">LedgerEntry.cpp:1004</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01010">LedgerEntry.cpp:1010</a></div></div>
<div class="ttc" id="anamespaceripple_html_aeaa95680c026e10fbdfbbb02300f89b8"><div class="ttname"><a href="namespaceripple.html#aeaa95680c026e10fbdfbbb02300f89b8">ripple::doLedgerDiffGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerDiffResponse, grpc::Status &gt; doLedgerDiffGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerDiffRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerDiff_8cpp_source.html#l00006">LedgerDiff.cpp:6</a></div></div>
<div class="ttc" id="anamespaceripple_html_af3192f02f7c3e68a904df994498c955d"><div class="ttname"><a href="namespaceripple.html#af3192f02f7c3e68a904df994498c955d">ripple::doLedgerDataGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerDataResponse, grpc::Status &gt; doLedgerDataGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerDataRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerData_8cpp_source.html#l00136">LedgerData.cpp:136</a></div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>

View File

@@ -801,7 +801,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a6f69b339743d28bbc421fa3b31437173">ripple::rpcSUCCESS</a></div><div class="ttdeci">@ rpcSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00044">ErrorCodes.h:44</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6909f61053b6e084f46665fa9f4ee673"><div class="ttname"><a href="namespaceripple.html#a6909f61053b6e084f46665fa9f4ee673">ripple::isUnlimited</a></div><div class="ttdeci">bool isUnlimited(Role const &amp;role)</div><div class="ttdoc">ADMIN and IDENTIFIED roles shall have unlimited resources.</div><div class="ttdef"><b>Definition:</b> <a href="Role_8cpp_source.html#l00125">Role.cpp:125</a></div></div>
<div class="ttc" id="anamespaceripple_html_a82ca6b1deeb34acfc5b0b4159b393786"><div class="ttname"><a href="namespaceripple.html#a82ca6b1deeb34acfc5b0b4159b393786">ripple::doLedgerGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerResponse, grpc::Status &gt; doLedgerGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHandler_8cpp_source.html#l00103">LedgerHandler.cpp:103</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01004">LedgerEntry.cpp:1004</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01010">LedgerEntry.cpp:1010</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa761b49f905eb9fd8c8ae754a0eb7504"><div class="ttname"><a href="namespaceripple.html#aa761b49f905eb9fd8c8ae754a0eb7504">ripple::erase</a></div><div class="ttdeci">void erase(STObject &amp;st, TypedField&lt; U &gt; const &amp;f)</div><div class="ttdoc">Remove a field in an STObject.</div><div class="ttdef"><b>Definition:</b> <a href="STExchange_8h_source.html#l00172">STExchange.h:172</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae08fe18f17b24699ce41d3898fbb8c2c"><div class="ttname"><a href="namespaceripple.html#ae08fe18f17b24699ce41d3898fbb8c2c">ripple::Role</a></div><div class="ttdeci">Role</div><div class="ttdoc">Indicates the level of administrative permission to grant.</div><div class="ttdef"><b>Definition:</b> <a href="Role_8h_source.html#l00044">Role.h:44</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae08fe18f17b24699ce41d3898fbb8c2ca1ce51056a04cffe133dd6c79fea6f044"><div class="ttname"><a href="namespaceripple.html#ae08fe18f17b24699ce41d3898fbb8c2ca1ce51056a04cffe133dd6c79fea6f044">ripple::Role::IDENTIFIED</a></div><div class="ttdeci">@ IDENTIFIED</div></div>

View File

@@ -430,7 +430,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a1c3ae70640623c5f899cc3cf756f8435"><div class="ttname"><a href="namespaceripple.html#a1c3ae70640623c5f899cc3cf756f8435">ripple::doValidationCreate</a></div><div class="ttdeci">Json::Value doValidationCreate(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="ValidationCreate_8cpp_source.html#l00045">ValidationCreate.cpp:45</a></div></div>
<div class="ttc" id="anamespaceripple_html_a215746d088eb1fa077dffc993a072dc0"><div class="ttname"><a href="namespaceripple.html#a215746d088eb1fa077dffc993a072dc0">ripple::doGetAggregatePrice</a></div><div class="ttdeci">Json::Value doGetAggregatePrice(RPC::JsonContext &amp;context)</div><div class="ttdoc">oracles: array of {account, oracle_document_id} base_asset: is the asset to be priced quote_asset: is...</div><div class="ttdef"><b>Definition:</b> <a href="GetAggregatePrice_8cpp_source.html#l00153">GetAggregatePrice.cpp:153</a></div></div>
<div class="ttc" id="anamespaceripple_html_a22589e8aa1bdcd33f35119600e34c95f"><div class="ttname"><a href="namespaceripple.html#a22589e8aa1bdcd33f35119600e34c95f">ripple::doSubmitMultiSigned</a></div><div class="ttdeci">Json::Value doSubmitMultiSigned(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SubmitMultiSigned_8cpp_source.html#l00034">SubmitMultiSigned.cpp:34</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00865">LedgerEntry.cpp:865</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00871">LedgerEntry.cpp:871</a></div></div>
<div class="ttc" id="anamespaceripple_html_a28fa0eeff3b119427fbce8b701f71635"><div class="ttname"><a href="namespaceripple.html#a28fa0eeff3b119427fbce8b701f71635">ripple::doNFTBuyOffers</a></div><div class="ttdeci">Json::Value doNFTBuyOffers(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="NFTOffers_8cpp_source.html#l00165">NFTOffers.cpp:165</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2c769c15b1089824f248f42f237278b7"><div class="ttname"><a href="namespaceripple.html#a2c769c15b1089824f248f42f237278b7">ripple::doChannelAuthorize</a></div><div class="ttdeci">Json::Value doChannelAuthorize(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="PayChanClaim_8cpp_source.html#l00041">PayChanClaim.cpp:41</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2e3758a9867ccf48949ed8cce0e1da5a"><div class="ttname"><a href="namespaceripple.html#a2e3758a9867ccf48949ed8cce0e1da5a">ripple::doNoRippleCheck</a></div><div class="ttdeci">Json::Value doNoRippleCheck(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="NoRippleCheck_8cpp_source.html#l00062">NoRippleCheck.cpp:62</a></div></div>

View File

@@ -259,7 +259,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a1c3ae70640623c5f899cc3cf756f8435"><div class="ttname"><a href="namespaceripple.html#a1c3ae70640623c5f899cc3cf756f8435">ripple::doValidationCreate</a></div><div class="ttdeci">Json::Value doValidationCreate(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="ValidationCreate_8cpp_source.html#l00045">ValidationCreate.cpp:45</a></div></div>
<div class="ttc" id="anamespaceripple_html_a215746d088eb1fa077dffc993a072dc0"><div class="ttname"><a href="namespaceripple.html#a215746d088eb1fa077dffc993a072dc0">ripple::doGetAggregatePrice</a></div><div class="ttdeci">Json::Value doGetAggregatePrice(RPC::JsonContext &amp;context)</div><div class="ttdoc">oracles: array of {account, oracle_document_id} base_asset: is the asset to be priced quote_asset: is...</div><div class="ttdef"><b>Definition:</b> <a href="GetAggregatePrice_8cpp_source.html#l00153">GetAggregatePrice.cpp:153</a></div></div>
<div class="ttc" id="anamespaceripple_html_a22589e8aa1bdcd33f35119600e34c95f"><div class="ttname"><a href="namespaceripple.html#a22589e8aa1bdcd33f35119600e34c95f">ripple::doSubmitMultiSigned</a></div><div class="ttdeci">Json::Value doSubmitMultiSigned(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SubmitMultiSigned_8cpp_source.html#l00034">SubmitMultiSigned.cpp:34</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00865">LedgerEntry.cpp:865</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00871">LedgerEntry.cpp:871</a></div></div>
<div class="ttc" id="anamespaceripple_html_a28fa0eeff3b119427fbce8b701f71635"><div class="ttname"><a href="namespaceripple.html#a28fa0eeff3b119427fbce8b701f71635">ripple::doNFTBuyOffers</a></div><div class="ttdeci">Json::Value doNFTBuyOffers(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="NFTOffers_8cpp_source.html#l00165">NFTOffers.cpp:165</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2c769c15b1089824f248f42f237278b7"><div class="ttname"><a href="namespaceripple.html#a2c769c15b1089824f248f42f237278b7">ripple::doChannelAuthorize</a></div><div class="ttdeci">Json::Value doChannelAuthorize(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="PayChanClaim_8cpp_source.html#l00041">PayChanClaim.cpp:41</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2e3758a9867ccf48949ed8cce0e1da5a"><div class="ttname"><a href="namespaceripple.html#a2e3758a9867ccf48949ed8cce0e1da5a">ripple::doNoRippleCheck</a></div><div class="ttdeci">Json::Value doNoRippleCheck(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="NoRippleCheck_8cpp_source.html#l00062">NoRippleCheck.cpp:62</a></div></div>

View File

@@ -900,235 +900,241 @@ $(function() {
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> }</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> </div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">if</span> (!pd.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::account) || !pd[jss::account].<a class="code hl_function" href="classJson_1_1Value.html#a71e1f82cf1c3eaf969d400dcffb163a6">isString</a>())</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">if</span> (!pd.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::account))</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> {</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedRequest&quot;</span>;</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> }</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> </div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <span class="keywordflow">if</span> (!pd.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::seq) ||</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> (pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">isInt</a>() &amp;&amp; pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#a614d635bc248a592593feb322cd15ab8">asInt</a>() &lt; 0) ||</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> (!pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">isInt</a>() &amp;&amp; !pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#abdda463d3269015f883587349726cfbc">isUInt</a>()))</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> {</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedRequest&quot;</span>;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> }</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> </div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = parseBase58&lt;AccountID&gt;(pd[jss::account].asString());</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">if</span> (!account)</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> {</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedAddress&quot;</span>;</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> }</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> </div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a51879ade5bc763231874ba4298bf17d3">keylet::permissionedDomain</a>(*account, pd[jss::seq].asUInt()).<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>;</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span>}</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> </div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"><a class="line" href="namespaceripple.html#ad34071bf95df2c44736d6001df89d5ef"> 849</a></span><span class="keyword">using </span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">FunctionType</a> =</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function&lt;std::optional&lt;uint256&gt;</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>&amp;, <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp;)&gt;;</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <span class="keywordflow">if</span> (!pd[jss::account].isString())</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> {</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedAddress&quot;</span>;</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> }</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> </div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">if</span> (!pd.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::seq) ||</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> (pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">isInt</a>() &amp;&amp; pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#a614d635bc248a592593feb322cd15ab8">asInt</a>() &lt; 0) ||</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> (!pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#aff51d8b52979ca06cf9d909accd5f695">isInt</a>() &amp;&amp; !pd[jss::seq].<a class="code hl_function" href="classJson_1_1Value.html#abdda463d3269015f883587349726cfbc">isUInt</a>()))</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> {</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedRequest&quot;</span>;</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> }</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> </div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = parseBase58&lt;AccountID&gt;(pd[jss::account].asString());</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <span class="keywordflow">if</span> (!account)</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> {</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> jvResult[jss::error] = <span class="stringliteral">&quot;malformedAddress&quot;</span>;</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> }</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html"> 852</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1LedgerEntry.html">LedgerEntry</a></div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span>{</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc"> 854</a></span> <a class="code hl_class" href="classJson_1_1StaticString.html">Json::StaticString</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc">fieldName</a>;</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1"> 855</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">FunctionType</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1">parseFunction</a>;</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6"> 856</a></span> <a class="code hl_enumeration" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139">LedgerEntryType</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6">expectedType</a>;</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span>};</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> </div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span><span class="comment">// {</span></div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span><span class="comment">// ledger_hash : &lt;ledger&gt;</span></div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span><span class="comment">// ledger_index : &lt;ledger_index&gt;</span></div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span><span class="comment">// ...</span></div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span><span class="comment">// }</span></div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"><a class="line" href="namespaceripple.html#a24a33406a7f084c597b43440d319b388"> 865</a></span><a class="code hl_function" href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">doLedgerEntry</a>(<a class="code hl_struct" href="structripple_1_1RPC_1_1JsonContext.html">RPC::JsonContext</a>&amp; context)</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span>{</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;ReadView const&gt;</a> lpLedger;</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> <span class="keyword">auto</span> jvResult = <a class="code hl_function" href="namespaceripple_1_1RPC.html#aaebfaaee35308269fab499f4e203a8c9">RPC::lookupLedger</a>(lpLedger, context);</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> </div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <span class="keywordflow">if</span> (!lpLedger)</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> </div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <span class="keyword">static</span> <span class="keyword">auto</span> ledgerEntryParsers = std::to_array&lt;LedgerEntry&gt;({</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> {jss::index, <a class="code hl_function" href="namespaceripple.html#a14daff47b30997c39410c1920588318d">parseIndex</a>, <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>},</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> {jss::account_root, <a class="code hl_function" href="namespaceripple.html#ac937f20fdf87ab6b1e3ece54f11cf8bb">parseAccountRoot</a>, ltACCOUNT_ROOT},</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <span class="comment">// TODO: add amendments</span></div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> {jss::amm, <a class="code hl_function" href="namespaceripple.html#a3bcd7621e12a7e4cad2626737f950d0f">parseAMM</a>, ltAMM},</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> {jss::bridge, <a class="code hl_function" href="namespaceripple.html#a3f461484540909c314d543d5bfc01e49">parseBridge</a>, ltBRIDGE},</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> {jss::check, <a class="code hl_function" href="namespaceripple.html#a691e32b08b44b10bdcec95e4b6f081d7">parseCheck</a>, ltCHECK},</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> {jss::credential, <a class="code hl_function" href="namespaceripple.html#a7c09ef92d877e967519cba821ea68e73">parseCredential</a>, ltCREDENTIAL},</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> {jss::deposit_preauth, <a class="code hl_function" href="namespaceripple.html#a4b10d56ba274533367ffe335e9a54e0a">parseDepositPreauth</a>, ltDEPOSIT_PREAUTH},</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> {jss::did, <a class="code hl_function" href="namespaceripple.html#aebba2b7ceb3ff56b395f36728c4ff891">parseDID</a>, ltDID},</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> {jss::directory, <a class="code hl_function" href="namespaceripple.html#ada7ed82ae90b5cef7da4139a4d377468">parseDirectory</a>, ltDIR_NODE},</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> {jss::escrow, <a class="code hl_function" href="namespaceripple.html#a877ac66fea02fe3284fed7308cb66442">parseEscrow</a>, ltESCROW},</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="comment">// TODO: add fee, hashes</span></div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> {jss::mpt_issuance, <a class="code hl_function" href="namespaceripple.html#a3db948c59f30d455ddc10322f5c5fbe4">parseMPTokenIssuance</a>, ltMPTOKEN_ISSUANCE},</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> {jss::mptoken, <a class="code hl_function" href="namespaceripple.html#a06886f646a128c36db61fa27a2b7d7b3">parseMPToken</a>, ltMPTOKEN},</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="comment">// TODO: add NFT Offers</span></div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> {jss::nft_page, <a class="code hl_function" href="namespaceripple.html#a55a96d706f6d4b715d8333ac89603849">parseNFTokenPage</a>, ltNFTOKEN_PAGE},</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="comment">// TODO: add NegativeUNL</span></div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> {jss::offer, <a class="code hl_function" href="namespaceripple.html#ab76a39be63be5fb8619758f7cff04802">parseOffer</a>, ltOFFER},</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> {jss::oracle, <a class="code hl_function" href="namespaceripple.html#a81efc27e8fe6f8a4604bf49d181de96a">parseOracle</a>, ltORACLE},</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> {jss::payment_channel, <a class="code hl_function" href="namespaceripple.html#a271b71a040a8f7cc7994fab6d083e48b">parsePaymentChannel</a>, ltPAYCHAN},</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> {jss::permissioned_domain,</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <a class="code hl_function" href="namespaceripple.html#af46627374c1fc1da4c4b99cf47283fa8">parsePermissionedDomains</a>,</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> ltPERMISSIONED_DOMAIN},</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> {jss::ripple_state, <a class="code hl_function" href="namespaceripple.html#ad07e4613a007aa94cb21458481f688f6">parseRippleState</a>, ltRIPPLE_STATE},</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> <span class="comment">// This is an alias, since the `ledger_data` filter uses jss::state</span></div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> {jss::state, <a class="code hl_function" href="namespaceripple.html#ad07e4613a007aa94cb21458481f688f6">parseRippleState</a>, ltRIPPLE_STATE},</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> {jss::ticket, <a class="code hl_function" href="namespaceripple.html#a76cbc53db52c42e50575007a80c3ac52">parseTicket</a>, ltTICKET},</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> {jss::xchain_owned_claim_id,</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <a class="code hl_function" href="namespaceripple.html#ad5bf699edf09688a73f5a5c4ce270835">parseXChainOwnedClaimID</a>,</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> ltXCHAIN_OWNED_CLAIM_ID},</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> {jss::xchain_owned_create_account_claim_id,</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> <a class="code hl_function" href="namespaceripple.html#a8c84645e06c562f292355cd97298f291">parseXChainOwnedCreateAccountClaimID</a>,</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> ltXCHAIN_OWNED_CREATE_ACCOUNT_CLAIM_ID},</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> });</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> </div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> uNodeIndex;</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <a class="code hl_enumeration" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139">LedgerEntryType</a> expectedType = <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>;</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> </div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> {</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; ledgerEntry : ledgerEntryParsers)</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> {</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(ledgerEntry.fieldName))</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> {</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> expectedType = ledgerEntry.expectedType;</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="comment">// `Bridge` is the only type that involves two fields at the</span></div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="comment">// `ledger_entry` param level.</span></div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> <span class="comment">// So that parser needs to have the whole `params` field.</span></div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="comment">// All other parsers only need the one field name&#39;s info.</span></div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>&amp; params = ledgerEntry.fieldName == jss::bridge</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> ? context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a></div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> : context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>[ledgerEntry.fieldName];</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> uNodeIndex = ledgerEntry.parseFunction(params, jvResult)</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> .value_or(beast::zero);</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <span class="keywordflow">if</span> (jvResult.isMember(jss::error))</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> {</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> }</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> found = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> }</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> }</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> </div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <span class="keywordflow">if</span> (!found)</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> {</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1Context.html#a0eab3b46cc23d67a6d16d1fb6bcaf0a2">apiVersion</a> &lt; 2u)</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> jvResult[jss::error] = <span class="stringliteral">&quot;unknownOption&quot;</span>;</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> jvResult[jss::error] = <span class="stringliteral">&quot;invalidParams&quot;</span>;</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> }</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> }</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structJson_1_1error.html">Json::error</a>&amp; e)</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> {</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1Context.html#a0eab3b46cc23d67a6d16d1fb6bcaf0a2">apiVersion</a> &gt; 1u)</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> {</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> <span class="comment">// For apiVersion 2 onwards, any parsing failures that throw this</span></div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> <span class="comment">// exception return an invalidParam error.</span></div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> jvResult[jss::error] = <span class="stringliteral">&quot;invalidParams&quot;</span>;</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> }</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <span class="keywordflow">throw</span>;</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> }</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> </div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> <span class="keywordflow">if</span> (uNodeIndex.isZero())</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> {</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> jvResult[jss::error] = <span class="stringliteral">&quot;entryNotFound&quot;</span>;</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a51879ade5bc763231874ba4298bf17d3">keylet::permissionedDomain</a>(*account, pd[jss::seq].asUInt()).<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span>}</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> </div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"><a class="line" href="namespaceripple.html#ad34071bf95df2c44736d6001df89d5ef"> 855</a></span><span class="keyword">using </span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">FunctionType</a> =</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">std::function&lt;std::optional&lt;uint256&gt;</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>&amp;, <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp;)&gt;;</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> </div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html"> 858</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1LedgerEntry.html">LedgerEntry</a></div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span>{</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc"> 860</a></span> <a class="code hl_class" href="classJson_1_1StaticString.html">Json::StaticString</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc">fieldName</a>;</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1"> 861</a></span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/functional/function.html">FunctionType</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1">parseFunction</a>;</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"><a class="line" href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6"> 862</a></span> <a class="code hl_enumeration" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139">LedgerEntryType</a> <a class="code hl_variable" href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6">expectedType</a>;</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span>};</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> </div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span><span class="comment">// {</span></div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span><span class="comment">// ledger_hash : &lt;ledger&gt;</span></div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span><span class="comment">// ledger_index : &lt;ledger_index&gt;</span></div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span><span class="comment">// ...</span></div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span><span class="comment">// }</span></div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"><a class="line" href="namespaceripple.html#a24a33406a7f084c597b43440d319b388"> 871</a></span><a class="code hl_function" href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">doLedgerEntry</a>(<a class="code hl_struct" href="structripple_1_1RPC_1_1JsonContext.html">RPC::JsonContext</a>&amp; context)</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span>{</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;ReadView const&gt;</a> lpLedger;</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> <span class="keyword">auto</span> jvResult = <a class="code hl_function" href="namespaceripple_1_1RPC.html#aaebfaaee35308269fab499f4e203a8c9">RPC::lookupLedger</a>(lpLedger, context);</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> </div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <span class="keywordflow">if</span> (!lpLedger)</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> </div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keyword">static</span> <span class="keyword">auto</span> ledgerEntryParsers = std::to_array&lt;LedgerEntry&gt;({</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> {jss::index, <a class="code hl_function" href="namespaceripple.html#a14daff47b30997c39410c1920588318d">parseIndex</a>, <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>},</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> {jss::account_root, <a class="code hl_function" href="namespaceripple.html#ac937f20fdf87ab6b1e3ece54f11cf8bb">parseAccountRoot</a>, ltACCOUNT_ROOT},</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> <span class="comment">// TODO: add amendments</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> {jss::amm, <a class="code hl_function" href="namespaceripple.html#a3bcd7621e12a7e4cad2626737f950d0f">parseAMM</a>, ltAMM},</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> {jss::bridge, <a class="code hl_function" href="namespaceripple.html#a3f461484540909c314d543d5bfc01e49">parseBridge</a>, ltBRIDGE},</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> {jss::check, <a class="code hl_function" href="namespaceripple.html#a691e32b08b44b10bdcec95e4b6f081d7">parseCheck</a>, ltCHECK},</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> {jss::credential, <a class="code hl_function" href="namespaceripple.html#a7c09ef92d877e967519cba821ea68e73">parseCredential</a>, ltCREDENTIAL},</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> {jss::deposit_preauth, <a class="code hl_function" href="namespaceripple.html#a4b10d56ba274533367ffe335e9a54e0a">parseDepositPreauth</a>, ltDEPOSIT_PREAUTH},</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> {jss::did, <a class="code hl_function" href="namespaceripple.html#aebba2b7ceb3ff56b395f36728c4ff891">parseDID</a>, ltDID},</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> {jss::directory, <a class="code hl_function" href="namespaceripple.html#ada7ed82ae90b5cef7da4139a4d377468">parseDirectory</a>, ltDIR_NODE},</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> {jss::escrow, <a class="code hl_function" href="namespaceripple.html#a877ac66fea02fe3284fed7308cb66442">parseEscrow</a>, ltESCROW},</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="comment">// TODO: add fee, hashes</span></div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> {jss::mpt_issuance, <a class="code hl_function" href="namespaceripple.html#a3db948c59f30d455ddc10322f5c5fbe4">parseMPTokenIssuance</a>, ltMPTOKEN_ISSUANCE},</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> {jss::mptoken, <a class="code hl_function" href="namespaceripple.html#a06886f646a128c36db61fa27a2b7d7b3">parseMPToken</a>, ltMPTOKEN},</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> <span class="comment">// TODO: add NFT Offers</span></div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> {jss::nft_page, <a class="code hl_function" href="namespaceripple.html#a55a96d706f6d4b715d8333ac89603849">parseNFTokenPage</a>, ltNFTOKEN_PAGE},</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="comment">// TODO: add NegativeUNL</span></div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> {jss::offer, <a class="code hl_function" href="namespaceripple.html#ab76a39be63be5fb8619758f7cff04802">parseOffer</a>, ltOFFER},</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> {jss::oracle, <a class="code hl_function" href="namespaceripple.html#a81efc27e8fe6f8a4604bf49d181de96a">parseOracle</a>, ltORACLE},</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> {jss::payment_channel, <a class="code hl_function" href="namespaceripple.html#a271b71a040a8f7cc7994fab6d083e48b">parsePaymentChannel</a>, ltPAYCHAN},</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> {jss::permissioned_domain,</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <a class="code hl_function" href="namespaceripple.html#af46627374c1fc1da4c4b99cf47283fa8">parsePermissionedDomains</a>,</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> ltPERMISSIONED_DOMAIN},</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> {jss::ripple_state, <a class="code hl_function" href="namespaceripple.html#ad07e4613a007aa94cb21458481f688f6">parseRippleState</a>, ltRIPPLE_STATE},</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="comment">// This is an alias, since the `ledger_data` filter uses jss::state</span></div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> {jss::state, <a class="code hl_function" href="namespaceripple.html#ad07e4613a007aa94cb21458481f688f6">parseRippleState</a>, ltRIPPLE_STATE},</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> {jss::ticket, <a class="code hl_function" href="namespaceripple.html#a76cbc53db52c42e50575007a80c3ac52">parseTicket</a>, ltTICKET},</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> {jss::xchain_owned_claim_id,</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <a class="code hl_function" href="namespaceripple.html#ad5bf699edf09688a73f5a5c4ce270835">parseXChainOwnedClaimID</a>,</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> ltXCHAIN_OWNED_CLAIM_ID},</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> {jss::xchain_owned_create_account_claim_id,</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <a class="code hl_function" href="namespaceripple.html#a8c84645e06c562f292355cd97298f291">parseXChainOwnedCreateAccountClaimID</a>,</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> ltXCHAIN_OWNED_CREATE_ACCOUNT_CLAIM_ID},</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> });</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> </div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> uNodeIndex;</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <a class="code hl_enumeration" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139">LedgerEntryType</a> expectedType = <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>;</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> </div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> {</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; ledgerEntry : ledgerEntryParsers)</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> {</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(ledgerEntry.fieldName))</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> {</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> expectedType = ledgerEntry.expectedType;</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <span class="comment">// `Bridge` is the only type that involves two fields at the</span></div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> <span class="comment">// `ledger_entry` param level.</span></div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> <span class="comment">// So that parser needs to have the whole `params` field.</span></div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <span class="comment">// All other parsers only need the one field name&#39;s info.</span></div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> <span class="keyword">const</span>&amp; params = ledgerEntry.fieldName == jss::bridge</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> ? context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a></div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> : context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>[ledgerEntry.fieldName];</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> uNodeIndex = ledgerEntry.parseFunction(params, jvResult)</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> .value_or(beast::zero);</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">if</span> (jvResult.isMember(jss::error))</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> {</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> }</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> found = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> }</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> }</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> </div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="keywordflow">if</span> (!found)</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> {</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1Context.html#a0eab3b46cc23d67a6d16d1fb6bcaf0a2">apiVersion</a> &lt; 2u)</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> jvResult[jss::error] = <span class="stringliteral">&quot;unknownOption&quot;</span>;</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> jvResult[jss::error] = <span class="stringliteral">&quot;invalidParams&quot;</span>;</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> }</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> }</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structJson_1_1error.html">Json::error</a>&amp; e)</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> {</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1Context.html#a0eab3b46cc23d67a6d16d1fb6bcaf0a2">apiVersion</a> &gt; 1u)</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> {</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <span class="comment">// For apiVersion 2 onwards, any parsing failures that throw this</span></div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> <span class="comment">// exception return an invalidParam error.</span></div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> jvResult[jss::error] = <span class="stringliteral">&quot;invalidParams&quot;</span>;</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> }</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="keywordflow">throw</span>;</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> }</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> </div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleNode = lpLedger-&gt;read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aaaeecce79e0ef09bd851bce0c0f2dfde">keylet::unchecked</a>(uNodeIndex));</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> </div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <span class="keywordtype">bool</span> bNodeBinary = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::binary))</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> bNodeBinary = context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>[jss::binary].<a class="code hl_function" href="classJson_1_1Value.html#ab693fb7b9b1595bb0adc49658bbf780d">asBool</a>();</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <span class="keywordflow">if</span> (uNodeIndex.isZero())</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> {</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> jvResult[jss::error] = <span class="stringliteral">&quot;entryNotFound&quot;</span>;</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> }</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> </div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="keywordflow">if</span> (!sleNode)</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> {</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> <span class="comment">// Not found.</span></div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> jvResult[jss::error] = <span class="stringliteral">&quot;entryNotFound&quot;</span>;</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> }</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> </div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <span class="keywordflow">if</span> ((expectedType != <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>) &amp;&amp; (expectedType != sleNode-&gt;getType()))</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> {</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> jvResult[jss::error] = <span class="stringliteral">&quot;unexpectedLedgerType&quot;</span>;</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleNode = lpLedger-&gt;read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aaaeecce79e0ef09bd851bce0c0f2dfde">keylet::unchecked</a>(uNodeIndex));</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> </div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> <span class="keywordtype">bool</span> bNodeBinary = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="keywordflow">if</span> (context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>.<a class="code hl_function" href="classJson_1_1Value.html#ad6d4df2227321bab05e86667609a7fad">isMember</a>(jss::binary))</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> bNodeBinary = context.<a class="code hl_variable" href="structripple_1_1RPC_1_1JsonContext.html#a036b2c14552fbca49011c3d0e78017fa">params</a>[jss::binary].<a class="code hl_function" href="classJson_1_1Value.html#ab693fb7b9b1595bb0adc49658bbf780d">asBool</a>();</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> </div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> <span class="keywordflow">if</span> (!sleNode)</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> {</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="comment">// Not found.</span></div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> jvResult[jss::error] = <span class="stringliteral">&quot;entryNotFound&quot;</span>;</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> }</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> </div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">if</span> (bNodeBinary)</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">if</span> ((expectedType != <a class="code hl_enumvalue" href="namespaceripple.html#ac151bf19e1f4daae2b04c65c65117139a926f3c33237e0c1bb2d4cb8afc0c82b4">ltANY</a>) &amp;&amp; (expectedType != sleNode-&gt;getType()))</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> {</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> <a class="code hl_class" href="classripple_1_1Serializer.html">Serializer</a> s;</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> </div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> sleNode-&gt;add(s);</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> jvResult[jss::error] = <span class="stringliteral">&quot;unexpectedLedgerType&quot;</span>;</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> }</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> </div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> jvResult[jss::node_binary] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(s.<a class="code hl_function" href="classripple_1_1Serializer.html#a4be06995bf7f2abee9df8a411303ca99">peekData</a>());</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> jvResult[jss::index] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(uNodeIndex);</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> }</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> jvResult[jss::node] = sleNode-&gt;getJson(<a class="code hl_enumvalue" href="structripple_1_1JsonOptions.html#ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33">JsonOptions::none</a>);</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> jvResult[jss::index] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(uNodeIndex);</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> }</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> </div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span>}</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> </div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status&gt;</a></div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"><a class="line" href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f"> 1004</a></span><a class="code hl_function" href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">doLedgerEntryGrpc</a>(</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <a class="code hl_struct" href="structripple_1_1RPC_1_1GRPCContext.html">RPC::GRPCContext&lt;org::xrpl::rpc::v1::GetLedgerEntryRequest&gt;</a>&amp; context)</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span>{</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> org::xrpl::rpc::v1::GetLedgerEntryRequest&amp; request = context.<a class="code hl_variable" href="structripple_1_1RPC_1_1GRPCContext.html#af072cfd1412032444cefd2f4dcf29555">params</a>;</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> org::xrpl::rpc::v1::GetLedgerEntryResponse response;</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> grpc::Status status = grpc::Status::OK;</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;ReadView const&gt;</a> ledger;</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> status = <a class="code hl_function" href="namespaceripple_1_1RPC.html#a104dbc5195143f3a17ab8b9af1ada0fc">RPC::ledgerFromRequest</a>(ledger, context))</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> {</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> grpc::Status errorStatus;</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordflow">if</span> (status.toErrorCode() == <a class="code hl_enumvalue" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>)</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> {</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> errorStatus = grpc::Status(</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> grpc::StatusCode::INVALID_ARGUMENT, status.message());</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> }</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> {</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> errorStatus =</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> grpc::Status(grpc::StatusCode::NOT_FOUND, status.message());</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> }</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> }</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> </div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <span class="keyword">auto</span> <span class="keyword">const</span> key = <a class="code hl_function" href="classripple_1_1base__uint.html#a4276e5c625a8033b0050251cddba741e">uint256::fromVoidChecked</a>(request.key());</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <span class="keywordflow">if</span> (!key)</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> {</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> grpc::Status errorStatus{</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> grpc::StatusCode::INVALID_ARGUMENT, <span class="stringliteral">&quot;index malformed&quot;</span>};</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> }</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> </div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleNode = ledger-&gt;read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aaaeecce79e0ef09bd851bce0c0f2dfde">keylet::unchecked</a>(*key));</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="keywordflow">if</span> (!sleNode)</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> {</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> grpc::Status errorStatus{</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> grpc::StatusCode::NOT_FOUND, <span class="stringliteral">&quot;object not found&quot;</span>};</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> }</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> </div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <a class="code hl_class" href="classripple_1_1Serializer.html">Serializer</a> s;</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> sleNode-&gt;add(s);</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> </div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="keyword">auto</span>&amp; stateObject = *response.mutable_ledger_object();</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> stateObject.set_data(s.<a class="code hl_function" href="classripple_1_1Serializer.html#a4be06995bf7f2abee9df8a411303ca99">peekData</a>().<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>(), s.<a class="code hl_function" href="classripple_1_1Serializer.html#aa5c7aa53db0c7c90c6a86dd5144e9255">getLength</a>());</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> stateObject.set_key(request.key());</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> *(response.mutable_ledger()) = request.ledger();</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <span class="keywordflow">return</span> {response, status};</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span>}</div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keywordflow">if</span> (bNodeBinary)</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> {</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> <a class="code hl_class" href="classripple_1_1Serializer.html">Serializer</a> s;</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> </div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> sleNode-&gt;add(s);</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> </div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> jvResult[jss::node_binary] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(s.<a class="code hl_function" href="classripple_1_1Serializer.html#a4be06995bf7f2abee9df8a411303ca99">peekData</a>());</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> jvResult[jss::index] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(uNodeIndex);</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> }</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> {</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> jvResult[jss::node] = sleNode-&gt;getJson(<a class="code hl_enumvalue" href="structripple_1_1JsonOptions.html#ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33">JsonOptions::none</a>);</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> jvResult[jss::index] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(uNodeIndex);</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> }</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> </div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> <span class="keywordflow">return</span> jvResult;</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>}</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> </div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status&gt;</a></div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"><a class="line" href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f"> 1010</a></span><a class="code hl_function" href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">doLedgerEntryGrpc</a>(</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <a class="code hl_struct" href="structripple_1_1RPC_1_1GRPCContext.html">RPC::GRPCContext&lt;org::xrpl::rpc::v1::GetLedgerEntryRequest&gt;</a>&amp; context)</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>{</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> org::xrpl::rpc::v1::GetLedgerEntryRequest&amp; request = context.<a class="code hl_variable" href="structripple_1_1RPC_1_1GRPCContext.html#af072cfd1412032444cefd2f4dcf29555">params</a>;</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> org::xrpl::rpc::v1::GetLedgerEntryResponse response;</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> grpc::Status status = grpc::Status::OK;</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> </div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;ReadView const&gt;</a> ledger;</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> status = <a class="code hl_function" href="namespaceripple_1_1RPC.html#a104dbc5195143f3a17ab8b9af1ada0fc">RPC::ledgerFromRequest</a>(ledger, context))</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> {</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> grpc::Status errorStatus;</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">if</span> (status.toErrorCode() == <a class="code hl_enumvalue" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">rpcINVALID_PARAMS</a>)</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> {</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> errorStatus = grpc::Status(</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> grpc::StatusCode::INVALID_ARGUMENT, status.message());</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> }</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> {</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> errorStatus =</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> grpc::Status(grpc::StatusCode::NOT_FOUND, status.message());</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> }</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> }</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> </div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keyword">auto</span> <span class="keyword">const</span> key = <a class="code hl_function" href="classripple_1_1base__uint.html#a4276e5c625a8033b0050251cddba741e">uint256::fromVoidChecked</a>(request.key());</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordflow">if</span> (!key)</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> {</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> grpc::Status errorStatus{</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> grpc::StatusCode::INVALID_ARGUMENT, <span class="stringliteral">&quot;index malformed&quot;</span>};</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> }</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleNode = ledger-&gt;read(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aaaeecce79e0ef09bd851bce0c0f2dfde">keylet::unchecked</a>(*key));</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="keywordflow">if</span> (!sleNode)</div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> {</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> grpc::Status errorStatus{</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> grpc::StatusCode::NOT_FOUND, <span class="stringliteral">&quot;object not found&quot;</span>};</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="keywordflow">return</span> {response, errorStatus};</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> }</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <a class="code hl_class" href="classripple_1_1Serializer.html">Serializer</a> s;</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> sleNode-&gt;add(s);</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> </div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <span class="keyword">auto</span>&amp; stateObject = *response.mutable_ledger_object();</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> stateObject.set_data(s.<a class="code hl_function" href="classripple_1_1Serializer.html#a4be06995bf7f2abee9df8a411303ca99">peekData</a>().<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>(), s.<a class="code hl_function" href="classripple_1_1Serializer.html#aa5c7aa53db0c7c90c6a86dd5144e9255">getLength</a>());</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> stateObject.set_key(request.key());</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> *(response.mutable_ledger()) = request.ledger();</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="keywordflow">return</span> {response, status};</div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span>}</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassJson_1_1StaticString_html"><div class="ttname"><a href="classJson_1_1StaticString.html">Json::StaticString</a></div><div class="ttdoc">Lightweight wrapper to tag static string.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00061">json_value.h:62</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00147">json_value.h:148</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html_a1627eb9d6568d6d0252fa8bb711c0a59"><div class="ttname"><a href="classJson_1_1Value.html#a1627eb9d6568d6d0252fa8bb711c0a59">Json::Value::isArray</a></div><div class="ttdeci">bool isArray() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l01034">json_value.cpp:1034</a></div></div>
@@ -1195,7 +1201,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a14daff47b30997c39410c1920588318d"><div class="ttname"><a href="namespaceripple.html#a14daff47b30997c39410c1920588318d">ripple::parseIndex</a></div><div class="ttdeci">static std::optional&lt; uint256 &gt; parseIndex(Json::Value const &amp;params, Json::Value &amp;jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00072">LedgerEntry.cpp:72</a></div></div>
<div class="ttc" id="anamespaceripple_html_a19d245e6bd5e15444887eaa9b37062e3"><div class="ttname"><a href="namespaceripple.html#a19d245e6bd5e15444887eaa9b37062e3">ripple::parseAuthorizeCredentials</a></div><div class="ttdeci">static STArray parseAuthorizeCredentials(Json::Value const &amp;jv)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00041">LedgerEntry.cpp:41</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2127aa882d06ad6aaae928d2e80fb395"><div class="ttname"><a href="namespaceripple.html#a2127aa882d06ad6aaae928d2e80fb395">ripple::strUnHex</a></div><div class="ttdeci">std::optional&lt; Blob &gt; strUnHex(std::size_t strSize, Iterator begin, Iterator end)</div><div class="ttdef"><b>Definition:</b> <a href="StringUtilities_8h_source.html#l00052">StringUtilities.h:52</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00865">LedgerEntry.cpp:865</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24a33406a7f084c597b43440d319b388"><div class="ttname"><a href="namespaceripple.html#a24a33406a7f084c597b43440d319b388">ripple::doLedgerEntry</a></div><div class="ttdeci">Json::Value doLedgerEntry(RPC::JsonContext &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00871">LedgerEntry.cpp:871</a></div></div>
<div class="ttc" id="anamespaceripple_html_a271b71a040a8f7cc7994fab6d083e48b"><div class="ttname"><a href="namespaceripple.html#a271b71a040a8f7cc7994fab6d083e48b">ripple::parsePaymentChannel</a></div><div class="ttdeci">static std::optional&lt; uint256 &gt; parsePaymentChannel(Json::Value const &amp;params, Json::Value &amp;jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00306">LedgerEntry.cpp:306</a></div></div>
<div class="ttc" id="anamespaceripple_html_a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4"><div class="ttname"><a href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a82ddebc5ec7a37ff38892487277bf9c4">ripple::rpcINVALID_PARAMS</a></div><div class="ttdeci">@ rpcINVALID_PARAMS</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8h_source.html#l00084">ErrorCodes.h:84</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3bcd7621e12a7e4cad2626737f950d0f"><div class="ttname"><a href="namespaceripple.html#a3bcd7621e12a7e4cad2626737f950d0f">ripple::parseAMM</a></div><div class="ttdeci">static std::optional&lt; uint256 &gt; parseAMM(Json::Value const &amp;params, Json::Value &amp;jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00405">LedgerEntry.cpp:405</a></div></div>
@@ -1211,7 +1217,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a86e358ce3f06ff049af13c2342791cf8"><div class="ttname"><a href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">ripple::strHex</a></div><div class="ttdeci">std::string strHex(FwdIt begin, FwdIt end)</div><div class="ttdef"><b>Definition:</b> <a href="strHex_8h_source.html#l00030">strHex.h:30</a></div></div>
<div class="ttc" id="anamespaceripple_html_a877ac66fea02fe3284fed7308cb66442"><div class="ttname"><a href="namespaceripple.html#a877ac66fea02fe3284fed7308cb66442">ripple::parseEscrow</a></div><div class="ttdeci">static std::optional&lt; uint256 &gt; parseEscrow(Json::Value const &amp;params, Json::Value &amp;jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00242">LedgerEntry.cpp:242</a></div></div>
<div class="ttc" id="anamespaceripple_html_a887b5df2b9a0afab88825b055004c7ce"><div class="ttname"><a href="namespaceripple.html#a887b5df2b9a0afab88825b055004c7ce">ripple::maxCredentialsArraySize</a></div><div class="ttdeci">std::size_t constexpr maxCredentialsArraySize</div><div class="ttdoc">The maximum number of credentials can be passed in array.</div><div class="ttdef"><b>Definition:</b> <a href="Protocol_8h_source.html#l00107">Protocol.h:107</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01004">LedgerEntry.cpp:1004</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8bbd46fdc8783ec29538b3d4a2e8178f"><div class="ttname"><a href="namespaceripple.html#a8bbd46fdc8783ec29538b3d4a2e8178f">ripple::doLedgerEntryGrpc</a></div><div class="ttdeci">std::pair&lt; org::xrpl::rpc::v1::GetLedgerEntryResponse, grpc::Status &gt; doLedgerEntryGrpc(RPC::GRPCContext&lt; org::xrpl::rpc::v1::GetLedgerEntryRequest &gt; &amp;context)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l01010">LedgerEntry.cpp:1010</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8c84645e06c562f292355cd97298f291"><div class="ttname"><a href="namespaceripple.html#a8c84645e06c562f292355cd97298f291">ripple::parseXChainOwnedCreateAccountClaimID</a></div><div class="ttdeci">static std::optional&lt; uint256 &gt; parseXChainOwnedCreateAccountClaimID(Json::Value const &amp;claim_id, Json::Value &amp;jvResult)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00561">LedgerEntry.cpp:561</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8ca5cc08ba7dc69eee680ce9f3e26d80"><div class="ttname"><a href="namespaceripple.html#a8ca5cc08ba7dc69eee680ce9f3e26d80">ripple::maxCredentialTypeLength</a></div><div class="ttdeci">std::size_t constexpr maxCredentialTypeLength</div><div class="ttdoc">The maximum length of a CredentialType inside a Credential.</div><div class="ttdef"><b>Definition:</b> <a href="Protocol_8h_source.html#l00104">Protocol.h:104</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab2bc2775fea3f2fd9210def82b415178"><div class="ttname"><a href="namespaceripple.html#ab2bc2775fea3f2fd9210def82b415178">ripple::getTicketIndex</a></div><div class="ttdeci">uint256 getTicketIndex(AccountID const &amp;account, std::uint32_t uSequence)</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00147">Indexes.cpp:147</a></div></div>
@@ -1235,10 +1241,10 @@ $(function() {
<div class="ttc" id="astructripple_1_1JsonOptions_html_ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33"><div class="ttname"><a href="structripple_1_1JsonOptions.html#ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33">ripple::JsonOptions::none</a></div><div class="ttdeci">@ none</div><div class="ttdef"><b>Definition:</b> <a href="STBase_8h_source.html#l00044">STBase.h:44</a></div></div>
<div class="ttc" id="astructripple_1_1Keylet_html"><div class="ttname"><a href="structripple_1_1Keylet.html">ripple::Keylet</a></div><div class="ttdoc">A pair of SHAMap key and LedgerEntryType.</div><div class="ttdef"><b>Definition:</b> <a href="Keylet_8h_source.html#l00038">Keylet.h:39</a></div></div>
<div class="ttc" id="astructripple_1_1Keylet_html_a482983062843a8682fcea76a309c73db"><div class="ttname"><a href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">ripple::Keylet::key</a></div><div class="ttdeci">uint256 key</div><div class="ttdef"><b>Definition:</b> <a href="Keylet_8h_source.html#l00040">Keylet.h:40</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html"><div class="ttname"><a href="structripple_1_1LedgerEntry.html">ripple::LedgerEntry</a></div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00852">LedgerEntry.cpp:853</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_a3a47deed0dd3efc9856ecbdc4acfd6d6"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6">ripple::LedgerEntry::expectedType</a></div><div class="ttdeci">LedgerEntryType expectedType</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00856">LedgerEntry.cpp:856</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_ad9fb239b39c7340e81b4e2550df103cc"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc">ripple::LedgerEntry::fieldName</a></div><div class="ttdeci">Json::StaticString fieldName</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00854">LedgerEntry.cpp:854</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_aeec66da2c9afc6680bfe7ae633ecf8b1"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1">ripple::LedgerEntry::parseFunction</a></div><div class="ttdeci">FunctionType parseFunction</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00855">LedgerEntry.cpp:855</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html"><div class="ttname"><a href="structripple_1_1LedgerEntry.html">ripple::LedgerEntry</a></div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00858">LedgerEntry.cpp:859</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_a3a47deed0dd3efc9856ecbdc4acfd6d6"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#a3a47deed0dd3efc9856ecbdc4acfd6d6">ripple::LedgerEntry::expectedType</a></div><div class="ttdeci">LedgerEntryType expectedType</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00862">LedgerEntry.cpp:862</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_ad9fb239b39c7340e81b4e2550df103cc"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#ad9fb239b39c7340e81b4e2550df103cc">ripple::LedgerEntry::fieldName</a></div><div class="ttdeci">Json::StaticString fieldName</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00860">LedgerEntry.cpp:860</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerEntry_html_aeec66da2c9afc6680bfe7ae633ecf8b1"><div class="ttname"><a href="structripple_1_1LedgerEntry.html#aeec66da2c9afc6680bfe7ae633ecf8b1">ripple::LedgerEntry::parseFunction</a></div><div class="ttdeci">FunctionType parseFunction</div><div class="ttdef"><b>Definition:</b> <a href="LedgerEntry_8cpp_source.html#l00861">LedgerEntry.cpp:861</a></div></div>
<div class="ttc" id="astructripple_1_1RPC_1_1Context_html_a0eab3b46cc23d67a6d16d1fb6bcaf0a2"><div class="ttname"><a href="structripple_1_1RPC_1_1Context.html#a0eab3b46cc23d67a6d16d1fb6bcaf0a2">ripple::RPC::Context::apiVersion</a></div><div class="ttdeci">unsigned int apiVersion</div><div class="ttdef"><b>Definition:</b> <a href="Context_8h_source.html#l00049">Context.h:49</a></div></div>
<div class="ttc" id="astructripple_1_1RPC_1_1GRPCContext_html"><div class="ttname"><a href="structripple_1_1RPC_1_1GRPCContext.html">ripple::RPC::GRPCContext</a></div><div class="ttdef"><b>Definition:</b> <a href="Context_8h_source.html#l00069">Context.h:70</a></div></div>
<div class="ttc" id="astructripple_1_1RPC_1_1GRPCContext_html_af072cfd1412032444cefd2f4dcf29555"><div class="ttname"><a href="structripple_1_1RPC_1_1GRPCContext.html#af072cfd1412032444cefd2f4dcf29555">ripple::RPC::GRPCContext::params</a></div><div class="ttdeci">RequestType params</div><div class="ttdef"><b>Definition:</b> <a href="Context_8h_source.html#l00071">Context.h:71</a></div></div>

View File

@@ -3263,72 +3263,83 @@ $(function() {
<div class="line"><a id="l03189" name="l03189"></a><span class="lineno"> 3189</span> params[jss::permissioned_domain][jss::account] = 1;</div>
<div class="line"><a id="l03190" name="l03190"></a><span class="lineno"> 3190</span> params[jss::permissioned_domain][jss::seq] = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l03191" name="l03191"></a><span class="lineno"> 3191</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedRequest&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03192" name="l03192"></a><span class="lineno"> 3192</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedAddress&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03193" name="l03193"></a><span class="lineno"> 3193</span> }</div>
<div class="line"><a id="l03194" name="l03194"></a><span class="lineno"> 3194</span> </div>
<div class="line"><a id="l03195" name="l03195"></a><span class="lineno"> 3195</span> {</div>
<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</span> <span class="comment">// Fail, no account</span></div>
<div class="line"><a id="l03196" name="l03196"></a><span class="lineno"> 3196</span> <span class="comment">// Fail, account is an object</span></div>
<div class="line"><a id="l03197" name="l03197"></a><span class="lineno"> 3197</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> params;</div>
<div class="line"><a id="l03198" name="l03198"></a><span class="lineno"> 3198</span> params[jss::ledger_index] = jss::validated;</div>
<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</span> params[jss::permissioned_domain][jss::account] = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l03200" name="l03200"></a><span class="lineno"> 3200</span> params[jss::permissioned_domain][jss::seq] = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedAddress&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span> }</div>
<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span> </div>
<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span> {</div>
<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span> <span class="comment">// Fail, invalid sequence</span></div>
<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> params;</div>
<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"> 3208</span> params[jss::ledger_index] = jss::validated;</div>
<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"> 3209</span> params[jss::permissioned_domain][jss::account] = alice.human();</div>
<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"> 3210</span> params[jss::permissioned_domain][jss::seq] = <span class="stringliteral">&quot;12g&quot;</span>;</div>
<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"> 3211</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedRequest&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span> }</div>
<div class="line"><a id="l03199" name="l03199"></a><span class="lineno"> 3199</span> params[jss::permissioned_domain][jss::account] =</div>
<div class="line"><a id="l03200" name="l03200"></a><span class="lineno"> 3200</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>{<a class="code hl_enumvalue" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::ValueType::objectValue</a>};</div>
<div class="line"><a id="l03201" name="l03201"></a><span class="lineno"> 3201</span> params[jss::permissioned_domain][jss::seq] = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l03202" name="l03202"></a><span class="lineno"> 3202</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03203" name="l03203"></a><span class="lineno"> 3203</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedAddress&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03204" name="l03204"></a><span class="lineno"> 3204</span> }</div>
<div class="line"><a id="l03205" name="l03205"></a><span class="lineno"> 3205</span> </div>
<div class="line"><a id="l03206" name="l03206"></a><span class="lineno"> 3206</span> {</div>
<div class="line"><a id="l03207" name="l03207"></a><span class="lineno"> 3207</span> <span class="comment">// Fail, no account</span></div>
<div class="line"><a id="l03208" name="l03208"></a><span class="lineno"> 3208</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> params;</div>
<div class="line"><a id="l03209" name="l03209"></a><span class="lineno"> 3209</span> params[jss::ledger_index] = jss::validated;</div>
<div class="line"><a id="l03210" name="l03210"></a><span class="lineno"> 3210</span> params[jss::permissioned_domain][jss::account] = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a id="l03211" name="l03211"></a><span class="lineno"> 3211</span> params[jss::permissioned_domain][jss::seq] = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l03212" name="l03212"></a><span class="lineno"> 3212</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"> 3213</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedAddress&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span> }</div>
<div class="line"><a id="l03215" name="l03215"></a><span class="lineno"> 3215</span> </div>
<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba"> 3218</a></span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"> 3220</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad2c48fcad36d8180f75bff57a657337e">testLedgerRequest</a>();</div>
<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2ba728b8f3a0ab1844f9beb8f1b6aa39">testBadInput</a>();</div>
<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a09363031f4fe1e6f8a5a72c447a9293a">testLedgerCurrent</a>();</div>
<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">testMissingLedgerEntryLedgerHash</a>();</div>
<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a668721745cd0bc9f73449afe68a318b1">testLedgerFull</a>();</div>
<div class="line"><a id="l03225" name="l03225"></a><span class="lineno"> 3225</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a3f2cca5d2a38ae42a24cd6cd1b4bab15">testLedgerFullNonAdmin</a>();</div>
<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ab028e86674cbb2cf6b0b530183c14c58">testLedgerAccounts</a>();</div>
<div class="line"><a id="l03227" name="l03227"></a><span class="lineno"> 3227</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad4e9d9909f936f4655bfeb05d347443e">testLedgerEntryAccountRoot</a>();</div>
<div class="line"><a id="l03228" name="l03228"></a><span class="lineno"> 3228</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a3673b70a465c8df505656b86121b2cf8">testLedgerEntryCheck</a>();</div>
<div class="line"><a id="l03229" name="l03229"></a><span class="lineno"> 3229</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a9e4f8228408ced392d2381a8d2aac63b">testLedgerEntryCredentials</a>();</div>
<div class="line"><a id="l03230" name="l03230"></a><span class="lineno"> 3230</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a9c5e2c28a66046a8d02ad655956a8e59">testLedgerEntryDepositPreauth</a>();</div>
<div class="line"><a id="l03231" name="l03231"></a><span class="lineno"> 3231</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ab3bb9e18f6f4358eaa7f6bf18c5d9fbd">testLedgerEntryDepositPreauthCred</a>();</div>
<div class="line"><a id="l03232" name="l03232"></a><span class="lineno"> 3232</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6d97a0d575938ede162ac7a202fa68b6">testLedgerEntryDirectory</a>();</div>
<div class="line"><a id="l03233" name="l03233"></a><span class="lineno"> 3233</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a77b33974a78b873836071ec83cacf7ac">testLedgerEntryEscrow</a>();</div>
<div class="line"><a id="l03234" name="l03234"></a><span class="lineno"> 3234</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a8d711c2c90c5aa06cc09e31a50903eb3">testLedgerEntryOffer</a>();</div>
<div class="line"><a id="l03235" name="l03235"></a><span class="lineno"> 3235</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aaa81a08ac938a3d3d6a769638da082c6">testLedgerEntryPayChan</a>();</div>
<div class="line"><a id="l03236" name="l03236"></a><span class="lineno"> 3236</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad424a93e08a6e57546221add310b123d">testLedgerEntryRippleState</a>();</div>
<div class="line"><a id="l03237" name="l03237"></a><span class="lineno"> 3237</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aed774f98182f3dcc294a9a16879600ef">testLedgerEntryTicket</a>();</div>
<div class="line"><a id="l03238" name="l03238"></a><span class="lineno"> 3238</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2f07bf50ea7cb38a59f1975ccd324eb5">testLookupLedger</a>();</div>
<div class="line"><a id="l03239" name="l03239"></a><span class="lineno"> 3239</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>();</div>
<div class="line"><a id="l03240" name="l03240"></a><span class="lineno"> 3240</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>();</div>
<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"> 3241</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>();</div>
<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"> 3242</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6f0ef77fd778740b54569d800858fecd">testLedgerEntryDID</a>();</div>
<div class="line"><a id="l03243" name="l03243"></a><span class="lineno"> 3243</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6c0c23472096d9cdb1814f299074a937">testInvalidOracleLedgerEntry</a>();</div>
<div class="line"><a id="l03244" name="l03244"></a><span class="lineno"> 3244</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a1ef56389a980996da7e73e971fb80893">testOracleLedgerEntry</a>();</div>
<div class="line"><a id="l03245" name="l03245"></a><span class="lineno"> 3245</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2313f12e20f472742171b1c67e731fbc">testLedgerEntryMPT</a>();</div>
<div class="line"><a id="l03246" name="l03246"></a><span class="lineno"> 3246</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad285265a10ff1e92bcbc162d06b5e52b">testLedgerEntryCLI</a>();</div>
<div class="line"><a id="l03247" name="l03247"></a><span class="lineno"> 3247</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#afab5781afb493c1d913d8259d868c2b4">testLedgerEntryPermissionedDomain</a>();</div>
<div class="line"><a id="l03248" name="l03248"></a><span class="lineno"> 3248</span> </div>
<div class="line"><a id="l03249" name="l03249"></a><span class="lineno"> 3249</span> <a class="code hl_function" href="namespaceripple.html#a9f8b4ebe6b42066b9e39967ed80daf79">forAllApiVersions</a>(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind_front.html">std::bind_front</a>(</div>
<div class="line"><a id="l03250" name="l03250"></a><span class="lineno"> 3250</span> &amp;<a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#acae8c6d1be080cacabd0e6cbbfcd6e0f">LedgerRPC_test::testLedgerEntryInvalidParams</a>, <span class="keyword">this</span>));</div>
<div class="line"><a id="l03251" name="l03251"></a><span class="lineno"> 3251</span> }</div>
<div class="line"><a id="l03252" name="l03252"></a><span class="lineno"> 3252</span>};</div>
<div class="line"><a id="l03253" name="l03253"></a><span class="lineno"> 3253</span> </div>
<div class="line"><a id="l03254" name="l03254"></a><span class="lineno"><a class="line" href="namespaceripple.html#a8701631f0bb6febef8a14ab68252df67"> 3254</a></span>BEAST_DEFINE_TESTSUITE(LedgerRPC, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03255" name="l03255"></a><span class="lineno"><a class="line" href="namespaceripple.html#a439cb0695442f09847a8a5af9af89260"> 3255</a></span>BEAST_DEFINE_TESTSUITE(LedgerRPC_XChain, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03256" name="l03256"></a><span class="lineno"> 3256</span> </div>
<div class="line"><a id="l03257" name="l03257"></a><span class="lineno"> 3257</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l03216" name="l03216"></a><span class="lineno"> 3216</span> {</div>
<div class="line"><a id="l03217" name="l03217"></a><span class="lineno"> 3217</span> <span class="comment">// Fail, invalid sequence</span></div>
<div class="line"><a id="l03218" name="l03218"></a><span class="lineno"> 3218</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> params;</div>
<div class="line"><a id="l03219" name="l03219"></a><span class="lineno"> 3219</span> params[jss::ledger_index] = jss::validated;</div>
<div class="line"><a id="l03220" name="l03220"></a><span class="lineno"> 3220</span> params[jss::permissioned_domain][jss::account] = alice.human();</div>
<div class="line"><a id="l03221" name="l03221"></a><span class="lineno"> 3221</span> params[jss::permissioned_domain][jss::seq] = <span class="stringliteral">&quot;12g&quot;</span>;</div>
<div class="line"><a id="l03222" name="l03222"></a><span class="lineno"> 3222</span> <span class="keyword">auto</span> <span class="keyword">const</span> jrr = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ad69855b4b26fc3c83922c5783487592c">rpc</a>(<span class="stringliteral">&quot;json&quot;</span>, <span class="stringliteral">&quot;ledger_entry&quot;</span>, <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(params));</div>
<div class="line"><a id="l03223" name="l03223"></a><span class="lineno"> 3223</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a99424fe6e049020d57aa87b485e3355c">checkErrorValue</a>(jrr[jss::result], <span class="stringliteral">&quot;malformedRequest&quot;</span>, <span class="stringliteral">&quot;&quot;</span>);</div>
<div class="line"><a id="l03224" name="l03224"></a><span class="lineno"> 3224</span> }</div>
<div class="line"><a id="l03225" name="l03225"></a><span class="lineno"> 3225</span> }</div>
<div class="line"><a id="l03226" name="l03226"></a><span class="lineno"> 3226</span> </div>
<div class="line"><a id="l03227" name="l03227"></a><span class="lineno"> 3227</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l03228" name="l03228"></a><span class="lineno"> 3228</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l03229" name="l03229"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba"> 3229</a></span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l03230" name="l03230"></a><span class="lineno"> 3230</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l03231" name="l03231"></a><span class="lineno"> 3231</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad2c48fcad36d8180f75bff57a657337e">testLedgerRequest</a>();</div>
<div class="line"><a id="l03232" name="l03232"></a><span class="lineno"> 3232</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2ba728b8f3a0ab1844f9beb8f1b6aa39">testBadInput</a>();</div>
<div class="line"><a id="l03233" name="l03233"></a><span class="lineno"> 3233</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a09363031f4fe1e6f8a5a72c447a9293a">testLedgerCurrent</a>();</div>
<div class="line"><a id="l03234" name="l03234"></a><span class="lineno"> 3234</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">testMissingLedgerEntryLedgerHash</a>();</div>
<div class="line"><a id="l03235" name="l03235"></a><span class="lineno"> 3235</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a668721745cd0bc9f73449afe68a318b1">testLedgerFull</a>();</div>
<div class="line"><a id="l03236" name="l03236"></a><span class="lineno"> 3236</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a3f2cca5d2a38ae42a24cd6cd1b4bab15">testLedgerFullNonAdmin</a>();</div>
<div class="line"><a id="l03237" name="l03237"></a><span class="lineno"> 3237</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ab028e86674cbb2cf6b0b530183c14c58">testLedgerAccounts</a>();</div>
<div class="line"><a id="l03238" name="l03238"></a><span class="lineno"> 3238</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad4e9d9909f936f4655bfeb05d347443e">testLedgerEntryAccountRoot</a>();</div>
<div class="line"><a id="l03239" name="l03239"></a><span class="lineno"> 3239</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a3673b70a465c8df505656b86121b2cf8">testLedgerEntryCheck</a>();</div>
<div class="line"><a id="l03240" name="l03240"></a><span class="lineno"> 3240</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a9e4f8228408ced392d2381a8d2aac63b">testLedgerEntryCredentials</a>();</div>
<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"> 3241</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a9c5e2c28a66046a8d02ad655956a8e59">testLedgerEntryDepositPreauth</a>();</div>
<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"> 3242</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ab3bb9e18f6f4358eaa7f6bf18c5d9fbd">testLedgerEntryDepositPreauthCred</a>();</div>
<div class="line"><a id="l03243" name="l03243"></a><span class="lineno"> 3243</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6d97a0d575938ede162ac7a202fa68b6">testLedgerEntryDirectory</a>();</div>
<div class="line"><a id="l03244" name="l03244"></a><span class="lineno"> 3244</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a77b33974a78b873836071ec83cacf7ac">testLedgerEntryEscrow</a>();</div>
<div class="line"><a id="l03245" name="l03245"></a><span class="lineno"> 3245</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a8d711c2c90c5aa06cc09e31a50903eb3">testLedgerEntryOffer</a>();</div>
<div class="line"><a id="l03246" name="l03246"></a><span class="lineno"> 3246</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aaa81a08ac938a3d3d6a769638da082c6">testLedgerEntryPayChan</a>();</div>
<div class="line"><a id="l03247" name="l03247"></a><span class="lineno"> 3247</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad424a93e08a6e57546221add310b123d">testLedgerEntryRippleState</a>();</div>
<div class="line"><a id="l03248" name="l03248"></a><span class="lineno"> 3248</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#aed774f98182f3dcc294a9a16879600ef">testLedgerEntryTicket</a>();</div>
<div class="line"><a id="l03249" name="l03249"></a><span class="lineno"> 3249</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2f07bf50ea7cb38a59f1975ccd324eb5">testLookupLedger</a>();</div>
<div class="line"><a id="l03250" name="l03250"></a><span class="lineno"> 3250</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>();</div>
<div class="line"><a id="l03251" name="l03251"></a><span class="lineno"> 3251</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>();</div>
<div class="line"><a id="l03252" name="l03252"></a><span class="lineno"> 3252</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>();</div>
<div class="line"><a id="l03253" name="l03253"></a><span class="lineno"> 3253</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6f0ef77fd778740b54569d800858fecd">testLedgerEntryDID</a>();</div>
<div class="line"><a id="l03254" name="l03254"></a><span class="lineno"> 3254</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a6c0c23472096d9cdb1814f299074a937">testInvalidOracleLedgerEntry</a>();</div>
<div class="line"><a id="l03255" name="l03255"></a><span class="lineno"> 3255</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a1ef56389a980996da7e73e971fb80893">testOracleLedgerEntry</a>();</div>
<div class="line"><a id="l03256" name="l03256"></a><span class="lineno"> 3256</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#a2313f12e20f472742171b1c67e731fbc">testLedgerEntryMPT</a>();</div>
<div class="line"><a id="l03257" name="l03257"></a><span class="lineno"> 3257</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#ad285265a10ff1e92bcbc162d06b5e52b">testLedgerEntryCLI</a>();</div>
<div class="line"><a id="l03258" name="l03258"></a><span class="lineno"> 3258</span> <a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#afab5781afb493c1d913d8259d868c2b4">testLedgerEntryPermissionedDomain</a>();</div>
<div class="line"><a id="l03259" name="l03259"></a><span class="lineno"> 3259</span> </div>
<div class="line"><a id="l03260" name="l03260"></a><span class="lineno"> 3260</span> <a class="code hl_function" href="namespaceripple.html#a9f8b4ebe6b42066b9e39967ed80daf79">forAllApiVersions</a>(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/functional/bind_front.html">std::bind_front</a>(</div>
<div class="line"><a id="l03261" name="l03261"></a><span class="lineno"> 3261</span> &amp;<a class="code hl_function" href="classripple_1_1LedgerRPC__test.html#acae8c6d1be080cacabd0e6cbbfcd6e0f">LedgerRPC_test::testLedgerEntryInvalidParams</a>, <span class="keyword">this</span>));</div>
<div class="line"><a id="l03262" name="l03262"></a><span class="lineno"> 3262</span> }</div>
<div class="line"><a id="l03263" name="l03263"></a><span class="lineno"> 3263</span>};</div>
<div class="line"><a id="l03264" name="l03264"></a><span class="lineno"> 3264</span> </div>
<div class="line"><a id="l03265" name="l03265"></a><span class="lineno"><a class="line" href="namespaceripple.html#a8701631f0bb6febef8a14ab68252df67"> 3265</a></span>BEAST_DEFINE_TESTSUITE(LedgerRPC, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03266" name="l03266"></a><span class="lineno"><a class="line" href="namespaceripple.html#a439cb0695442f09847a8a5af9af89260"> 3266</a></span>BEAST_DEFINE_TESTSUITE(LedgerRPC_XChain, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03267" name="l03267"></a><span class="lineno"> 3267</span> </div>
<div class="line"><a id="l03268" name="l03268"></a><span class="lineno"> 3268</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aall_any_none_of_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a></div><div class="ttdeci">T any_of(T... args)</div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="abasic_string_view_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string_view.html">std::string_view</a></div></div>
@@ -3375,7 +3386,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_aac75adc3929f58999d91f21912e24e26"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">ripple::LedgerRPC_test::testMissingLedgerEntryLedgerHash</a></div><div class="ttdeci">void testMissingLedgerEntryLedgerHash()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00529">LedgerRPC_test.cpp:529</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ab028e86674cbb2cf6b0b530183c14c58"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ab028e86674cbb2cf6b0b530183c14c58">ripple::LedgerRPC_test::testLedgerAccounts</a></div><div class="ttdeci">void testLedgerAccounts()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00587">LedgerRPC_test.cpp:587</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ab3bb9e18f6f4358eaa7f6bf18c5d9fbd"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ab3bb9e18f6f4358eaa7f6bf18c5d9fbd">ripple::LedgerRPC_test::testLedgerEntryDepositPreauthCred</a></div><div class="ttdeci">void testLedgerEntryDepositPreauthCred()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01072">LedgerRPC_test.cpp:1072</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_abbafb9158567841d3ce81a0ee5f954ba"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">ripple::LedgerRPC_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdoc">Runs the suite.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l03218">LedgerRPC_test.cpp:3218</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_abbafb9158567841d3ce81a0ee5f954ba"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">ripple::LedgerRPC_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdoc">Runs the suite.</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l03229">LedgerRPC_test.cpp:3229</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_acae8c6d1be080cacabd0e6cbbfcd6e0f"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#acae8c6d1be080cacabd0e6cbbfcd6e0f">ripple::LedgerRPC_test::testLedgerEntryInvalidParams</a></div><div class="ttdeci">void testLedgerEntryInvalidParams(unsigned int apiVersion)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l02222">LedgerRPC_test.cpp:2222</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ad285265a10ff1e92bcbc162d06b5e52b"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ad285265a10ff1e92bcbc162d06b5e52b">ripple::LedgerRPC_test::testLedgerEntryCLI</a></div><div class="ttdeci">void testLedgerEntryCLI()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l03074">LedgerRPC_test.cpp:3074</a></div></div>
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ad2c48fcad36d8180f75bff57a657337e"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ad2c48fcad36d8180f75bff57a657337e">ripple::LedgerRPC_test::testLedgerRequest</a></div><div class="ttdeci">void testLedgerRequest()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00383">LedgerRPC_test.cpp:383</a></div></div>

View File

@@ -1169,7 +1169,7 @@ Private Attributes</h2></td></tr>
<p>Implements <a class="el" href="classbeast_1_1unit__test_1_1suite.html#aea7ffa0eca5e015d21be62a18adb8393">beast::unit_test::suite</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerRPC__test_8cpp_source.html#l03218">3218</a> of file <a class="el" href="LedgerRPC__test_8cpp_source.html">LedgerRPC_test.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerRPC__test_8cpp_source.html#l03229">3229</a> of file <a class="el" href="LedgerRPC__test_8cpp_source.html">LedgerRPC_test.cpp</a>.</p>
</div>
</div>

View File

@@ -7780,7 +7780,7 @@ template&lt;class T &gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00849">849</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00855">855</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>
@@ -42172,7 +42172,7 @@ template&lt;class T &gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l01004">1004</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l01010">1010</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>
@@ -43278,7 +43278,7 @@ template&lt;class T &gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00865">865</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00871">871</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>

View File

@@ -101,7 +101,7 @@ Public Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00852">852</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00858">858</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="ad9fb239b39c7340e81b4e2550df103cc" name="ad9fb239b39c7340e81b4e2550df103cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9fb239b39c7340e81b4e2550df103cc">&#9670;&#160;</a></span>fieldName</h2>
@@ -115,7 +115,7 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00854">854</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00860">860</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>
@@ -131,7 +131,7 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00855">855</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00861">861</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>
@@ -147,7 +147,7 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00856">856</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="LedgerEntry_8cpp_source.html#l00862">862</a> of file <a class="el" href="LedgerEntry_8cpp_source.html">LedgerEntry.cpp</a>.</p>
</div>
</div>