This commit is contained in:
bthomee
2025-05-08 10:18:19 +00:00
parent 33e969bfe2
commit 3c36d01be9
2172 changed files with 52649 additions and 41424 deletions

View File

@@ -543,145 +543,147 @@ $(function() {
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a6d3f971025ae71f147b0bc3898b049eb">signer</a>(*<span class="keyword">this</span>, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>);</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a394954d8b32e0e8fd34a6fd57e1847a8">fill_sig</a>)</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">lookup</a>(jv[jss::Account].asString());</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().checkSigs())</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> {</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> jv[jss::SigningPubKey] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(account.pk().slice());</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="comment">// dummy sig otherwise STTx is invalid</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> jv[jss::TxnSignature] = <span class="stringliteral">&quot;00&quot;</span>;</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> }</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">auto</span> <span class="keyword">const</span> ar = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(account);</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <span class="keywordflow">if</span> (ar &amp;&amp; ar-&gt;isFieldPresent(sfRegularKey))</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">jtx::sign</a>(jv, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">lookup</a>(ar-&gt;getAccountID(sfRegularKey)));</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">jtx::sign</a>(jv, account);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span>}</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a"> 484</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a">Env::autofill</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span>{</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">auto</span>&amp; jv = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>;</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a98069e0239b1a4dca64e69d811778403">fill_fee</a>)</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">jtx::fill_fee</a>(jv, *<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>());</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a46aaf770ca9c5a20c1c88d898aaab946">fill_seq</a>)</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">jtx::fill_seq</a>(jv, *<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>());</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a9f83ee766ca0bebaf441d1adf9cef6c9">fill_netid</a>)</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> {</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> uint32_t networkID = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#a11b953ea00abeec2a4a0428cd1efcb7e">NETWORK_ID</a>;</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keywordflow">if</span> (!jv.isMember(jss::NetworkID) &amp;&amp; networkID &gt; 1024)</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> jv[jss::NetworkID] = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(networkID);</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> }</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="comment">// Must come last</span></div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> {</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a8dea1ec361bd7491b37bd23c815708a4">autofill_sig</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>);</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> }</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> {</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a1ffeb4df2a38432e462cf38e00b0b677">parseFailureExpected_</a>)</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;parse failed:\n&quot;</span> &lt;&lt; pretty(jv) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> }</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span>}</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STTx const&gt;</a></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda"> 513</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda">Env::st</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span>{</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="comment">// The parse must succeed, since we</span></div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="comment">// generated the JSON ourselves.</span></div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STObject&gt;</a> obj;</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> {</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> obj = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">jtx::parse</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>);</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> }</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">jtx::parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;Exception: parse_error\n&quot;</span> &lt;&lt; pretty(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> }</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> {</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a14a54f86104a277d3818fb03ddc0df6c">sterilize</a>(<a class="code hl_class" href="classripple_1_1STTx.html">STTx</a>{std::move(*obj)});</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> }</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> {</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> }</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span>}</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> </div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STTx const&gt;</a></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319"> 539</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319">Env::ust</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span>{</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> <span class="comment">// The parse must succeed, since we</span></div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="comment">// generated the JSON ourselves.</span></div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STObject&gt;</a> obj;</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> {</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> obj = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">jtx::parse</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">jtx::parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> {</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;Exception: parse_error\n&quot;</span> &lt;&lt; pretty(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> }</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> {</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">return</span> std::make_shared&lt;STTx const&gt;(std::move(*obj));</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> }</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> {</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> }</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span>}</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> </div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0"> 565</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0">Env::do_rpc</a>(</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordtype">unsigned</span> apiVersion,</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::string&gt;</a> <span class="keyword">const</span>&amp; args,</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map&lt;std::string, std::string&gt;</a> <span class="keyword">const</span>&amp; headers)</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span>{</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keyword">auto</span> response =</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <a class="code hl_function" href="namespaceripple.html#a1675cc24642888c8fd2c1b39923086b0">rpcClient</a>(args, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().config(), <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().logs(), apiVersion, headers);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> ctr = 0; (ctr &lt; <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#ac5cf49641e03f657c2df30a7b1affcb9">retries_</a>) and (response.first == <a class="code hl_enumvalue" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>);</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> ++ctr)</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> {</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> JLOG(<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>())</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> &lt;&lt; <span class="stringliteral">&quot;Env::do_rpc error, retrying, attempt #&quot;</span> &lt;&lt; ctr + 1 &lt;&lt; <span class="stringliteral">&quot; ...&quot;</span>;</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/thread/sleep_for.html">std::this_thread::sleep_for</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>(500));</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> response =</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <a class="code hl_function" href="namespaceripple.html#a1675cc24642888c8fd2c1b39923086b0">rpcClient</a>(args, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().config(), <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().logs(), apiVersion, headers);</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> }</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> </div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">return</span> response.second;</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span>}</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3"> 588</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3">Env::enableFeature</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span> feature)</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span>{</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="comment">// Env::close() must be called for feature</span></div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// enable to take place.</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#ad053293ba571075ebfa6f086ed70fdc5">features</a>.insert(feature);</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span>}</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> </div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565"> 596</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565">Env::disableFeature</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span> feature)</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span>{</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="comment">// Env::close() must be called for feature</span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// enable to take place.</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#ad053293ba571075ebfa6f086ed70fdc5">features</a>.erase(feature);</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span>}</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> </div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span>} <span class="comment">// namespace jtx</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = jv.isMember(sfDelegate.jsonName)</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> ? <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">lookup</a>(jv[sfDelegate.jsonName].asString())</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> : <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">lookup</a>(jv[jss::Account].asString());</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().checkSigs())</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> jv[jss::SigningPubKey] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(account.pk().slice());</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="comment">// dummy sig otherwise STTx is invalid</span></div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> jv[jss::TxnSignature] = <span class="stringliteral">&quot;00&quot;</span>;</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> }</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">auto</span> <span class="keyword">const</span> ar = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(account);</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">if</span> (ar &amp;&amp; ar-&gt;isFieldPresent(sfRegularKey))</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">jtx::sign</a>(jv, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">lookup</a>(ar-&gt;getAccountID(sfRegularKey)));</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">jtx::sign</a>(jv, account);</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span>}</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a"> 486</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a">Env::autofill</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span>{</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="keyword">auto</span>&amp; jv = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>;</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a98069e0239b1a4dca64e69d811778403">fill_fee</a>)</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">jtx::fill_fee</a>(jv, *<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>());</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a46aaf770ca9c5a20c1c88d898aaab946">fill_seq</a>)</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">jtx::fill_seq</a>(jv, *<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>());</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> </div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a9f83ee766ca0bebaf441d1adf9cef6c9">fill_netid</a>)</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> {</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> uint32_t networkID = <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#a11b953ea00abeec2a4a0428cd1efcb7e">NETWORK_ID</a>;</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">if</span> (!jv.isMember(jss::NetworkID) &amp;&amp; networkID &gt; 1024)</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> jv[jss::NetworkID] = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(networkID);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> }</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> </div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="comment">// Must come last</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> {</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a8dea1ec361bd7491b37bd23c815708a4">autofill_sig</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>);</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> }</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> {</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a1ffeb4df2a38432e462cf38e00b0b677">parseFailureExpected_</a>)</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;parse failed:\n&quot;</span> &lt;&lt; pretty(jv) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> }</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span>}</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> </div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STTx const&gt;</a></div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda"> 515</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda">Env::st</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span>{</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="comment">// The parse must succeed, since we</span></div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="comment">// generated the JSON ourselves.</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STObject&gt;</a> obj;</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> {</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> obj = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">jtx::parse</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">jtx::parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> {</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;Exception: parse_error\n&quot;</span> &lt;&lt; pretty(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> }</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> {</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a14a54f86104a277d3818fb03ddc0df6c">sterilize</a>(<a class="code hl_class" href="classripple_1_1STTx.html">STTx</a>{std::move(*obj)});</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> }</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> }</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span>}</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> </div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;STTx const&gt;</a></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319"> 541</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319">Env::ust</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1JTx.html">JTx</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>)</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span>{</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// The parse must succeed, since we</span></div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="comment">// generated the JSON ourselves.</span></div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STObject&gt;</a> obj;</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> {</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> obj = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">jtx::parse</a>(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>);</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> }</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <span class="keywordflow">catch</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1parse__error.html">jtx::parse_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> {</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#a404fe165c9a8096d23b0ec3f2f99dada">test</a>.<a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#a19b8ee0ce850d78834984655ae83b20e">log</a> &lt;&lt; <span class="stringliteral">&quot;Exception: parse_error\n&quot;</span> &lt;&lt; pretty(<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1JTx.html#a4b79d68d69b3eb4f173ff66c4d561363">jv</a>) &lt;&lt; <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <a class="code hl_function" href="namespaceripple.html#ad99788f1aca6ce31a1fe8365eee1bba3">Rethrow</a>();</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> }</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> {</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> std::make_shared&lt;STTx const&gt;(std::move(*obj));</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> }</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> }</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span>}</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> </div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0"> 567</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0">Env::do_rpc</a>(</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keywordtype">unsigned</span> apiVersion,</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::string&gt;</a> <span class="keyword">const</span>&amp; args,</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/unordered_map.html">std::unordered_map&lt;std::string, std::string&gt;</a> <span class="keyword">const</span>&amp; headers)</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span>{</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keyword">auto</span> response =</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <a class="code hl_function" href="namespaceripple.html#a1675cc24642888c8fd2c1b39923086b0">rpcClient</a>(args, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().config(), <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().logs(), apiVersion, headers);</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> </div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> ctr = 0; (ctr &lt; <a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#ac5cf49641e03f657c2df30a7b1affcb9">retries_</a>) and (response.first == <a class="code hl_enumvalue" href="namespaceripple.html#a32d6d3ce1a48272b677d2c88b1d30932a839833d48b635d8df6a9176274ae922f">rpcINTERNAL</a>);</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> ++ctr)</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> {</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> JLOG(<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">error</a>())</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> &lt;&lt; <span class="stringliteral">&quot;Env::do_rpc error, retrying, attempt #&quot;</span> &lt;&lt; ctr + 1 &lt;&lt; <span class="stringliteral">&quot; ...&quot;</span>;</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/thread/sleep_for.html">std::this_thread::sleep_for</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::milliseconds</a>(500));</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> </div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> response =</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <a class="code hl_function" href="namespaceripple.html#a1675cc24642888c8fd2c1b39923086b0">rpcClient</a>(args, <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().config(), <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().logs(), apiVersion, headers);</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> }</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> </div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <span class="keywordflow">return</span> response.second;</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span>}</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> </div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3"> 590</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3">Env::enableFeature</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span> feature)</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span>{</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <span class="comment">// Env::close() must be called for feature</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="comment">// enable to take place.</span></div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#ad053293ba571075ebfa6f086ed70fdc5">features</a>.insert(feature);</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span>}</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> </div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"><a class="line" href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565"> 598</a></span><a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565">Env::disableFeature</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span> feature)</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span>{</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="comment">// Env::close() must be called for feature</span></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="comment">// enable to take place.</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>().<a class="code hl_function" href="classripple_1_1Application.html#a0c48dd5bcaef14e30e9ef5b96b0daa39">config</a>().<a class="code hl_variable" href="classripple_1_1Config.html#ad053293ba571075ebfa6f086ed70fdc5">features</a>.erase(feature);</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span>}</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> </div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span>} <span class="comment">// namespace jtx</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> </div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span>} <span class="comment">// namespace ripple</span></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="aclassJson_1_1StaticString_html_a8db1e658cdae313080c3ee1166691dab"><div class="ttname"><a href="classJson_1_1StaticString.html#a8db1e658cdae313080c3ee1166691dab">Json::StaticString::c_str</a></div><div class="ttdeci">constexpr const char * c_str() const</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00075">json_value.h:75</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>
@@ -725,7 +727,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Account_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Account.html">ripple::test::jtx::Account</a></div><div class="ttdoc">Immutable cryptographic account descriptor.</div><div class="ttdef"><b>Definition:</b> <a href="Account_8h_source.html#l00038">Account.h:39</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Account_html_a844f6560f21e690f65906f6d76220684"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Account.html#a844f6560f21e690f65906f6d76220684">ripple::test::jtx::Account::name</a></div><div class="ttdeci">std::string const &amp; name() const</div><div class="ttdoc">Return the name.</div><div class="ttdef"><b>Definition:</b> <a href="Account_8h_source.html#l00083">Account.h:83</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a14cbba5f53c931d433ce2e403bf692f4"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a14cbba5f53c931d433ce2e403bf692f4">ripple::test::jtx::Env::closed</a></div><div class="ttdeci">std::shared_ptr&lt; ReadView const &gt; closed()</div><div class="ttdoc">Returns the last closed ledger.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00111">Env.cpp:111</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a1d46f1445fc77c5bd2f1a85676038565"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565">ripple::test::jtx::Env::disableFeature</a></div><div class="ttdeci">void disableFeature(uint256 const feature)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00596">Env.cpp:596</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a1d46f1445fc77c5bd2f1a85676038565"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a1d46f1445fc77c5bd2f1a85676038565">ripple::test::jtx::Env::disableFeature</a></div><div class="ttdeci">void disableFeature(uint256 const feature)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00598">Env.cpp:598</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a1ffeb4df2a38432e462cf38e00b0b677"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a1ffeb4df2a38432e462cf38e00b0b677">ripple::test::jtx::Env::parseFailureExpected_</a></div><div class="ttdeci">bool parseFailureExpected_</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00721">Env.h:721</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a24c62ec30c4c04fc70da844f20b3c45a"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a24c62ec30c4c04fc70da844f20b3c45a">ripple::test::jtx::Env::parseResult</a></div><div class="ttdeci">static ParsedResult parseResult(Json::Value const &amp;jr)</div><div class="ttdoc">Gets the TER result and didApply flag from a RPC Json result object.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00281">Env.cpp:281</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a2c916b23eb27e3a11369df014ab32136"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a2c916b23eb27e3a11369df014ab32136">ripple::test::jtx::Env::ownerCount</a></div><div class="ttdeci">std::uint32_t ownerCount(Account const &amp;account) const</div><div class="ttdoc">Return the number of objects owned by an account.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00203">Env.cpp:203</a></div></div>
@@ -738,19 +740,19 @@ $(function() {
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a694b8f003ea98bf55c8ac413a9f9802e"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a694b8f003ea98bf55c8ac413a9f9802e">ripple::test::jtx::Env::postconditions</a></div><div class="ttdeci">void postconditions(JTx const &amp;jt, ParsedResult const &amp;parsed, Json::Value const &amp;jr=Json::Value())</div><div class="ttdoc">Check expected postconditions of JTx submission.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00387">Env.cpp:387</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a78a1df04e1c3b9ed2aab018ef024fee3"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a78a1df04e1c3b9ed2aab018ef024fee3">ripple::test::jtx::Env::trace_</a></div><div class="ttdeci">int trace_</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00717">Env.h:717</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a7b37faa99cd5ddbfa310806175e050fe"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a7b37faa99cd5ddbfa310806175e050fe">ripple::test::jtx::Env::sign_and_submit</a></div><div class="ttdeci">void sign_and_submit(JTx const &amp;jt, Json::Value params=Json::nullValue)</div><div class="ttdoc">Use the submit RPC command with a provided JTx object.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00349">Env.cpp:349</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a7d249a8a0a924165566a15d21e596c3a"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a">ripple::test::jtx::Env::autofill</a></div><div class="ttdeci">virtual void autofill(JTx &amp;jt)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00484">Env.cpp:484</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a7d249a8a0a924165566a15d21e596c3a"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a7d249a8a0a924165566a15d21e596c3a">ripple::test::jtx::Env::autofill</a></div><div class="ttdeci">virtual void autofill(JTx &amp;jt)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00486">Env.cpp:486</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a891f12fb779665e7eaebff2d06b7d38c"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a891f12fb779665e7eaebff2d06b7d38c">ripple::test::jtx::Env::client</a></div><div class="ttdeci">AbstractClient &amp; client()</div><div class="ttdoc">Returns the connected client.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00290">Env.h:290</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a8dea1ec361bd7491b37bd23c815708a4"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a8dea1ec361bd7491b37bd23c815708a4">ripple::test::jtx::Env::autofill_sig</a></div><div class="ttdeci">void autofill_sig(JTx &amp;jt)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00461">Env.cpp:461</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a90fecf3c0f6cdc1c40761e19917bf65a"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a90fecf3c0f6cdc1c40761e19917bf65a">ripple::test::jtx::Env::trust</a></div><div class="ttdeci">void trust(STAmount const &amp;amount, Account const &amp;account)</div><div class="ttdoc">Establish trust lines.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00264">Env.cpp:264</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a94b02f18539fe6573397827fc3fd31a0"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0">ripple::test::jtx::Env::do_rpc</a></div><div class="ttdeci">Json::Value do_rpc(unsigned apiVersion, std::vector&lt; std::string &gt; const &amp;args, std::unordered_map&lt; std::string, std::string &gt; const &amp;headers={})</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00565">Env.cpp:565</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a94b02f18539fe6573397827fc3fd31a0"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a94b02f18539fe6573397827fc3fd31a0">ripple::test::jtx::Env::do_rpc</a></div><div class="ttdeci">Json::Value do_rpc(unsigned apiVersion, std::vector&lt; std::string &gt; const &amp;args, std::unordered_map&lt; std::string, std::string &gt; const &amp;headers={})</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00567">Env.cpp:567</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a9590c5d87e3b4586d6fe0824db0b1d70"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a9590c5d87e3b4586d6fe0824db0b1d70">ripple::test::jtx::Env::txid_</a></div><div class="ttdeci">uint256 txid_</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00719">Env.h:719</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_aa871d8a3bd774e88945a889d23723bda"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda">ripple::test::jtx::Env::st</a></div><div class="ttdeci">std::shared_ptr&lt; STTx const &gt; st(JTx const &amp;jt)</div><div class="ttdoc">Create a STTx from a JTx The framework requires that JSON is valid.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00513">Env.cpp:513</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ab69e6c6873e1ea21296c09d6ce9b92c3"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3">ripple::test::jtx::Env::enableFeature</a></div><div class="ttdeci">void enableFeature(uint256 const feature)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00588">Env.cpp:588</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_aa871d8a3bd774e88945a889d23723bda"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#aa871d8a3bd774e88945a889d23723bda">ripple::test::jtx::Env::st</a></div><div class="ttdeci">std::shared_ptr&lt; STTx const &gt; st(JTx const &amp;jt)</div><div class="ttdoc">Create a STTx from a JTx The framework requires that JSON is valid.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00515">Env.cpp:515</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ab69e6c6873e1ea21296c09d6ce9b92c3"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ab69e6c6873e1ea21296c09d6ce9b92c3">ripple::test::jtx::Env::enableFeature</a></div><div class="ttdeci">void enableFeature(uint256 const feature)</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00590">Env.cpp:590</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_abc9bfd942ee848f3a9f16ab0e34e0c28"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#abc9bfd942ee848f3a9f16ab0e34e0c28">ripple::test::jtx::Env::master</a></div><div class="ttdeci">Account const &amp; master</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00124">Env.h:124</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ac1a551e3dcdb027c8830afeebc9fcc80"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ac1a551e3dcdb027c8830afeebc9fcc80">ripple::test::jtx::Env::lookup</a></div><div class="ttdeci">Account const &amp; lookup(AccountID const &amp;id) const</div><div class="ttdoc">Returns the Account given the AccountID.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00158">Env.cpp:158</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ac5cf49641e03f657c2df30a7b1affcb9"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ac5cf49641e03f657c2df30a7b1affcb9">ripple::test::jtx::Env::retries_</a></div><div class="ttdeci">unsigned retries_</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00722">Env.h:722</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ac97544537f03e62be698194aabe47a32"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">ripple::test::jtx::Env::jt</a></div><div class="ttdeci">JTx jt(JsonValue &amp;&amp;jv, FN const &amp;... fN)</div><div class="ttdoc">Create a JTx from parameters.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00495">Env.h:495</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acc124fc731f2071c6bc0ef7177a6f319"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319">ripple::test::jtx::Env::ust</a></div><div class="ttdeci">std::shared_ptr&lt; STTx const &gt; ust(JTx const &amp;jt)</div><div class="ttdoc">Create a STTx from a JTx without sanitizing Use to inject bogus values into test transactions by firs...</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00539">Env.cpp:539</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acc124fc731f2071c6bc0ef7177a6f319"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acc124fc731f2071c6bc0ef7177a6f319">ripple::test::jtx::Env::ust</a></div><div class="ttdeci">std::shared_ptr&lt; STTx const &gt; ust(JTx const &amp;jt)</div><div class="ttdoc">Create a STTx from a JTx without sanitizing Use to inject bogus values into test transactions by firs...</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00541">Env.cpp:541</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acd48f8ab02c37b1a30cedf4dec7cc96c"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">ripple::test::jtx::Env::app</a></div><div class="ttdeci">Application &amp; app()</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00260">Env.h:260</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acfdfa1e283de8fb2dad0216cd1711307"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">ripple::test::jtx::Env::journal</a></div><div class="ttdeci">beast::Journal const journal</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00161">Env.h:161</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ad40a8e03980dc0958d9a7068a3e9e606"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ad40a8e03980dc0958d9a7068a3e9e606">ripple::test::jtx::Env::timeKeeper</a></div><div class="ttdeci">ManualTimeKeeper &amp; timeKeeper()</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00272">Env.h:272</a></div></div>
@@ -764,8 +766,8 @@ $(function() {
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_af928cd176555b2cf28da85e274c571bc"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">ripple::test::jtx::Env::le</a></div><div class="ttdeci">std::shared_ptr&lt; SLE const &gt; le(Account const &amp;account) const</div><div class="ttdoc">Return an account root.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8cpp_source.html#l00221">Env.cpp:221</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1balance_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1balance.html">ripple::test::jtx::balance</a></div><div class="ttdoc">A balance matches.</div><div class="ttdef"><b>Definition:</b> <a href="balance_8h_source.html#l00038">balance.h:39</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1fee_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1fee.html">ripple::test::jtx::fee</a></div><div class="ttdoc">Set the fee on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="fee_8h_source.html#l00036">fee.h:37</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1flags_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1flags.html">ripple::test::jtx::flags</a></div><div class="ttdoc">Match set account flags.</div><div class="ttdef"><b>Definition:</b> <a href="flags_8h_source.html#l00112">flags.h:113</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1nflags_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1nflags.html">ripple::test::jtx::nflags</a></div><div class="ttdoc">Match clear account flags.</div><div class="ttdef"><b>Definition:</b> <a href="flags_8h_source.html#l00129">flags.h:130</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1flags_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1flags.html">ripple::test::jtx::flags</a></div><div class="ttdoc">Match set account flags.</div><div class="ttdef"><b>Definition:</b> <a href="flags_8h_source.html#l00124">flags.h:125</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1nflags_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1nflags.html">ripple::test::jtx::nflags</a></div><div class="ttdoc">Match clear account flags.</div><div class="ttdef"><b>Definition:</b> <a href="flags_8h_source.html#l00141">flags.h:142</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1require_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1require.html">ripple::test::jtx::require</a></div><div class="ttdoc">Check a set of conditions.</div><div class="ttdef"><b>Definition:</b> <a href="require_8h_source.html#l00064">require.h:65</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1rpc_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1rpc.html">ripple::test::jtx::rpc</a></div><div class="ttdoc">Set the expected result code for a JTx The test will fail if the code doesn't match.</div><div class="ttdef"><b>Definition:</b> <a href="rpc_8h_source.html#l00034">rpc.h:35</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1sig_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1sig.html">ripple::test::jtx::sig</a></div><div class="ttdoc">Set the regular signature on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="sig_8h_source.html#l00034">sig.h:35</a></div></div>
@@ -780,9 +782,9 @@ $(function() {
<div class="ttc" id="anamespacebeast_1_1severities_html"><div class="ttname"><a href="namespacebeast_1_1severities.html">beast::severities</a></div><div class="ttdoc">A namespace for easy access to logging severity values.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00030">Journal.h:30</a></div></div>
<div class="ttc" id="anamespacebeast_1_1severities_html_a069a8a312b9123b77f6aa31733ca73be"><div class="ttname"><a href="namespacebeast_1_1severities.html#a069a8a312b9123b77f6aa31733ca73be">beast::severities::Severity</a></div><div class="ttdeci">Severity</div><div class="ttdoc">Severity level / threshold of a Journal message.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00032">Journal.h:32</a></div></div>
<div class="ttc" id="anamespacebeast_1_1severities_html_a069a8a312b9123b77f6aa31733ca73beafb23b01f4530b3bffdf2b2253ae4f6e7"><div class="ttname"><a href="namespacebeast_1_1severities.html#a069a8a312b9123b77f6aa31733ca73beafb23b01f4530b3bffdf2b2253ae4f6e7">beast::severities::kFatal</a></div><div class="ttdeci">@ kFatal</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00040">Journal.h:40</a></div></div>
<div class="ttc" id="anamespaceripple_1_1RPC_html_aa01c09044342d3707e231b3ede5086f0"><div class="ttname"><a href="namespaceripple_1_1RPC.html#aa01c09044342d3707e231b3ede5086f0">ripple::RPC::get_error_info</a></div><div class="ttdeci">ErrorInfo const &amp; get_error_info(error_code_i code)</div><div class="ttdoc">Returns an ErrorInfo that reflects the error code.</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8cpp_source.html#l00178">ErrorCodes.cpp:178</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_a55890af7192834c632299746ba300be8"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a55890af7192834c632299746ba300be8">ripple::keylet::line</a></div><div class="ttdeci">Keylet line(AccountID const &amp;id0, AccountID const &amp;id1, Currency const &amp;currency) noexcept</div><div class="ttdoc">The index of a trust line for a given currency.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00235">Indexes.cpp:235</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_aa756e0f59b26042ed00a4d0ba6e96951"><div class="ttname"><a href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">ripple::keylet::account</a></div><div class="ttdeci">Keylet account(AccountID const &amp;id) noexcept</div><div class="ttdoc">AccountID root.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00175">Indexes.cpp:175</a></div></div>
<div class="ttc" id="anamespaceripple_1_1RPC_html_aa01c09044342d3707e231b3ede5086f0"><div class="ttname"><a href="namespaceripple_1_1RPC.html#aa01c09044342d3707e231b3ede5086f0">ripple::RPC::get_error_info</a></div><div class="ttdeci">ErrorInfo const &amp; get_error_info(error_code_i code)</div><div class="ttdoc">Returns an ErrorInfo that reflects the error code.</div><div class="ttdef"><b>Definition:</b> <a href="ErrorCodes_8cpp_source.html#l00179">ErrorCodes.cpp:179</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_a55890af7192834c632299746ba300be8"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a55890af7192834c632299746ba300be8">ripple::keylet::line</a></div><div class="ttdeci">Keylet line(AccountID const &amp;id0, AccountID const &amp;id1, Currency const &amp;currency) noexcept</div><div class="ttdoc">The index of a trust line for a given currency.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00236">Indexes.cpp:236</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_aa756e0f59b26042ed00a4d0ba6e96951"><div class="ttname"><a href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">ripple::keylet::account</a></div><div class="ttdeci">Keylet account(AccountID const &amp;id) noexcept</div><div class="ttdoc">AccountID root.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00176">Indexes.cpp:176</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a3372cf5dcb5746304f6adfff517e746d"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">ripple::test::jtx::fill_seq</a></div><div class="ttdeci">void fill_seq(Json::Value &amp;jv, ReadView const &amp;view)</div><div class="ttdoc">Set the sequence number automatically.</div><div class="ttdef"><b>Definition:</b> <a href="utility_8cpp_source.html#l00066">utility.cpp:66</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a34d36a371e1f4873695f3eecd5ccc82b"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a34d36a371e1f4873695f3eecd5ccc82b">ripple::test::jtx::autofill</a></div><div class="ttdeci">static autofill_t const autofill</div><div class="ttdef"><b>Definition:</b> <a href="tags_8h_source.html#l00042">tags.h:42</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a47271eb5e7eb9b5aada383ccfaf9c0cf"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">ripple::test::jtx::drops</a></div><div class="ttdeci">PrettyAmount drops(Integer i)</div><div class="ttdoc">Returns an XRP PrettyAmount, which is trivially convertible to STAmount.</div><div class="ttdef"><b>Definition:</b> <a href="src_2test_2jtx_2amount_8h_source.html#l00244">src/test/jtx/amount.h:244</a></div></div>