This commit is contained in:
bthomee
2025-05-29 21:00:28 +00:00
parent 5243cbe582
commit e0ff9ab743
567 changed files with 23898 additions and 24756 deletions

View File

@@ -555,17 +555,17 @@ $(function() {
<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> </div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="keywordtype">bool</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98"> 485</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98">LedgerMaster::haveLedger</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98"> 485</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98">LedgerMaster::haveLedger</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq)</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span>{</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a99311904e2e5203c8715463e261c9fe7">mCompleteLock</a>);</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="keywordflow">return</span> boost::icl::contains(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="keywordflow">return</span> boost::icl::contains(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>, seq);</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span>}</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6"> 492</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">LedgerMaster::clearLedger</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6"> 492</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">LedgerMaster::clearLedger</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq)</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> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a99311904e2e5203c8715463e261c9fe7">mCompleteLock</a>);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>.erase(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>.erase(seq);</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span>}</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><span class="keywordtype">bool</span></div>
@@ -577,13 +577,13 @@ $(function() {
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">if</span> (ledger.<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#ae95b3432469ab4cdef2d0caeb40f98f4">validated</a>)</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> </div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = ledger.<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#a233e04cfeb4d879ab8517d8aabb7e38b">seq</a>;</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq = ledger.<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#a233e04cfeb4d879ab8517d8aabb7e38b">seq</a>;</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keywordflow">try</span></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> <span class="comment">// Use the skip list in the last validated ledger to see if ledger</span></div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <span class="comment">// comes before the last validated ledger (and thus has been</span></div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// validated).</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">auto</span> <span class="keyword">const</span> hash = <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a4c6df242c0ea3409a06e44436495235f">walkHashBySeq</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keyword">auto</span> <span class="keyword">const</span> hash = <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a4c6df242c0ea3409a06e44436495235f">walkHashBySeq</a>(seq, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</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="keywordflow">if</span> (!hash || ledger.<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#aed3c6b7c8a2f7b4815507ff942f94fa8">hash</a> != *hash)</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> {</div>
@@ -594,11 +594,11 @@ $(function() {
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> hash-&gt;isNonZero(),</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="stringliteral">&quot;ripple::LedgerMaster::isValidated : nonzero hash&quot;</span>);</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> valHash =</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">getHashByIndex</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">getHashByIndex</a>(seq);</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">if</span> (valHash == ledger.<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#aed3c6b7c8a2f7b4815507ff942f94fa8">hash</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> <span class="comment">// SQL database doesn&#39;t match ledger chain</span></div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">clearLedger</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">clearLedger</a>(seq);</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> }</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
@@ -606,7 +606,7 @@ $(function() {
<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_class" href="classripple_1_1SHAMapMissingNode.html">SHAMapMissingNode</a> <span class="keyword">const</span>&amp; mn)</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> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger #&quot;</span> &lt;&lt; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; mn.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger #&quot;</span> &lt;&lt; seq &lt;&lt; <span class="stringliteral">&quot;: &quot;</span> &lt;&lt; mn.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keywordflow">return</span> <span class="keyword">false</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>
@@ -701,27 +701,27 @@ $(function() {
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a4273b5cf8a38bce9f80c748abef7422a"> 629</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a4273b5cf8a38bce9f80c748abef7422a">LedgerMaster::tryFill</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Ledger const&gt;</a> ledger)</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span>{</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = ledger-&gt;info().seq;</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq = ledger-&gt;info().seq;</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> prevHash = ledger-&gt;info().parentHash;</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> </div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::uint32_t, LedgerHashPair&gt;</a> ledgerHashes;</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> minHas = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> maxHas = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> minHas = seq;</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> maxHas = seq;</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <a class="code hl_class" href="classripple_1_1NodeStore_1_1Database.html">NodeStore::Database</a>&amp; nodeStore{<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a337ff00f72b3421fd50b54656456acdb">getNodeStore</a>()};</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a79e319577676b37dbff4ce5fc86aa23f">getJobQueue</a>().<a class="code hl_function" href="classripple_1_1JobQueue.html#a4fc7922733e3fc99efdc8c93a29759b0">isStopping</a>() &amp;&amp; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &gt; 0)</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">while</span> (!<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a79e319577676b37dbff4ce5fc86aa23f">getJobQueue</a>().<a class="code hl_function" href="classripple_1_1JobQueue.html#a4fc7922733e3fc99efdc8c93a29759b0">isStopping</a>() &amp;&amp; seq &gt; 0)</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> {</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> {</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> ml(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a498847d43f1042eabbc26ce3e37c38c4">m_mutex</a>);</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> minHas = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> --<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> minHas = seq;</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> --seq;</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98">haveLedger</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>))</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1LedgerMaster.html#a009526a350a90e20d382513f27304a98">haveLedger</a>(seq))</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> }</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> </div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keyword">auto</span> it(ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <span class="keyword">auto</span> it(ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(seq));</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">if</span> (it == ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/end.html">end</a>())</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> {</div>
@@ -734,8 +734,8 @@ $(function() {
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> }</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> maxHas = minHas;</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> ledgerHashes = <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#a9513642103dc26cb1b207e9a0a87074e">getHashesByIndex</a>(</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &lt; 500) ? 0 : (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> - 499), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> it = ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> (seq &lt; 500) ? 0 : (seq - 499), seq);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> it = ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(seq);</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> </div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">if</span> (it == ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/end.html">end</a>())</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <span class="keywordflow">break</span>;</div>
@@ -745,7 +745,7 @@ $(function() {
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> ledgerHashes.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/begin.html">begin</a>()-&gt;first))</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="comment">// The ledger is not backed by the node store</span></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;SQL DB ledger sequence &quot;</span> &lt;&lt; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#ad8fefe3e8ad583e1ed1bf02094ac3d8f">warn</a>()) &lt;&lt; <span class="stringliteral">&quot;SQL DB ledger sequence &quot;</span> &lt;&lt; seq</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> &lt;&lt; <span class="stringliteral">&quot; mismatches node store&quot;</span>;</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> }</div>
@@ -935,40 +935,40 @@ $(function() {
<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> </div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a0cf075761a43b4abe322147a06dad13a"> 867</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a0cf075761a43b4abe322147a06dad13a">LedgerMaster::failedSave</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash)</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a0cf075761a43b4abe322147a06dad13a"> 867</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a0cf075761a43b4abe322147a06dad13a">LedgerMaster::failedSave</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq, <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash)</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span>{</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">clearLedger</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(hash, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a79feb7167d74a61f8cb1e273cb71b8c6">clearLedger</a>(seq);</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(hash, seq, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span>}</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="comment">// Check if the specified ledger can become the new last fully-validated</span></div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span><span class="comment">// ledger.</span></div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a5fafa3f012cb3efd6e150965e76d56ce"> 876</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a168ff9afab04a717a7dacbca1927566c">LedgerMaster::checkAccept</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a5fafa3f012cb3efd6e150965e76d56ce"> 876</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a168ff9afab04a717a7dacbca1927566c">LedgerMaster::checkAccept</a>(<a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; hash, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq)</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span>{</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> valCount = 0;</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> </div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> != 0)</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="keywordflow">if</span> (seq != 0)</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> {</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> <span class="comment">// Ledger is too old</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &lt; <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a9fdca40ce43865b5ee842395cdf0b7b0">mValidLedgerSeq</a>)</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="keywordflow">if</span> (seq &lt; <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a9fdca40ce43865b5ee842395cdf0b7b0">mValidLedgerSeq</a>)</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> </div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> <span class="keyword">auto</span> validations = <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a950b15c3fbf7f8395eddfcea9850647b">validators</a>().<a class="code hl_function" href="classripple_1_1ValidatorList.html#abd6d3f90be1eff9c1216f37f379ca67f">negativeUNLFilter</a>(</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a362cf2d2e3ab0e9b508a1da8ef60b8a2">getValidations</a>().<a class="code hl_function" href="classripple_1_1Validations.html#aac16b1f1c7a92b8979af800ace0effd6">getTrustedForLedger</a>(hash, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a362cf2d2e3ab0e9b508a1da8ef60b8a2">getValidations</a>().<a class="code hl_function" href="classripple_1_1Validations.html#aac16b1f1c7a92b8979af800ace0effd6">getTrustedForLedger</a>(hash, seq));</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> valCount = validations.size();</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keywordflow">if</span> (valCount &gt;= <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a950b15c3fbf7f8395eddfcea9850647b">validators</a>().<a class="code hl_function" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a>())</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> {</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> ml(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a498847d43f1042eabbc26ce3e37c38c4">m_mutex</a>);</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &gt; <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7d864cf43509dbfd7bd892c9894969a5">mLastValidLedger</a>.second)</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7d864cf43509dbfd7bd892c9894969a5">mLastValidLedger</a> = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(hash, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">if</span> (seq &gt; <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7d864cf43509dbfd7bd892c9894969a5">mLastValidLedger</a>.second)</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7d864cf43509dbfd7bd892c9894969a5">mLastValidLedger</a> = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/pair/make_pair.html">std::make_pair</a>(hash, seq);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> }</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> </div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> == <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a9fdca40ce43865b5ee842395cdf0b7b0">mValidLedgerSeq</a>)</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="keywordflow">if</span> (seq == <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a9fdca40ce43865b5ee842395cdf0b7b0">mValidLedgerSeq</a>)</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> </div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> <span class="comment">// Ledger could match the ledger we&#39;re already building</span></div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> == <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a3e0f9a065a80c97aa923367f33eafd84">mBuildingLedgerSeq</a>)</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="keywordflow">if</span> (seq == <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a3e0f9a065a80c97aa923367f33eafd84">mBuildingLedgerSeq</a>)</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> }</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> </div>
@@ -976,17 +976,17 @@ $(function() {
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> </div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <span class="keywordflow">if</span> (!ledger)</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> <span class="keywordflow">if</span> ((<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> != 0) &amp;&amp; (<a class="code hl_function" href="classripple_1_1LedgerMaster.html#af3eaa659ab184feed8b939836efeebcf">getValidLedgerIndex</a>() == 0))</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <span class="keywordflow">if</span> ((seq != 0) &amp;&amp; (<a class="code hl_function" href="classripple_1_1LedgerMaster.html#af3eaa659ab184feed8b939836efeebcf">getValidLedgerIndex</a>() == 0))</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> {</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <span class="comment">// Set peers converged early if we can</span></div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keywordflow">if</span> (valCount &gt;= <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a950b15c3fbf7f8395eddfcea9850647b">validators</a>().<a class="code hl_function" href="classripple_1_1ValidatorList.html#ad28f57783826e0b090713c89265c81e4">quorum</a>())</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a101819f49b53b1387198d2827d31cd52">overlay</a>().<a class="code hl_function" href="classripple_1_1Overlay.html#a81a1499888369dfb338d45af35f09068">checkTracking</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a101819f49b53b1387198d2827d31cd52">overlay</a>().<a class="code hl_function" href="classripple_1_1Overlay.html#a81a1499888369dfb338d45af35f09068">checkTracking</a>(seq);</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> <span class="comment">// FIXME: We may not want to fetch a ledger with just one</span></div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <span class="comment">// trusted validation</span></div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> ledger = <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> hash, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> hash, seq, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</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> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keywordflow">if</span> (ledger)</div>
@@ -1048,7 +1048,7 @@ $(function() {
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> fees.reserve(fees.size() + fees2.size());</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/copy.html">std::copy</a>(fees2.begin(), fees2.end(), <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/back_inserter.html">std::back_inserter</a>(fees));</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> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>;</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> fee;</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> <span class="keywordflow">if</span> (!fees.empty())</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> {</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a>(fees.begin(), fees.end());</div>
@@ -1062,14 +1062,14 @@ $(function() {
<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> stream &lt;&lt; s.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/io/basic_stringstream/str.html">str</a>();</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> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a> = fees[fees.size() / 2]; <span class="comment">// median</span></div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> fee = fees[fees.size() / 2]; <span class="comment">// median</span></div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> }</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <span class="keywordflow">else</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_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a> = base;</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> fee = base;</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> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a143d2b9c53a24814fc28309244aa3631">getFeeTrack</a>().<a class="code hl_function" href="classripple_1_1LoadFeeTrack.html#a7323c2513443e8ea3a82489ba229c65c">setRemoteFee</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>);</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a143d2b9c53a24814fc28309244aa3631">getFeeTrack</a>().<a class="code hl_function" href="classripple_1_1LoadFeeTrack.html#a7323c2513443e8ea3a82489ba229c65c">setRemoteFee</a>(fee);</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> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#aeda22d59a9a1226f5350743fde886de5">tryAdvance</a>();</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> </div>
@@ -1195,13 +1195,13 @@ $(function() {
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> }</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> </div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> mergeValidation(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> mergeValidation(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> seq)</div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> {</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> valCount_++;</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> </div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="comment">// If we didn&#39;t already know the sequence, now we do</span></div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">if</span> (ledgerSeq_ == 0)</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> ledgerSeq_ = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> ledgerSeq_ = seq;</div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> }</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> </div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> valCount_;</div>
@@ -1319,19 +1319,19 @@ $(function() {
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> <a class="code hl_class" href="classripple_1_1scope__unlock.html">scope_unlock</a> sul{sl};</div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> {</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> <span class="keywordflow">for</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = pubSeq; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &lt;= valSeq; ++<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> <span class="keywordflow">for</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq = pubSeq; seq &lt;= valSeq; ++seq)</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> {</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>())</div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> &lt;&lt; <span class="stringliteral">&quot;Trying to fetch/publish valid ledger &quot;</span> &lt;&lt; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> &lt;&lt; <span class="stringliteral">&quot;Trying to fetch/publish valid ledger &quot;</span> &lt;&lt; seq;</div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> </div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;Ledger const&gt;</a> ledger;</div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">// This can throw</span></div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="keyword">auto</span> hash = <a class="code hl_function" href="namespaceripple.html#a4099618475b06c3fa5554a99178a8a59">hashOfSeq</a>(*valLedger, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>);</div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="keyword">auto</span> hash = <a class="code hl_function" href="namespaceripple.html#a4099618475b06c3fa5554a99178a8a59">hashOfSeq</a>(*valLedger, seq, <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>);</div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">// VFALCO TODO Restructure this code so that zero is not</span></div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="comment">// used.</span></div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> <span class="keywordflow">if</span> (!hash)</div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> hash = beast::zero; <span class="comment">// kludge</span></div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> == valSeq)</div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> <span class="keywordflow">if</span> (seq == valSeq)</div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> {</div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">// We need to publish the ledger we just fully validated</span></div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> ledger = valLedger;</div>
@@ -1339,7 +1339,7 @@ $(function() {
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hash-&gt;isZero())</div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> {</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) &lt;&lt; <span class="stringliteral">&quot;Ledger: &quot;</span> &lt;&lt; valSeq</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> &lt;&lt; <span class="stringliteral">&quot; does not have hash for &quot;</span> &lt;&lt; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> &lt;&lt; <span class="stringliteral">&quot; does not have hash for &quot;</span> &lt;&lt; seq;</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> UNREACHABLE(</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> <span class="stringliteral">&quot;ripple::LedgerMaster::findNewLedgersToPublish : ledger &quot;</span></div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> <span class="stringliteral">&quot;not found&quot;</span>);</div>
@@ -1354,7 +1354,7 @@ $(function() {
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">// Can we try to acquire the ledger we need?</span></div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> <span class="keywordflow">if</span> (!ledger &amp;&amp; (++acqCount &lt; <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a8fd06c49bff3a6e8e4c05958907e9fda">ledger_fetch_size_</a>))</div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> ledger = <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> *hash, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> *hash, seq, <a class="code hl_enumvalue" href="classripple_1_1InboundLedger.html#a3e8d7f8b5fa089a184dcc9b00b6e0da7ac942dc2a9f958acddc67e11472d3ca0b">InboundLedger::Reason::GENERIC</a>);</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> }</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> </div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">// Did we acquire the next ledger we need to publish?</span></div>
@@ -1835,17 +1835,17 @@ $(function() {
<div class="line"><a id="l01772" name="l01772"></a><span class="lineno"> 1772</span>}</div>
<div class="line"><a id="l01773" name="l01773"></a><span class="lineno"> 1773</span> </div>
<div class="line"><a id="l01774" name="l01774"></a><span class="lineno"> 1774</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a38c5453afb527fe1ef65ba0f5b2b6517"> 1775</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a38c5453afb527fe1ef65ba0f5b2b6517">LedgerMaster::clearPriorLedgers</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l01775" name="l01775"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a38c5453afb527fe1ef65ba0f5b2b6517"> 1775</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a38c5453afb527fe1ef65ba0f5b2b6517">LedgerMaster::clearPriorLedgers</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> seq)</div>
<div class="line"><a id="l01776" name="l01776"></a><span class="lineno"> 1776</span>{</div>
<div class="line"><a id="l01777" name="l01777"></a><span class="lineno"> 1777</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> sl(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a99311904e2e5203c8715463e261c9fe7">mCompleteLock</a>);</div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> &gt; 0)</div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>.erase(<a class="code hl_function" href="namespaceripple.html#ac1258b27600294cf1c6dc05ce3cf58d3">range</a>(0u, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> - 1));</div>
<div class="line"><a id="l01778" name="l01778"></a><span class="lineno"> 1778</span> <span class="keywordflow">if</span> (seq &gt; 0)</div>
<div class="line"><a id="l01779" name="l01779"></a><span class="lineno"> 1779</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a052a7d6baf80f975ebe10a8f855ca3e7">mCompleteLedgers</a>.erase(<a class="code hl_function" href="namespaceripple.html#ac1258b27600294cf1c6dc05ce3cf58d3">range</a>(0u, seq - 1));</div>
<div class="line"><a id="l01780" name="l01780"></a><span class="lineno"> 1780</span>}</div>
<div class="line"><a id="l01781" name="l01781"></a><span class="lineno"> 1781</span> </div>
<div class="line"><a id="l01782" name="l01782"></a><span class="lineno"> 1782</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a043c0ea4eb656f7838e145be8abefbc0"> 1783</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a043c0ea4eb656f7838e145be8abefbc0">LedgerMaster::clearLedgerCachePrior</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l01783" name="l01783"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#a043c0ea4eb656f7838e145be8abefbc0"> 1783</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#a043c0ea4eb656f7838e145be8abefbc0">LedgerMaster::clearLedgerCachePrior</a>(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">LedgerIndex</a> seq)</div>
<div class="line"><a id="l01784" name="l01784"></a><span class="lineno"> 1784</span>{</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a2dc054158ffca412c8d193abc60f9a41">mLedgerHistory</a>.<a class="code hl_function" href="classripple_1_1LedgerHistory.html#a9d3e04a8d477455a9da28022915bad81">clearLedgerCachePrior</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l01785" name="l01785"></a><span class="lineno"> 1785</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a2dc054158ffca412c8d193abc60f9a41">mLedgerHistory</a>.<a class="code hl_function" href="classripple_1_1LedgerHistory.html#a9d3e04a8d477455a9da28022915bad81">clearLedgerCachePrior</a>(seq);</div>
<div class="line"><a id="l01786" name="l01786"></a><span class="lineno"> 1786</span>}</div>
<div class="line"><a id="l01787" name="l01787"></a><span class="lineno"> 1787</span> </div>
<div class="line"><a id="l01788" name="l01788"></a><span class="lineno"> 1788</span><span class="keywordtype">void</span></div>
@@ -1898,11 +1898,11 @@ $(function() {
<div class="line"><a id="l01835" name="l01835"></a><span class="lineno"> 1835</span> }</div>
<div class="line"><a id="l01836" name="l01836"></a><span class="lineno"> 1836</span> <span class="keywordflow">if</span> (ledger)</div>
<div class="line"><a id="l01837" name="l01837"></a><span class="lineno"> 1837</span> {</div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = ledger-&gt;info().<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>;</div>
<div class="line"><a id="l01838" name="l01838"></a><span class="lineno"> 1838</span> <span class="keyword">auto</span> seq = ledger-&gt;info().seq;</div>
<div class="line"><a id="l01839" name="l01839"></a><span class="lineno"> 1839</span> XRPL_ASSERT(</div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> == missing,</div>
<div class="line"><a id="l01840" name="l01840"></a><span class="lineno"> 1840</span> seq == missing,</div>
<div class="line"><a id="l01841" name="l01841"></a><span class="lineno"> 1841</span> <span class="stringliteral">&quot;ripple::LedgerMaster::fetchForHistory : sequence match&quot;</span>);</div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;fetchForHistory acquired &quot;</span> &lt;&lt; <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l01842" name="l01842"></a><span class="lineno"> 1842</span> JLOG(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a7621d03781287445cfabcb91046f141d">m_journal</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;fetchForHistory acquired &quot;</span> &lt;&lt; seq;</div>
<div class="line"><a id="l01843" name="l01843"></a><span class="lineno"> 1843</span> <a class="code hl_function" href="classripple_1_1LedgerMaster.html#a877e0fe2e956eccfe910101bf4143950">setFullLedger</a>(ledger, <span class="keyword">false</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l01844" name="l01844"></a><span class="lineno"> 1844</span> <span class="keywordtype">int</span> fillInProgress;</div>
<div class="line"><a id="l01845" name="l01845"></a><span class="lineno"> 1845</span> {</div>
@@ -1911,13 +1911,13 @@ $(function() {
<div class="line"><a id="l01848" name="l01848"></a><span class="lineno"> 1848</span> fillInProgress = <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a871c2f482c5d16d602a21f6ab9d85b48">mFillInProgress</a>;</div>
<div class="line"><a id="l01849" name="l01849"></a><span class="lineno"> 1849</span> }</div>
<div class="line"><a id="l01850" name="l01850"></a><span class="lineno"> 1850</span> <span class="keywordflow">if</span> (fillInProgress == 0 &amp;&amp;</div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">getHashByIndex</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> - 1) ==</div>
<div class="line"><a id="l01851" name="l01851"></a><span class="lineno"> 1851</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#ab0e839b597cf03221a393cb754ec4e25">getRelationalDatabase</a>().<a class="code hl_function" href="classripple_1_1RelationalDatabase.html#ae73b0356cc96e29c9c66e52f64aeac0d">getHashByIndex</a>(seq - 1) ==</div>
<div class="line"><a id="l01852" name="l01852"></a><span class="lineno"> 1852</span> ledger-&gt;info().parentHash)</div>
<div class="line"><a id="l01853" name="l01853"></a><span class="lineno"> 1853</span> {</div>
<div class="line"><a id="l01854" name="l01854"></a><span class="lineno"> 1854</span> {</div>
<div class="line"><a id="l01855" name="l01855"></a><span class="lineno"> 1855</span> <span class="comment">// Previous ledger is in DB</span></div>
<div class="line"><a id="l01856" name="l01856"></a><span class="lineno"> 1856</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/thread/lock_guard.html">std::lock_guard</a> lock(<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a498847d43f1042eabbc26ce3e37c38c4">m_mutex</a>);</div>
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a871c2f482c5d16d602a21f6ab9d85b48">mFillInProgress</a> = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>;</div>
<div class="line"><a id="l01857" name="l01857"></a><span class="lineno"> 1857</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a871c2f482c5d16d602a21f6ab9d85b48">mFillInProgress</a> = seq;</div>
<div class="line"><a id="l01858" name="l01858"></a><span class="lineno"> 1858</span> }</div>
<div class="line"><a id="l01859" name="l01859"></a><span class="lineno"> 1859</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a79e319577676b37dbff4ce5fc86aa23f">getJobQueue</a>().<a class="code hl_function" href="classripple_1_1JobQueue.html#af5e34187d55aa58e551dc196aaf1ec25">addJob</a>(</div>
<div class="line"><a id="l01860" name="l01860"></a><span class="lineno"> 1860</span> <a class="code hl_enumvalue" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17aac6876ad6800d8cd0a4c9a306baf35204">jtADVANCE</a>, <span class="stringliteral">&quot;tryFill&quot;</span>, [<span class="keyword">this</span>, ledger]() {</div>
@@ -1939,14 +1939,14 @@ $(function() {
<div class="line"><a id="l01876" name="l01876"></a><span class="lineno"> 1876</span> {</div>
<div class="line"><a id="l01877" name="l01877"></a><span class="lineno"> 1877</span> <span class="keywordflow">for</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> i = 0; i &lt; fetchSz; ++i)</div>
<div class="line"><a id="l01878" name="l01878"></a><span class="lineno"> 1878</span> {</div>
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = missing - i;</div>
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> h = <a class="code hl_function" href="classripple_1_1LedgerMaster.html#ab7af221b6b993c60afbc18b872f68cfb">getLedgerHashForHistory</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, reason))</div>
<div class="line"><a id="l01879" name="l01879"></a><span class="lineno"> 1879</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq = missing - i;</div>
<div class="line"><a id="l01880" name="l01880"></a><span class="lineno"> 1880</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> h = <a class="code hl_function" href="classripple_1_1LedgerMaster.html#ab7af221b6b993c60afbc18b872f68cfb">getLedgerHashForHistory</a>(seq, reason))</div>
<div class="line"><a id="l01881" name="l01881"></a><span class="lineno"> 1881</span> {</div>
<div class="line"><a id="l01882" name="l01882"></a><span class="lineno"> 1882</span> XRPL_ASSERT(</div>
<div class="line"><a id="l01883" name="l01883"></a><span class="lineno"> 1883</span> h-&gt;isNonZero(),</div>
<div class="line"><a id="l01884" name="l01884"></a><span class="lineno"> 1884</span> <span class="stringliteral">&quot;ripple::LedgerMaster::fetchForHistory : &quot;</span></div>
<div class="line"><a id="l01885" name="l01885"></a><span class="lineno"> 1885</span> <span class="stringliteral">&quot;prefetched ledger&quot;</span>);</div>
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(*h, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>, reason);</div>
<div class="line"><a id="l01886" name="l01886"></a><span class="lineno"> 1886</span> <a class="code hl_variable" href="classripple_1_1LedgerMaster.html#a262ba48a2919950db79ae9434018b450">app_</a>.<a class="code hl_function" href="classripple_1_1Application.html#a915619bcedd33aaed53cf784a5863dab">getInboundLedgers</a>().<a class="code hl_function" href="classripple_1_1InboundLedgers.html#a504951d354fa8cbd7c0d41f90f776a4f">acquire</a>(*h, seq, reason);</div>
<div class="line"><a id="l01887" name="l01887"></a><span class="lineno"> 1887</span> }</div>
<div class="line"><a id="l01888" name="l01888"></a><span class="lineno"> 1888</span> }</div>
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span> }</div>
@@ -2086,7 +2086,7 @@ $(function() {
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span>}</div>
<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span> </div>
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span><span class="keywordtype">void</span></div>
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#aaa32ab558f1d6f813a5bb8ed2e4829a1"> 2026</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#aaa32ab558f1d6f813a5bb8ed2e4829a1">LedgerMaster::gotFetchPack</a>(<span class="keywordtype">bool</span> progress, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)</div>
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerMaster.html#aaa32ab558f1d6f813a5bb8ed2e4829a1"> 2026</a></span><a class="code hl_function" href="classripple_1_1LedgerMaster.html#aaa32ab558f1d6f813a5bb8ed2e4829a1">LedgerMaster::gotFetchPack</a>(<span class="keywordtype">bool</span> progress, <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq)</div>
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span>{</div>
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1LedgerMaster.html#ad629f6c230da484e6058c389eb8b8b69">mGotFetchPackThread</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/atomic/atomic_flag/test_and_set.html">test_and_set</a>(std::memory_order_acquire))</div>
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span> {</div>
@@ -2103,7 +2103,7 @@ $(function() {
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> <a class="code hl_class" href="classripple_1_1SHAMap.html">SHAMap</a> <span class="keyword">const</span>* have,</div>
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> cnt,</div>
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> protocol::TMGetObjectByHash* into,</div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>,</div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> seq,</div>
<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"> 2069</span> <span class="keywordtype">bool</span> withLeaves = <span class="keyword">true</span>)</div>
<div class="line"><a id="l02070" name="l02070"></a><span class="lineno"> 2070</span>{</div>
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</span> XRPL_ASSERT(cnt, <span class="stringliteral">&quot;ripple::populateFetchPack : nonzero count input&quot;</span>);</div>
@@ -2112,7 +2112,7 @@ $(function() {
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span> </div>
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> want.<a class="code hl_function" href="classripple_1_1SHAMap.html#adb124506e012e85f807355a5a58c0ce7">visitDifferences</a>(</div>
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"> 2076</span> have,</div>
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span> [&amp;s, withLeaves, &amp;cnt, into, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>](<a class="code hl_class" href="classripple_1_1SHAMapTreeNode.html">SHAMapTreeNode</a> <span class="keyword">const</span>&amp; n) -&gt; <span class="keywordtype">bool</span> {</div>
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span> [&amp;s, withLeaves, &amp;cnt, into, seq](<a class="code hl_class" href="classripple_1_1SHAMapTreeNode.html">SHAMapTreeNode</a> <span class="keyword">const</span>&amp; n) -&gt; <span class="keywordtype">bool</span> {</div>
<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"> 2078</span> <span class="keywordflow">if</span> (!withLeaves &amp;&amp; n.<a class="code hl_function" href="classripple_1_1SHAMapTreeNode.html#a3feaa925a9dc0e847049e6c4cfbb6875">isLeaf</a>())</div>
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"> 2079</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"> 2080</span> </div>
@@ -2122,7 +2122,7 @@ $(function() {
<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/hash.html">hash</a> = n.<a class="code hl_function" href="classripple_1_1SHAMapTreeNode.html#acb3c6246b5d9ec2162ef4a9c18959a00">getHash</a>().<a class="code hl_function" href="classripple_1_1SHAMapHash.html#a8dd7c989b7bcbf264513e2d57154344d">as_uint256</a>();</div>
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> </div>
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span> protocol::TMIndexedObject* obj = into-&gt;add_objects();</div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> obj-&gt;set_ledgerseq(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> obj-&gt;set_ledgerseq(seq);</div>
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> obj-&gt;set_hash(<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/hash.html">hash</a>.data(), <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/hash.html">hash</a>.size());</div>
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span> obj-&gt;set_data(s.<a class="code hl_function" href="classripple_1_1Serializer.html#afabc4cec20b78fb11847f5b09693d0dc">getDataPtr</a>(), s.<a class="code hl_function" href="classripple_1_1Serializer.html#aa5c7aa53db0c7c90c6a86dd5144e9255">getLength</a>());</div>
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> </div>
@@ -2530,7 +2530,6 @@ $(function() {
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 256 &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_ad2bffc75e554b89befbb9388e07392c0"><div class="ttname"><a href="classripple_1_1base__uint.html#ad2bffc75e554b89befbb9388e07392c0">ripple::base_uint::isNonZero</a></div><div class="ttdeci">bool isNonZero() const</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00545">base_uint.h:545</a></div></div>
<div class="ttc" id="aclassripple_1_1scope__unlock_html"><div class="ttname"><a href="classripple_1_1scope__unlock.html">ripple::scope_unlock</a></div><div class="ttdoc">Automatically unlocks and re-locks a unique_lock object.</div><div class="ttdef"><b>Definition:</b> <a href="scope_8h_source.html#l00230">scope.h:231</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="aclear_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/atomic/atomic_flag/clear.html">std::atomic_flag::clear</a></div><div class="ttdeci">T clear(T... args)</div></div>
<div class="ttc" id="acopy_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/copy.html">std::copy</a></div><div class="ttdeci">T copy(T... args)</div></div>
<div class="ttc" id="acount_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration/count.html">std::chrono::seconds::count</a></div><div class="ttdeci">T count(T... args)</div></div>
@@ -2601,8 +2600,6 @@ $(function() {
<div class="ttc" id="astructripple_1_1LedgerHeader_html_a233e04cfeb4d879ab8517d8aabb7e38b"><div class="ttname"><a href="structripple_1_1LedgerHeader.html#a233e04cfeb4d879ab8517d8aabb7e38b">ripple::LedgerHeader::seq</a></div><div class="ttdeci">LedgerIndex seq</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHeader_8h_source.html#l00041">LedgerHeader.h:41</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerHeader_html_ae95b3432469ab4cdef2d0caeb40f98f4"><div class="ttname"><a href="structripple_1_1LedgerHeader.html#ae95b3432469ab4cdef2d0caeb40f98f4">ripple::LedgerHeader::validated</a></div><div class="ttdeci">bool validated</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHeader_8h_source.html#l00059">LedgerHeader.h:59</a></div></div>
<div class="ttc" id="astructripple_1_1LedgerHeader_html_aed3c6b7c8a2f7b4815507ff942f94fa8"><div class="ttname"><a href="structripple_1_1LedgerHeader.html#aed3c6b7c8a2f7b4815507ff942f94fa8">ripple::LedgerHeader::hash</a></div><div class="ttdeci">uint256 hash</div><div class="ttdef"><b>Definition:</b> <a href="LedgerHeader_8h_source.html#l00049">LedgerHeader.h:49</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1seq_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1seq.html">ripple::test::jtx::seq</a></div><div class="ttdoc">Set the sequence number on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="seq_8h_source.html#l00033">seq.h:34</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1seq_html_a24f882c3c91938bb57b850d9883ff35f"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">ripple::test::jtx::seq::seq</a></div><div class="ttdeci">seq(autofill_t)</div><div class="ttdef"><b>Definition:</b> <a href="seq_8h_source.html#l00040">seq.h:40</a></div></div>
<div class="ttc" id="aswap_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/swap.html">std::swap</a></div><div class="ttdeci">T swap(T... args)</div></div>
<div class="ttc" id="atest_and_set_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/atomic/atomic_flag/test_and_set.html">std::atomic_flag::test_and_set</a></div><div class="ttdeci">T test_and_set(T... args)</div></div>
<div class="ttc" id="atime_point_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/time_point.html">std::chrono::time_point</a></div></div>