This commit is contained in:
Bronek
2025-09-15 07:51:47 -07:00
parent 751482d4dc
commit 2faaa01d8e
30 changed files with 1265 additions and 1157 deletions

View File

@@ -3646,406 +3646,474 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l03501" name="l03501"></a><span class="lineno"> 3501</span> BEAST_EXPECT(</div>
<div class="line"><a id="l03502" name="l03502"></a><span class="lineno"> 3502</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>.<a class="code hl_variable" href="structripple_1_1Rate.html#a59fd441d04e641347e6dc62c2301f671">value</a> == <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>(1&#39;000&#39;000&#39;000 * 1.25));</div>
<div class="line"><a id="l03503" name="l03503"></a><span class="lineno"> 3503</span> </div>
<div class="line"><a id="l03504" name="l03504"></a><span class="lineno"> 3504</span> <span class="comment">// bob can finish escrow</span></div>
<div class="line"><a id="l03505" name="l03505"></a><span class="lineno"> 3505</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03506" name="l03506"></a><span class="lineno"> 3506</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03507" name="l03507"></a><span class="lineno"> 3507</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03508" name="l03508"></a><span class="lineno"> 3508</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03509" name="l03509"></a><span class="lineno"> 3509</span> env.close();</div>
<div class="line"><a id="l03510" name="l03510"></a><span class="lineno"> 3510</span> </div>
<div class="line"><a id="l03511" name="l03511"></a><span class="lineno"> 3511</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preAlice - delta);</div>
<div class="line"><a id="l03512" name="l03512"></a><span class="lineno"> 3512</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;100));</div>
<div class="line"><a id="l03513" name="l03513"></a><span class="lineno"> 3513</span> }</div>
<div class="line"><a id="l03504" name="l03504"></a><span class="lineno"> 3504</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 125);</div>
<div class="line"><a id="l03505" name="l03505"></a><span class="lineno"> 3505</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">issuerMPTEscrowed</a>(env, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 125);</div>
<div class="line"><a id="l03506" name="l03506"></a><span class="lineno"> 3506</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(20&#39;000));</div>
<div class="line"><a id="l03507" name="l03507"></a><span class="lineno"> 3507</span> </div>
<div class="line"><a id="l03508" name="l03508"></a><span class="lineno"> 3508</span> <span class="comment">// bob can finish escrow</span></div>
<div class="line"><a id="l03509" name="l03509"></a><span class="lineno"> 3509</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03510" name="l03510"></a><span class="lineno"> 3510</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03511" name="l03511"></a><span class="lineno"> 3511</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03512" name="l03512"></a><span class="lineno"> 3512</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03513" name="l03513"></a><span class="lineno"> 3513</span> env.close();</div>
<div class="line"><a id="l03514" name="l03514"></a><span class="lineno"> 3514</span> </div>
<div class="line"><a id="l03515" name="l03515"></a><span class="lineno"> 3515</span> <span class="comment">// test locked rate: cancel</span></div>
<div class="line"><a id="l03516" name="l03516"></a><span class="lineno"> 3516</span> {</div>
<div class="line"><a id="l03517" name="l03517"></a><span class="lineno"> 3517</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03518" name="l03518"></a><span class="lineno"> 3518</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03519" name="l03519"></a><span class="lineno"> 3519</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03520" name="l03520"></a><span class="lineno"> 3520</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03521" name="l03521"></a><span class="lineno"> 3521</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03522" name="l03522"></a><span class="lineno"> 3522</span> </div>
<div class="line"><a id="l03523" name="l03523"></a><span class="lineno"> 3523</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03524" name="l03524"></a><span class="lineno"> 3524</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03525" name="l03525"></a><span class="lineno"> 3525</span> {.transferFee = 25000,</div>
<div class="line"><a id="l03526" name="l03526"></a><span class="lineno"> 3526</span> .ownerCount = 1,</div>
<div class="line"><a id="l03527" name="l03527"></a><span class="lineno"> 3527</span> .holderCount = 0,</div>
<div class="line"><a id="l03528" name="l03528"></a><span class="lineno"> 3528</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03529" name="l03529"></a><span class="lineno"> 3529</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03530" name="l03530"></a><span class="lineno"> 3530</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03531" name="l03531"></a><span class="lineno"> 3531</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03532" name="l03532"></a><span class="lineno"> 3532</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03533" name="l03533"></a><span class="lineno"> 3533</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03534" name="l03534"></a><span class="lineno"> 3534</span> env.close();</div>
<div class="line"><a id="l03515" name="l03515"></a><span class="lineno"> 3515</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preAlice - delta);</div>
<div class="line"><a id="l03516" name="l03516"></a><span class="lineno"> 3516</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;100));</div>
<div class="line"><a id="l03517" name="l03517"></a><span class="lineno"> 3517</span> </div>
<div class="line"><a id="l03518" name="l03518"></a><span class="lineno"> 3518</span> <span class="keyword">auto</span> <span class="keyword">const</span> escrowedWithFix =</div>
<div class="line"><a id="l03519" name="l03519"></a><span class="lineno"> 3519</span> env.current()-&gt;rules().enabled(fixTokenEscrowV1) ? 0 : 25;</div>
<div class="line"><a id="l03520" name="l03520"></a><span class="lineno"> 3520</span> <span class="keyword">auto</span> <span class="keyword">const</span> outstandingWithFix =</div>
<div class="line"><a id="l03521" name="l03521"></a><span class="lineno"> 3521</span> env.current()-&gt;rules().enabled(fixTokenEscrowV1) ? <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(19&#39;975)</div>
<div class="line"><a id="l03522" name="l03522"></a><span class="lineno"> 3522</span> : <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(20&#39;000);</div>
<div class="line"><a id="l03523" name="l03523"></a><span class="lineno"> 3523</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == escrowedWithFix);</div>
<div class="line"><a id="l03524" name="l03524"></a><span class="lineno"> 3524</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">issuerMPTEscrowed</a>(env, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == escrowedWithFix);</div>
<div class="line"><a id="l03525" name="l03525"></a><span class="lineno"> 3525</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == outstandingWithFix);</div>
<div class="line"><a id="l03526" name="l03526"></a><span class="lineno"> 3526</span> }</div>
<div class="line"><a id="l03527" name="l03527"></a><span class="lineno"> 3527</span> </div>
<div class="line"><a id="l03528" name="l03528"></a><span class="lineno"> 3528</span> <span class="comment">// test locked rate: cancel</span></div>
<div class="line"><a id="l03529" name="l03529"></a><span class="lineno"> 3529</span> {</div>
<div class="line"><a id="l03530" name="l03530"></a><span class="lineno"> 3530</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03531" name="l03531"></a><span class="lineno"> 3531</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03532" name="l03532"></a><span class="lineno"> 3532</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03533" name="l03533"></a><span class="lineno"> 3533</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03534" name="l03534"></a><span class="lineno"> 3534</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03535" name="l03535"></a><span class="lineno"> 3535</span> </div>
<div class="line"><a id="l03536" name="l03536"></a><span class="lineno"> 3536</span> <span class="comment">// alice can create escrow w/ xfer rate</span></div>
<div class="line"><a id="l03537" name="l03537"></a><span class="lineno"> 3537</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>);</div>
<div class="line"><a id="l03538" name="l03538"></a><span class="lineno"> 3538</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>);</div>
<div class="line"><a id="l03539" name="l03539"></a><span class="lineno"> 3539</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03540" name="l03540"></a><span class="lineno"> 3540</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125);</div>
<div class="line"><a id="l03541" name="l03541"></a><span class="lineno"> 3541</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125)),</div>
<div class="line"><a id="l03542" name="l03542"></a><span class="lineno"> 3542</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03543" name="l03543"></a><span class="lineno"> 3543</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03544" name="l03544"></a><span class="lineno"> 3544</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 3s),</div>
<div class="line"><a id="l03545" name="l03545"></a><span class="lineno"> 3545</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03546" name="l03546"></a><span class="lineno"> 3546</span> env.close();</div>
<div class="line"><a id="l03547" name="l03547"></a><span class="lineno"> 3547</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a> = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a774a0bd317ed86e65771dfa4ca8e3b22">escrow::rate</a>(env, alice, seq1);</div>
<div class="line"><a id="l03548" name="l03548"></a><span class="lineno"> 3548</span> BEAST_EXPECT(</div>
<div class="line"><a id="l03549" name="l03549"></a><span class="lineno"> 3549</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>.<a class="code hl_variable" href="structripple_1_1Rate.html#a59fd441d04e641347e6dc62c2301f671">value</a> == <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>(1&#39;000&#39;000&#39;000 * 1.25));</div>
<div class="line"><a id="l03550" name="l03550"></a><span class="lineno"> 3550</span> </div>
<div class="line"><a id="l03551" name="l03551"></a><span class="lineno"> 3551</span> <span class="comment">// alice can cancel escrow</span></div>
<div class="line"><a id="l03552" name="l03552"></a><span class="lineno"> 3552</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(alice, alice, seq1), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee));</div>
<div class="line"><a id="l03553" name="l03553"></a><span class="lineno"> 3553</span> env.close();</div>
<div class="line"><a id="l03554" name="l03554"></a><span class="lineno"> 3554</span> </div>
<div class="line"><a id="l03555" name="l03555"></a><span class="lineno"> 3555</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preAlice);</div>
<div class="line"><a id="l03556" name="l03556"></a><span class="lineno"> 3556</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preBob);</div>
<div class="line"><a id="l03557" name="l03557"></a><span class="lineno"> 3557</span> }</div>
<div class="line"><a id="l03558" name="l03558"></a><span class="lineno"> 3558</span> }</div>
<div class="line"><a id="l03536" name="l03536"></a><span class="lineno"> 3536</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03537" name="l03537"></a><span class="lineno"> 3537</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03538" name="l03538"></a><span class="lineno"> 3538</span> {.transferFee = 25000,</div>
<div class="line"><a id="l03539" name="l03539"></a><span class="lineno"> 3539</span> .ownerCount = 1,</div>
<div class="line"><a id="l03540" name="l03540"></a><span class="lineno"> 3540</span> .holderCount = 0,</div>
<div class="line"><a id="l03541" name="l03541"></a><span class="lineno"> 3541</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03542" name="l03542"></a><span class="lineno"> 3542</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03543" name="l03543"></a><span class="lineno"> 3543</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03544" name="l03544"></a><span class="lineno"> 3544</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03545" name="l03545"></a><span class="lineno"> 3545</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03546" name="l03546"></a><span class="lineno"> 3546</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03547" name="l03547"></a><span class="lineno"> 3547</span> env.close();</div>
<div class="line"><a id="l03548" name="l03548"></a><span class="lineno"> 3548</span> </div>
<div class="line"><a id="l03549" name="l03549"></a><span class="lineno"> 3549</span> <span class="comment">// alice can create escrow w/ xfer rate</span></div>
<div class="line"><a id="l03550" name="l03550"></a><span class="lineno"> 3550</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>);</div>
<div class="line"><a id="l03551" name="l03551"></a><span class="lineno"> 3551</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>);</div>
<div class="line"><a id="l03552" name="l03552"></a><span class="lineno"> 3552</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03553" name="l03553"></a><span class="lineno"> 3553</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125);</div>
<div class="line"><a id="l03554" name="l03554"></a><span class="lineno"> 3554</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125)),</div>
<div class="line"><a id="l03555" name="l03555"></a><span class="lineno"> 3555</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03556" name="l03556"></a><span class="lineno"> 3556</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03557" name="l03557"></a><span class="lineno"> 3557</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 3s),</div>
<div class="line"><a id="l03558" name="l03558"></a><span class="lineno"> 3558</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03559" name="l03559"></a><span class="lineno"> 3559</span> env.close();</div>
<div class="line"><a id="l03560" name="l03560"></a><span class="lineno"> 3560</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a> = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a774a0bd317ed86e65771dfa4ca8e3b22">escrow::rate</a>(env, alice, seq1);</div>
<div class="line"><a id="l03561" name="l03561"></a><span class="lineno"> 3561</span> BEAST_EXPECT(</div>
<div class="line"><a id="l03562" name="l03562"></a><span class="lineno"> 3562</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>.<a class="code hl_variable" href="structripple_1_1Rate.html#a59fd441d04e641347e6dc62c2301f671">value</a> == <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>(1&#39;000&#39;000&#39;000 * 1.25));</div>
<div class="line"><a id="l03563" name="l03563"></a><span class="lineno"> 3563</span> </div>
<div class="line"><a id="l03564" name="l03564"></a><span class="lineno"> 3564</span> <span class="comment">// alice can cancel escrow</span></div>
<div class="line"><a id="l03565" name="l03565"></a><span class="lineno"> 3565</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(alice, alice, seq1), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee));</div>
<div class="line"><a id="l03566" name="l03566"></a><span class="lineno"> 3566</span> env.close();</div>
<div class="line"><a id="l03567" name="l03567"></a><span class="lineno"> 3567</span> </div>
<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"> 3568</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preAlice);</div>
<div class="line"><a id="l03569" name="l03569"></a><span class="lineno"> 3569</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preBob);</div>
<div class="line"><a id="l03570" name="l03570"></a><span class="lineno"> 3570</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(20&#39;000));</div>
<div class="line"><a id="l03571" name="l03571"></a><span class="lineno"> 3571</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03572" name="l03572"></a><span class="lineno"> 3572</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">issuerMPTEscrowed</a>(env, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03573" name="l03573"></a><span class="lineno"> 3573</span> }</div>
<div class="line"><a id="l03574" name="l03574"></a><span class="lineno"> 3574</span> </div>
<div class="line"><a id="l03575" name="l03575"></a><span class="lineno"> 3575</span> <span class="comment">// test locked rate: issuer is destination</span></div>
<div class="line"><a id="l03576" name="l03576"></a><span class="lineno"> 3576</span> {</div>
<div class="line"><a id="l03577" name="l03577"></a><span class="lineno"> 3577</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03578" name="l03578"></a><span class="lineno"> 3578</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03579" name="l03579"></a><span class="lineno"> 3579</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03580" name="l03580"></a><span class="lineno"> 3580</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03581" name="l03581"></a><span class="lineno"> 3581</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03582" name="l03582"></a><span class="lineno"> 3582</span> </div>
<div class="line"><a id="l03583" name="l03583"></a><span class="lineno"> 3583</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03584" name="l03584"></a><span class="lineno"> 3584</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03585" name="l03585"></a><span class="lineno"> 3585</span> {.transferFee = 25000,</div>
<div class="line"><a id="l03586" name="l03586"></a><span class="lineno"> 3586</span> .ownerCount = 1,</div>
<div class="line"><a id="l03587" name="l03587"></a><span class="lineno"> 3587</span> .holderCount = 0,</div>
<div class="line"><a id="l03588" name="l03588"></a><span class="lineno"> 3588</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03589" name="l03589"></a><span class="lineno"> 3589</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03590" name="l03590"></a><span class="lineno"> 3590</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03591" name="l03591"></a><span class="lineno"> 3591</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03592" name="l03592"></a><span class="lineno"> 3592</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03593" name="l03593"></a><span class="lineno"> 3593</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03594" name="l03594"></a><span class="lineno"> 3594</span> env.close();</div>
<div class="line"><a id="l03595" name="l03595"></a><span class="lineno"> 3595</span> </div>
<div class="line"><a id="l03596" name="l03596"></a><span class="lineno"> 3596</span> <span class="comment">// alice can create escrow w/ xfer rate</span></div>
<div class="line"><a id="l03597" name="l03597"></a><span class="lineno"> 3597</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>);</div>
<div class="line"><a id="l03598" name="l03598"></a><span class="lineno"> 3598</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03599" name="l03599"></a><span class="lineno"> 3599</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125);</div>
<div class="line"><a id="l03600" name="l03600"></a><span class="lineno"> 3600</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125)),</div>
<div class="line"><a id="l03601" name="l03601"></a><span class="lineno"> 3601</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03602" name="l03602"></a><span class="lineno"> 3602</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03603" name="l03603"></a><span class="lineno"> 3603</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03604" name="l03604"></a><span class="lineno"> 3604</span> env.close();</div>
<div class="line"><a id="l03605" name="l03605"></a><span class="lineno"> 3605</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a> = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a774a0bd317ed86e65771dfa4ca8e3b22">escrow::rate</a>(env, alice, seq1);</div>
<div class="line"><a id="l03606" name="l03606"></a><span class="lineno"> 3606</span> BEAST_EXPECT(</div>
<div class="line"><a id="l03607" name="l03607"></a><span class="lineno"> 3607</span> <a class="code hl_function" href="namespaceripple.html#a40a2f551909e4b709699f6d41292d374">transferRate</a>.<a class="code hl_variable" href="structripple_1_1Rate.html#a59fd441d04e641347e6dc62c2301f671">value</a> == <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a>(1&#39;000&#39;000&#39;000 * 1.25));</div>
<div class="line"><a id="l03608" name="l03608"></a><span class="lineno"> 3608</span> </div>
<div class="line"><a id="l03609" name="l03609"></a><span class="lineno"> 3609</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 125);</div>
<div class="line"><a id="l03610" name="l03610"></a><span class="lineno"> 3610</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">issuerMPTEscrowed</a>(env, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 125);</div>
<div class="line"><a id="l03611" name="l03611"></a><span class="lineno"> 3611</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(20&#39;000));</div>
<div class="line"><a id="l03612" name="l03612"></a><span class="lineno"> 3612</span> </div>
<div class="line"><a id="l03613" name="l03613"></a><span class="lineno"> 3613</span> <span class="comment">// bob can finish escrow</span></div>
<div class="line"><a id="l03614" name="l03614"></a><span class="lineno"> 3614</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(gw, alice, seq1),</div>
<div class="line"><a id="l03615" name="l03615"></a><span class="lineno"> 3615</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03616" name="l03616"></a><span class="lineno"> 3616</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03617" name="l03617"></a><span class="lineno"> 3617</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03618" name="l03618"></a><span class="lineno"> 3618</span> env.close();</div>
<div class="line"><a id="l03619" name="l03619"></a><span class="lineno"> 3619</span> </div>
<div class="line"><a id="l03620" name="l03620"></a><span class="lineno"> 3620</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == preAlice - delta);</div>
<div class="line"><a id="l03621" name="l03621"></a><span class="lineno"> 3621</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03622" name="l03622"></a><span class="lineno"> 3622</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">issuerMPTEscrowed</a>(env, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03623" name="l03623"></a><span class="lineno"> 3623</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(19&#39;875));</div>
<div class="line"><a id="l03624" name="l03624"></a><span class="lineno"> 3624</span> }</div>
<div class="line"><a id="l03625" name="l03625"></a><span class="lineno"> 3625</span> }</div>
</div>
<div class="line"><a id="l03559" name="l03559"></a><span class="lineno"> 3559</span> </div>
<div class="line"><a id="l03560" name="l03560"></a><span class="lineno"> 3560</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03561" data-start="{" data-end="}">
<div class="line"><a id="l03561" name="l03561"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5"> 3561</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">testMPTRequireAuth</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03562" name="l03562"></a><span class="lineno"> 3562</span> {</div>
<div class="line"><a id="l03563" name="l03563"></a><span class="lineno"> 3563</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Require Auth&quot;</span>);</div>
<div class="line"><a id="l03564" name="l03564"></a><span class="lineno"> 3564</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03565" name="l03565"></a><span class="lineno"> 3565</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03566" name="l03566"></a><span class="lineno"> 3566</span> </div>
<div class="line"><a id="l03567" name="l03567"></a><span class="lineno"> 3567</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"> 3568</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03569" name="l03569"></a><span class="lineno"> 3569</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03570" name="l03570"></a><span class="lineno"> 3570</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03571" name="l03571"></a><span class="lineno"> 3571</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03572" name="l03572"></a><span class="lineno"> 3572</span> </div>
<div class="line"><a id="l03573" name="l03573"></a><span class="lineno"> 3573</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03574" name="l03574"></a><span class="lineno"> 3574</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03575" name="l03575"></a><span class="lineno"> 3575</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03576" name="l03576"></a><span class="lineno"> 3576</span> .holderCount = 0,</div>
<div class="line"><a id="l03577" name="l03577"></a><span class="lineno"> 3577</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a> | <a class="code hl_variable" href="namespaceripple.html#ae04eebbb7e9cffb009d2f2251c0263a2">tfMPTRequireAuth</a>});</div>
<div class="line"><a id="l03578" name="l03578"></a><span class="lineno"> 3578</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03579" name="l03579"></a><span class="lineno"> 3579</span> mptGw.authorize({.account = gw, .holder = alice});</div>
<div class="line"><a id="l03580" name="l03580"></a><span class="lineno"> 3580</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03581" name="l03581"></a><span class="lineno"> 3581</span> mptGw.authorize({.account = gw, .holder = bob});</div>
<div class="line"><a id="l03582" name="l03582"></a><span class="lineno"> 3582</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03583" name="l03583"></a><span class="lineno"> 3583</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03584" name="l03584"></a><span class="lineno"> 3584</span> env.close();</div>
<div class="line"><a id="l03585" name="l03585"></a><span class="lineno"> 3585</span> </div>
<div class="line"><a id="l03586" name="l03586"></a><span class="lineno"> 3586</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03587" name="l03587"></a><span class="lineno"> 3587</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125);</div>
<div class="line"><a id="l03588" name="l03588"></a><span class="lineno"> 3588</span> <span class="comment">// alice can create escrow - is authorized</span></div>
<div class="line"><a id="l03589" name="l03589"></a><span class="lineno"> 3589</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03590" name="l03590"></a><span class="lineno"> 3590</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03591" name="l03591"></a><span class="lineno"> 3591</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03592" name="l03592"></a><span class="lineno"> 3592</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03593" name="l03593"></a><span class="lineno"> 3593</span> env.close();</div>
<div class="line"><a id="l03594" name="l03594"></a><span class="lineno"> 3594</span> </div>
<div class="line"><a id="l03595" name="l03595"></a><span class="lineno"> 3595</span> <span class="comment">// bob can finish escrow - is authorized</span></div>
<div class="line"><a id="l03596" name="l03596"></a><span class="lineno"> 3596</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l03597" name="l03597"></a><span class="lineno"> 3597</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03598" name="l03598"></a><span class="lineno"> 3598</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03599" name="l03599"></a><span class="lineno"> 3599</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03600" name="l03600"></a><span class="lineno"> 3600</span> env.close();</div>
<div class="line"><a id="l03601" name="l03601"></a><span class="lineno"> 3601</span> }</div>
</div>
<div class="line"><a id="l03602" name="l03602"></a><span class="lineno"> 3602</span> </div>
<div class="line"><a id="l03603" name="l03603"></a><span class="lineno"> 3603</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03604" data-start="{" data-end="}">
<div class="line"><a id="l03604" name="l03604"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5"> 3604</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">testMPTLock</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03605" name="l03605"></a><span class="lineno"> 3605</span> {</div>
<div class="line"><a id="l03606" name="l03606"></a><span class="lineno"> 3606</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Lock&quot;</span>);</div>
<div class="line"><a id="l03607" name="l03607"></a><span class="lineno"> 3607</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03608" name="l03608"></a><span class="lineno"> 3608</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03609" name="l03609"></a><span class="lineno"> 3609</span> </div>
<div class="line"><a id="l03610" name="l03610"></a><span class="lineno"> 3610</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03611" name="l03611"></a><span class="lineno"> 3611</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03612" name="l03612"></a><span class="lineno"> 3612</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03613" name="l03613"></a><span class="lineno"> 3613</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03614" name="l03614"></a><span class="lineno"> 3614</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03615" name="l03615"></a><span class="lineno"> 3615</span> </div>
<div class="line"><a id="l03616" name="l03616"></a><span class="lineno"> 3616</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03617" name="l03617"></a><span class="lineno"> 3617</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03618" name="l03618"></a><span class="lineno"> 3618</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03619" name="l03619"></a><span class="lineno"> 3619</span> .holderCount = 0,</div>
<div class="line"><a id="l03620" name="l03620"></a><span class="lineno"> 3620</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a> | <a class="code hl_variable" href="namespaceripple.html#ae9c5556c775f5086df7a1be0c7353971">tfMPTCanLock</a>});</div>
<div class="line"><a id="l03621" name="l03621"></a><span class="lineno"> 3621</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03622" name="l03622"></a><span class="lineno"> 3622</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03623" name="l03623"></a><span class="lineno"> 3623</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03624" name="l03624"></a><span class="lineno"> 3624</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03625" name="l03625"></a><span class="lineno"> 3625</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03626" name="l03626"></a><span class="lineno"> 3626</span> env.close();</div>
<div class="line"><a id="l03627" name="l03627"></a><span class="lineno"> 3627</span> </div>
<div class="line"><a id="l03628" name="l03628"></a><span class="lineno"> 3628</span> <span class="comment">// alice create escrow</span></div>
<div class="line"><a id="l03629" name="l03629"></a><span class="lineno"> 3629</span> <span class="keyword">auto</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03630" name="l03630"></a><span class="lineno"> 3630</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03631" name="l03631"></a><span class="lineno"> 3631</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03632" name="l03632"></a><span class="lineno"> 3632</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03633" name="l03633"></a><span class="lineno"> 3633</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03634" name="l03634"></a><span class="lineno"> 3634</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03635" name="l03635"></a><span class="lineno"> 3635</span> env.close();</div>
<div class="line"><a id="l03636" name="l03636"></a><span class="lineno"> 3636</span> </div>
<div class="line"><a id="l03637" name="l03637"></a><span class="lineno"> 3637</span> <span class="comment">// lock account &amp; dest</span></div>
<div class="line"><a id="l03638" name="l03638"></a><span class="lineno"> 3638</span> mptGw.set({.account = gw, .holder = alice, .flags = <a class="code hl_variable" href="namespaceripple.html#aa361223d1f07f3e0838be875704f25c2">tfMPTLock</a>});</div>
<div class="line"><a id="l03639" name="l03639"></a><span class="lineno"> 3639</span> mptGw.set({.account = gw, .holder = bob, .flags = <a class="code hl_variable" href="namespaceripple.html#aa361223d1f07f3e0838be875704f25c2">tfMPTLock</a>});</div>
<div class="line"><a id="l03640" name="l03640"></a><span class="lineno"> 3640</span> </div>
<div class="line"><a id="l03641" name="l03641"></a><span class="lineno"> 3641</span> <span class="comment">// bob cannot finish</span></div>
<div class="line"><a id="l03642" name="l03642"></a><span class="lineno"> 3642</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03643" name="l03643"></a><span class="lineno"> 3643</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03644" name="l03644"></a><span class="lineno"> 3644</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03645" name="l03645"></a><span class="lineno"> 3645</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03646" name="l03646"></a><span class="lineno"> 3646</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">tecLOCKED</a>));</div>
<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"> 3647</span> env.close();</div>
<div class="line"><a id="l03648" name="l03648"></a><span class="lineno"> 3648</span> </div>
<div class="line"><a id="l03649" name="l03649"></a><span class="lineno"> 3649</span> <span class="comment">// bob can cancel</span></div>
<div class="line"><a id="l03650" name="l03650"></a><span class="lineno"> 3650</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bob, alice, seq1));</div>
<div class="line"><a id="l03626" name="l03626"></a><span class="lineno"> 3626</span> </div>
<div class="line"><a id="l03627" name="l03627"></a><span class="lineno"> 3627</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03628" data-start="{" data-end="}">
<div class="line"><a id="l03628" name="l03628"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5"> 3628</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">testMPTRequireAuth</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03629" name="l03629"></a><span class="lineno"> 3629</span> {</div>
<div class="line"><a id="l03630" name="l03630"></a><span class="lineno"> 3630</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Require Auth&quot;</span>);</div>
<div class="line"><a id="l03631" name="l03631"></a><span class="lineno"> 3631</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03632" name="l03632"></a><span class="lineno"> 3632</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03633" name="l03633"></a><span class="lineno"> 3633</span> </div>
<div class="line"><a id="l03634" name="l03634"></a><span class="lineno"> 3634</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03635" name="l03635"></a><span class="lineno"> 3635</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03636" name="l03636"></a><span class="lineno"> 3636</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03637" name="l03637"></a><span class="lineno"> 3637</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03638" name="l03638"></a><span class="lineno"> 3638</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03639" name="l03639"></a><span class="lineno"> 3639</span> </div>
<div class="line"><a id="l03640" name="l03640"></a><span class="lineno"> 3640</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03641" name="l03641"></a><span class="lineno"> 3641</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03642" name="l03642"></a><span class="lineno"> 3642</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03643" name="l03643"></a><span class="lineno"> 3643</span> .holderCount = 0,</div>
<div class="line"><a id="l03644" name="l03644"></a><span class="lineno"> 3644</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a> | <a class="code hl_variable" href="namespaceripple.html#ae04eebbb7e9cffb009d2f2251c0263a2">tfMPTRequireAuth</a>});</div>
<div class="line"><a id="l03645" name="l03645"></a><span class="lineno"> 3645</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03646" name="l03646"></a><span class="lineno"> 3646</span> mptGw.authorize({.account = gw, .holder = alice});</div>
<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"> 3647</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03648" name="l03648"></a><span class="lineno"> 3648</span> mptGw.authorize({.account = gw, .holder = bob});</div>
<div class="line"><a id="l03649" name="l03649"></a><span class="lineno"> 3649</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03650" name="l03650"></a><span class="lineno"> 3650</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03651" name="l03651"></a><span class="lineno"> 3651</span> env.close();</div>
<div class="line"><a id="l03652" name="l03652"></a><span class="lineno"> 3652</span> }</div>
<div class="line"><a id="l03652" name="l03652"></a><span class="lineno"> 3652</span> </div>
<div class="line"><a id="l03653" name="l03653"></a><span class="lineno"> 3653</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03654" name="l03654"></a><span class="lineno"> 3654</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(125);</div>
<div class="line"><a id="l03655" name="l03655"></a><span class="lineno"> 3655</span> <span class="comment">// alice can create escrow - is authorized</span></div>
<div class="line"><a id="l03656" name="l03656"></a><span class="lineno"> 3656</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03657" name="l03657"></a><span class="lineno"> 3657</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03658" name="l03658"></a><span class="lineno"> 3658</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03659" name="l03659"></a><span class="lineno"> 3659</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03660" name="l03660"></a><span class="lineno"> 3660</span> env.close();</div>
<div class="line"><a id="l03661" name="l03661"></a><span class="lineno"> 3661</span> </div>
<div class="line"><a id="l03662" name="l03662"></a><span class="lineno"> 3662</span> <span class="comment">// bob can finish escrow - is authorized</span></div>
<div class="line"><a id="l03663" name="l03663"></a><span class="lineno"> 3663</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l03664" name="l03664"></a><span class="lineno"> 3664</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03665" name="l03665"></a><span class="lineno"> 3665</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03666" name="l03666"></a><span class="lineno"> 3666</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03667" name="l03667"></a><span class="lineno"> 3667</span> env.close();</div>
<div class="line"><a id="l03668" name="l03668"></a><span class="lineno"> 3668</span> }</div>
</div>
<div class="line"><a id="l03653" name="l03653"></a><span class="lineno"> 3653</span> </div>
<div class="line"><a id="l03654" name="l03654"></a><span class="lineno"> 3654</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03655" data-start="{" data-end="}">
<div class="line"><a id="l03655" name="l03655"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8"> 3655</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">testMPTCanTransfer</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03656" name="l03656"></a><span class="lineno"> 3656</span> {</div>
<div class="line"><a id="l03657" name="l03657"></a><span class="lineno"> 3657</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Can Transfer&quot;</span>);</div>
<div class="line"><a id="l03658" name="l03658"></a><span class="lineno"> 3658</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03659" name="l03659"></a><span class="lineno"> 3659</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03660" name="l03660"></a><span class="lineno"> 3660</span> </div>
<div class="line"><a id="l03661" name="l03661"></a><span class="lineno"> 3661</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03662" name="l03662"></a><span class="lineno"> 3662</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03663" name="l03663"></a><span class="lineno"> 3663</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03664" name="l03664"></a><span class="lineno"> 3664</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03665" name="l03665"></a><span class="lineno"> 3665</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03666" name="l03666"></a><span class="lineno"> 3666</span> </div>
<div class="line"><a id="l03667" name="l03667"></a><span class="lineno"> 3667</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03668" name="l03668"></a><span class="lineno"> 3668</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03669" name="l03669"></a><span class="lineno"> 3669</span> {.ownerCount = 1, .holderCount = 0, .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a>});</div>
<div class="line"><a id="l03670" name="l03670"></a><span class="lineno"> 3670</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03671" name="l03671"></a><span class="lineno"> 3671</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03672" name="l03672"></a><span class="lineno"> 3672</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03673" name="l03673"></a><span class="lineno"> 3673</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03674" name="l03674"></a><span class="lineno"> 3674</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03675" name="l03675"></a><span class="lineno"> 3675</span> env.close();</div>
<div class="line"><a id="l03669" name="l03669"></a><span class="lineno"> 3669</span> </div>
<div class="line"><a id="l03670" name="l03670"></a><span class="lineno"> 3670</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03671" data-start="{" data-end="}">
<div class="line"><a id="l03671" name="l03671"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5"> 3671</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">testMPTLock</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03672" name="l03672"></a><span class="lineno"> 3672</span> {</div>
<div class="line"><a id="l03673" name="l03673"></a><span class="lineno"> 3673</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Lock&quot;</span>);</div>
<div class="line"><a id="l03674" name="l03674"></a><span class="lineno"> 3674</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03675" name="l03675"></a><span class="lineno"> 3675</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03676" name="l03676"></a><span class="lineno"> 3676</span> </div>
<div class="line"><a id="l03677" name="l03677"></a><span class="lineno"> 3677</span> <span class="comment">// alice cannot create escrow to non issuer</span></div>
<div class="line"><a id="l03678" name="l03678"></a><span class="lineno"> 3678</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03679" name="l03679"></a><span class="lineno"> 3679</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03680" name="l03680"></a><span class="lineno"> 3680</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03681" name="l03681"></a><span class="lineno"> 3681</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03682" name="l03682"></a><span class="lineno"> 3682</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03683" name="l03683"></a><span class="lineno"> 3683</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf5820ac855eaa9dfcd635cd411019a31">tecNO_AUTH</a>));</div>
<div class="line"><a id="l03684" name="l03684"></a><span class="lineno"> 3684</span> env.close();</div>
<div class="line"><a id="l03685" name="l03685"></a><span class="lineno"> 3685</span> </div>
<div class="line"><a id="l03686" name="l03686"></a><span class="lineno"> 3686</span> <span class="comment">// Escrow Create &amp; Finish</span></div>
<div class="line"><a id="l03687" name="l03687"></a><span class="lineno"> 3687</span> {</div>
<div class="line"><a id="l03688" name="l03688"></a><span class="lineno"> 3688</span> <span class="comment">// alice an create escrow to issuer</span></div>
<div class="line"><a id="l03689" name="l03689"></a><span class="lineno"> 3689</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03690" name="l03690"></a><span class="lineno"> 3690</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03691" name="l03691"></a><span class="lineno"> 3691</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03692" name="l03692"></a><span class="lineno"> 3692</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03693" name="l03693"></a><span class="lineno"> 3693</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03694" name="l03694"></a><span class="lineno"> 3694</span> env.close();</div>
<div class="line"><a id="l03695" name="l03695"></a><span class="lineno"> 3695</span> </div>
<div class="line"><a id="l03696" name="l03696"></a><span class="lineno"> 3696</span> <span class="comment">// gw can finish</span></div>
<div class="line"><a id="l03697" name="l03697"></a><span class="lineno"> 3697</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(gw, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l03698" name="l03698"></a><span class="lineno"> 3698</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03699" name="l03699"></a><span class="lineno"> 3699</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03700" name="l03700"></a><span class="lineno"> 3700</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03701" name="l03701"></a><span class="lineno"> 3701</span> env.close();</div>
<div class="line"><a id="l03702" name="l03702"></a><span class="lineno"> 3702</span> }</div>
<div class="line"><a id="l03677" name="l03677"></a><span class="lineno"> 3677</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03678" name="l03678"></a><span class="lineno"> 3678</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03679" name="l03679"></a><span class="lineno"> 3679</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03680" name="l03680"></a><span class="lineno"> 3680</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03681" name="l03681"></a><span class="lineno"> 3681</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03682" name="l03682"></a><span class="lineno"> 3682</span> </div>
<div class="line"><a id="l03683" name="l03683"></a><span class="lineno"> 3683</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03684" name="l03684"></a><span class="lineno"> 3684</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03685" name="l03685"></a><span class="lineno"> 3685</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03686" name="l03686"></a><span class="lineno"> 3686</span> .holderCount = 0,</div>
<div class="line"><a id="l03687" name="l03687"></a><span class="lineno"> 3687</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a> | <a class="code hl_variable" href="namespaceripple.html#ae9c5556c775f5086df7a1be0c7353971">tfMPTCanLock</a>});</div>
<div class="line"><a id="l03688" name="l03688"></a><span class="lineno"> 3688</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03689" name="l03689"></a><span class="lineno"> 3689</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03690" name="l03690"></a><span class="lineno"> 3690</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03691" name="l03691"></a><span class="lineno"> 3691</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03692" name="l03692"></a><span class="lineno"> 3692</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03693" name="l03693"></a><span class="lineno"> 3693</span> env.close();</div>
<div class="line"><a id="l03694" name="l03694"></a><span class="lineno"> 3694</span> </div>
<div class="line"><a id="l03695" name="l03695"></a><span class="lineno"> 3695</span> <span class="comment">// alice create escrow</span></div>
<div class="line"><a id="l03696" name="l03696"></a><span class="lineno"> 3696</span> <span class="keyword">auto</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03697" name="l03697"></a><span class="lineno"> 3697</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03698" name="l03698"></a><span class="lineno"> 3698</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03699" name="l03699"></a><span class="lineno"> 3699</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03700" name="l03700"></a><span class="lineno"> 3700</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03701" name="l03701"></a><span class="lineno"> 3701</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03702" name="l03702"></a><span class="lineno"> 3702</span> env.close();</div>
<div class="line"><a id="l03703" name="l03703"></a><span class="lineno"> 3703</span> </div>
<div class="line"><a id="l03704" name="l03704"></a><span class="lineno"> 3704</span> <span class="comment">// Escrow Create &amp; Cancel</span></div>
<div class="line"><a id="l03705" name="l03705"></a><span class="lineno"> 3705</span> {</div>
<div class="line"><a id="l03706" name="l03706"></a><span class="lineno"> 3706</span> <span class="comment">// alice an create escrow to issuer</span></div>
<div class="line"><a id="l03707" name="l03707"></a><span class="lineno"> 3707</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03708" name="l03708"></a><span class="lineno"> 3708</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03709" name="l03709"></a><span class="lineno"> 3709</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03710" name="l03710"></a><span class="lineno"> 3710</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03711" name="l03711"></a><span class="lineno"> 3711</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03712" name="l03712"></a><span class="lineno"> 3712</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03713" name="l03713"></a><span class="lineno"> 3713</span> env.close();</div>
<div class="line"><a id="l03714" name="l03714"></a><span class="lineno"> 3714</span> </div>
<div class="line"><a id="l03715" name="l03715"></a><span class="lineno"> 3715</span> <span class="comment">// alice can cancel</span></div>
<div class="line"><a id="l03716" name="l03716"></a><span class="lineno"> 3716</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(alice, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l03717" name="l03717"></a><span class="lineno"> 3717</span> env.close();</div>
<div class="line"><a id="l03718" name="l03718"></a><span class="lineno"> 3718</span> }</div>
<div class="line"><a id="l03704" name="l03704"></a><span class="lineno"> 3704</span> <span class="comment">// lock account &amp; dest</span></div>
<div class="line"><a id="l03705" name="l03705"></a><span class="lineno"> 3705</span> mptGw.set({.account = gw, .holder = alice, .flags = <a class="code hl_variable" href="namespaceripple.html#aa361223d1f07f3e0838be875704f25c2">tfMPTLock</a>});</div>
<div class="line"><a id="l03706" name="l03706"></a><span class="lineno"> 3706</span> mptGw.set({.account = gw, .holder = bob, .flags = <a class="code hl_variable" href="namespaceripple.html#aa361223d1f07f3e0838be875704f25c2">tfMPTLock</a>});</div>
<div class="line"><a id="l03707" name="l03707"></a><span class="lineno"> 3707</span> </div>
<div class="line"><a id="l03708" name="l03708"></a><span class="lineno"> 3708</span> <span class="comment">// bob cannot finish</span></div>
<div class="line"><a id="l03709" name="l03709"></a><span class="lineno"> 3709</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03710" name="l03710"></a><span class="lineno"> 3710</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03711" name="l03711"></a><span class="lineno"> 3711</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03712" name="l03712"></a><span class="lineno"> 3712</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03713" name="l03713"></a><span class="lineno"> 3713</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf7928b1b6227d72394b43ef0309aede0">tecLOCKED</a>));</div>
<div class="line"><a id="l03714" name="l03714"></a><span class="lineno"> 3714</span> env.close();</div>
<div class="line"><a id="l03715" name="l03715"></a><span class="lineno"> 3715</span> </div>
<div class="line"><a id="l03716" name="l03716"></a><span class="lineno"> 3716</span> <span class="comment">// bob can cancel</span></div>
<div class="line"><a id="l03717" name="l03717"></a><span class="lineno"> 3717</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bob, alice, seq1));</div>
<div class="line"><a id="l03718" name="l03718"></a><span class="lineno"> 3718</span> env.close();</div>
<div class="line"><a id="l03719" name="l03719"></a><span class="lineno"> 3719</span> }</div>
</div>
<div class="line"><a id="l03720" name="l03720"></a><span class="lineno"> 3720</span> </div>
<div class="line"><a id="l03721" name="l03721"></a><span class="lineno"> 3721</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03722" data-start="{" data-end="}">
<div class="line"><a id="l03722" name="l03722"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1"> 3722</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">testMPTDestroy</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03722" name="l03722"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8"> 3722</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">testMPTCanTransfer</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03723" name="l03723"></a><span class="lineno"> 3723</span> {</div>
<div class="line"><a id="l03724" name="l03724"></a><span class="lineno"> 3724</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Destroy&quot;</span>);</div>
<div class="line"><a id="l03724" name="l03724"></a><span class="lineno"> 3724</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Can Transfer&quot;</span>);</div>
<div class="line"><a id="l03725" name="l03725"></a><span class="lineno"> 3725</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03726" name="l03726"></a><span class="lineno"> 3726</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03727" name="l03727"></a><span class="lineno"> 3727</span> </div>
<div class="line"><a id="l03728" name="l03728"></a><span class="lineno"> 3728</span> <span class="comment">// tecHAS_OBLIGATIONS: issuer cannot destroy issuance</span></div>
<div class="line"><a id="l03729" name="l03729"></a><span class="lineno"> 3729</span> {</div>
<div class="line"><a id="l03730" name="l03730"></a><span class="lineno"> 3730</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03731" name="l03731"></a><span class="lineno"> 3731</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03732" name="l03732"></a><span class="lineno"> 3732</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03733" name="l03733"></a><span class="lineno"> 3733</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03734" name="l03734"></a><span class="lineno"> 3734</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03735" name="l03735"></a><span class="lineno"> 3735</span> </div>
<div class="line"><a id="l03736" name="l03736"></a><span class="lineno"> 3736</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03737" name="l03737"></a><span class="lineno"> 3737</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03738" name="l03738"></a><span class="lineno"> 3738</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03739" name="l03739"></a><span class="lineno"> 3739</span> .holderCount = 0,</div>
<div class="line"><a id="l03740" name="l03740"></a><span class="lineno"> 3740</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03741" name="l03741"></a><span class="lineno"> 3741</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03742" name="l03742"></a><span class="lineno"> 3742</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03743" name="l03743"></a><span class="lineno"> 3743</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03744" name="l03744"></a><span class="lineno"> 3744</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03745" name="l03745"></a><span class="lineno"> 3745</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03746" name="l03746"></a><span class="lineno"> 3746</span> env.close();</div>
<div class="line"><a id="l03747" name="l03747"></a><span class="lineno"> 3747</span> </div>
<div class="line"><a id="l03748" name="l03748"></a><span class="lineno"> 3748</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03749" name="l03749"></a><span class="lineno"> 3749</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)),</div>
<div class="line"><a id="l03750" name="l03750"></a><span class="lineno"> 3750</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03751" name="l03751"></a><span class="lineno"> 3751</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03752" name="l03752"></a><span class="lineno"> 3752</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03753" name="l03753"></a><span class="lineno"> 3753</span> env.close();</div>
<div class="line"><a id="l03754" name="l03754"></a><span class="lineno"> 3754</span> </div>
<div class="line"><a id="l03755" name="l03755"></a><span class="lineno"> 3755</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>));</div>
<div class="line"><a id="l03756" name="l03756"></a><span class="lineno"> 3756</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(9&#39;990)));</div>
<div class="line"><a id="l03757" name="l03757"></a><span class="lineno"> 3757</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(bob, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03758" name="l03758"></a><span class="lineno"> 3758</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03759" name="l03759"></a><span class="lineno"> 3759</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 10);</div>
<div class="line"><a id="l03760" name="l03760"></a><span class="lineno"> 3760</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03761" name="l03761"></a><span class="lineno"> 3761</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03762" name="l03762"></a><span class="lineno"> 3762</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10));</div>
<div class="line"><a id="l03763" name="l03763"></a><span class="lineno"> 3763</span> mptGw.authorize({.account = bob, .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>});</div>
<div class="line"><a id="l03764" name="l03764"></a><span class="lineno"> 3764</span> mptGw.destroy(</div>
<div class="line"><a id="l03765" name="l03765"></a><span class="lineno"> 3765</span> {.id = mptGw.issuanceID(),</div>
<div class="line"><a id="l03766" name="l03766"></a><span class="lineno"> 3766</span> .<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a> = 1,</div>
<div class="line"><a id="l03767" name="l03767"></a><span class="lineno"> 3767</span> .err = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>});</div>
<div class="line"><a id="l03768" name="l03768"></a><span class="lineno"> 3768</span> </div>
<div class="line"><a id="l03769" name="l03769"></a><span class="lineno"> 3769</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03770" name="l03770"></a><span class="lineno"> 3770</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03771" name="l03771"></a><span class="lineno"> 3771</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03772" name="l03772"></a><span class="lineno"> 3772</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03773" name="l03773"></a><span class="lineno"> 3773</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03774" name="l03774"></a><span class="lineno"> 3774</span> env.close();</div>
<div class="line"><a id="l03775" name="l03775"></a><span class="lineno"> 3775</span> </div>
<div class="line"><a id="l03776" name="l03776"></a><span class="lineno"> 3776</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(bob, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)));</div>
<div class="line"><a id="l03777" name="l03777"></a><span class="lineno"> 3777</span> mptGw.destroy({.id = mptGw.issuanceID(), .<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a> = 0});</div>
<div class="line"><a id="l03778" name="l03778"></a><span class="lineno"> 3778</span> }</div>
<div class="line"><a id="l03779" name="l03779"></a><span class="lineno"> 3779</span> </div>
<div class="line"><a id="l03780" name="l03780"></a><span class="lineno"> 3780</span> <span class="comment">// tecHAS_OBLIGATIONS: holder cannot destroy mptoken</span></div>
<div class="line"><a id="l03781" name="l03781"></a><span class="lineno"> 3781</span> {</div>
<div class="line"><a id="l03782" name="l03782"></a><span class="lineno"> 3782</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03783" name="l03783"></a><span class="lineno"> 3783</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03784" name="l03784"></a><span class="lineno"> 3784</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03785" name="l03785"></a><span class="lineno"> 3785</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03786" name="l03786"></a><span class="lineno"> 3786</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03787" name="l03787"></a><span class="lineno"> 3787</span> env.fund(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10&#39;000), bob);</div>
<div class="line"><a id="l03788" name="l03788"></a><span class="lineno"> 3788</span> env.close();</div>
<div class="line"><a id="l03789" name="l03789"></a><span class="lineno"> 3789</span> </div>
<div class="line"><a id="l03790" name="l03790"></a><span class="lineno"> 3790</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice}});</div>
<div class="line"><a id="l03791" name="l03791"></a><span class="lineno"> 3791</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03792" name="l03792"></a><span class="lineno"> 3792</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03793" name="l03793"></a><span class="lineno"> 3793</span> .holderCount = 0,</div>
<div class="line"><a id="l03794" name="l03794"></a><span class="lineno"> 3794</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03795" name="l03795"></a><span class="lineno"> 3795</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03796" name="l03796"></a><span class="lineno"> 3796</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03797" name="l03797"></a><span class="lineno"> 3797</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03798" name="l03798"></a><span class="lineno"> 3798</span> env.close();</div>
<div class="line"><a id="l03799" name="l03799"></a><span class="lineno"> 3799</span> </div>
<div class="line"><a id="l03800" name="l03800"></a><span class="lineno"> 3800</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03801" name="l03801"></a><span class="lineno"> 3801</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)),</div>
<div class="line"><a id="l03802" name="l03802"></a><span class="lineno"> 3802</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03803" name="l03803"></a><span class="lineno"> 3803</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03804" name="l03804"></a><span class="lineno"> 3804</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03805" name="l03805"></a><span class="lineno"> 3805</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03806" name="l03806"></a><span class="lineno"> 3806</span> env.close();</div>
<div class="line"><a id="l03807" name="l03807"></a><span class="lineno"> 3807</span> </div>
<div class="line"><a id="l03808" name="l03808"></a><span class="lineno"> 3808</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(9&#39;990)));</div>
<div class="line"><a id="l03809" name="l03809"></a><span class="lineno"> 3809</span> env.close();</div>
<div class="line"><a id="l03810" name="l03810"></a><span class="lineno"> 3810</span> </div>
<div class="line"><a id="l03811" name="l03811"></a><span class="lineno"> 3811</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03812" name="l03812"></a><span class="lineno"> 3812</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 10);</div>
<div class="line"><a id="l03813" name="l03813"></a><span class="lineno"> 3813</span> mptGw.authorize(</div>
<div class="line"><a id="l03814" name="l03814"></a><span class="lineno"> 3814</span> {.account = alice,</div>
<div class="line"><a id="l03815" name="l03815"></a><span class="lineno"> 3815</span> .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>,</div>
<div class="line"><a id="l03816" name="l03816"></a><span class="lineno"> 3816</span> .err = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>});</div>
<div class="line"><a id="l03817" name="l03817"></a><span class="lineno"> 3817</span> </div>
<div class="line"><a id="l03818" name="l03818"></a><span class="lineno"> 3818</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03819" name="l03819"></a><span class="lineno"> 3819</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03820" name="l03820"></a><span class="lineno"> 3820</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03821" name="l03821"></a><span class="lineno"> 3821</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03822" name="l03822"></a><span class="lineno"> 3822</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03823" name="l03823"></a><span class="lineno"> 3823</span> env.close();</div>
<div class="line"><a id="l03824" name="l03824"></a><span class="lineno"> 3824</span> </div>
<div class="line"><a id="l03728" name="l03728"></a><span class="lineno"> 3728</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03729" name="l03729"></a><span class="lineno"> 3729</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03730" name="l03730"></a><span class="lineno"> 3730</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03731" name="l03731"></a><span class="lineno"> 3731</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03732" name="l03732"></a><span class="lineno"> 3732</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03733" name="l03733"></a><span class="lineno"> 3733</span> </div>
<div class="line"><a id="l03734" name="l03734"></a><span class="lineno"> 3734</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03735" name="l03735"></a><span class="lineno"> 3735</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03736" name="l03736"></a><span class="lineno"> 3736</span> {.ownerCount = 1, .holderCount = 0, .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a>});</div>
<div class="line"><a id="l03737" name="l03737"></a><span class="lineno"> 3737</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03738" name="l03738"></a><span class="lineno"> 3738</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03739" name="l03739"></a><span class="lineno"> 3739</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03740" name="l03740"></a><span class="lineno"> 3740</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03741" name="l03741"></a><span class="lineno"> 3741</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03742" name="l03742"></a><span class="lineno"> 3742</span> env.close();</div>
<div class="line"><a id="l03743" name="l03743"></a><span class="lineno"> 3743</span> </div>
<div class="line"><a id="l03744" name="l03744"></a><span class="lineno"> 3744</span> <span class="comment">// alice cannot create escrow to non issuer</span></div>
<div class="line"><a id="l03745" name="l03745"></a><span class="lineno"> 3745</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03746" name="l03746"></a><span class="lineno"> 3746</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03747" name="l03747"></a><span class="lineno"> 3747</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03748" name="l03748"></a><span class="lineno"> 3748</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03749" name="l03749"></a><span class="lineno"> 3749</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03750" name="l03750"></a><span class="lineno"> 3750</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf5820ac855eaa9dfcd635cd411019a31">tecNO_AUTH</a>));</div>
<div class="line"><a id="l03751" name="l03751"></a><span class="lineno"> 3751</span> env.close();</div>
<div class="line"><a id="l03752" name="l03752"></a><span class="lineno"> 3752</span> </div>
<div class="line"><a id="l03753" name="l03753"></a><span class="lineno"> 3753</span> <span class="comment">// Escrow Create &amp; Finish</span></div>
<div class="line"><a id="l03754" name="l03754"></a><span class="lineno"> 3754</span> {</div>
<div class="line"><a id="l03755" name="l03755"></a><span class="lineno"> 3755</span> <span class="comment">// alice an create escrow to issuer</span></div>
<div class="line"><a id="l03756" name="l03756"></a><span class="lineno"> 3756</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03757" name="l03757"></a><span class="lineno"> 3757</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03758" name="l03758"></a><span class="lineno"> 3758</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03759" name="l03759"></a><span class="lineno"> 3759</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03760" name="l03760"></a><span class="lineno"> 3760</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03761" name="l03761"></a><span class="lineno"> 3761</span> env.close();</div>
<div class="line"><a id="l03762" name="l03762"></a><span class="lineno"> 3762</span> </div>
<div class="line"><a id="l03763" name="l03763"></a><span class="lineno"> 3763</span> <span class="comment">// gw can finish</span></div>
<div class="line"><a id="l03764" name="l03764"></a><span class="lineno"> 3764</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(gw, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l03765" name="l03765"></a><span class="lineno"> 3765</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03766" name="l03766"></a><span class="lineno"> 3766</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03767" name="l03767"></a><span class="lineno"> 3767</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03768" name="l03768"></a><span class="lineno"> 3768</span> env.close();</div>
<div class="line"><a id="l03769" name="l03769"></a><span class="lineno"> 3769</span> }</div>
<div class="line"><a id="l03770" name="l03770"></a><span class="lineno"> 3770</span> </div>
<div class="line"><a id="l03771" name="l03771"></a><span class="lineno"> 3771</span> <span class="comment">// Escrow Create &amp; Cancel</span></div>
<div class="line"><a id="l03772" name="l03772"></a><span class="lineno"> 3772</span> {</div>
<div class="line"><a id="l03773" name="l03773"></a><span class="lineno"> 3773</span> <span class="comment">// alice an create escrow to issuer</span></div>
<div class="line"><a id="l03774" name="l03774"></a><span class="lineno"> 3774</span> <span class="keyword">auto</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1seq.html#a24f882c3c91938bb57b850d9883ff35f">seq</a>(alice);</div>
<div class="line"><a id="l03775" name="l03775"></a><span class="lineno"> 3775</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(100)),</div>
<div class="line"><a id="l03776" name="l03776"></a><span class="lineno"> 3776</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03777" name="l03777"></a><span class="lineno"> 3777</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03778" name="l03778"></a><span class="lineno"> 3778</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1cancel__time.html">escrow::cancel_time</a>(env.now() + 2s),</div>
<div class="line"><a id="l03779" name="l03779"></a><span class="lineno"> 3779</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03780" name="l03780"></a><span class="lineno"> 3780</span> env.close();</div>
<div class="line"><a id="l03781" name="l03781"></a><span class="lineno"> 3781</span> </div>
<div class="line"><a id="l03782" name="l03782"></a><span class="lineno"> 3782</span> <span class="comment">// alice can cancel</span></div>
<div class="line"><a id="l03783" name="l03783"></a><span class="lineno"> 3783</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(alice, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l03784" name="l03784"></a><span class="lineno"> 3784</span> env.close();</div>
<div class="line"><a id="l03785" name="l03785"></a><span class="lineno"> 3785</span> }</div>
<div class="line"><a id="l03786" name="l03786"></a><span class="lineno"> 3786</span> }</div>
</div>
<div class="line"><a id="l03787" name="l03787"></a><span class="lineno"> 3787</span> </div>
<div class="line"><a id="l03788" name="l03788"></a><span class="lineno"> 3788</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03789" data-start="{" data-end="}">
<div class="line"><a id="l03789" name="l03789"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1"> 3789</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">testMPTDestroy</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03790" name="l03790"></a><span class="lineno"> 3790</span> {</div>
<div class="line"><a id="l03791" name="l03791"></a><span class="lineno"> 3791</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;MPT Destroy&quot;</span>);</div>
<div class="line"><a id="l03792" name="l03792"></a><span class="lineno"> 3792</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03793" name="l03793"></a><span class="lineno"> 3793</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals.html">std::literals</a>;</div>
<div class="line"><a id="l03794" name="l03794"></a><span class="lineno"> 3794</span> </div>
<div class="line"><a id="l03795" name="l03795"></a><span class="lineno"> 3795</span> <span class="comment">// tecHAS_OBLIGATIONS: issuer cannot destroy issuance</span></div>
<div class="line"><a id="l03796" name="l03796"></a><span class="lineno"> 3796</span> {</div>
<div class="line"><a id="l03797" name="l03797"></a><span class="lineno"> 3797</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03798" name="l03798"></a><span class="lineno"> 3798</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03799" name="l03799"></a><span class="lineno"> 3799</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03800" name="l03800"></a><span class="lineno"> 3800</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03801" name="l03801"></a><span class="lineno"> 3801</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03802" name="l03802"></a><span class="lineno"> 3802</span> </div>
<div class="line"><a id="l03803" name="l03803"></a><span class="lineno"> 3803</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice, bob}});</div>
<div class="line"><a id="l03804" name="l03804"></a><span class="lineno"> 3804</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03805" name="l03805"></a><span class="lineno"> 3805</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03806" name="l03806"></a><span class="lineno"> 3806</span> .holderCount = 0,</div>
<div class="line"><a id="l03807" name="l03807"></a><span class="lineno"> 3807</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03808" name="l03808"></a><span class="lineno"> 3808</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03809" name="l03809"></a><span class="lineno"> 3809</span> mptGw.authorize({.account = bob});</div>
<div class="line"><a id="l03810" name="l03810"></a><span class="lineno"> 3810</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03811" name="l03811"></a><span class="lineno"> 3811</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03812" name="l03812"></a><span class="lineno"> 3812</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03813" name="l03813"></a><span class="lineno"> 3813</span> env.close();</div>
<div class="line"><a id="l03814" name="l03814"></a><span class="lineno"> 3814</span> </div>
<div class="line"><a id="l03815" name="l03815"></a><span class="lineno"> 3815</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03816" name="l03816"></a><span class="lineno"> 3816</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)),</div>
<div class="line"><a id="l03817" name="l03817"></a><span class="lineno"> 3817</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03818" name="l03818"></a><span class="lineno"> 3818</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03819" name="l03819"></a><span class="lineno"> 3819</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l03820" name="l03820"></a><span class="lineno"> 3820</span> env.close();</div>
<div class="line"><a id="l03821" name="l03821"></a><span class="lineno"> 3821</span> </div>
<div class="line"><a id="l03822" name="l03822"></a><span class="lineno"> 3822</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>));</div>
<div class="line"><a id="l03823" name="l03823"></a><span class="lineno"> 3823</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(9&#39;990)));</div>
<div class="line"><a id="l03824" name="l03824"></a><span class="lineno"> 3824</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(bob, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03825" name="l03825"></a><span class="lineno"> 3825</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03826" name="l03826"></a><span class="lineno"> 3826</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03827" name="l03827"></a><span class="lineno"> 3827</span> mptGw.authorize({.account = alice, .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>});</div>
<div class="line"><a id="l03828" name="l03828"></a><span class="lineno"> 3828</span> BEAST_EXPECT(!env.le(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0b633d70e4945551f224eb8c94d76eef">keylet::mptoken</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPT.html#ac9fbc84f22fc891e6bf8d9ebd1356675">mpt</a>(), alice)));</div>
<div class="line"><a id="l03829" name="l03829"></a><span class="lineno"> 3829</span> }</div>
<div class="line"><a id="l03830" name="l03830"></a><span class="lineno"> 3830</span> }</div>
<div class="line"><a id="l03826" name="l03826"></a><span class="lineno"> 3826</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 10);</div>
<div class="line"><a id="l03827" name="l03827"></a><span class="lineno"> 3827</span> BEAST_EXPECT(env.balance(bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03828" name="l03828"></a><span class="lineno"> 3828</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03829" name="l03829"></a><span class="lineno"> 3829</span> BEAST_EXPECT(env.balance(gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10));</div>
<div class="line"><a id="l03830" name="l03830"></a><span class="lineno"> 3830</span> mptGw.authorize({.account = bob, .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>});</div>
<div class="line"><a id="l03831" name="l03831"></a><span class="lineno"> 3831</span> mptGw.destroy(</div>
<div class="line"><a id="l03832" name="l03832"></a><span class="lineno"> 3832</span> {.id = mptGw.issuanceID(),</div>
<div class="line"><a id="l03833" name="l03833"></a><span class="lineno"> 3833</span> .<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a> = 1,</div>
<div class="line"><a id="l03834" name="l03834"></a><span class="lineno"> 3834</span> .err = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>});</div>
<div class="line"><a id="l03835" name="l03835"></a><span class="lineno"> 3835</span> </div>
<div class="line"><a id="l03836" name="l03836"></a><span class="lineno"> 3836</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03837" name="l03837"></a><span class="lineno"> 3837</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03838" name="l03838"></a><span class="lineno"> 3838</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03839" name="l03839"></a><span class="lineno"> 3839</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03840" name="l03840"></a><span class="lineno"> 3840</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03841" name="l03841"></a><span class="lineno"> 3841</span> env.close();</div>
<div class="line"><a id="l03842" name="l03842"></a><span class="lineno"> 3842</span> </div>
<div class="line"><a id="l03843" name="l03843"></a><span class="lineno"> 3843</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(bob, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)));</div>
<div class="line"><a id="l03844" name="l03844"></a><span class="lineno"> 3844</span> mptGw.destroy({.id = mptGw.issuanceID(), .<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ownerCount</a> = 0});</div>
<div class="line"><a id="l03845" name="l03845"></a><span class="lineno"> 3845</span> }</div>
<div class="line"><a id="l03846" name="l03846"></a><span class="lineno"> 3846</span> </div>
<div class="line"><a id="l03847" name="l03847"></a><span class="lineno"> 3847</span> <span class="comment">// tecHAS_OBLIGATIONS: holder cannot destroy mptoken</span></div>
<div class="line"><a id="l03848" name="l03848"></a><span class="lineno"> 3848</span> {</div>
<div class="line"><a id="l03849" name="l03849"></a><span class="lineno"> 3849</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a id="l03850" name="l03850"></a><span class="lineno"> 3850</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l03851" name="l03851"></a><span class="lineno"> 3851</span> <span class="keyword">auto</span> <span class="keyword">const</span> alice = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l03852" name="l03852"></a><span class="lineno"> 3852</span> <span class="keyword">auto</span> <span class="keyword">const</span> bob = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l03853" name="l03853"></a><span class="lineno"> 3853</span> <span class="keyword">auto</span> <span class="keyword">const</span> gw = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l03854" name="l03854"></a><span class="lineno"> 3854</span> env.fund(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10&#39;000), bob);</div>
<div class="line"><a id="l03855" name="l03855"></a><span class="lineno"> 3855</span> env.close();</div>
<div class="line"><a id="l03856" name="l03856"></a><span class="lineno"> 3856</span> </div>
<div class="line"><a id="l03857" name="l03857"></a><span class="lineno"> 3857</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPTTester.html">MPTTester</a> mptGw(env, gw, {.holders = {alice}});</div>
<div class="line"><a id="l03858" name="l03858"></a><span class="lineno"> 3858</span> mptGw.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPTTester.html#af75129fd6435fe6fa20c810c291cda4c">create</a>(</div>
<div class="line"><a id="l03859" name="l03859"></a><span class="lineno"> 3859</span> {.ownerCount = 1,</div>
<div class="line"><a id="l03860" name="l03860"></a><span class="lineno"> 3860</span> .holderCount = 0,</div>
<div class="line"><a id="l03861" name="l03861"></a><span class="lineno"> 3861</span> .flags = <a class="code hl_variable" href="namespaceripple.html#adefad79450b2fe23454118b7b2b60c14">tfMPTCanEscrow</a> | <a class="code hl_variable" href="namespaceripple.html#a2aae110929b0612004babdac451377f3">tfMPTCanTransfer</a>});</div>
<div class="line"><a id="l03862" name="l03862"></a><span class="lineno"> 3862</span> mptGw.authorize({.account = alice});</div>
<div class="line"><a id="l03863" name="l03863"></a><span class="lineno"> 3863</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a> = mptGw[<span class="stringliteral">&quot;MPT&quot;</span>];</div>
<div class="line"><a id="l03864" name="l03864"></a><span class="lineno"> 3864</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(gw, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10&#39;000)));</div>
<div class="line"><a id="l03865" name="l03865"></a><span class="lineno"> 3865</span> env.close();</div>
<div class="line"><a id="l03866" name="l03866"></a><span class="lineno"> 3866</span> </div>
<div class="line"><a id="l03867" name="l03867"></a><span class="lineno"> 3867</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.seq(alice);</div>
<div class="line"><a id="l03868" name="l03868"></a><span class="lineno"> 3868</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(10)),</div>
<div class="line"><a id="l03869" name="l03869"></a><span class="lineno"> 3869</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03870" name="l03870"></a><span class="lineno"> 3870</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1finish__time.html">escrow::finish_time</a>(env.now() + 1s),</div>
<div class="line"><a id="l03871" name="l03871"></a><span class="lineno"> 3871</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03872" name="l03872"></a><span class="lineno"> 3872</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03873" name="l03873"></a><span class="lineno"> 3873</span> env.close();</div>
<div class="line"><a id="l03874" name="l03874"></a><span class="lineno"> 3874</span> </div>
<div class="line"><a id="l03875" name="l03875"></a><span class="lineno"> 3875</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a66b99468a4160bccaa9959a444b40d40">pay</a>(alice, gw, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(9&#39;990)));</div>
<div class="line"><a id="l03876" name="l03876"></a><span class="lineno"> 3876</span> env.close();</div>
<div class="line"><a id="l03877" name="l03877"></a><span class="lineno"> 3877</span> </div>
<div class="line"><a id="l03878" name="l03878"></a><span class="lineno"> 3878</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03879" name="l03879"></a><span class="lineno"> 3879</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 10);</div>
<div class="line"><a id="l03880" name="l03880"></a><span class="lineno"> 3880</span> mptGw.authorize(</div>
<div class="line"><a id="l03881" name="l03881"></a><span class="lineno"> 3881</span> {.account = alice,</div>
<div class="line"><a id="l03882" name="l03882"></a><span class="lineno"> 3882</span> .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>,</div>
<div class="line"><a id="l03883" name="l03883"></a><span class="lineno"> 3883</span> .err = <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>});</div>
<div class="line"><a id="l03884" name="l03884"></a><span class="lineno"> 3884</span> </div>
<div class="line"><a id="l03885" name="l03885"></a><span class="lineno"> 3885</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, seq1),</div>
<div class="line"><a id="l03886" name="l03886"></a><span class="lineno"> 3886</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1condition.html">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l03887" name="l03887"></a><span class="lineno"> 3887</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1escrow_1_1fulfillment.html">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l03888" name="l03888"></a><span class="lineno"> 3888</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l03889" name="l03889"></a><span class="lineno"> 3889</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l03890" name="l03890"></a><span class="lineno"> 3890</span> env.close();</div>
<div class="line"><a id="l03891" name="l03891"></a><span class="lineno"> 3891</span> </div>
<div class="line"><a id="l03892" name="l03892"></a><span class="lineno"> 3892</span> BEAST_EXPECT(env.balance(alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>(0));</div>
<div class="line"><a id="l03893" name="l03893"></a><span class="lineno"> 3893</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">mptEscrowed</a>(env, alice, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>) == 0);</div>
<div class="line"><a id="l03894" name="l03894"></a><span class="lineno"> 3894</span> mptGw.authorize({.account = alice, .flags = <a class="code hl_variable" href="namespaceripple.html#a879ff786afc09842952c6cbca93d46a8">tfMPTUnauthorize</a>});</div>
<div class="line"><a id="l03895" name="l03895"></a><span class="lineno"> 3895</span> BEAST_EXPECT(!env.le(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0b633d70e4945551f224eb8c94d76eef">keylet::mptoken</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1MPT.html">MPT</a>.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1MPT.html#ac9fbc84f22fc891e6bf8d9ebd1356675">mpt</a>(), alice)));</div>
<div class="line"><a id="l03896" name="l03896"></a><span class="lineno"> 3896</span> }</div>
<div class="line"><a id="l03897" name="l03897"></a><span class="lineno"> 3897</span> }</div>
</div>
<div class="line"><a id="l03831" name="l03831"></a><span class="lineno"> 3831</span> </div>
<div class="line"><a id="l03832" name="l03832"></a><span class="lineno"> 3832</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03833" data-start="{" data-end="}">
<div class="line"><a id="l03833" name="l03833"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7"> 3833</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">testIOUWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03834" name="l03834"></a><span class="lineno"> 3834</span> {</div>
<div class="line"><a id="l03835" name="l03835"></a><span class="lineno"> 3835</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4e0a79fb13c7a4237a765a70df3747ed">testIOUEnablement</a>(features);</div>
<div class="line"><a id="l03836" name="l03836"></a><span class="lineno"> 3836</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58a1d06d8e36b68ee7b29ab027af86a0">testIOUAllowLockingFlag</a>(features);</div>
<div class="line"><a id="l03837" name="l03837"></a><span class="lineno"> 3837</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad67e8db93db4e6744c32833f413d0b37">testIOUCreatePreflight</a>(features);</div>
<div class="line"><a id="l03838" name="l03838"></a><span class="lineno"> 3838</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a9524604df2a45eee9df0e833a8b7bf8e">testIOUCreatePreclaim</a>(features);</div>
<div class="line"><a id="l03839" name="l03839"></a><span class="lineno"> 3839</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad17c0fd59a204cbf78c844ab4599756a">testIOUFinishPreclaim</a>(features);</div>
<div class="line"><a id="l03840" name="l03840"></a><span class="lineno"> 3840</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a5cebf426476c8713a963abdab219ddde">testIOUFinishDoApply</a>(features);</div>
<div class="line"><a id="l03841" name="l03841"></a><span class="lineno"> 3841</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aed06c2ad7bca64d741f2c0688b50df2d">testIOUCancelPreclaim</a>(features);</div>
<div class="line"><a id="l03842" name="l03842"></a><span class="lineno"> 3842</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa1f684d49d62af924a322a5cf45eb787">testIOUBalances</a>(features);</div>
<div class="line"><a id="l03843" name="l03843"></a><span class="lineno"> 3843</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aeaf28f6ec99c828ab418ed50af09209d">testIOUMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l03844" name="l03844"></a><span class="lineno"> 3844</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a321535b055965aff0969690979f60526">testIOURippleState</a>(features);</div>
<div class="line"><a id="l03845" name="l03845"></a><span class="lineno"> 3845</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa8866973f0636940b3a498fe7caf3860">testIOUGateway</a>(features);</div>
<div class="line"><a id="l03846" name="l03846"></a><span class="lineno"> 3846</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a3c31c2186e4f86daf59772fd0dd63570">testIOULockedRate</a>(features);</div>
<div class="line"><a id="l03847" name="l03847"></a><span class="lineno"> 3847</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a248fe498fb5352157d2e83bf931af7f6">testIOULimitAmount</a>(features);</div>
<div class="line"><a id="l03848" name="l03848"></a><span class="lineno"> 3848</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aeb0d8d5facf1a0c9f18054e15ba0e4e5">testIOURequireAuth</a>(features);</div>
<div class="line"><a id="l03849" name="l03849"></a><span class="lineno"> 3849</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58310a0c9b19f972016f07cdc6f99dbe">testIOUFreeze</a>(features);</div>
<div class="line"><a id="l03850" name="l03850"></a><span class="lineno"> 3850</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a1ff393ce70a15bb341cd028a847805ec">testIOUINSF</a>(features);</div>
<div class="line"><a id="l03851" name="l03851"></a><span class="lineno"> 3851</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a971ba432a53ddec6d89f86ecb388c351">testIOUPrecisionLoss</a>(features);</div>
<div class="line"><a id="l03852" name="l03852"></a><span class="lineno"> 3852</span> }</div>
<div class="line"><a id="l03898" name="l03898"></a><span class="lineno"> 3898</span> </div>
<div class="line"><a id="l03899" name="l03899"></a><span class="lineno"> 3899</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03900" data-start="{" data-end="}">
<div class="line"><a id="l03900" name="l03900"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7"> 3900</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">testIOUWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03901" name="l03901"></a><span class="lineno"> 3901</span> {</div>
<div class="line"><a id="l03902" name="l03902"></a><span class="lineno"> 3902</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a4e0a79fb13c7a4237a765a70df3747ed">testIOUEnablement</a>(features);</div>
<div class="line"><a id="l03903" name="l03903"></a><span class="lineno"> 3903</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58a1d06d8e36b68ee7b29ab027af86a0">testIOUAllowLockingFlag</a>(features);</div>
<div class="line"><a id="l03904" name="l03904"></a><span class="lineno"> 3904</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad67e8db93db4e6744c32833f413d0b37">testIOUCreatePreflight</a>(features);</div>
<div class="line"><a id="l03905" name="l03905"></a><span class="lineno"> 3905</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a9524604df2a45eee9df0e833a8b7bf8e">testIOUCreatePreclaim</a>(features);</div>
<div class="line"><a id="l03906" name="l03906"></a><span class="lineno"> 3906</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad17c0fd59a204cbf78c844ab4599756a">testIOUFinishPreclaim</a>(features);</div>
<div class="line"><a id="l03907" name="l03907"></a><span class="lineno"> 3907</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a5cebf426476c8713a963abdab219ddde">testIOUFinishDoApply</a>(features);</div>
<div class="line"><a id="l03908" name="l03908"></a><span class="lineno"> 3908</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aed06c2ad7bca64d741f2c0688b50df2d">testIOUCancelPreclaim</a>(features);</div>
<div class="line"><a id="l03909" name="l03909"></a><span class="lineno"> 3909</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa1f684d49d62af924a322a5cf45eb787">testIOUBalances</a>(features);</div>
<div class="line"><a id="l03910" name="l03910"></a><span class="lineno"> 3910</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aeaf28f6ec99c828ab418ed50af09209d">testIOUMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l03911" name="l03911"></a><span class="lineno"> 3911</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a321535b055965aff0969690979f60526">testIOURippleState</a>(features);</div>
<div class="line"><a id="l03912" name="l03912"></a><span class="lineno"> 3912</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa8866973f0636940b3a498fe7caf3860">testIOUGateway</a>(features);</div>
<div class="line"><a id="l03913" name="l03913"></a><span class="lineno"> 3913</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a3c31c2186e4f86daf59772fd0dd63570">testIOULockedRate</a>(features);</div>
<div class="line"><a id="l03914" name="l03914"></a><span class="lineno"> 3914</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a248fe498fb5352157d2e83bf931af7f6">testIOULimitAmount</a>(features);</div>
<div class="line"><a id="l03915" name="l03915"></a><span class="lineno"> 3915</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aeb0d8d5facf1a0c9f18054e15ba0e4e5">testIOURequireAuth</a>(features);</div>
<div class="line"><a id="l03916" name="l03916"></a><span class="lineno"> 3916</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58310a0c9b19f972016f07cdc6f99dbe">testIOUFreeze</a>(features);</div>
<div class="line"><a id="l03917" name="l03917"></a><span class="lineno"> 3917</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a1ff393ce70a15bb341cd028a847805ec">testIOUINSF</a>(features);</div>
<div class="line"><a id="l03918" name="l03918"></a><span class="lineno"> 3918</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a971ba432a53ddec6d89f86ecb388c351">testIOUPrecisionLoss</a>(features);</div>
<div class="line"><a id="l03919" name="l03919"></a><span class="lineno"> 3919</span> }</div>
</div>
<div class="line"><a id="l03853" name="l03853"></a><span class="lineno"> 3853</span> </div>
<div class="line"><a id="l03854" name="l03854"></a><span class="lineno"> 3854</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03855" data-start="{" data-end="}">
<div class="line"><a id="l03855" name="l03855"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca"> 3855</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">testMPTWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03856" name="l03856"></a><span class="lineno"> 3856</span> {</div>
<div class="line"><a id="l03857" name="l03857"></a><span class="lineno"> 3857</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad94630b9883d7b0894edb40359610434">testMPTEnablement</a>(features);</div>
<div class="line"><a id="l03858" name="l03858"></a><span class="lineno"> 3858</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a86e6fc20d66a3e62e2cfcc30fdf4f72e">testMPTCreatePreflight</a>(features);</div>
<div class="line"><a id="l03859" name="l03859"></a><span class="lineno"> 3859</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58f8fc7b2ca3db39a41d19b628cc629d">testMPTCreatePreclaim</a>(features);</div>
<div class="line"><a id="l03860" name="l03860"></a><span class="lineno"> 3860</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a3436110c61953cc442e73f6c93dac511">testMPTFinishPreclaim</a>(features);</div>
<div class="line"><a id="l03861" name="l03861"></a><span class="lineno"> 3861</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#add171eae837c77dc1d1c5618458264e1">testMPTFinishDoApply</a>(features);</div>
<div class="line"><a id="l03862" name="l03862"></a><span class="lineno"> 3862</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa73eedfaa5d3777ab3a4d9e03c85e612">testMPTCancelPreclaim</a>(features);</div>
<div class="line"><a id="l03863" name="l03863"></a><span class="lineno"> 3863</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0c099114367a1c1aa942aa38195e7863">testMPTBalances</a>(features);</div>
<div class="line"><a id="l03864" name="l03864"></a><span class="lineno"> 3864</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#af2420619b5305b85ab6138435fa6ef8c">testMPTMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l03865" name="l03865"></a><span class="lineno"> 3865</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a371c4b9699008039474aedce10e9f1cc">testMPTGateway</a>(features);</div>
<div class="line"><a id="l03866" name="l03866"></a><span class="lineno"> 3866</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a19be4c9b252d63af38d1d7f2ab66cbe2">testMPTLockedRate</a>(features);</div>
<div class="line"><a id="l03867" name="l03867"></a><span class="lineno"> 3867</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">testMPTRequireAuth</a>(features);</div>
<div class="line"><a id="l03868" name="l03868"></a><span class="lineno"> 3868</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">testMPTLock</a>(features);</div>
<div class="line"><a id="l03869" name="l03869"></a><span class="lineno"> 3869</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">testMPTCanTransfer</a>(features);</div>
<div class="line"><a id="l03870" name="l03870"></a><span class="lineno"> 3870</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">testMPTDestroy</a>(features);</div>
<div class="line"><a id="l03871" name="l03871"></a><span class="lineno"> 3871</span> }</div>
<div class="line"><a id="l03920" name="l03920"></a><span class="lineno"> 3920</span> </div>
<div class="line"><a id="l03921" name="l03921"></a><span class="lineno"> 3921</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03922" data-start="{" data-end="}">
<div class="line"><a id="l03922" name="l03922"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca"> 3922</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">testMPTWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l03923" name="l03923"></a><span class="lineno"> 3923</span> {</div>
<div class="line"><a id="l03924" name="l03924"></a><span class="lineno"> 3924</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#ad94630b9883d7b0894edb40359610434">testMPTEnablement</a>(features);</div>
<div class="line"><a id="l03925" name="l03925"></a><span class="lineno"> 3925</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a86e6fc20d66a3e62e2cfcc30fdf4f72e">testMPTCreatePreflight</a>(features);</div>
<div class="line"><a id="l03926" name="l03926"></a><span class="lineno"> 3926</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a58f8fc7b2ca3db39a41d19b628cc629d">testMPTCreatePreclaim</a>(features);</div>
<div class="line"><a id="l03927" name="l03927"></a><span class="lineno"> 3927</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a3436110c61953cc442e73f6c93dac511">testMPTFinishPreclaim</a>(features);</div>
<div class="line"><a id="l03928" name="l03928"></a><span class="lineno"> 3928</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#add171eae837c77dc1d1c5618458264e1">testMPTFinishDoApply</a>(features);</div>
<div class="line"><a id="l03929" name="l03929"></a><span class="lineno"> 3929</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#aa73eedfaa5d3777ab3a4d9e03c85e612">testMPTCancelPreclaim</a>(features);</div>
<div class="line"><a id="l03930" name="l03930"></a><span class="lineno"> 3930</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0c099114367a1c1aa942aa38195e7863">testMPTBalances</a>(features);</div>
<div class="line"><a id="l03931" name="l03931"></a><span class="lineno"> 3931</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#af2420619b5305b85ab6138435fa6ef8c">testMPTMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l03932" name="l03932"></a><span class="lineno"> 3932</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a371c4b9699008039474aedce10e9f1cc">testMPTGateway</a>(features);</div>
<div class="line"><a id="l03933" name="l03933"></a><span class="lineno"> 3933</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a19be4c9b252d63af38d1d7f2ab66cbe2">testMPTLockedRate</a>(features);</div>
<div class="line"><a id="l03934" name="l03934"></a><span class="lineno"> 3934</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">testMPTRequireAuth</a>(features);</div>
<div class="line"><a id="l03935" name="l03935"></a><span class="lineno"> 3935</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">testMPTLock</a>(features);</div>
<div class="line"><a id="l03936" name="l03936"></a><span class="lineno"> 3936</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">testMPTCanTransfer</a>(features);</div>
<div class="line"><a id="l03937" name="l03937"></a><span class="lineno"> 3937</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">testMPTDestroy</a>(features);</div>
<div class="line"><a id="l03938" name="l03938"></a><span class="lineno"> 3938</span> }</div>
</div>
<div class="line"><a id="l03872" name="l03872"></a><span class="lineno"> 3872</span> </div>
<div class="line"><a id="l03873" name="l03873"></a><span class="lineno"> 3873</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l03874" name="l03874"></a><span class="lineno"> 3874</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03875" data-start="{" data-end="}">
<div class="line"><a id="l03875" name="l03875"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387"> 3875</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l03876" name="l03876"></a><span class="lineno"> 3876</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l03877" name="l03877"></a><span class="lineno"> 3877</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03878" name="l03878"></a><span class="lineno"> 3878</span> <a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> <span class="keyword">const</span> <a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>{<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>()};</div>
<div class="line"><a id="l03879" name="l03879"></a><span class="lineno"> 3879</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">testIOUWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l03880" name="l03880"></a><span class="lineno"> 3880</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">testMPTWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l03881" name="l03881"></a><span class="lineno"> 3881</span> }</div>
<div class="line"><a id="l03939" name="l03939"></a><span class="lineno"> 3939</span> </div>
<div class="line"><a id="l03940" name="l03940"></a><span class="lineno"> 3940</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l03941" name="l03941"></a><span class="lineno"> 3941</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen03942" data-start="{" data-end="}">
<div class="line"><a id="l03942" name="l03942"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387"> 3942</a></span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l03943" name="l03943"></a><span class="lineno"> 3943</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l03944" name="l03944"></a><span class="lineno"> 3944</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l03945" name="l03945"></a><span class="lineno"> 3945</span> <a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> <span class="keyword">const</span> <a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>{<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>()};</div>
<div class="line"><a id="l03946" name="l03946"></a><span class="lineno"> 3946</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">testIOUWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l03947" name="l03947"></a><span class="lineno"> 3947</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">testMPTWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l03948" name="l03948"></a><span class="lineno"> 3948</span> <a class="code hl_function" href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">testMPTWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - fixTokenEscrowV1);</div>
<div class="line"><a id="l03949" name="l03949"></a><span class="lineno"> 3949</span> }</div>
</div>
<div class="line"><a id="l03882" name="l03882"></a><span class="lineno"> 3882</span>};</div>
<div class="line"><a id="l03950" name="l03950"></a><span class="lineno"> 3950</span>};</div>
</div>
<div class="line"><a id="l03883" name="l03883"></a><span class="lineno"> 3883</span> </div>
<div class="line"><a id="l03884" name="l03884"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test.html#a35376306c9282c69064082b65236815a"> 3884</a></span>BEAST_DEFINE_TESTSUITE(EscrowToken, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03885" name="l03885"></a><span class="lineno"> 3885</span> </div>
<div class="line"><a id="l03886" name="l03886"></a><span class="lineno"> 3886</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l03887" name="l03887"></a><span class="lineno"> 3887</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l03951" name="l03951"></a><span class="lineno"> 3951</span> </div>
<div class="line"><a id="l03952" name="l03952"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test.html#a35376306c9282c69064082b65236815a"> 3952</a></span>BEAST_DEFINE_TESTSUITE(EscrowToken, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l03953" name="l03953"></a><span class="lineno"> 3953</span> </div>
<div class="line"><a id="l03954" name="l03954"></a><span class="lineno"> 3954</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l03955" name="l03955"></a><span class="lineno"> 3955</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aalgorithm_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/algorithm.html">algorithm</a></div></div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition</b> <a href="json__value_8h_source.html#l00148">json_value.h:149</a></div></div>
@@ -4158,7 +4226,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="astructripple_1_1Rate_html_a59fd441d04e641347e6dc62c2301f671"><div class="ttname"><a href="structripple_1_1Rate.html#a59fd441d04e641347e6dc62c2301f671">ripple::Rate::value</a></div><div class="ttdeci">std::uint32_t value</div><div class="ttdef"><b>Definition</b> <a href="Rate_8h_source.html#l00041">Rate.h:41</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html">ripple::test::EscrowToken_test</a></div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00038">EscrowToken_test.cpp:39</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a0c099114367a1c1aa942aa38195e7863"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a0c099114367a1c1aa942aa38195e7863">ripple::test::EscrowToken_test::testMPTBalances</a></div><div class="ttdeci">void testMPTBalances(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02881">EscrowToken_test.cpp:2881</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a0cccbfe7962640d0590ce2582deed1a7"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">ripple::test::EscrowToken_test::testIOUWithFeats</a></div><div class="ttdeci">void testIOUWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03833">EscrowToken_test.cpp:3833</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a0cccbfe7962640d0590ce2582deed1a7"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a0cccbfe7962640d0590ce2582deed1a7">ripple::test::EscrowToken_test::testIOUWithFeats</a></div><div class="ttdeci">void testIOUWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03900">EscrowToken_test.cpp:3900</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a19be4c9b252d63af38d1d7f2ab66cbe2"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a19be4c9b252d63af38d1d7f2ab66cbe2">ripple::test::EscrowToken_test::testMPTLockedRate</a></div><div class="ttdeci">void testMPTLockedRate(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03458">EscrowToken_test.cpp:3458</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a1ff393ce70a15bb341cd028a847805ec"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a1ff393ce70a15bb341cd028a847805ec">ripple::test::EscrowToken_test::testIOUINSF</a></div><div class="ttdeci">void testIOUINSF(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02006">EscrowToken_test.cpp:2006</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a248fe498fb5352157d2e83bf931af7f6"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a248fe498fb5352157d2e83bf931af7f6">ripple::test::EscrowToken_test::testIOULimitAmount</a></div><div class="ttdeci">void testIOULimitAmount(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l01655">EscrowToken_test.cpp:1655</a></div></div>
@@ -4169,23 +4237,23 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a490eb57073d8eeacf8cac681014ab1e7"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a490eb57073d8eeacf8cac681014ab1e7">ripple::test::EscrowToken_test::issuerMPTEscrowed</a></div><div class="ttdeci">static uint64_t issuerMPTEscrowed(jtx::Env const &amp;env, jtx::MPT const &amp;mpt)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00053">EscrowToken_test.cpp:53</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a4bb54b51e65e3d90a0b18c852cf77332"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a4bb54b51e65e3d90a0b18c852cf77332">ripple::test::EscrowToken_test::mptEscrowed</a></div><div class="ttdeci">static uint64_t mptEscrowed(jtx::Env const &amp;env, jtx::Account const &amp;account, jtx::MPT const &amp;mpt)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00041">EscrowToken_test.cpp:41</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a4e0a79fb13c7a4237a765a70df3747ed"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a4e0a79fb13c7a4237a765a70df3747ed">ripple::test::EscrowToken_test::testIOUEnablement</a></div><div class="ttdeci">void testIOUEnablement(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00097">EscrowToken_test.cpp:97</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a57bbc4e18c04831bdcef7399c3f11387"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387">ripple::test::EscrowToken_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdoc">Runs the suite.</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03875">EscrowToken_test.cpp:3875</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a57bbc4e18c04831bdcef7399c3f11387"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a57bbc4e18c04831bdcef7399c3f11387">ripple::test::EscrowToken_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdoc">Runs the suite.</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03942">EscrowToken_test.cpp:3942</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a58310a0c9b19f972016f07cdc6f99dbe"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a58310a0c9b19f972016f07cdc6f99dbe">ripple::test::EscrowToken_test::testIOUFreeze</a></div><div class="ttdeci">void testIOUFreeze(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l01764">EscrowToken_test.cpp:1764</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a58a1d06d8e36b68ee7b29ab027af86a0"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a58a1d06d8e36b68ee7b29ab027af86a0">ripple::test::EscrowToken_test::testIOUAllowLockingFlag</a></div><div class="ttdeci">void testIOUAllowLockingFlag(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00187">EscrowToken_test.cpp:187</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a58f8fc7b2ca3db39a41d19b628cc629d"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a58f8fc7b2ca3db39a41d19b628cc629d">ripple::test::EscrowToken_test::testMPTCreatePreclaim</a></div><div class="ttdeci">void testMPTCreatePreclaim(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02246">EscrowToken_test.cpp:2246</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a5cebf426476c8713a963abdab219ddde"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a5cebf426476c8713a963abdab219ddde">ripple::test::EscrowToken_test::testIOUFinishDoApply</a></div><div class="ttdeci">void testIOUFinishDoApply(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00684">EscrowToken_test.cpp:684</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a606504f399da28b38ecdc0ec0892d576"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a606504f399da28b38ecdc0ec0892d576">ripple::test::EscrowToken_test::issuerBalance</a></div><div class="ttdeci">jtx::PrettyAmount issuerBalance(jtx::Env &amp;env, jtx::Account const &amp;account, Issue const &amp;issue)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00062">EscrowToken_test.cpp:62</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a62f5b5af2f75ffeedd9c690ca0f1ffa5"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">ripple::test::EscrowToken_test::testMPTRequireAuth</a></div><div class="ttdeci">void testMPTRequireAuth(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03561">EscrowToken_test.cpp:3561</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a63b3e12227138ae208152fac735a2ed8"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">ripple::test::EscrowToken_test::testMPTCanTransfer</a></div><div class="ttdeci">void testMPTCanTransfer(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03655">EscrowToken_test.cpp:3655</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a62f5b5af2f75ffeedd9c690ca0f1ffa5"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a62f5b5af2f75ffeedd9c690ca0f1ffa5">ripple::test::EscrowToken_test::testMPTRequireAuth</a></div><div class="ttdeci">void testMPTRequireAuth(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03628">EscrowToken_test.cpp:3628</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a63b3e12227138ae208152fac735a2ed8"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a63b3e12227138ae208152fac735a2ed8">ripple::test::EscrowToken_test::testMPTCanTransfer</a></div><div class="ttdeci">void testMPTCanTransfer(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03722">EscrowToken_test.cpp:3722</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a86e6fc20d66a3e62e2cfcc30fdf4f72e"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a86e6fc20d66a3e62e2cfcc30fdf4f72e">ripple::test::EscrowToken_test::testMPTCreatePreflight</a></div><div class="ttdeci">void testMPTCreatePreflight(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02184">EscrowToken_test.cpp:2184</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a8ebb0d44bf3dc74001a8d225ff4f88f1"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">ripple::test::EscrowToken_test::testMPTDestroy</a></div><div class="ttdeci">void testMPTDestroy(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03722">EscrowToken_test.cpp:3722</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a94887bd1d97dc29b5914ae15240056d5"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">ripple::test::EscrowToken_test::testMPTLock</a></div><div class="ttdeci">void testMPTLock(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03604">EscrowToken_test.cpp:3604</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a8ebb0d44bf3dc74001a8d225ff4f88f1"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a8ebb0d44bf3dc74001a8d225ff4f88f1">ripple::test::EscrowToken_test::testMPTDestroy</a></div><div class="ttdeci">void testMPTDestroy(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03789">EscrowToken_test.cpp:3789</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a94887bd1d97dc29b5914ae15240056d5"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a94887bd1d97dc29b5914ae15240056d5">ripple::test::EscrowToken_test::testMPTLock</a></div><div class="ttdeci">void testMPTLock(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03671">EscrowToken_test.cpp:3671</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a9524604df2a45eee9df0e833a8b7bf8e"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a9524604df2a45eee9df0e833a8b7bf8e">ripple::test::EscrowToken_test::testIOUCreatePreclaim</a></div><div class="ttdeci">void testIOUCreatePreclaim(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00313">EscrowToken_test.cpp:313</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_a971ba432a53ddec6d89f86ecb388c351"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#a971ba432a53ddec6d89f86ecb388c351">ripple::test::EscrowToken_test::testIOUPrecisionLoss</a></div><div class="ttdeci">void testIOUPrecisionLoss(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02073">EscrowToken_test.cpp:2073</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_aa1f684d49d62af924a322a5cf45eb787"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#aa1f684d49d62af924a322a5cf45eb787">ripple::test::EscrowToken_test::testIOUBalances</a></div><div class="ttdeci">void testIOUBalances(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00895">EscrowToken_test.cpp:895</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_aa73eedfaa5d3777ab3a4d9e03c85e612"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#aa73eedfaa5d3777ab3a4d9e03c85e612">ripple::test::EscrowToken_test::testMPTCancelPreclaim</a></div><div class="ttdeci">void testMPTCancelPreclaim(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02804">EscrowToken_test.cpp:2804</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_aa8866973f0636940b3a498fe7caf3860"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#aa8866973f0636940b3a498fe7caf3860">ripple::test::EscrowToken_test::testIOUGateway</a></div><div class="ttdeci">void testIOUGateway(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l01369">EscrowToken_test.cpp:1369</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_abf5b86f7877bb1028df1a6a7cbea90ca"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">ripple::test::EscrowToken_test::testMPTWithFeats</a></div><div class="ttdeci">void testMPTWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03855">EscrowToken_test.cpp:3855</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_abf5b86f7877bb1028df1a6a7cbea90ca"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#abf5b86f7877bb1028df1a6a7cbea90ca">ripple::test::EscrowToken_test::testMPTWithFeats</a></div><div class="ttdeci">void testMPTWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l03922">EscrowToken_test.cpp:3922</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_ad17c0fd59a204cbf78c844ab4599756a"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#ad17c0fd59a204cbf78c844ab4599756a">ripple::test::EscrowToken_test::testIOUFinishPreclaim</a></div><div class="ttdeci">void testIOUFinishPreclaim(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00592">EscrowToken_test.cpp:592</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_ad67e8db93db4e6744c32833f413d0b37"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#ad67e8db93db4e6744c32833f413d0b37">ripple::test::EscrowToken_test::testIOUCreatePreflight</a></div><div class="ttdeci">void testIOUCreatePreflight(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l00253">EscrowToken_test.cpp:253</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1EscrowToken__test_html_ad94630b9883d7b0894edb40359610434"><div class="ttname"><a href="structripple_1_1test_1_1EscrowToken__test.html#ad94630b9883d7b0894edb40359610434">ripple::test::EscrowToken_test::testMPTEnablement</a></div><div class="ttdeci">void testMPTEnablement(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="EscrowToken__test_8cpp_source.html#l02124">EscrowToken_test.cpp:2124</a></div></div>