This commit is contained in:
bthomee
2025-06-02 13:56:46 +00:00
parent ebe6bc13ab
commit 473f896133
887 changed files with 36630 additions and 32082 deletions

View File

@@ -613,14 +613,14 @@ $(function() {
<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="keyword">auto</span> <span class="keyword">const</span></div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> [amountDepositActual, amount2DepositActual, lpTokensDepositActual] =</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <a class="code hl_function" href="namespaceripple.html#a5f936a9395ee6781feff5c6a13adacf1">adjustAmountsByLPTokens</a>(</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <a class="code hl_function" href="namespaceripple.html#a812051b3eb90012879722503bc9c422a">adjustAmountsByLPTokens</a>(</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> amountBalance,</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> amountDeposit,</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> amount2Deposit,</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> lptAMMBalance,</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> lpTokensDeposit,</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> tfee,</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keyword">true</span>);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</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> (lpTokensDepositActual &lt;= beast::zero)</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> {</div>
@@ -703,264 +703,348 @@ $(function() {
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>, lptAMMBalance + lpTokensDepositActual};</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> </div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f"> 632</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f">AMMDeposit::equalDepositTokens</a>(</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2Balance,</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lpTokensDeposit,</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; depositMin,</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; deposit2Min,</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span>{</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> {</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <span class="keyword">auto</span> <span class="keyword">const</span> frac =</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <a class="code hl_function" href="namespaceripple.html#a0ad557cc32ca87dcea19af8e30c63c6a">divide</a>(lpTokensDeposit, lptAMMBalance, lptAMMBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>());</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> ammAccount,</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> amountBalance,</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <a class="code hl_function" href="namespaceripple.html#a5adb540ae694e45bca2ad089fff15128">multiply</a>(amountBalance, frac, amountBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>()),</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <a class="code hl_function" href="namespaceripple.html#a5adb540ae694e45bca2ad089fff15128">multiply</a>(amount2Balance, frac, amount2Balance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>()),</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> lptAMMBalance,</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> lpTokensDeposit,</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> depositMin,</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> deposit2Min,</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> std::nullopt,</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> tfee);</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> }</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; e)</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> {</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="comment">// LCOV_EXCL_START</span></div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</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#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) &lt;&lt; <span class="stringliteral">&quot;AMMDeposit::equalDepositTokens exception &quot;</span></div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> &lt;&lt; e.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="comment">// LCOV_EXCL_STOP</span></div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> }</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span>}</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> </div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6"> 699</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6">AMMDeposit::equalDepositLimit</a>(</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2Balance,</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2,</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; lpTokensDepositMin,</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span>{</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">auto</span> frac = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amount} / amountBalance;</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keyword">auto</span> tokens = <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(lptAMMBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), lptAMMBalance * frac);</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <span class="keywordflow">if</span> (tokens == beast::zero)</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keyword">auto</span> <span class="keyword">const</span> amount2Deposit = amount2Balance * frac;</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="keywordflow">if</span> (amount2Deposit &lt;= amount2)</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> ammAccount,</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> amountBalance,</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> amount,</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(amount2Balance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), amount2Deposit),</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> lptAMMBalance,</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> tokens,</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> std::nullopt,</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> std::nullopt,</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> tfee);</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> frac = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amount2} / amount2Balance;</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> tokens = <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(lptAMMBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), lptAMMBalance * frac);</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> <span class="keywordflow">if</span> (tokens == beast::zero)</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit = amountBalance * frac;</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keywordflow">if</span> (amountDeposit &lt;= amount)</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> ammAccount,</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> amountBalance,</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(amountBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), amountDeposit),</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> amount2,</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> lptAMMBalance,</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> tokens,</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> std::nullopt,</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> std::nullopt,</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> tfee);</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span>}</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501"> 758</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501">AMMDeposit::singleDeposit</a>(</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; lpTokensDepositMin,</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span>{</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens = <a class="code hl_function" href="namespaceripple.html#a0b2344222057d8b5b9923b2911962879">lpTokensIn</a>(amountBalance, amount, lptAMMBalance, tfee);</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> <span class="keywordflow">if</span> (tokens == beast::zero)</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> ammAccount,</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> amountBalance,</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> amount,</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> std::nullopt,</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> lptAMMBalance,</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> tokens,</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> std::nullopt,</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> std::nullopt,</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> tfee);</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span>}</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> </div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb"> 792</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb">AMMDeposit::singleDepositTokens</a>(</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lpTokensDeposit,</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span>{</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit =</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <a class="code hl_function" href="namespaceripple.html#a573eb2cecf652856fc74fb1dfbaf8c2a">ammAssetIn</a>(amountBalance, lptAMMBalance, lpTokensDeposit, tfee);</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">if</span> (amountDeposit &gt; amount)</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> ammAccount,</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> amountBalance,</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> amountDeposit,</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> std::nullopt,</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> lptAMMBalance,</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> lpTokensDeposit,</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> std::nullopt,</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> std::nullopt,</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> std::nullopt,</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> tfee);</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span>}</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> </div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e"> 845</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e">AMMDeposit::singleDepositEPrice</a>(</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; ePrice,</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span>{</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <span class="keywordflow">if</span> (amount != beast::zero)</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> {</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens =</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> <a class="code hl_function" href="namespaceripple.html#a0b2344222057d8b5b9923b2911962879">lpTokensIn</a>(amountBalance, amount, lptAMMBalance, tfee);</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <span class="keywordflow">if</span> (tokens &lt;= beast::zero)</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> <span class="keyword">auto</span> <span class="keyword">const</span> ep = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amount} / tokens;</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">if</span> (ep &lt;= ePrice)</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> ammAccount,</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> amountBalance,</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> amount,</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> std::nullopt,</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> lptAMMBalance,</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> tokens,</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> std::nullopt,</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> std::nullopt,</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> std::nullopt,</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> tfee);</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> }</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> </div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <span class="comment">// LPTokens is asset out =&gt; E = b / t</span></div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> <span class="comment">// substituting t in formula (3) as b/E:</span></div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="comment">// b/E = T * [b/B - sqrt(t2**2 + b/(f1*B)) + t2]/</span></div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="comment">// [1 + sqrt(t2**2 + b/(f1*B)) -t2] (A)</span></div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="comment">// where f1 = 1 - fee, f2 = (1 - fee/2)/f1</span></div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> <span class="comment">// Let R = b/(f1*B), then b/B = f1*R and b = R*f1*B</span></div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> <span class="comment">// Then (A) is</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="comment">// R*f1*B = E*T*[R*f1 -sqrt(f2**2 + R) + f2]/[1 + sqrt(f2**2 + R) - f2] =&gt;</span></div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> <span class="comment">// Let c = f1*B/(E*T) =&gt;</span></div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="comment">// R*c*(1 + sqrt(f2**2 + R) + f2) = R*f1 - sqrt(f2**2 + R) - f2 =&gt;</span></div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> <span class="comment">// (R*c + 1)*sqrt(f2**2 + R) = R*(f1 + c*f2 - c) + f2 =&gt;</span></div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <span class="comment">// Let d = f1 + c*f2 - c =&gt;</span></div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="comment">// (R*c + 1)*sqrt(f2**2 + R) = R*d + f2 =&gt;</span></div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="comment">// (R*c + 1)**2 * (f2**2 + R) = (R*d + f2)**2 =&gt;</span></div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="comment">// (R*c)**2 + R*((c*f2)**2 + 2*c - d**2) + 2*c*f2**2 + 1 -2*d*f2 = 0 =&gt;</span></div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="comment">// a1 = c**2, b1 = (c*f2)**2 + 2*c - d**2, c1 = 2*c*f2**2 + 1 - 2*d*f2</span></div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="comment">// R = (-b1 + sqrt(b1**2 + 4*a1*c1))/(2*a1)</span></div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <span class="keyword">auto</span> <span class="keyword">const</span> f1 = <a class="code hl_function" href="namespaceripple.html#a7894756905fee556c1541cd1de1f697a">feeMult</a>(tfee);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> <span class="keyword">auto</span> <span class="keyword">const</span> f2 = <a class="code hl_function" href="namespaceripple.html#ac78c8c0642bbbe33db633286fa147381">feeMultHalf</a>(tfee) / f1;</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keyword">auto</span> <span class="keyword">const</span> c = f1 * amountBalance / (ePrice * lptAMMBalance);</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="keyword">auto</span> <span class="keyword">const</span> d = f1 + c * f2 - c;</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <span class="keyword">auto</span> <span class="keyword">const</span> a1 = c * c;</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> <span class="keyword">auto</span> <span class="keyword">const</span> b1 = c * c * f2 * f2 + 2 * c - d * d;</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> <span class="keyword">auto</span> <span class="keyword">const</span> c1 = 2 * c * f2 * f2 + 1 - 2 * d * f2;</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit = <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> amountBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(),</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> f1 * amountBalance * <a class="code hl_function" href="namespaceripple.html#a3d22714f28b806ea5c702eba2db5fbc2">solveQuadraticEq</a>(a1, b1, c1));</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> <span class="keywordflow">if</span> (amountDeposit &lt;= beast::zero)</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens =</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <a class="code hl_function" href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">toSTAmount</a>(lptAMMBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), amountDeposit / ePrice);</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> ammAccount,</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> amountBalance,</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> amountDeposit,</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> std::nullopt,</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> lptAMMBalance,</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> tokens,</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> std::nullopt,</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> std::nullopt,</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> std::nullopt,</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> tfee);</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span>}</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a"> 922</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a">AMMDeposit::equalDepositInEmptyState</a>(</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2,</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> <a class="code hl_class" href="classripple_1_1Issue.html">Issue</a> <span class="keyword">const</span>&amp; lptIssue,</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span>{</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> ammAccount,</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> amount,</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> amount,</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> amount2,</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{lptIssue, 0},</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <a class="code hl_function" href="namespaceripple.html#ab8defa1f235abbf44a60ccc6c71c6fdd">ammLPTokens</a>(amount, amount2, lptIssue),</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> std::nullopt,</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> std::nullopt,</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> std::nullopt,</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> tfee);</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span>}</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="keyword">static</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a></div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574"> 629</a></span><a class="code hl_function" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">adjustLPTokensOut</a>(</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <a class="code hl_class" href="classripple_1_1Rules.html">Rules</a> <span class="keyword">const</span>&amp; rules,</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lpTokensDeposit)</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> <span class="keywordflow">if</span> (!rules.<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3))</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="keywordflow">return</span> lpTokensDeposit;</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a745b96ab219de6f62807ab5f6f484534">adjustLPTokens</a>(lptAMMBalance, lpTokensDeposit, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span>}</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f"> 643</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f">AMMDeposit::equalDepositTokens</a>(</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2Balance,</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lpTokensDeposit,</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; depositMin,</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; deposit2Min,</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span>{</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> {</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokensAdj =</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <a class="code hl_function" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">adjustLPTokensOut</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, lpTokensDeposit);</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3) &amp;&amp; tokensAdj == beast::zero)</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">auto</span> <span class="keyword">const</span> frac =</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <a class="code hl_function" href="namespaceripple.html#a0ad557cc32ca87dcea19af8e30c63c6a">divide</a>(tokensAdj, lptAMMBalance, lptAMMBalance.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>());</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> <span class="comment">// amounts factor in the adjusted tokens</span></div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit =</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <a class="code hl_function" href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">getRoundedAsset</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amountBalance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <span class="keyword">auto</span> <span class="keyword">const</span> amount2Deposit =</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <a class="code hl_function" href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">getRoundedAsset</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amount2Balance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> ammAccount,</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> amountBalance,</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> amountDeposit,</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> amount2Deposit,</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> lptAMMBalance,</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> tokensAdj,</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> depositMin,</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> deposit2Min,</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> std::nullopt,</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> tfee);</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> }</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a> <span class="keyword">const</span>&amp; e)</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> {</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <span class="comment">// LCOV_EXCL_START</span></div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</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#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) &lt;&lt; <span class="stringliteral">&quot;AMMDeposit::equalDepositTokens exception &quot;</span></div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> &lt;&lt; e.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/error/exception/what.html">what</a>();</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="comment">// LCOV_EXCL_STOP</span></div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> }</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span>}</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> </div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6"> 719</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6">AMMDeposit::equalDepositLimit</a>(</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2Balance,</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2,</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; lpTokensDepositMin,</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span>{</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> <span class="keyword">auto</span> frac = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amount} / amountBalance;</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">auto</span> tokensAdj =</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <a class="code hl_function" href="namespaceripple.html#a690142eb812877fb21cc817912b4488e">getRoundedLPTokens</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keywordflow">if</span> (tokensAdj == beast::zero)</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> {</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3))</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> }</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <span class="comment">// factor in the adjusted tokens</span></div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> frac = <a class="code hl_function" href="namespaceripple.html#aefc2d6a8a1a2e3a721848b3ccb011fcd">adjustFracByTokens</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, tokensAdj, frac);</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="keyword">auto</span> <span class="keyword">const</span> amount2Deposit =</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> <a class="code hl_function" href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">getRoundedAsset</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amount2Balance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">if</span> (amount2Deposit &lt;= amount2)</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> ammAccount,</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> amountBalance,</div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> amount,</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> amount2Deposit,</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> lptAMMBalance,</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> tokensAdj,</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> std::nullopt,</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> std::nullopt,</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> tfee);</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> frac = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amount2} / amount2Balance;</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> tokensAdj =</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <a class="code hl_function" href="namespaceripple.html#a690142eb812877fb21cc817912b4488e">getRoundedLPTokens</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">if</span> (tokensAdj == beast::zero)</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> {</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3))</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> }</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> <span class="comment">// factor in the adjusted tokens</span></div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> frac = <a class="code hl_function" href="namespaceripple.html#aefc2d6a8a1a2e3a721848b3ccb011fcd">adjustFracByTokens</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, tokensAdj, frac);</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit =</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <a class="code hl_function" href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">getRoundedAsset</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amountBalance, frac, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="keywordflow">if</span> (amountDeposit &lt;= amount)</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> ammAccount,</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> amountBalance,</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> amountDeposit,</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> amount2,</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> lptAMMBalance,</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> tokensAdj,</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> std::nullopt,</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> std::nullopt,</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> tfee);</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span>}</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> </div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501"> 796</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501">AMMDeposit::singleDeposit</a>(</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;STAmount&gt;</a> <span class="keyword">const</span>&amp; lpTokensDepositMin,</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span>{</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens = <a class="code hl_function" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">adjustLPTokensOut</a>(</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(),</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> lptAMMBalance,</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <a class="code hl_function" href="namespaceripple.html#acc8d16c54c3e8f38d200080e99103279">lpTokensOut</a>(amountBalance, amount, lptAMMBalance, tfee));</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> <span class="keywordflow">if</span> (tokens == beast::zero)</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> {</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3))</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> }</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <span class="comment">// factor in the adjusted tokens</span></div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="keyword">auto</span> <span class="keyword">const</span> [tokensAdj, amountDepositAdj] = <a class="code hl_function" href="namespaceripple.html#a0ed77e69d4873a1bb710b5a0d510bcd2">adjustAssetInByTokens</a>(</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amountBalance, amount, lptAMMBalance, tokens, tfee);</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3) &amp;&amp; tokensAdj == beast::zero)</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> ammAccount,</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> amountBalance,</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> amountDepositAdj,</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> std::nullopt,</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> lptAMMBalance,</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> tokensAdj,</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> std::nullopt,</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> std::nullopt,</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> lpTokensDepositMin,</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> tfee);</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span>}</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> </div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb"> 843</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb">AMMDeposit::singleDepositTokens</a>(</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lpTokensDeposit,</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span>{</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokensAdj =</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <a class="code hl_function" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">adjustLPTokensOut</a>(<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), lptAMMBalance, lpTokensDeposit);</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3) &amp;&amp; tokensAdj == beast::zero)</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <span class="comment">// the adjusted tokens are factored in</span></div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit =</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <a class="code hl_function" href="namespaceripple.html#a573eb2cecf652856fc74fb1dfbaf8c2a">ammAssetIn</a>(amountBalance, lptAMMBalance, tokensAdj, tfee);</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">if</span> (amountDeposit &gt; amount)</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> ammAccount,</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> amountBalance,</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> amountDeposit,</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> std::nullopt,</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> lptAMMBalance,</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> tokensAdj,</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> std::nullopt,</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> std::nullopt,</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> std::nullopt,</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> tfee);</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span>}</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> </div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e"> 901</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e">AMMDeposit::singleDepositEPrice</a>(</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amountBalance,</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; lptAMMBalance,</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; ePrice,</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span>{</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <span class="keywordflow">if</span> (amount != beast::zero)</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> {</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens = <a class="code hl_function" href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">adjustLPTokensOut</a>(</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(),</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> lptAMMBalance,</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <a class="code hl_function" href="namespaceripple.html#acc8d16c54c3e8f38d200080e99103279">lpTokensOut</a>(amountBalance, amount, lptAMMBalance, tfee));</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <span class="keywordflow">if</span> (tokens &lt;= beast::zero)</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> {</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3))</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> }</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="comment">// factor in the adjusted tokens</span></div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> <span class="keyword">auto</span> <span class="keyword">const</span> [tokensAdj, amountDepositAdj] = <a class="code hl_function" href="namespaceripple.html#a0ed77e69d4873a1bb710b5a0d510bcd2">adjustAssetInByTokens</a>(</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amountBalance, amount, lptAMMBalance, tokens, tfee);</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3) &amp;&amp; tokensAdj == beast::zero)</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> <span class="keyword">auto</span> <span class="keyword">const</span> ep = <a class="code hl_class" href="classripple_1_1Number.html">Number</a>{amountDepositAdj} / tokensAdj;</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <span class="keywordflow">if</span> (ep &lt;= ePrice)</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> ammAccount,</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> amountBalance,</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> amountDepositAdj,</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> std::nullopt,</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> lptAMMBalance,</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> tokensAdj,</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> std::nullopt,</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> std::nullopt,</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> std::nullopt,</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> tfee);</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> }</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> </div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> <span class="comment">// LPTokens is asset out =&gt; E = b / t</span></div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <span class="comment">// substituting t in formula (3) as b/E:</span></div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> <span class="comment">// b/E = T * [b/B - sqrt(t2**2 + b/(f1*B)) + t2]/</span></div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> <span class="comment">// [1 + sqrt(t2**2 + b/(f1*B)) -t2] (A)</span></div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> <span class="comment">// where f1 = 1 - fee, f2 = (1 - fee/2)/f1</span></div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <span class="comment">// Let R = b/(f1*B), then b/B = f1*R and b = R*f1*B</span></div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <span class="comment">// Then (A) is</span></div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> <span class="comment">// R*f1*B = E*T*[R*f1 -sqrt(f2**2 + R) + f2]/[1 + sqrt(f2**2 + R) - f2] =&gt;</span></div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> <span class="comment">// Let c = f1*B/(E*T) =&gt;</span></div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="comment">// R*c*(1 + sqrt(f2**2 + R) + f2) = R*f1 - sqrt(f2**2 + R) - f2 =&gt;</span></div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="comment">// (R*c + 1)*sqrt(f2**2 + R) = R*(f1 + c*f2 - c) + f2 =&gt;</span></div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> <span class="comment">// Let d = f1 + c*f2 - c =&gt;</span></div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <span class="comment">// (R*c + 1)*sqrt(f2**2 + R) = R*d + f2 =&gt;</span></div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <span class="comment">// (R*c + 1)**2 * (f2**2 + R) = (R*d + f2)**2 =&gt;</span></div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> <span class="comment">// (R*c)**2 + R*((c*f2)**2 + 2*c - d**2) + 2*c*f2**2 + 1 -2*d*f2 = 0 =&gt;</span></div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> <span class="comment">// a1 = c**2, b1 = (c*f2)**2 + 2*c - d**2, c1 = 2*c*f2**2 + 1 - 2*d*f2</span></div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> <span class="comment">// R = (-b1 + sqrt(b1**2 + 4*a1*c1))/(2*a1)</span></div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <span class="keyword">auto</span> <span class="keyword">const</span> f1 = <a class="code hl_function" href="namespaceripple.html#a7894756905fee556c1541cd1de1f697a">feeMult</a>(tfee);</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="keyword">auto</span> <span class="keyword">const</span> f2 = <a class="code hl_function" href="namespaceripple.html#ac78c8c0642bbbe33db633286fa147381">feeMultHalf</a>(tfee) / f1;</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="keyword">auto</span> <span class="keyword">const</span> c = f1 * amountBalance / (ePrice * lptAMMBalance);</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> <span class="keyword">auto</span> <span class="keyword">const</span> d = f1 + c * f2 - c;</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> <span class="keyword">auto</span> <span class="keyword">const</span> a1 = c * c;</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> <span class="keyword">auto</span> <span class="keyword">const</span> b1 = c * c * f2 * f2 + 2 * c - d * d;</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> <span class="keyword">auto</span> <span class="keyword">const</span> c1 = 2 * c * f2 * f2 + 1 - 2 * d * f2;</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <span class="keyword">auto</span> amtNoRoundCb = [&amp;] {</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <span class="keywordflow">return</span> f1 * amountBalance * <a class="code hl_function" href="namespaceripple.html#a3d22714f28b806ea5c702eba2db5fbc2">solveQuadraticEq</a>(a1, b1, c1);</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> };</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> <span class="keyword">auto</span> amtProdCb = [&amp;] { <span class="keywordflow">return</span> f1 * <a class="code hl_function" href="namespaceripple.html#a3d22714f28b806ea5c702eba2db5fbc2">solveQuadraticEq</a>(a1, b1, c1); };</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> <span class="keyword">auto</span> <span class="keyword">const</span> amountDeposit = <a class="code hl_function" href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">getRoundedAsset</a>(</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), amtNoRoundCb, amountBalance, amtProdCb, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> <span class="keywordflow">if</span> (amountDeposit &lt;= beast::zero)</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">tecAMM_FAILED</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}};</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <span class="keyword">auto</span> tokNoRoundCb = [&amp;] { <span class="keywordflow">return</span> amountDeposit / ePrice; };</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keyword">auto</span> tokProdCb = [&amp;] { <span class="keywordflow">return</span> amountDeposit / ePrice; };</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> <span class="keyword">auto</span> <span class="keyword">const</span> tokens = <a class="code hl_function" href="namespaceripple.html#a690142eb812877fb21cc817912b4488e">getRoundedLPTokens</a>(</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(), tokNoRoundCb, lptAMMBalance, tokProdCb, <a class="code hl_enumvalue" href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">IsDeposit::Yes</a>);</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <span class="comment">// factor in the adjusted tokens</span></div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span> <span class="keyword">auto</span> <span class="keyword">const</span> [tokensAdj, amountDepositAdj] = <a class="code hl_function" href="namespaceripple.html#a0ed77e69d4873a1bb710b5a0d510bcd2">adjustAssetInByTokens</a>(</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>(),</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> amountBalance,</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> amountDeposit,</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> lptAMMBalance,</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> tokens,</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> tfee);</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixAMMv1_3) &amp;&amp; tokensAdj == beast::zero)</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> <span class="keywordflow">return</span> {<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">tecAMM_INVALID_TOKENS</a>, <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{}}; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> </div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> ammAccount,</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> amountBalance,</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> amountDepositAdj,</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> std::nullopt,</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> lptAMMBalance,</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> tokensAdj,</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> std::nullopt,</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> std::nullopt,</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> std::nullopt,</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> tfee);</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span>}</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> </div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;TER, STAmount&gt;</a></div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"><a class="line" href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a"> 1006</a></span><a class="code hl_function" href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a">AMMDeposit::equalDepositInEmptyState</a>(</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <a class="code hl_class" href="classripple_1_1Sandbox.html">Sandbox</a>&amp; view,</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; ammAccount,</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount,</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>&amp; amount2,</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <a class="code hl_class" href="classripple_1_1Issue.html">Issue</a> <span class="keyword">const</span>&amp; lptIssue,</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</a> tfee)</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span>{</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">deposit</a>(</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>,</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> ammAccount,</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> amount,</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> amount,</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> amount2,</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a>{lptIssue, 0},</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <a class="code hl_function" href="namespaceripple.html#ab8defa1f235abbf44a60ccc6c71c6fdd">ammLPTokens</a>(amount, amount2, lptIssue),</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> std::nullopt,</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> std::nullopt,</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> std::nullopt,</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> tfee);</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span>}</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> </div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a49b0713e65bb8e2c51b76fbf16252afe"><div class="ttname"><a href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">beast::Journal::error</a></div><div class="ttdeci">Stream error() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00346">Journal.h:346</a></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="aclassripple_1_1AMMDeposit_html_a0494829d8e22b029e7dfb90ee970fda1"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a0494829d8e22b029e7dfb90ee970fda1">ripple::AMMDeposit::applyGuts</a></div><div class="ttdeci">std::pair&lt; TER, bool &gt; applyGuts(Sandbox &amp;view)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00368">AMMDeposit.cpp:368</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a11321a8e5c8d6a60a0dc2baa64ac98a6"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6">ripple::AMMDeposit::equalDepositLimit</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositLimit(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount2Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;amount, STAmount const &amp;amount2, std::optional&lt; STAmount &gt; const &amp;lpTokensDepositMin, std::uint16_t tfee)</div><div class="ttdoc">Equal asset deposit (Asset1In, Asset2In) with the constraint on the maximum amount of both assets tha...</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00699">AMMDeposit.cpp:699</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a5775a9ff666de25c0c0ad243b79b9d0e"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e">ripple::AMMDeposit::singleDepositEPrice</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDepositEPrice(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount, STAmount const &amp;lptAMMBalance, STAmount const &amp;ePrice, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In, EPrice) with two constraints.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00845">AMMDeposit.cpp:845</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a11321a8e5c8d6a60a0dc2baa64ac98a6"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a11321a8e5c8d6a60a0dc2baa64ac98a6">ripple::AMMDeposit::equalDepositLimit</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositLimit(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount2Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;amount, STAmount const &amp;amount2, std::optional&lt; STAmount &gt; const &amp;lpTokensDepositMin, std::uint16_t tfee)</div><div class="ttdoc">Equal asset deposit (Asset1In, Asset2In) with the constraint on the maximum amount of both assets tha...</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00719">AMMDeposit.cpp:719</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a5775a9ff666de25c0c0ad243b79b9d0e"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a5775a9ff666de25c0c0ad243b79b9d0e">ripple::AMMDeposit::singleDepositEPrice</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDepositEPrice(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount, STAmount const &amp;lptAMMBalance, STAmount const &amp;ePrice, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In, EPrice) with two constraints.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00901">AMMDeposit.cpp:901</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a5cd7c6df65846108840ff91aa3a814f5"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a5cd7c6df65846108840ff91aa3a814f5">ripple::AMMDeposit::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00166">AMMDeposit.cpp:166</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a7242a93c72c9cb498849fb149ded3501"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501">ripple::AMMDeposit::singleDeposit</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDeposit(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;lptAMMBalance, STAmount const &amp;amount, std::optional&lt; STAmount &gt; const &amp;lpTokensDepositMin, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In) by the amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00758">AMMDeposit.cpp:758</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a7242a93c72c9cb498849fb149ded3501"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a7242a93c72c9cb498849fb149ded3501">ripple::AMMDeposit::singleDeposit</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDeposit(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;lptAMMBalance, STAmount const &amp;amount, std::optional&lt; STAmount &gt; const &amp;lpTokensDepositMin, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In) by the amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00796">AMMDeposit.cpp:796</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_a9a77c5ee8dcce8013ddb3b875e8a8b05"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#a9a77c5ee8dcce8013ddb3b875e8a8b05">ripple::AMMDeposit::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00033">AMMDeposit.cpp:33</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_aaf3f2a49ffb3a83e42b3daf49f33319f"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f">ripple::AMMDeposit::equalDepositTokens</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositTokens(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount2Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit, std::optional&lt; STAmount &gt; const &amp;depositMin, std::optional&lt; STAmount &gt; const &amp;deposit2Min, std::uint16_t tfee)</div><div class="ttdoc">Equal asset deposit (LPTokens) for the specified share of the AMM instance pools.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00632">AMMDeposit.cpp:632</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_aaf3f2a49ffb3a83e42b3daf49f33319f"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#aaf3f2a49ffb3a83e42b3daf49f33319f">ripple::AMMDeposit::equalDepositTokens</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositTokens(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount2Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit, std::optional&lt; STAmount &gt; const &amp;depositMin, std::optional&lt; STAmount &gt; const &amp;deposit2Min, std::uint16_t tfee)</div><div class="ttdoc">Equal asset deposit (LPTokens) for the specified share of the AMM instance pools.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00643">AMMDeposit.cpp:643</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_ac92c10f978f5a831447bd7cdc5a0d1ef"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#ac92c10f978f5a831447bd7cdc5a0d1ef">ripple::AMMDeposit::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00483">AMMDeposit.cpp:483</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_ac9c59cc740132fad1337d18c074a477a"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a">ripple::AMMDeposit::equalDepositInEmptyState</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositInEmptyState(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amount, STAmount const &amp;amount2, Issue const &amp;lptIssue, std::uint16_t tfee)</div><div class="ttdoc">Equal deposit in empty AMM state (LP tokens balance is 0)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00922">AMMDeposit.cpp:922</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_ad27c911271e84c57234e36978b8160bb"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb">ripple::AMMDeposit::singleDepositTokens</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDepositTokens(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In, LPTokens) by the tokens.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00792">AMMDeposit.cpp:792</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_ac9c59cc740132fad1337d18c074a477a"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#ac9c59cc740132fad1337d18c074a477a">ripple::AMMDeposit::equalDepositInEmptyState</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; equalDepositInEmptyState(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amount, STAmount const &amp;amount2, Issue const &amp;lptIssue, std::uint16_t tfee)</div><div class="ttdoc">Equal deposit in empty AMM state (LP tokens balance is 0)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l01006">AMMDeposit.cpp:1006</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_ad27c911271e84c57234e36978b8160bb"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#ad27c911271e84c57234e36978b8160bb">ripple::AMMDeposit::singleDepositTokens</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; singleDepositTokens(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amount, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit, std::uint16_t tfee)</div><div class="ttdoc">Single asset deposit (Asset1In, LPTokens) by the tokens.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00843">AMMDeposit.cpp:843</a></div></div>
<div class="ttc" id="aclassripple_1_1AMMDeposit_html_adcf4670f2b402a00f166d0f342a75714"><div class="ttname"><a href="classripple_1_1AMMDeposit.html#adcf4670f2b402a00f166d0f342a75714">ripple::AMMDeposit::deposit</a></div><div class="ttdeci">std::pair&lt; TER, STAmount &gt; deposit(Sandbox &amp;view, AccountID const &amp;ammAccount, STAmount const &amp;amountBalance, STAmount const &amp;amountDeposit, std::optional&lt; STAmount &gt; const &amp;amount2Deposit, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit, std::optional&lt; STAmount &gt; const &amp;depositMin, std::optional&lt; STAmount &gt; const &amp;deposit2Min, std::optional&lt; STAmount &gt; const &amp;lpTokensDepositMin, std::uint16_t tfee)</div><div class="ttdoc">Deposit requested assets and token amount into LP account.</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00497">AMMDeposit.cpp:497</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a1e569090b00ae5425ebb48c1befe794f"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a1e569090b00ae5425ebb48c1befe794f">ripple::ApplyContext::rawView</a></div><div class="ttdeci">RawView &amp; rawView()</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00091">ApplyContext.h:91</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a44c249b16b2cedb1224a96592407558d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">ripple::ApplyContext::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00078">ApplyContext.h:78</a></div></div>
@@ -970,6 +1054,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1Number_html"><div class="ttname"><a href="classripple_1_1Number.html">ripple::Number</a></div><div class="ttdef"><b>Definition:</b> <a href="Number_8h_source.html#l00035">Number.h:36</a></div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_a0583a050ea7799ba331f6222a905f304"><div class="ttname"><a href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
<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"><div class="ttname"><a href="classripple_1_1Rules.html">ripple::Rules</a></div><div class="ttdoc">Rules controlling protocol behavior.</div><div class="ttdef"><b>Definition:</b> <a href="Rules_8h_source.html#l00037">Rules.h:38</a></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_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>
@@ -995,29 +1080,30 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_a098e0eaa259f9927096b3b4edd77c71a"><div class="ttname"><a href="namespaceripple.html#a098e0eaa259f9927096b3b4edd77c71a">ripple::tfSingleAsset</a></div><div class="ttdeci">constexpr std::uint32_t tfSingleAsset</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00217">TxFlags.h:217</a></div></div>
<div class="ttc" id="anamespaceripple_html_a0a4a286d1662cbca7a134981b70e65b6"><div class="ttname"><a href="namespaceripple.html#a0a4a286d1662cbca7a134981b70e65b6">ripple::invalidAMMAmount</a></div><div class="ttdeci">NotTEC invalidAMMAmount(STAmount const &amp;amount, std::optional&lt; std::pair&lt; Issue, Issue &gt; &gt; const &amp;pair=std::nullopt, bool validZero=false)</div><div class="ttdoc">Validate the amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8cpp_source.html#l00095">AMMCore.cpp:95</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_a0b2344222057d8b5b9923b2911962879"><div class="ttname"><a href="namespaceripple.html#a0b2344222057d8b5b9923b2911962879">ripple::lpTokensIn</a></div><div class="ttdeci">STAmount lpTokensIn(STAmount const &amp;asset1Balance, STAmount const &amp;asset1Deposit, STAmount const &amp;lptAMMBalance, std::uint16_t tfee)</div><div class="ttdoc">Calculate LP Tokens given asset's deposit amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00041">AMMHelpers.cpp:41</a></div></div>
<div class="ttc" id="anamespaceripple_html_a0ed77e69d4873a1bb710b5a0d510bcd2"><div class="ttname"><a href="namespaceripple.html#a0ed77e69d4873a1bb710b5a0d510bcd2">ripple::adjustAssetInByTokens</a></div><div class="ttdeci">std::pair&lt; STAmount, STAmount &gt; adjustAssetInByTokens(Rules const &amp;rules, STAmount const &amp;balance, STAmount const &amp;amount, STAmount const &amp;lptAMMBalance, STAmount const &amp;tokens, std::uint16_t tfee)</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00349">AMMHelpers.cpp:349</a></div></div>
<div class="ttc" id="anamespaceripple_html_a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd"><div class="ttname"><a href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd">ripple::fhZERO_IF_FROZEN</a></div><div class="ttdeci">@ fhZERO_IF_FROZEN</div><div class="ttdef"><b>Definition:</b> <a href="View_8h_source.html#l00078">View.h:78</a></div></div>
<div class="ttc" id="anamespaceripple_html_a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90"><div class="ttname"><a href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90">ripple::fhIGNORE_FREEZE</a></div><div class="ttdeci">@ fhIGNORE_FREEZE</div><div class="ttdef"><b>Definition:</b> <a href="View_8h_source.html#l00078">View.h:78</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_a29c200b51e582524768ea6a9f3d9b279"><div class="ttname"><a href="namespaceripple.html#a29c200b51e582524768ea6a9f3d9b279">ripple::isIndividualFrozen</a></div><div class="ttdeci">bool isIndividualFrozen(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#l00215">View.cpp:215</a></div></div>
<div class="ttc" id="anamespaceripple_html_a308162f4d3c7b3c005ee6907ab576da1"><div class="ttname"><a href="namespaceripple.html#a308162f4d3c7b3c005ee6907ab576da1">ripple::getTradingFee</a></div><div class="ttdeci">std::uint16_t getTradingFee(ReadView const &amp;view, SLE const &amp;ammSle, AccountID const &amp;account)</div><div class="ttdoc">Get AMM trading fee for the given account.</div><div class="ttdef"><b>Definition:</b> <a href="AMMUtils_8cpp_source.html#l00178">AMMUtils.cpp:178</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3d22714f28b806ea5c702eba2db5fbc2"><div class="ttname"><a href="namespaceripple.html#a3d22714f28b806ea5c702eba2db5fbc2">ripple::solveQuadraticEq</a></div><div class="ttdeci">Number solveQuadraticEq(Number const &amp;a, Number const &amp;b, Number const &amp;c)</div><div class="ttdoc">Positive solution for quadratic equation: x = (-b + sqrt(b**2 + 4*a*c))/(2*a)</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00220">AMMHelpers.cpp:220</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3d22714f28b806ea5c702eba2db5fbc2"><div class="ttname"><a href="namespaceripple.html#a3d22714f28b806ea5c702eba2db5fbc2">ripple::solveQuadraticEq</a></div><div class="ttdeci">Number solveQuadraticEq(Number const &amp;a, Number const &amp;b, Number const &amp;c)</div><div class="ttdoc">Positive solution for quadratic equation: x = (-b + sqrt(b**2 + 4*a*c))/(2*a)</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00264">AMMHelpers.cpp:264</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#l02288">View.cpp:2288</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4ad5ac9da897292a28eea43d041c15a1"><div class="ttname"><a href="namespaceripple.html#a4ad5ac9da897292a28eea43d041c15a1">ripple::toSTAmount</a></div><div class="ttdeci">STAmount toSTAmount(IOUAmount const &amp;iou, Issue const &amp;iss)</div><div class="ttdef"><b>Definition:</b> <a href="AmountConversions_8h_source.html#l00032">AmountConversions.h:32</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5401fd4c42f637dc456a79af094a960d"><div class="ttname"><a href="namespaceripple.html#a5401fd4c42f637dc456a79af094a960d">ripple::tfLimitLPToken</a></div><div class="ttdeci">constexpr std::uint32_t tfLimitLPToken</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00220">TxFlags.h:220</a></div></div>
<div class="ttc" id="anamespaceripple_html_a573eb2cecf652856fc74fb1dfbaf8c2a"><div class="ttname"><a href="namespaceripple.html#a573eb2cecf652856fc74fb1dfbaf8c2a">ripple::ammAssetIn</a></div><div class="ttdeci">STAmount ammAssetIn(STAmount const &amp;asset1Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokens, std::uint16_t tfee)</div><div class="ttdoc">Calculate asset deposit given LP Tokens.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00067">AMMHelpers.cpp:67</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_a573eb2cecf652856fc74fb1dfbaf8c2a"><div class="ttname"><a href="namespaceripple.html#a573eb2cecf652856fc74fb1dfbaf8c2a">ripple::ammAssetIn</a></div><div class="ttdeci">STAmount ammAssetIn(STAmount const &amp;asset1Balance, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokens, std::uint16_t tfee)</div><div class="ttdoc">Calculate asset deposit given LP Tokens.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00080">AMMHelpers.cpp:80</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5c4fa33b0b13deab58e07744afe0f7ed"><div class="ttname"><a href="namespaceripple.html#a5c4fa33b0b13deab58e07744afe0f7ed">ripple::ammEnabled</a></div><div class="ttdeci">bool ammEnabled(Rules const &amp;)</div><div class="ttdoc">Return true if required AMM amendments are enabled.</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8cpp_source.html#l00129">AMMCore.cpp:129</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#l00091">Transactor.cpp:91</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5f936a9395ee6781feff5c6a13adacf1"><div class="ttname"><a href="namespaceripple.html#a5f936a9395ee6781feff5c6a13adacf1">ripple::adjustAmountsByLPTokens</a></div><div class="ttdeci">std::tuple&lt; STAmount, std::optional&lt; STAmount &gt;, STAmount &gt; adjustAmountsByLPTokens(STAmount const &amp;amountBalance, STAmount const &amp;amount, std::optional&lt; STAmount &gt; const &amp;amount2, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokens, std::uint16_t tfee, bool isDeposit)</div><div class="ttdoc">Calls adjustLPTokens() and adjusts deposit or withdraw amounts if the adjusted LP tokens are less tha...</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00147">AMMHelpers.cpp:147</a></div></div>
<div class="ttc" id="anamespaceripple_html_a620f1516447f54ef50ac790f5f0720a3"><div class="ttname"><a href="namespaceripple.html#a620f1516447f54ef50ac790f5f0720a3">ripple::tfOneAssetLPToken</a></div><div class="ttdeci">constexpr std::uint32_t tfOneAssetLPToken</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00219">TxFlags.h:219</a></div></div>
<div class="ttc" id="anamespaceripple_html_a690142eb812877fb21cc817912b4488e"><div class="ttname"><a href="namespaceripple.html#a690142eb812877fb21cc817912b4488e">ripple::getRoundedLPTokens</a></div><div class="ttdeci">STAmount getRoundedLPTokens(Rules const &amp;rules, STAmount const &amp;balance, Number const &amp;frac, IsDeposit isDeposit)</div><div class="ttdoc">Round AMM deposit/withdrawal LPToken amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00311">AMMHelpers.cpp:311</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#l00249">View.cpp:249</a></div></div>
<div class="ttc" id="anamespaceripple_html_a745b96ab219de6f62807ab5f6f484534"><div class="ttname"><a href="namespaceripple.html#a745b96ab219de6f62807ab5f6f484534">ripple::adjustLPTokens</a></div><div class="ttdeci">STAmount adjustLPTokens(STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokens, IsDeposit isDeposit)</div><div class="ttdoc">Adjust LP tokens to deposit/withdraw.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00173">AMMHelpers.cpp:173</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7894756905fee556c1541cd1de1f697a"><div class="ttname"><a href="namespaceripple.html#a7894756905fee556c1541cd1de1f697a">ripple::feeMult</a></div><div class="ttdeci">Number feeMult(std::uint16_t tfee)</div><div class="ttdoc">Get fee multiplier (1 - tfee) @tfee trading fee in basis points.</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8h_source.html#l00110">AMMCore.h:110</a></div></div>
<div class="ttc" id="anamespaceripple_html_a78b3ccb8c17df3888bf47d05cb5376c1"><div class="ttname"><a href="namespaceripple.html#a78b3ccb8c17df3888bf47d05cb5376c1">ripple::initializeFeeAuctionVote</a></div><div class="ttdeci">void initializeFeeAuctionVote(ApplyView &amp;view, std::shared_ptr&lt; SLE &gt; &amp;ammSle, AccountID const &amp;account, Issue const &amp;lptIssue, std::uint16_t tfee)</div><div class="ttdoc">Initialize Auction and Voting slots and set the trading/discounted fee.</div><div class="ttdef"><b>Definition:</b> <a href="AMMUtils_8cpp_source.html#l00339">AMMUtils.cpp:339</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7ac113783ec3f596fe69ab6d1daabbac"><div class="ttname"><a href="namespaceripple.html#a7ac113783ec3f596fe69ab6d1daabbac">ripple::tfTwoAsset</a></div><div class="ttdeci">constexpr std::uint32_t tfTwoAsset</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00218">TxFlags.h:218</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7c5d3108f4942ebc53a3fa4f83c2d577"><div class="ttname"><a href="namespaceripple.html#a7c5d3108f4942ebc53a3fa4f83c2d577">ripple::ammLPHolds</a></div><div class="ttdeci">STAmount ammLPHolds(ReadView const &amp;view, Currency const &amp;cur1, Currency const &amp;cur2, AccountID const &amp;ammAccount, AccountID const &amp;lpAccount, beast::Journal const j)</div><div class="ttdoc">Get the balance of LP tokens.</div><div class="ttdef"><b>Definition:</b> <a href="AMMUtils_8cpp_source.html#l00112">AMMUtils.cpp:112</a></div></div>
<div class="ttc" id="anamespaceripple_html_a812051b3eb90012879722503bc9c422a"><div class="ttname"><a href="namespaceripple.html#a812051b3eb90012879722503bc9c422a">ripple::adjustAmountsByLPTokens</a></div><div class="ttdeci">std::tuple&lt; STAmount, std::optional&lt; STAmount &gt;, STAmount &gt; adjustAmountsByLPTokens(STAmount const &amp;amountBalance, STAmount const &amp;amount, std::optional&lt; STAmount &gt; const &amp;amount2, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokens, std::uint16_t tfee, IsDeposit isDeposit)</div><div class="ttdoc">Calls adjustLPTokens() and adjusts deposit or withdraw amounts if the adjusted LP tokens are less tha...</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00187">AMMHelpers.cpp:187</a></div></div>
<div class="ttc" id="anamespaceripple_html_a87e142e427fb6542226d7e8def6eb227"><div class="ttname"><a href="namespaceripple.html#a87e142e427fb6542226d7e8def6eb227">ripple::tfDepositSubTx</a></div><div class="ttdeci">constexpr std::uint32_t tfDepositSubTx</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00225">TxFlags.h:225</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#l00160">Transactor.cpp:160</a></div></div>
<div class="ttc" id="anamespaceripple_html_a9b266ff9b07492bb82ef831a8fb13574"><div class="ttname"><a href="namespaceripple.html#a9b266ff9b07492bb82ef831a8fb13574">ripple::adjustLPTokensOut</a></div><div class="ttdeci">static STAmount adjustLPTokensOut(Rules const &amp;rules, STAmount const &amp;lptAMMBalance, STAmount const &amp;lpTokensDeposit)</div><div class="ttdef"><b>Definition:</b> <a href="AMMDeposit_8cpp_source.html#l00629">AMMDeposit.cpp:629</a></div></div>
<div class="ttc" id="anamespaceripple_html_a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">ripple::WaiveTransferFee::Yes</a></div><div class="ttdeci">@ Yes</div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca2d4a898185a9c8e604210e789bed6e36"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca2d4a898185a9c8e604210e789bed6e36">ripple::tecINSUF_RESERVE_LINE</a></div><div class="ttdeci">@ tecINSUF_RESERVE_LINE</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00288">TER.h:288</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca608da193a4a22ae1c78d76b6e843b7e6"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca608da193a4a22ae1c78d76b6e843b7e6">ripple::tecFROZEN</a></div><div class="ttdeci">@ tecFROZEN</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00303">TER.h:303</a></div></div>
@@ -1028,6 +1114,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cac35fc8d7149d3ed399143b88c48409f6">ripple::tecAMM_FAILED</a></div><div class="ttdeci">@ tecAMM_FAILED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00330">TER.h:330</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae04fb0979694245c81c59f9cb35181e9">ripple::tecAMM_INVALID_TOKENS</a></div><div class="ttdeci">@ tecAMM_INVALID_TOKENS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00331">TER.h:331</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa3f065b75d23f712be19a1a953fe5b4a"><div class="ttname"><a href="namespaceripple.html#aa3f065b75d23f712be19a1a953fe5b4a">ripple::tfLPToken</a></div><div class="ttdeci">constexpr std::uint32_t tfLPToken</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00214">TxFlags.h:214</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceripple.html#aa9819bf6e2ef44707a0144da6c874890a93cba07454f06a4a960172bbd6e2a435">ripple::IsDeposit::Yes</a></div><div class="ttdeci">@ Yes</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_aac3db9cd7b81ce8bd1ebf45435f0909b"><div class="ttname"><a href="namespaceripple.html#aac3db9cd7b81ce8bd1ebf45435f0909b">ripple::invalidAMMAssetPair</a></div><div class="ttdeci">NotTEC invalidAMMAssetPair(Issue const &amp;issue1, Issue const &amp;issue2, std::optional&lt; std::pair&lt; Issue, Issue &gt; &gt; const &amp;pair=std::nullopt)</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8cpp_source.html#l00080">AMMCore.cpp:80</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab001e43f50e612727b1ce5985a2770d6"><div class="ttname"><a href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">ripple::accountHolds</a></div><div class="ttdeci">STAmount accountHolds(ReadView const &amp;view, AccountID const &amp;account, Currency const &amp;currency, AccountID const &amp;issuer, FreezeHandling zeroIfFrozen, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00386">View.cpp:386</a></div></div>
@@ -1038,9 +1125,12 @@ $(function() {
<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_ac709d6b754ddb5505dcd8494a5dce959"><div class="ttname"><a href="namespaceripple.html#ac709d6b754ddb5505dcd8494a5dce959">ripple::tfTwoAssetIfEmpty</a></div><div class="ttdeci">constexpr std::uint32_t tfTwoAssetIfEmpty</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00221">TxFlags.h:221</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac78c8c0642bbbe33db633286fa147381"><div class="ttname"><a href="namespaceripple.html#ac78c8c0642bbbe33db633286fa147381">ripple::feeMultHalf</a></div><div class="ttdeci">Number feeMultHalf(std::uint16_t tfee)</div><div class="ttdoc">Get fee multiplier (1 - tfee / 2) @tfee trading fee in basis points.</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8h_source.html#l00119">AMMCore.h:119</a></div></div>
<div class="ttc" id="anamespaceripple_html_acc8d16c54c3e8f38d200080e99103279"><div class="ttname"><a href="namespaceripple.html#acc8d16c54c3e8f38d200080e99103279">ripple::lpTokensOut</a></div><div class="ttdeci">STAmount lpTokensOut(STAmount const &amp;asset1Balance, STAmount const &amp;asset1Deposit, STAmount const &amp;lptAMMBalance, std::uint16_t tfee)</div><div class="ttdoc">Calculate LP Tokens given asset's deposit amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00045">AMMHelpers.cpp:45</a></div></div>
<div class="ttc" id="anamespaceripple_html_adebe4d783be9c979e67fdbb2bc27162fac110e4ea19a46f9ce263c5d746b34178"><div class="ttname"><a href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac110e4ea19a46f9ce263c5d746b34178">ripple::terNO_AMM</a></div><div class="ttdeci">@ terNO_AMM</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00227">TER.h:227</a></div></div>
<div class="ttc" id="anamespaceripple_html_adfb760bc3e4ccb79d5d4f6ecff2f1817"><div class="ttname"><a href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">ripple::TER</a></div><div class="ttdeci">TERSubset&lt; CanCvtToTER &gt; TER</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00643">TER.h:643</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0ae9ebb091dfd0a1578b5c791fbe5da"><div class="ttname"><a href="namespaceripple.html#ae0ae9ebb091dfd0a1578b5c791fbe5da">ripple::TRADING_FEE_THRESHOLD</a></div><div class="ttdeci">std::uint16_t constexpr TRADING_FEE_THRESHOLD</div><div class="ttdef"><b>Definition:</b> <a href="AMMCore_8h_source.html#l00031">AMMCore.h:31</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae72b56b6709fd192e009123c40d47af6"><div class="ttname"><a href="namespaceripple.html#ae72b56b6709fd192e009123c40d47af6">ripple::getRoundedAsset</a></div><div class="ttdeci">STAmount getRoundedAsset(Rules const &amp;rules, STAmount const &amp;balance, A const &amp;frac, IsDeposit isDeposit)</div><div class="ttdoc">Round AMM equal deposit/withdrawal amount.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8h_source.html#l00678">AMMHelpers.h:678</a></div></div>
<div class="ttc" id="anamespaceripple_html_aefc2d6a8a1a2e3a721848b3ccb011fcd"><div class="ttname"><a href="namespaceripple.html#aefc2d6a8a1a2e3a721848b3ccb011fcd">ripple::adjustFracByTokens</a></div><div class="ttdeci">Number adjustFracByTokens(Rules const &amp;rules, STAmount const &amp;lptAMMBalance, STAmount const &amp;tokens, Number const &amp;frac)</div><div class="ttdoc">Find a fraction of tokens after the tokens are adjusted.</div><div class="ttdef"><b>Definition:</b> <a href="AMMHelpers_8cpp_source.html#l00401">AMMHelpers.cpp:401</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#l01998">View.cpp:1998</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_afc787da3584a7facdc3f19fc366f0b70"><div class="ttname"><a href="namespaceripple.html#afc787da3584a7facdc3f19fc366f0b70">ripple::xrpLiquid</a></div><div class="ttdeci">XRPAmount xrpLiquid(ReadView const &amp;view, AccountID const &amp;id, std::int32_t ownerCountAdj, beast::Journal j)</div><div class="ttdef"><b>Definition:</b> <a href="View_8cpp_source.html#l00617">View.cpp:617</a></div></div>