This commit is contained in:
bthomee
2025-05-20 18:10:54 +00:00
parent 39d241def5
commit 90cc35d381
3215 changed files with 96027 additions and 70734 deletions

View File

@@ -420,10 +420,10 @@ $(function() {
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="comment">// Payment with at least one intermediate step and uses transitive balances.</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span> ((hasPaths || sendMax || !dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>()) &amp;&amp; ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">open</a>())</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> {</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <a class="code hl_class" href="classripple_1_1STPathSet.html">STPathSet</a> <span class="keyword">const</span>&amp; paths = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(sfPaths);</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <a class="code hl_class" href="classripple_1_1STPathSet.html">STPathSet</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1paths.html">paths</a> = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(sfPaths);</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">if</span> (paths.<a class="code hl_function" href="classripple_1_1STPathSet.html#af74f528bb7846fccf7665ec4e0e6667d">size</a>() &gt; <a class="code hl_variable" href="classripple_1_1Payment.html#a4564d1dd745a5e5c6c5d49041c6a05b3">MaxPathSize</a> ||</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a>(paths.<a class="code hl_function" href="classripple_1_1STPathSet.html#a942c597a3ff98e2f6a7c0a6681c388aa">begin</a>(), paths.<a class="code hl_function" href="classripple_1_1STPathSet.html#a3343684da99412733b6c1661720fc725">end</a>(), [](<a class="code hl_class" href="classripple_1_1STPath.html">STPath</a> <span class="keyword">const</span>&amp; path) {</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">if</span> (<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1paths.html">paths</a>.size() &gt; <a class="code hl_variable" href="classripple_1_1Payment.html#a4564d1dd745a5e5c6c5d49041c6a05b3">MaxPathSize</a> ||</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1paths.html">paths</a>.begin(), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1paths.html">paths</a>.end(), [](<a class="code hl_class" href="classripple_1_1STPath.html">STPath</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1path.html">path</a>) {</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> return path.size() &gt; MaxPathLength;</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> }))</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> {</div>
@@ -569,28 +569,28 @@ $(function() {
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot; dstAmount=&quot;</span> &lt;&lt; dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">getFullText</a>();</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; mptIssue = dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">get</a>&lt;<a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>&gt;();</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> (<span class="keyword">auto</span> <span class="keyword">const</span> ter = <a class="code hl_function" href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">requireAuth</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> = <a class="code hl_function" href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">requireAuth</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>);</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>;</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="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter = <a class="code hl_function" href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">requireAuth</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue, dstAccountID);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> = <a class="code hl_function" href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">requireAuth</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue, dstAccountID);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>;</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> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter =</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> =</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <a class="code hl_function" href="namespaceripple.html#a70a62aa7e380540ed36762d3c02492f1">canTransfer</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID);</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a> != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>;</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="keywordflow">if</span> (<span class="keyword">auto</span> err =</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_function" href="namespaceripple.html#aac087e7a6119190c1e57236bb32d0f1d">verifyDepositPreauth</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID, sleDst);</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> !<a class="code hl_function" href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">isTesSuccess</a>(err))</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <span class="keywordflow">return</span> err;</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> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; issuer = mptIssue.<a class="code hl_function" href="classripple_1_1MPTIssue.html#a5b855706dfbba9aec8c4929646c6981c">getIssuer</a>();</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; issuer = mptIssue.getIssuer();</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> <span class="comment">// Transfer rate</span></div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <a class="code hl_struct" href="structripple_1_1Rate.html">Rate</a> rate{QUALITY_ONE};</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <a class="code hl_struct" href="structripple_1_1Rate.html">Rate</a> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e8d814b8820ce0b6979abde0d6a2618">rate</a>{QUALITY_ONE};</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> <span class="comment">// Payment between the holders</span></div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a> != issuer &amp;&amp; dstAccountID != issuer)</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> {</div>
@@ -598,131 +598,133 @@ $(function() {
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="comment">// - can&#39;t send between holders</span></div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <span class="comment">// - holder can send back to issuer</span></div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="comment">// - issuer can send to holder</span></div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a6cb89b79bc073abda42953c323d36cda">isFrozen</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, mptIssue) ||</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <a class="code hl_function" href="namespaceripple.html#a6cb89b79bc073abda42953c323d36cda">isFrozen</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), dstAccountID, mptIssue))</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">tecLOCKED</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">// Get the rate for a payment between the holders.</span></div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> rate = <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue.getMptID());</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="comment">// Amount to deliver.</span></div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> amountDeliver = dstAmount;</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="comment">// Factor in the transfer rate.</span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="comment">// No rounding. It&#39;ll change once MPT integrated into DEX.</span></div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> requiredMaxSourceAmount = <a class="code hl_function" href="namespaceripple.html#a5adb540ae694e45bca2ad089fff15128">multiply</a>(dstAmount, rate);</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="comment">// Send more than the account wants to pay or less than</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="comment">// the account wants to deliver (if no SendMax).</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="comment">// Adjust the amount to deliver.</span></div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <span class="keywordflow">if</span> (partialPaymentAllowed &amp;&amp; requiredMaxSourceAmount &gt; maxSourceAmount)</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> {</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> requiredMaxSourceAmount = maxSourceAmount;</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="comment">// No rounding. It&#39;ll change once MPT integrated into DEX.</span></div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> amountDeliver = <a class="code hl_function" href="namespaceripple.html#a0ad557cc32ca87dcea19af8e30c63c6a">divide</a>(maxSourceAmount, rate);</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> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">if</span> (requiredMaxSourceAmount &gt; maxSourceAmount ||</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> (deliverMin &amp;&amp; amountDeliver &lt; *deliverMin))</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <a class="code hl_class" href="classripple_1_1PaymentSandbox.html">PaymentSandbox</a> pv(&amp;<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>());</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keyword">auto</span> res = <a class="code hl_function" href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> pv, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID, amountDeliver, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> <span class="keywordflow">if</span> (res == <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> pv.<a class="code hl_function" href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">apply</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a1e569090b00ae5425ebb48c1befe794f">rawView</a>());</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (res == <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a> || res == <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">tecPATH_DRY</a>)</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> res = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>;</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> </div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">return</span> res;</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> </div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> XRPL_ASSERT(dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>(), <span class="stringliteral">&quot;ripple::Payment::doApply : amount is XRP&quot;</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> <span class="comment">// Direct XRP payment.</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> <span class="keyword">auto</span> <span class="keyword">const</span> sleSrc = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">if</span> (!sleSrc)</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</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="comment">// ownerCount is the number of entries in this ledger for this</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="comment">// account that require a reserve.</span></div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> <span class="keyword">auto</span> <span class="keyword">const</span> ownerCount = sleSrc-&gt;getFieldU32(sfOwnerCount);</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="comment">// This is the total reserve in drops.</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keyword">auto</span> <span class="keyword">const</span> reserve = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_function" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(ownerCount);</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> </div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="comment">// mPriorBalance is the balance on the sending account BEFORE the</span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="comment">// fees were charged. We want to make sure we have enough reserve</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="comment">// to send. Allow final spend to use reserve for fee.</span></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="keyword">auto</span> <span class="keyword">const</span> mmm = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(reserve, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(sfFee).<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>());</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> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> &lt; dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm)</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="comment">// Vote no. However the transaction might succeed, if applied in</span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="comment">// a different order.</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;Delay transaction: Insufficient funds: &quot;</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>) &lt;&lt; <span class="stringliteral">&quot; / &quot;</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm) &lt;&lt; <span class="stringliteral">&quot; (&quot;</span></div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(reserve) &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>;</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> }</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> <span class="comment">// AMMs can never receive an XRP payment.</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="comment">// Must use AMMDeposit transaction instead.</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">if</span> (sleDst-&gt;isFieldPresent(sfAMMID))</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> </div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="comment">// The source account does have enough money. Make sure the</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <span class="comment">// source account has authority to deposit to the destination.</span></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">if</span> (depositAuth)</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">// If depositPreauth is enabled, then an account that requires</span></div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="comment">// authorization has three ways to get an XRP Payment in:</span></div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="comment">// 1. If Account == Destination, or</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="comment">// 2. If Account is deposit preauthorized by destination, or</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="comment">// 3. If the destination&#39;s XRP balance is</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="comment">// a. less than or equal to the base reserve and</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="comment">// b. the deposit amount is less than or equal to the base reserve,</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// then we allow the deposit.</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="comment">//</span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="comment">// Rule 3 is designed to keep an account from getting wedged</span></div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="comment">// in an unusable state if it sets the lsfDepositAuth flag and</span></div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="comment">// then consumes all of its XRP. Without the rule if an</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="comment">// account with lsfDepositAuth set spent all of its XRP, it</span></div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="comment">// would be unable to acquire more XRP required to pay fees.</span></div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="comment">//</span></div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="comment">// We choose the base reserve as our bound because it is</span></div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="comment">// a small number that seldom changes but is always sufficient</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="comment">// to get the account un-wedged.</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> </div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="comment">// Get the base reserve.</span></div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <a class="code hl_class" href="classripple_1_1XRPAmount.html">XRPAmount</a> <span class="keyword">const</span> dstReserve{<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_function" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(0)};</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> </div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">if</span> (dstAmount &gt; dstReserve ||</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> sleDst-&gt;getFieldAmount(sfBalance) &gt; dstReserve)</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> {</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> err =</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <a class="code hl_function" href="namespaceripple.html#aac087e7a6119190c1e57236bb32d0f1d">verifyDepositPreauth</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID, sleDst);</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> !<a class="code hl_function" href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">isTesSuccess</a>(err))</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">return</span> err;</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> }</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> </div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="comment">// Do the arithmetic for the transfer and make the ledger change.</span></div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> sleSrc-&gt;setFieldAmount(sfBalance, <a class="code hl_variable" href="classripple_1_1Transactor.html#ae20c19d8ecec32cec52399081e76cc45">mSourceBalance</a> - dstAmount);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> sleDst-&gt;setFieldAmount(</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> sfBalance, sleDst-&gt;getFieldAmount(sfBalance) + dstAmount);</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> </div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="comment">// Re-arm the password change fee if we can and need to.</span></div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">if</span> ((sleDst-&gt;getFlags() &amp; <a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>))</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> sleDst-&gt;clearFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> </div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span>}</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="comment">// namespace ripple</span></div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#adcd50578d9c82873a5d3a3f00b06899c">isAnyFrozen</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), {<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID}, mptIssue))</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">tecLOCKED</a>;</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> <span class="comment">// Get the rate for a payment between the holders.</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e8d814b8820ce0b6979abde0d6a2618">rate</a> = <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), mptIssue.getMptID());</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="comment">// Amount to deliver.</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> amountDeliver = dstAmount;</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="comment">// Factor in the transfer rate.</span></div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="comment">// No rounding. It&#39;ll change once MPT integrated into DEX.</span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> requiredMaxSourceAmount = <a class="code hl_function" href="namespaceripple.html#a5adb540ae694e45bca2ad089fff15128">multiply</a>(dstAmount, <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e8d814b8820ce0b6979abde0d6a2618">rate</a>);</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> <span class="comment">// Send more than the account wants to pay or less than</span></div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">// the account wants to deliver (if no SendMax).</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="comment">// Adjust the amount to deliver.</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">if</span> (partialPaymentAllowed &amp;&amp; requiredMaxSourceAmount &gt; maxSourceAmount)</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> requiredMaxSourceAmount = maxSourceAmount;</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="comment">// No rounding. It&#39;ll change once MPT integrated into DEX.</span></div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> amountDeliver = <a class="code hl_function" href="namespaceripple.html#a0ad557cc32ca87dcea19af8e30c63c6a">divide</a>(maxSourceAmount, <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e8d814b8820ce0b6979abde0d6a2618">rate</a>);</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</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> <span class="keywordflow">if</span> (requiredMaxSourceAmount &gt; maxSourceAmount ||</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> (deliverMin &amp;&amp; amountDeliver &lt; *deliverMin))</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</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> <a class="code hl_class" href="classripple_1_1PaymentSandbox.html">PaymentSandbox</a> pv(&amp;<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>());</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keyword">auto</span> res = <a class="code hl_function" href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> pv, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID, amountDeliver, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">if</span> (res == <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> pv.<a class="code hl_function" href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">apply</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a1e569090b00ae5425ebb48c1befe794f">rawView</a>());</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (res == <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a> || res == <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">tecPATH_DRY</a>)</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> res = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>;</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> res;</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> XRPL_ASSERT(dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>(), <span class="stringliteral">&quot;ripple::Payment::doApply : amount is XRP&quot;</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="comment">// Direct XRP payment.</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> <span class="keyword">auto</span> <span class="keyword">const</span> sleSrc = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">if</span> (!sleSrc)</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> </div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> <span class="comment">// ownerCount is the number of entries in this ledger for this</span></div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="comment">// account that require a reserve.</span></div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a> = sleSrc-&gt;getFieldU32(sfOwnerCount);</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="comment">// This is the total reserve in drops.</span></div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">auto</span> <span class="keyword">const</span> reserve = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_function" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a>);</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> <span class="comment">// mPriorBalance is the balance on the sending account BEFORE the</span></div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="comment">// fees were charged. We want to make sure we have enough reserve</span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="comment">// to send. Allow final spend to use reserve for fee.</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="keyword">auto</span> <span class="keyword">const</span> mmm = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(reserve, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(sfFee).<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>());</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> </div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> &lt; dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm)</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> <span class="comment">// Vote no. However the transaction might succeed, if applied in</span></div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> <span class="comment">// a different order.</span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;Delay transaction: Insufficient funds: &quot;</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>) &lt;&lt; <span class="stringliteral">&quot; / &quot;</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(dstAmount.<a class="code hl_function" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm) &lt;&lt; <span class="stringliteral">&quot; (&quot;</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(reserve) &lt;&lt; <span class="stringliteral">&quot;)&quot;</span>;</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="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>;</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> </div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="comment">// Pseudo-accounts cannot receive payments, other than these native to</span></div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="comment">// their underlying ledger object - implemented in their respective</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="comment">// transaction types. Note, this is not amendment-gated because all writes</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="comment">// to pseudo-account discriminator fields **are** amendment gated, hence the</span></div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="comment">// behaviour of this check will always match the active amendments.</span></div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#af1d7ae814974c52a0e9f43e893480680">isPseudoAccount</a>(sleDst))</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="comment">// The source account does have enough money. Make sure the</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="comment">// source account has authority to deposit to the destination.</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <span class="keywordflow">if</span> (depositAuth)</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">// If depositPreauth is enabled, then an account that requires</span></div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <span class="comment">// authorization has three ways to get an XRP Payment in:</span></div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <span class="comment">// 1. If Account == Destination, or</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <span class="comment">// 2. If Account is deposit preauthorized by destination, or</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="comment">// 3. If the destination&#39;s XRP balance is</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <span class="comment">// a. less than or equal to the base reserve and</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="comment">// b. the deposit amount is less than or equal to the base reserve,</span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <span class="comment">// then we allow the deposit.</span></div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="comment">//</span></div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="comment">// Rule 3 is designed to keep an account from getting wedged</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="comment">// in an unusable state if it sets the lsfDepositAuth flag and</span></div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="comment">// then consumes all of its XRP. Without the rule if an</span></div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="comment">// account with lsfDepositAuth set spent all of its XRP, it</span></div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="comment">// would be unable to acquire more XRP required to pay fees.</span></div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="comment">//</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="comment">// We choose the base reserve as our bound because it is</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> <span class="comment">// a small number that seldom changes but is always sufficient</span></div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="comment">// to get the account un-wedged.</span></div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> <span class="comment">// Get the base reserve.</span></div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <a class="code hl_class" href="classripple_1_1XRPAmount.html">XRPAmount</a> <span class="keyword">const</span> dstReserve{<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_function" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(0)};</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> </div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">if</span> (dstAmount &gt; dstReserve ||</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> sleDst-&gt;getFieldAmount(sfBalance) &gt; dstReserve)</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> {</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> err =</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <a class="code hl_function" href="namespaceripple.html#aac087e7a6119190c1e57236bb32d0f1d">verifyDepositPreauth</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, dstAccountID, sleDst);</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> !<a class="code hl_function" href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">isTesSuccess</a>(err))</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> <span class="keywordflow">return</span> err;</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> }</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> </div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <span class="comment">// Do the arithmetic for the transfer and make the ledger change.</span></div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> sleSrc-&gt;setFieldAmount(sfBalance, <a class="code hl_variable" href="classripple_1_1Transactor.html#ae20c19d8ecec32cec52399081e76cc45">mSourceBalance</a> - dstAmount);</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> sleDst-&gt;setFieldAmount(</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> sfBalance, sleDst-&gt;getFieldAmount(sfBalance) + dstAmount);</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> <span class="comment">// Re-arm the password change fee if we can and need to.</span></div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">if</span> ((sleDst-&gt;getFlags() &amp; <a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>))</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> sleDst-&gt;clearFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> </div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span>}</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> </div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aall_any_none_of_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a></div><div class="ttdeci">T any_of(T... args)</div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00328">Journal.h:328</a></div></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_abbe082bd27ca0f1d1365af2824e4f85b"><div class="ttname"><a href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">beast::Journal::trace</a></div><div class="ttdeci">Stream trace() const</div><div class="ttdoc">Severity stream access functions.</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00322">Journal.h:322</a></div></div>
@@ -735,10 +737,9 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ApplyView_html_a542437b9b59a623e755979acdc075af5"><div class="ttname"><a href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">ripple::ApplyView::update</a></div><div class="ttdeci">virtual void update(std::shared_ptr&lt; SLE &gt; const &amp;sle)=0</div><div class="ttdoc">Indicate changes to a peeked SLE.</div></div>
<div class="ttc" id="aclassripple_1_1ApplyView_html_aa3c5b5cd9dca5f906be4b36640706e3c"><div class="ttname"><a href="classripple_1_1ApplyView.html#aa3c5b5cd9dca5f906be4b36640706e3c">ripple::ApplyView::insert</a></div><div class="ttdeci">virtual void insert(std::shared_ptr&lt; SLE &gt; const &amp;sle)=0</div><div class="ttdoc">Insert a new state SLE.</div></div>
<div class="ttc" id="aclassripple_1_1ApplyView_html_afa666aaa8eb0080d96f910f8a719291d"><div class="ttname"><a href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">ripple::ApplyView::peek</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE &gt; peek(Keylet const &amp;k)=0</div><div class="ttdoc">Prepare to modify the SLE associated with key.</div></div>
<div class="ttc" id="aclassripple_1_1Asset_html_a09d7cb36a7e8da2f4471cd947a07672c"><div class="ttname"><a href="classripple_1_1Asset.html#a09d7cb36a7e8da2f4471cd947a07672c">ripple::Asset::native</a></div><div class="ttdeci">bool native() const</div><div class="ttdef"><b>Definition:</b> <a href="Asset_8h_source.html#l00096">Asset.h:96</a></div></div>
<div class="ttc" id="aclassripple_1_1Asset_html_a09d7cb36a7e8da2f4471cd947a07672c"><div class="ttname"><a href="classripple_1_1Asset.html#a09d7cb36a7e8da2f4471cd947a07672c">ripple::Asset::native</a></div><div class="ttdeci">bool native() const</div><div class="ttdef"><b>Definition:</b> <a href="Asset_8h_source.html#l00101">Asset.h:101</a></div></div>
<div class="ttc" id="aclassripple_1_1Issue_html"><div class="ttname"><a href="classripple_1_1Issue.html">ripple::Issue</a></div><div class="ttdoc">A currency issued by an account.</div><div class="ttdef"><b>Definition:</b> <a href="Issue_8h_source.html#l00035">Issue.h:36</a></div></div>
<div class="ttc" id="aclassripple_1_1MPTIssue_html"><div class="ttname"><a href="classripple_1_1MPTIssue.html">ripple::MPTIssue</a></div><div class="ttdef"><b>Definition:</b> <a href="MPTIssue_8h_source.html#l00032">MPTIssue.h:33</a></div></div>
<div class="ttc" id="aclassripple_1_1MPTIssue_html_a5b855706dfbba9aec8c4929646c6981c"><div class="ttname"><a href="classripple_1_1MPTIssue.html#a5b855706dfbba9aec8c4929646c6981c">ripple::MPTIssue::getIssuer</a></div><div class="ttdeci">AccountID const &amp; getIssuer() const</div><div class="ttdef"><b>Definition:</b> <a href="MPTIssue_8cpp_source.html#l00040">MPTIssue.cpp:40</a></div></div>
<div class="ttc" id="aclassripple_1_1PaymentSandbox_html"><div class="ttname"><a href="classripple_1_1PaymentSandbox.html">ripple::PaymentSandbox</a></div><div class="ttdoc">A wrapper which makes credits unavailable to balances.</div><div class="ttdef"><b>Definition:</b> <a href="PaymentSandbox_8h_source.html#l00114">PaymentSandbox.h:115</a></div></div>
<div class="ttc" id="aclassripple_1_1PaymentSandbox_html_a69d4b79f512abb2d67e3b3fefa76008b"><div class="ttname"><a href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">ripple::PaymentSandbox::apply</a></div><div class="ttdeci">void apply(RawView &amp;to)</div><div class="ttdoc">Apply changes to base view.</div><div class="ttdef"><b>Definition:</b> <a href="PaymentSandbox_8cpp_source.html#l00256">PaymentSandbox.cpp:256</a></div></div>
<div class="ttc" id="aclassripple_1_1Payment_html_a4564d1dd745a5e5c6c5d49041c6a05b3"><div class="ttname"><a href="classripple_1_1Payment.html#a4564d1dd745a5e5c6c5d49041c6a05b3">ripple::Payment::MaxPathSize</a></div><div class="ttdeci">static std::size_t const MaxPathSize</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8h_source.html#l00030">Payment.h:30</a></div></div>
@@ -755,27 +756,24 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ReadView_html_aceb3d74acaae18b238022337e5f250ce"><div class="ttname"><a href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">ripple::ReadView::rules</a></div><div class="ttdeci">virtual Rules const &amp; rules() const =0</div><div class="ttdoc">Returns the tx processing rules.</div></div>
<div class="ttc" id="aclassripple_1_1Rules_html_a1a8388a2b9588aa9446ece92a88e0dd2"><div class="ttname"><a href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">ripple::Rules::enabled</a></div><div class="ttdeci">bool enabled(uint256 const &amp;feature) const</div><div class="ttdoc">Returns true if a feature is enabled.</div><div class="ttdef"><b>Definition:</b> <a href="Rules_8cpp_source.html#l00130">Rules.cpp:130</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html"><div class="ttname"><a href="classripple_1_1STAmount.html">ripple::STAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00049">STAmount.h:50</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a003e773c6fd61536760b0efc262e9725"><div class="ttname"><a href="classripple_1_1STAmount.html#a003e773c6fd61536760b0efc262e9725">ripple::STAmount::holds</a></div><div class="ttdeci">constexpr bool holds() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00456">STAmount.h:456</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a2885d73708e1b809f31a46ffaea5ad7f"><div class="ttname"><a href="classripple_1_1STAmount.html#a2885d73708e1b809f31a46ffaea5ad7f">ripple::STAmount::exponent</a></div><div class="ttdeci">int exponent() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00443">STAmount.h:443</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a47d741e2043946647600882e7d8fe111"><div class="ttname"><a href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">ripple::STAmount::asset</a></div><div class="ttdeci">Asset const &amp; asset() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00474">STAmount.h:474</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a003e773c6fd61536760b0efc262e9725"><div class="ttname"><a href="classripple_1_1STAmount.html#a003e773c6fd61536760b0efc262e9725">ripple::STAmount::holds</a></div><div class="ttdeci">constexpr bool holds() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00465">STAmount.h:465</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a2885d73708e1b809f31a46ffaea5ad7f"><div class="ttname"><a href="classripple_1_1STAmount.html#a2885d73708e1b809f31a46ffaea5ad7f">ripple::STAmount::exponent</a></div><div class="ttdeci">int exponent() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00452">STAmount.h:452</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a47d741e2043946647600882e7d8fe111"><div class="ttname"><a href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">ripple::STAmount::asset</a></div><div class="ttdeci">Asset const &amp; asset() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00483">STAmount.h:483</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a4faedb8cf3aa230868cc0ecd3b0da6d6"><div class="ttname"><a href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">ripple::STAmount::get</a></div><div class="ttdeci">constexpr TIss const &amp; get() const</div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a6c2ca92e9c91e2a34493d61e02d79ebf"><div class="ttname"><a href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">ripple::STAmount::xrp</a></div><div class="ttdeci">XRPAmount xrp() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8cpp_source.html#l00305">STAmount.cpp:305</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_acab76380a95d902071fd26ab3425bbe5"><div class="ttname"><a href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">ripple::STAmount::issue</a></div><div class="ttdeci">Issue const &amp; issue() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00487">STAmount.h:487</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_ae7f9ce5e872fd96b92b0cedbf8f09f81"><div class="ttname"><a href="classripple_1_1STAmount.html#ae7f9ce5e872fd96b92b0cedbf8f09f81">ripple::STAmount::mantissa</a></div><div class="ttdeci">std::uint64_t mantissa() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00468">STAmount.h:468</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_aee39db45aa65eddca7002ad9bf3e7877"><div class="ttname"><a href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">ripple::STAmount::getFullText</a></div><div class="ttdeci">std::string getFullText() const override</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8cpp_source.html#l00537">STAmount.cpp:537</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_af3a02d7e9cd0b11509a90e0e6980bd64"><div class="ttname"><a href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">ripple::STAmount::native</a></div><div class="ttdeci">bool native() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00449">STAmount.h:449</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_a6c2ca92e9c91e2a34493d61e02d79ebf"><div class="ttname"><a href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">ripple::STAmount::xrp</a></div><div class="ttdeci">XRPAmount xrp() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8cpp_source.html#l00306">STAmount.cpp:306</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_acab76380a95d902071fd26ab3425bbe5"><div class="ttname"><a href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">ripple::STAmount::issue</a></div><div class="ttdeci">Issue const &amp; issue() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00496">STAmount.h:496</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_ae7f9ce5e872fd96b92b0cedbf8f09f81"><div class="ttname"><a href="classripple_1_1STAmount.html#ae7f9ce5e872fd96b92b0cedbf8f09f81">ripple::STAmount::mantissa</a></div><div class="ttdeci">std::uint64_t mantissa() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00477">STAmount.h:477</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_aee39db45aa65eddca7002ad9bf3e7877"><div class="ttname"><a href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">ripple::STAmount::getFullText</a></div><div class="ttdeci">std::string getFullText() const override</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8cpp_source.html#l00540">STAmount.cpp:540</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html_af3a02d7e9cd0b11509a90e0e6980bd64"><div class="ttname"><a href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">ripple::STAmount::native</a></div><div class="ttdeci">bool native() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00458">STAmount.h:458</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a03645626ad58a31437400f3c225a8de3"><div class="ttname"><a href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">ripple::STObject::getFieldPathSet</a></div><div class="ttdeci">STPathSet const &amp; getFieldPathSet(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00672">STObject.cpp:672</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a0d2d874d34a1c3ed432cdb9fb1386b35"><div class="ttname"><a href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">ripple::STObject::getAccountID</a></div><div class="ttdeci">AccountID getAccountID(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00651">STObject.cpp:651</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a8e207109e646759f4927d90e4404893f"><div class="ttname"><a href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">ripple::STObject::getFieldAmount</a></div><div class="ttdeci">STAmount const &amp; getFieldAmount(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00665">STObject.cpp:665</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_aaf5d617701ac3afc4ad6a13862459692"><div class="ttname"><a href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">ripple::STObject::isFieldPresent</a></div><div class="ttdeci">bool isFieldPresent(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00484">STObject.cpp:484</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_af5aa57043ec772da30341e3c3b823d7f"><div class="ttname"><a href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">ripple::STObject::getFlags</a></div><div class="ttdeci">std::uint32_t getFlags() const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00537">STObject.cpp:537</a></div></div>
<div class="ttc" id="aclassripple_1_1STPathSet_html"><div class="ttname"><a href="classripple_1_1STPathSet.html">ripple::STPathSet</a></div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00177">STPathSet.h:178</a></div></div>
<div class="ttc" id="aclassripple_1_1STPathSet_html_a3343684da99412733b6c1661720fc725"><div class="ttname"><a href="classripple_1_1STPathSet.html#a3343684da99412733b6c1661720fc725">ripple::STPathSet::end</a></div><div class="ttdeci">std::vector&lt; STPath &gt;::const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00496">STPathSet.h:496</a></div></div>
<div class="ttc" id="aclassripple_1_1STPathSet_html_a942c597a3ff98e2f6a7c0a6681c388aa"><div class="ttname"><a href="classripple_1_1STPathSet.html#a942c597a3ff98e2f6a7c0a6681c388aa">ripple::STPathSet::begin</a></div><div class="ttdeci">std::vector&lt; STPath &gt;::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00490">STPathSet.h:490</a></div></div>
<div class="ttc" id="aclassripple_1_1STPathSet_html_af74f528bb7846fccf7665ec4e0e6667d"><div class="ttname"><a href="classripple_1_1STPathSet.html#af74f528bb7846fccf7665ec4e0e6667d">ripple::STPathSet::size</a></div><div class="ttdeci">std::vector&lt; STPath &gt;::size_type size() const</div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00502">STPathSet.h:502</a></div></div>
<div class="ttc" id="aclassripple_1_1STPath_html"><div class="ttname"><a href="classripple_1_1STPath.html">ripple::STPath</a></div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00119">STPathSet.h:120</a></div></div>
<div class="ttc" id="aclassripple_1_1STTx_html"><div class="ttname"><a href="classripple_1_1STTx.html">ripple::STTx</a></div><div class="ttdef"><b>Definition:</b> <a href="STTx_8h_source.html#l00047">STTx.h:48</a></div></div>
<div class="ttc" id="aclassripple_1_1STTx_html_ad314af66e2542db537b3b5de291d33c3"><div class="ttname"><a href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">ripple::STTx::getTransactionID</a></div><div class="ttdeci">uint256 getTransactionID() const</div><div class="ttdef"><b>Definition:</b> <a href="STTx_8h_source.html#l00194">STTx.h:194</a></div></div>
<div class="ttc" id="aclassripple_1_1STTx_html_ad314af66e2542db537b3b5de291d33c3"><div class="ttname"><a href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">ripple::STTx::getTransactionID</a></div><div class="ttdeci">uint256 getTransactionID() const</div><div class="ttdef"><b>Definition:</b> <a href="STTx_8h_source.html#l00198">STTx.h:198</a></div></div>
<div class="ttc" id="aclassripple_1_1TERSubset_html"><div class="ttname"><a href="classripple_1_1TERSubset.html">ripple::TERSubset&lt; CanCvtToTER &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a803c6fba463ed92ee24e4c056467f20a"><div class="ttname"><a href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">ripple::Transactor::account_</a></div><div class="ttdeci">AccountID const account_</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00093">Transactor.h:93</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a9acc4edc9b8f2a11a27fbcf5e93e2fe2"><div class="ttname"><a href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">ripple::Transactor::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00109">Transactor.h:109</a></div></div>
@@ -787,56 +785,62 @@ $(function() {
<div class="ttc" id="aclassripple_1_1XRPAmount_html"><div class="ttname"><a href="classripple_1_1XRPAmount.html">ripple::XRPAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="XRPAmount_8h_source.html#l00039">XRPAmount.h:43</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 160, detail::AccountIDTag &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1path_1_1RippleCalc_html_a359d70f8c834cec541d4036f785372c9"><div class="ttname"><a href="classripple_1_1path_1_1RippleCalc.html#a359d70f8c834cec541d4036f785372c9">ripple::path::RippleCalc::rippleCalculate</a></div><div class="ttdeci">static Output rippleCalculate(PaymentSandbox &amp;view, STAmount const &amp;saMaxAmountReq, STAmount const &amp;saDstAmountReq, AccountID const &amp;uDstAccountID, AccountID const &amp;uSrcAccountID, STPathSet const &amp;spsPaths, Logs &amp;l, Input const *const pInputs=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8cpp_source.html#l00032">RippleCalc.cpp:32</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1path_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1path.html">ripple::test::jtx::path</a></div><div class="ttdoc">Add a path.</div><div class="ttdef"><b>Definition:</b> <a href="paths_8h_source.html#l00057">paths.h:58</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1paths_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1paths.html">ripple::test::jtx::paths</a></div><div class="ttdoc">Set Paths, SendMax on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="paths_8h_source.html#l00034">paths.h:35</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1ter_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1ter.html">ripple::test::jtx::ter</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="ter_8h_source.html#l00034">ter.h:35</a></div></div>
<div class="ttc" id="acontains_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/unordered_set/contains.html">std::unordered_set::contains</a></div><div class="ttdeci">T contains(T... args)</div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a1dafe69f78db7112a8cde501be93d07e"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a1dafe69f78db7112a8cde501be93d07e">ripple::credentials::checkFields</a></div><div class="ttdeci">NotTEC checkFields(PreflightContext const &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="CredentialHelpers_8cpp_source.html#l00123">CredentialHelpers.cpp:123</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_abd2ed437891b9bd542d2afc3f5f4bc58"><div class="ttname"><a href="namespaceripple_1_1credentials.html#abd2ed437891b9bd542d2afc3f5f4bc58">ripple::credentials::valid</a></div><div class="ttdeci">TER valid(PreclaimContext const &amp;ctx, AccountID const &amp;src)</div><div class="ttdef"><b>Definition:</b> <a href="CredentialHelpers_8cpp_source.html#l00153">CredentialHelpers.cpp:153</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_a151731f161a5d0dd5049636e1cdc7699"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a151731f161a5d0dd5049636e1cdc7699">ripple::keylet::delegate</a></div><div class="ttdeci">Keylet delegate(AccountID const &amp;account, AccountID const &amp;authorizedAccount) noexcept</div><div class="ttdoc">A keylet for Delegate object.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00457">Indexes.cpp:457</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_1keylet_html_a151731f161a5d0dd5049636e1cdc7699"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a151731f161a5d0dd5049636e1cdc7699">ripple::keylet::delegate</a></div><div class="ttdeci">Keylet delegate(AccountID const &amp;account, AccountID const &amp;authorizedAccount) noexcept</div><div class="ttdoc">A keylet for Delegate object.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00458">Indexes.cpp:458</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#l00177">Indexes.cpp:177</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a12abe185058a3db015909ed92c421097"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ripple::test::jtx::ownerCount</a></div><div class="ttdeci">std::uint32_t ownerCount(Env const &amp;env, Account const &amp;account)</div><div class="ttdef"><b>Definition:</b> <a href="TestHelpers_8cpp_source.html#l00054">TestHelpers.cpp:54</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a8e8d814b8820ce0b6979abde0d6a2618"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a8e8d814b8820ce0b6979abde0d6a2618">ripple::test::jtx::rate</a></div><div class="ttdeci">Json::Value rate(Account const &amp;account, double multiplier)</div><div class="ttdoc">Set a transfer rate.</div><div class="ttdef"><b>Definition:</b> <a href="rate_8cpp_source.html#l00032">rate.cpp:32</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="algorithm_8h_source.html#l00026">algorithm.h:26</a></div></div>
<div class="ttc" id="anamespaceripple_html_a0ad557cc32ca87dcea19af8e30c63c6a"><div class="ttname"><a href="namespaceripple.html#a0ad557cc32ca87dcea19af8e30c63c6a">ripple::divide</a></div><div class="ttdeci">STAmount divide(STAmount const &amp;amount, Rate const &amp;rate)</div><div class="ttdef"><b>Definition:</b> <a href="Rate2_8cpp_source.html#l00093">Rate2.cpp:93</a></div></div>
<div class="ttc" id="anamespaceripple_html_a0d78fe5b5eff36774b5be525cbcc3972"><div class="ttname"><a href="namespaceripple.html#a0d78fe5b5eff36774b5be525cbcc3972">ripple::badCurrency</a></div><div class="ttdeci">Currency const &amp; badCurrency()</div><div class="ttdoc">We deliberately disallow the currency that looks like &quot;XRP&quot; because too many people were using it ins...</div><div class="ttdef"><b>Definition:</b> <a href="UintTypes_8cpp_source.html#l00133">UintTypes.cpp:133</a></div></div>
<div class="ttc" id="anamespaceripple_html_a128ca09dcebbb1b245e4bb297faea9db"><div class="ttname"><a href="namespaceripple.html#a128ca09dcebbb1b245e4bb297faea9db">ripple::equalTokens</a></div><div class="ttdeci">constexpr bool equalTokens(Asset const &amp;lhs, Asset const &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Asset_8h_source.html#l00188">Asset.h:188</a></div></div>
<div class="ttc" id="anamespaceripple_html_a128ca09dcebbb1b245e4bb297faea9db"><div class="ttname"><a href="namespaceripple.html#a128ca09dcebbb1b245e4bb297faea9db">ripple::equalTokens</a></div><div class="ttdeci">constexpr bool equalTokens(Asset const &amp;lhs, Asset const &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Asset_8h_source.html#l00201">Asset.h:201</a></div></div>
<div class="ttc" id="anamespaceripple_html_a20d30277b9c78756b3d14493055a307c"><div class="ttname"><a href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">ripple::isXRP</a></div><div class="ttdeci">bool isXRP(AccountID const &amp;c)</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8h_source.html#l00091">AccountID.h:91</a></div></div>
<div class="ttc" id="anamespaceripple_html_a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005"><div class="ttname"><a href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005">ripple::telBAD_PATH_COUNT</a></div><div class="ttdeci">@ telBAD_PATH_COUNT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00054">TER.h:54</a></div></div>
<div class="ttc" id="anamespaceripple_html_a260d2970ac1119109937ed1c5d4ca962a5c4a0a37ecf949f9b66ff5ed936ab581"><div class="ttname"><a href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a5c4a0a37ecf949f9b66ff5ed936ab581">ripple::telNO_DST_PARTIAL</a></div><div class="ttdeci">@ telNO_DST_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00058">TER.h:58</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3e046f4b7ab06562107485513edb7098"><div class="ttname"><a href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">ripple::requireAuth</a></div><div class="ttdeci">TER requireAuth(ReadView const &amp;view, Issue const &amp;issue, AccountID const &amp;account)</div><div class="ttdoc">Check if the account lacks required authorization.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l01901">View.cpp:1901</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3e312ecdb199409dca142d307a3e0e5b"><div class="ttname"><a href="namespaceripple.html#a3e312ecdb199409dca142d307a3e0e5b">ripple::isLegalNet</a></div><div class="ttdeci">bool isLegalNet(STAmount const &amp;value)</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00581">STAmount.h:581</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3e046f4b7ab06562107485513edb7098"><div class="ttname"><a href="namespaceripple.html#a3e046f4b7ab06562107485513edb7098">ripple::requireAuth</a></div><div class="ttdeci">TER requireAuth(ReadView const &amp;view, Issue const &amp;issue, AccountID const &amp;account)</div><div class="ttdoc">Check if the account lacks required authorization.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l02268">View.cpp:2268</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3e312ecdb199409dca142d307a3e0e5b"><div class="ttname"><a href="namespaceripple.html#a3e312ecdb199409dca142d307a3e0e5b">ripple::isLegalNet</a></div><div class="ttdeci">bool isLegalNet(STAmount const &amp;value)</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00600">STAmount.h:600</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3f6f1a6aa2d2d2c81704be76caf69163"><div class="ttname"><a href="namespaceripple.html#a3f6f1a6aa2d2d2c81704be76caf69163">ripple::tfMPTPaymentMask</a></div><div class="ttdeci">constexpr std::uint32_t tfMPTPaymentMask</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00109">TxFlags.h:109</a></div></div>
<div class="ttc" id="anamespaceripple_html_a40a2f551909e4b709699f6d41292d374"><div class="ttname"><a href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">ripple::transferRate</a></div><div class="ttdeci">Rate transferRate(ReadView const &amp;view, AccountID const &amp;issuer)</div><div class="ttdoc">Returns IOU issuer transfer fee as Rate.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00652">View.cpp:652</a></div></div>
<div class="ttc" id="anamespaceripple_html_a40a2f551909e4b709699f6d41292d374"><div class="ttname"><a href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">ripple::transferRate</a></div><div class="ttdeci">Rate transferRate(ReadView const &amp;view, AccountID const &amp;issuer)</div><div class="ttdoc">Returns IOU issuer transfer fee as Rate.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00762">View.cpp:762</a></div></div>
<div class="ttc" id="anamespaceripple_html_a492b4810949343331a48f65e0032c8f5"><div class="ttname"><a href="namespaceripple.html#a492b4810949343331a48f65e0032c8f5">ripple::getMaxSourceAmount</a></div><div class="ttdeci">STAmount getMaxSourceAmount(AccountID const &amp;account, STAmount const &amp;dstAmount, std::optional&lt; STAmount &gt; const &amp;sendMax)</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8cpp_source.html#l00050">Payment.cpp:50</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a2243e81f83c4191286c8c46bdd86d6f3"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a2243e81f83c4191286c8c46bdd86d6f3">ripple::lsfRequireDestTag</a></div><div class="ttdeci">@ lsfRequireDestTag</div><div class="ttdef"><b>Definition:</b> <a href="LedgerFormats_8h_source.html#l00127">LedgerFormats.h:126</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">ripple::lsfPasswordSpent</a></div><div class="ttdeci">@ lsfPasswordSpent</div><div class="ttdef"><b>Definition:</b> <a href="LedgerFormats_8h_source.html#l00125">LedgerFormats.h:125</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05">ripple::lsfDepositAuth</a></div><div class="ttdeci">@ lsfDepositAuth</div><div class="ttdef"><b>Definition:</b> <a href="LedgerFormats_8h_source.html#l00136">LedgerFormats.h:136</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5adb540ae694e45bca2ad089fff15128"><div class="ttname"><a href="namespaceripple.html#a5adb540ae694e45bca2ad089fff15128">ripple::multiply</a></div><div class="ttdeci">STAmount multiply(STAmount const &amp;amount, Rate const &amp;rate)</div><div class="ttdef"><b>Definition:</b> <a href="Rate2_8cpp_source.html#l00053">Rate2.cpp:53</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5b31f337f444082f547ef1838e7064fc"><div class="ttname"><a href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">ripple::isTesSuccess</a></div><div class="ttdeci">bool isTesSuccess(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00656">TER.h:656</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5b31f337f444082f547ef1838e7064fc"><div class="ttname"><a href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">ripple::isTesSuccess</a></div><div class="ttdeci">bool isTesSuccess(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00672">TER.h:672</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5dfb437ade69624474bbe4125ceb791a"><div class="ttname"><a href="namespaceripple.html#a5dfb437ade69624474bbe4125ceb791a">ripple::preflight1</a></div><div class="ttdeci">NotTEC preflight1(PreflightContext const &amp;ctx)</div><div class="ttdoc">Performs early sanity checks on the account and fee fields.</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8cpp_source.html#l00083">Transactor.cpp:83</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5fee6de5a4606aa8a6fff71b1a3993fc"><div class="ttname"><a href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">ripple::isTerRetry</a></div><div class="ttdeci">bool isTerRetry(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00650">TER.h:650</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6cb89b79bc073abda42953c323d36cda"><div class="ttname"><a href="namespaceripple.html#a6cb89b79bc073abda42953c323d36cda">ripple::isFrozen</a></div><div class="ttdeci">bool isFrozen(ReadView const &amp;view, AccountID const &amp;account, Currency const &amp;currency, AccountID const &amp;issuer)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00239">View.cpp:239</a></div></div>
<div class="ttc" id="anamespaceripple_html_a70a62aa7e380540ed36762d3c02492f1"><div class="ttname"><a href="namespaceripple.html#a70a62aa7e380540ed36762d3c02492f1">ripple::canTransfer</a></div><div class="ttdeci">TER canTransfer(ReadView const &amp;view, MPTIssue const &amp;mptIssue, AccountID const &amp;from, AccountID const &amp;to)</div><div class="ttdoc">Check if the destination account is allowed to receive MPT.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l01954">View.cpp:1954</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5fee6de5a4606aa8a6fff71b1a3993fc"><div class="ttname"><a href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">ripple::isTerRetry</a></div><div class="ttdeci">bool isTerRetry(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00666">TER.h:666</a></div></div>
<div class="ttc" id="anamespaceripple_html_a70a62aa7e380540ed36762d3c02492f1"><div class="ttname"><a href="namespaceripple.html#a70a62aa7e380540ed36762d3c02492f1">ripple::canTransfer</a></div><div class="ttdeci">TER canTransfer(ReadView const &amp;view, MPTIssue const &amp;mptIssue, AccountID const &amp;from, AccountID const &amp;to)</div><div class="ttdoc">Check if the destination account is allowed to receive MPT.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l02465">View.cpp:2465</a></div></div>
<div class="ttc" id="anamespaceripple_html_a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c"><div class="ttname"><a href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">ripple::tefINTERNAL</a></div><div class="ttdeci">@ tefINTERNAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00173">TER.h:173</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7efcc6de2ed8aa0fa1f3e0a632f2f095"><div class="ttname"><a href="namespaceripple.html#a7efcc6de2ed8aa0fa1f3e0a632f2f095">ripple::tfPartialPayment</a></div><div class="ttdeci">constexpr std::uint32_t tfPartialPayment</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00105">TxFlags.h:105</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8744b0e5e3b233ccb55fc34e22834f61"><div class="ttname"><a href="namespaceripple.html#a8744b0e5e3b233ccb55fc34e22834f61">ripple::loadGranularPermission</a></div><div class="ttdeci">void loadGranularPermission(std::shared_ptr&lt; SLE const &gt; const &amp;delegate, TxType const &amp;type, std::unordered_set&lt; GranularPermissionType &gt; &amp;granularPermissions)</div><div class="ttdoc">Load the granular permissions granted to the delegate account for the specified transaction type.</div><div class="ttdef"><b>Definition:</b> <a href="DelegateUtils_8cpp_source.html#l00045">DelegateUtils.cpp:45</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8b257ff89d14ac75ce240946f32d3773"><div class="ttname"><a href="namespaceripple.html#a8b257ff89d14ac75ce240946f32d3773">ripple::preflight2</a></div><div class="ttdeci">NotTEC preflight2(PreflightContext const &amp;ctx)</div><div class="ttdoc">Checks whether the signature appears valid.</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8cpp_source.html#l00144">Transactor.cpp:144</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa0f18ad9b22a7bfe1d803ebc2382be59"><div class="ttname"><a href="namespaceripple.html#aa0f18ad9b22a7bfe1d803ebc2382be59">ripple::checkTxPermission</a></div><div class="ttdeci">TER checkTxPermission(std::shared_ptr&lt; SLE const &gt; const &amp;delegate, STTx const &amp;tx)</div><div class="ttdoc">Check if the delegate account has permission to execute the transaction.</div><div class="ttdef"><b>Definition:</b> <a href="DelegateUtils_8cpp_source.html#l00026">DelegateUtils.cpp:26</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">ripple::tecNO_DST</a></div><div class="ttdeci">@ tecNO_DST</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00277">TER.h:277</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">ripple::tecINSUFFICIENT_FUNDS</a></div><div class="ttdeci">@ tecINSUFFICIENT_FUNDS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00312">TER.h:312</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00292">TER.h:292</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00296">TER.h:296</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">ripple::tecPATH_PARTIAL</a></div><div class="ttdeci">@ tecPATH_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00269">TER.h:269</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">ripple::tecUNFUNDED_PAYMENT</a></div><div class="ttdeci">@ tecUNFUNDED_PAYMENT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00272">TER.h:272</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">ripple::tecPATH_DRY</a></div><div class="ttdeci">@ tecPATH_DRY</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00281">TER.h:281</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd">ripple::tecNO_DST_INSUF_XRP</a></div><div class="ttdeci">@ tecNO_DST_INSUF_XRP</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00278">TER.h:278</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">ripple::tecLOCKED</a></div><div class="ttdeci">@ tecLOCKED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00345">TER.h:345</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">ripple::tecNO_DST</a></div><div class="ttdeci">@ tecNO_DST</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00290">TER.h:290</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">ripple::tecINSUFFICIENT_FUNDS</a></div><div class="ttdeci">@ tecINSUFFICIENT_FUNDS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00325">TER.h:325</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00305">TER.h:305</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00309">TER.h:309</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">ripple::tecPATH_PARTIAL</a></div><div class="ttdeci">@ tecPATH_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00282">TER.h:282</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">ripple::tecUNFUNDED_PAYMENT</a></div><div class="ttdeci">@ tecUNFUNDED_PAYMENT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00285">TER.h:285</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">ripple::tecPATH_DRY</a></div><div class="ttdeci">@ tecPATH_DRY</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00294">TER.h:294</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd">ripple::tecNO_DST_INSUF_XRP</a></div><div class="ttdeci">@ tecNO_DST_INSUF_XRP</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00291">TER.h:291</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">ripple::tecLOCKED</a></div><div class="ttdeci">@ tecLOCKED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00358">TER.h:358</a></div></div>
<div class="ttc" id="anamespaceripple_html_aab3ff08970a7fcec2229fc4c9e5f7d38"><div class="ttname"><a href="namespaceripple.html#aab3ff08970a7fcec2229fc4c9e5f7d38">ripple::tfNoRippleDirect</a></div><div class="ttdeci">constexpr std::uint32_t tfNoRippleDirect</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00104">TxFlags.h:104</a></div></div>
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00243">TER.h:242</a></div></div>
<div class="ttc" id="anamespaceripple_html_aac087e7a6119190c1e57236bb32d0f1d"><div class="ttname"><a href="namespaceripple.html#aac087e7a6119190c1e57236bb32d0f1d">ripple::verifyDepositPreauth</a></div><div class="ttdeci">TER verifyDepositPreauth(ApplyContext &amp;ctx, AccountID const &amp;src, AccountID const &amp;dst, std::shared_ptr&lt; SLE &gt; const &amp;sleDst)</div><div class="ttdef"><b>Definition:</b> <a href="CredentialHelpers_8cpp_source.html#l00277">CredentialHelpers.cpp:277</a></div></div>
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00245">TER.h:244</a></div></div>
<div class="ttc" id="anamespaceripple_html_aac087e7a6119190c1e57236bb32d0f1d"><div class="ttname"><a href="namespaceripple.html#aac087e7a6119190c1e57236bb32d0f1d">ripple::verifyDepositPreauth</a></div><div class="ttdeci">TER verifyDepositPreauth(ApplyContext &amp;ctx, AccountID const &amp;src, AccountID const &amp;dst, std::shared_ptr&lt; SLE &gt; const &amp;sleDst)</div><div class="ttdef"><b>Definition:</b> <a href="CredentialHelpers_8cpp_source.html#l00356">CredentialHelpers.cpp:356</a></div></div>
<div class="ttc" id="anamespaceripple_html_ababf50b6a950c48e10622ce16c0f73d2"><div class="ttname"><a href="namespaceripple.html#ababf50b6a950c48e10622ce16c0f73d2">ripple::tfPaymentMask</a></div><div class="ttdeci">constexpr std::uint32_t tfPaymentMask</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00107">TxFlags.h:107</a></div></div>
<div class="ttc" id="anamespaceripple_html_abc202169b736c0a032eb947f186b6e63"><div class="ttname"><a href="namespaceripple.html#abc202169b736c0a032eb947f186b6e63">ripple::tfLimitQuality</a></div><div class="ttdeci">constexpr std::uint32_t tfLimitQuality</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00106">TxFlags.h:106</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac124fe6744b7fe887dec949b56b16d50"><div class="ttname"><a href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">ripple::to_string</a></div><div class="ttdeci">std::string to_string(base_uint&lt; Bits, Tag &gt; const &amp;a)</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00630">base_uint.h:630</a></div></div>
<div class="ttc" id="anamespaceripple_html_af2e2ee9b2b3499ff23ebbc249e188764"><div class="ttname"><a href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">ripple::accountSend</a></div><div class="ttdeci">TER accountSend(ApplyView &amp;view, AccountID const &amp;uSenderID, AccountID const &amp;uReceiverID, STAmount const &amp;saAmount, beast::Journal j, WaiveTransferFee waiveFee)</div><div class="ttdoc">Calls static accountSendIOU if saAmount represents Issue.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l01611">View.cpp:1611</a></div></div>
<div class="ttc" id="anamespaceripple_html_af99ba2263d2a1e29207c40a35fc9f6b3"><div class="ttname"><a href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">ripple::NotTEC</a></div><div class="ttdeci">TERSubset&lt; CanCvtToNotTEC &gt; NotTEC</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00587">TER.h:587</a></div></div>
<div class="ttc" id="anamespaceripple_html_adcd50578d9c82873a5d3a3f00b06899c"><div class="ttname"><a href="namespaceripple.html#adcd50578d9c82873a5d3a3f00b06899c">ripple::isAnyFrozen</a></div><div class="ttdeci">bool isAnyFrozen(ReadView const &amp;view, std::initializer_list&lt; AccountID &gt; const &amp;accounts, MPTIssue const &amp;mptIssue, int depth)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00285">View.cpp:285</a></div></div>
<div class="ttc" id="anamespaceripple_html_af1d7ae814974c52a0e9f43e893480680"><div class="ttname"><a href="namespaceripple.html#af1d7ae814974c52a0e9f43e893480680">ripple::isPseudoAccount</a></div><div class="ttdeci">bool isPseudoAccount(std::shared_ptr&lt; SLE const &gt; sleAcct)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l01128">View.cpp:1128</a></div></div>
<div class="ttc" id="anamespaceripple_html_af2e2ee9b2b3499ff23ebbc249e188764"><div class="ttname"><a href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">ripple::accountSend</a></div><div class="ttdeci">TER accountSend(ApplyView &amp;view, AccountID const &amp;uSenderID, AccountID const &amp;uReceiverID, STAmount const &amp;saAmount, beast::Journal j, WaiveTransferFee waiveFee)</div><div class="ttdoc">Calls static accountSendIOU if saAmount represents Issue.</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l01978">View.cpp:1978</a></div></div>
<div class="ttc" id="anamespaceripple_html_af99ba2263d2a1e29207c40a35fc9f6b3"><div class="ttname"><a href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">ripple::NotTEC</a></div><div class="ttdeci">TERSubset&lt; CanCvtToNotTEC &gt; NotTEC</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00603">TER.h:603</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a074cbf7b2433e88811c5c23f23c3324d"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a074cbf7b2433e88811c5c23f23c3324d">ripple::temBAD_SEND_XRP_PARTIAL</a></div><div class="ttdeci">@ temBAD_SEND_XRP_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00102">TER.h:102</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea">ripple::temBAD_AMOUNT</a></div><div class="ttdeci">@ temBAD_AMOUNT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00089">TER.h:89</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a0b220bf6f780bf2ec67b6a6e18e9440f"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a0b220bf6f780bf2ec67b6a6e18e9440f">ripple::temREDUNDANT</a></div><div class="ttdeci">@ temREDUNDANT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00112">TER.h:112</a></div></div>