This commit is contained in:
bthomee
2025-11-14 05:36:35 -08:00
parent 6ccc5de558
commit 03f73f6be1
92 changed files with 5011 additions and 5142 deletions

View File

@@ -2022,265 +2022,262 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l01889" name="l01889"></a><span class="lineno"> 1889</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"> 1890</span> </div>
<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span> rmAccount(env, alice, carol, <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>);</div>
<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span> <span class="comment">// can only remove bob if the channel isn&#39;t in their owner directory</span></div>
<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span> rmAccount(env, bob, carol, <a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>));</div>
<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"> 1894</span> </div>
<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base;</div>
<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span> <span class="keyword">auto</span> chanBal = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan);</div>
<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"> 1897</span> <span class="keyword">auto</span> chanAmt = <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan);</div>
<div class="line"><a id="l01898" name="l01898"></a><span class="lineno"> 1898</span> BEAST_EXPECT(chanBal == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"> 1899</span> BEAST_EXPECT(chanAmt == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span> </div>
<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"> 1901</span> <span class="keyword">auto</span> preBob = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(bob);</div>
<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(50);</div>
<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span> <span class="keyword">auto</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</span> <span class="keyword">auto</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span> </div>
<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span> <span class="comment">// claim should fail if the dst was removed</span></div>
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan, reqBal, authAmt));</div>
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == reqBal);</div>
<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == chanAmt);</div>
<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(bob) == preBob + delta);</div>
<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span> chanBal = reqBal;</div>
<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span> </div>
<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span> <span class="comment">// fund should fail if the dst was removed</span></div>
<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(alice);</div>
<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(alice, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)));</div>
<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(alice) == preAlice - <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000) - feeDrops);</div>
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == chanAmt + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> chanAmt = chanAmt + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000);</div>
<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span> </div>
<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span> {</div>
<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span> <span class="comment">// Owner closes, will close after settleDelay</span></div>
<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>));</div>
<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span> <span class="comment">// settle delay hasn&#39;t elapsed. Channels should exist.</span></div>
<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan));</div>
<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span> <span class="keyword">auto</span> <span class="keyword">const</span> closeTime = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;info().parentCloseTime;</div>
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> <span class="keyword">auto</span> <span class="keyword">const</span> minExpiration = closeTime + settleDelay;</div>
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(minExpiration);</div>
<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>));</div>
<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan));</div>
<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span> }</div>
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span> }</div>
<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"> 1937</span> }</div>
<div class="line"><a id="l01892" name="l01892"></a><span class="lineno"> 1892</span> rmAccount(env, bob, carol, <a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>));</div>
<div class="line"><a id="l01893" name="l01893"></a><span class="lineno"> 1893</span> </div>
<div class="line"><a id="l01894" name="l01894"></a><span class="lineno"> 1894</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base;</div>
<div class="line"><a id="l01895" name="l01895"></a><span class="lineno"> 1895</span> <span class="keyword">auto</span> chanBal = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan);</div>
<div class="line"><a id="l01896" name="l01896"></a><span class="lineno"> 1896</span> <span class="keyword">auto</span> chanAmt = <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan);</div>
<div class="line"><a id="l01897" name="l01897"></a><span class="lineno"> 1897</span> BEAST_EXPECT(chanBal == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01898" name="l01898"></a><span class="lineno"> 1898</span> BEAST_EXPECT(chanAmt == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01899" name="l01899"></a><span class="lineno"> 1899</span> </div>
<div class="line"><a id="l01900" name="l01900"></a><span class="lineno"> 1900</span> <span class="keyword">auto</span> preBob = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(bob);</div>
<div class="line"><a id="l01901" name="l01901"></a><span class="lineno"> 1901</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(50);</div>
<div class="line"><a id="l01902" name="l01902"></a><span class="lineno"> 1902</span> <span class="keyword">auto</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l01903" name="l01903"></a><span class="lineno"> 1903</span> <span class="keyword">auto</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l01904" name="l01904"></a><span class="lineno"> 1904</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l01905" name="l01905"></a><span class="lineno"> 1905</span> </div>
<div class="line"><a id="l01906" name="l01906"></a><span class="lineno"> 1906</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan, reqBal, authAmt));</div>
<div class="line"><a id="l01907" name="l01907"></a><span class="lineno"> 1907</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01908" name="l01908"></a><span class="lineno"> 1908</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == reqBal);</div>
<div class="line"><a id="l01909" name="l01909"></a><span class="lineno"> 1909</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == chanAmt);</div>
<div class="line"><a id="l01910" name="l01910"></a><span class="lineno"> 1910</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(bob) == preBob + delta);</div>
<div class="line"><a id="l01911" name="l01911"></a><span class="lineno"> 1911</span> chanBal = reqBal;</div>
<div class="line"><a id="l01912" name="l01912"></a><span class="lineno"> 1912</span> </div>
<div class="line"><a id="l01913" name="l01913"></a><span class="lineno"> 1913</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(alice);</div>
<div class="line"><a id="l01914" name="l01914"></a><span class="lineno"> 1914</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(alice, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)));</div>
<div class="line"><a id="l01915" name="l01915"></a><span class="lineno"> 1915</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01916" name="l01916"></a><span class="lineno"> 1916</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(alice) == preAlice - <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000) - feeDrops);</div>
<div class="line"><a id="l01917" name="l01917"></a><span class="lineno"> 1917</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01918" name="l01918"></a><span class="lineno"> 1918</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan) == chanAmt + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01919" name="l01919"></a><span class="lineno"> 1919</span> chanAmt = chanAmt + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000);</div>
<div class="line"><a id="l01920" name="l01920"></a><span class="lineno"> 1920</span> </div>
<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"> 1921</span> {</div>
<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> <span class="comment">// Owner closes, will close after settleDelay</span></div>
<div class="line"><a id="l01923" name="l01923"></a><span class="lineno"> 1923</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>));</div>
<div class="line"><a id="l01924" name="l01924"></a><span class="lineno"> 1924</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>();</div>
<div class="line"><a id="l01925" name="l01925"></a><span class="lineno"> 1925</span> <span class="comment">// settle delay hasn&#39;t elapsed. Channels should exist.</span></div>
<div class="line"><a id="l01926" name="l01926"></a><span class="lineno"> 1926</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan));</div>
<div class="line"><a id="l01927" name="l01927"></a><span class="lineno"> 1927</span> <span class="keyword">auto</span> <span class="keyword">const</span> closeTime = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;info().parentCloseTime;</div>
<div class="line"><a id="l01928" name="l01928"></a><span class="lineno"> 1928</span> <span class="keyword">auto</span> <span class="keyword">const</span> minExpiration = closeTime + settleDelay;</div>
<div class="line"><a id="l01929" name="l01929"></a><span class="lineno"> 1929</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(minExpiration);</div>
<div class="line"><a id="l01930" name="l01930"></a><span class="lineno"> 1930</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>));</div>
<div class="line"><a id="l01931" name="l01931"></a><span class="lineno"> 1931</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), chan));</div>
<div class="line"><a id="l01932" name="l01932"></a><span class="lineno"> 1932</span> }</div>
<div class="line"><a id="l01933" name="l01933"></a><span class="lineno"> 1933</span> }</div>
<div class="line"><a id="l01934" name="l01934"></a><span class="lineno"> 1934</span> }</div>
</div>
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span> </div>
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01940" data-start="{" data-end="}">
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4"> 1940</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">testUsingTickets</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span> {</div>
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;using tickets&quot;</span>);</div>
<div class="line"><a id="l01943" name="l01943"></a><span class="lineno"> 1943</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01944" name="l01944"></a><span class="lineno"> 1944</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals_1_1chrono__literals.html">std::literals::chrono_literals</a>;</div>
<div class="line"><a id="l01945" name="l01945"></a><span class="lineno"> 1945</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="l01946" name="l01946"></a><span class="lineno"> 1946</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="l01947" name="l01947"></a><span class="lineno"> 1947</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="l01948" name="l01948"></a><span class="lineno"> 1948</span> <span class="keyword">auto</span> USDA = alice[<span class="stringliteral">&quot;USD&quot;</span>];</div>
<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span> env.fund(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10000), alice, bob);</div>
<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span> </div>
<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</span> <span class="comment">// alice and bob grab enough tickets for all of the following</span></div>
<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"> 1952</span> <span class="comment">// transactions. Note that once the tickets are acquired alice&#39;s</span></div>
<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> <span class="comment">// and bob&#39;s account sequence numbers should not advance.</span></div>
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> aliceTicketSeq{env.seq(alice) + 1};</div>
<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(alice, 10));</div>
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> aliceSeq{env.seq(alice)};</div>
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span> </div>
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicketSeq{env.seq(bob) + 1};</div>
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(bob, 10));</div>
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> bobSeq{env.seq(bob)};</div>
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> </div>
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> <span class="keyword">auto</span> <span class="keyword">const</span> pk = alice.pk();</div>
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span> <span class="keyword">auto</span> <span class="keyword">const</span> settleDelay = 100s;</div>
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> <span class="keyword">auto</span> <span class="keyword">const</span> chan = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a497dd410303dcc3593e829d000dd7073">channel</a>(alice, bob, aliceTicketSeq);</div>
<div class="line"><a id="l01935" name="l01935"></a><span class="lineno"> 1935</span> </div>
<div class="line"><a id="l01936" name="l01936"></a><span class="lineno"> 1936</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01937" data-start="{" data-end="}">
<div class="line"><a id="l01937" name="l01937"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4"> 1937</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">testUsingTickets</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01938" name="l01938"></a><span class="lineno"> 1938</span> {</div>
<div class="line"><a id="l01939" name="l01939"></a><span class="lineno"> 1939</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;using tickets&quot;</span>);</div>
<div class="line"><a id="l01940" name="l01940"></a><span class="lineno"> 1940</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01941" name="l01941"></a><span class="lineno"> 1941</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1literals_1_1chrono__literals.html">std::literals::chrono_literals</a>;</div>
<div class="line"><a id="l01942" name="l01942"></a><span class="lineno"> 1942</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="l01943" name="l01943"></a><span class="lineno"> 1943</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="l01944" name="l01944"></a><span class="lineno"> 1944</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="l01945" name="l01945"></a><span class="lineno"> 1945</span> <span class="keyword">auto</span> USDA = alice[<span class="stringliteral">&quot;USD&quot;</span>];</div>
<div class="line"><a id="l01946" name="l01946"></a><span class="lineno"> 1946</span> env.fund(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10000), alice, bob);</div>
<div class="line"><a id="l01947" name="l01947"></a><span class="lineno"> 1947</span> </div>
<div class="line"><a id="l01948" name="l01948"></a><span class="lineno"> 1948</span> <span class="comment">// alice and bob grab enough tickets for all of the following</span></div>
<div class="line"><a id="l01949" name="l01949"></a><span class="lineno"> 1949</span> <span class="comment">// transactions. Note that once the tickets are acquired alice&#39;s</span></div>
<div class="line"><a id="l01950" name="l01950"></a><span class="lineno"> 1950</span> <span class="comment">// and bob&#39;s account sequence numbers should not advance.</span></div>
<div class="line"><a id="l01951" name="l01951"></a><span class="lineno"> 1951</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> aliceTicketSeq{env.seq(alice) + 1};</div>
<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"> 1952</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(alice, 10));</div>
<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> aliceSeq{env.seq(alice)};</div>
<div class="line"><a id="l01954" name="l01954"></a><span class="lineno"> 1954</span> </div>
<div class="line"><a id="l01955" name="l01955"></a><span class="lineno"> 1955</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicketSeq{env.seq(bob) + 1};</div>
<div class="line"><a id="l01956" name="l01956"></a><span class="lineno"> 1956</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(bob, 10));</div>
<div class="line"><a id="l01957" name="l01957"></a><span class="lineno"> 1957</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> bobSeq{env.seq(bob)};</div>
<div class="line"><a id="l01958" name="l01958"></a><span class="lineno"> 1958</span> </div>
<div class="line"><a id="l01959" name="l01959"></a><span class="lineno"> 1959</span> <span class="keyword">auto</span> <span class="keyword">const</span> pk = alice.pk();</div>
<div class="line"><a id="l01960" name="l01960"></a><span class="lineno"> 1960</span> <span class="keyword">auto</span> <span class="keyword">const</span> settleDelay = 100s;</div>
<div class="line"><a id="l01961" name="l01961"></a><span class="lineno"> 1961</span> <span class="keyword">auto</span> <span class="keyword">const</span> chan = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a497dd410303dcc3593e829d000dd7073">channel</a>(alice, bob, aliceTicketSeq);</div>
<div class="line"><a id="l01962" name="l01962"></a><span class="lineno"> 1962</span> </div>
<div class="line"><a id="l01963" name="l01963"></a><span class="lineno"> 1963</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a1b554f2b86e22f6748ad3a638fd4ae86">create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000), settleDelay, pk),</div>
<div class="line"><a id="l01964" name="l01964"></a><span class="lineno"> 1964</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01965" name="l01965"></a><span class="lineno"> 1965</span> </div>
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a1b554f2b86e22f6748ad3a638fd4ae86">create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000), settleDelay, pk),</div>
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01966" name="l01966"></a><span class="lineno"> 1966</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l01967" name="l01967"></a><span class="lineno"> 1967</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l01968" name="l01968"></a><span class="lineno"> 1968</span> </div>
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l01969" name="l01969"></a><span class="lineno"> 1969</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01970" name="l01970"></a><span class="lineno"> 1970</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01971" name="l01971"></a><span class="lineno"> 1971</span> </div>
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> </div>
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> {</div>
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice);</div>
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(alice, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01972" name="l01972"></a><span class="lineno"> 1972</span> {</div>
<div class="line"><a id="l01973" name="l01973"></a><span class="lineno"> 1973</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice);</div>
<div class="line"><a id="l01974" name="l01974"></a><span class="lineno"> 1974</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(alice, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01975" name="l01975"></a><span class="lineno"> 1975</span> </div>
<div class="line"><a id="l01976" name="l01976"></a><span class="lineno"> 1976</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l01977" name="l01977"></a><span class="lineno"> 1977</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l01978" name="l01978"></a><span class="lineno"> 1978</span> </div>
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span> </div>
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span> BEAST_EXPECT(env.balance(alice) == preAlice - <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000) - feeDrops);</div>
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span> }</div>
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span> </div>
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span> <span class="keyword">auto</span> chanBal = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan);</div>
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> <span class="keyword">auto</span> chanAmt = <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan);</div>
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span> BEAST_EXPECT(chanBal == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span> BEAST_EXPECT(chanAmt == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(2000));</div>
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span> </div>
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span> {</div>
<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span> <span class="comment">// No signature needed since the owner is claiming</span></div>
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span> <span class="keyword">auto</span> <span class="keyword">const</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span> <span class="keyword">auto</span> <span class="keyword">const</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan, reqBal, authAmt),</div>
<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01979" name="l01979"></a><span class="lineno"> 1979</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l01980" name="l01980"></a><span class="lineno"> 1980</span> BEAST_EXPECT(env.balance(alice) == preAlice - <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000) - feeDrops);</div>
<div class="line"><a id="l01981" name="l01981"></a><span class="lineno"> 1981</span> }</div>
<div class="line"><a id="l01982" name="l01982"></a><span class="lineno"> 1982</span> </div>
<div class="line"><a id="l01983" name="l01983"></a><span class="lineno"> 1983</span> <span class="keyword">auto</span> chanBal = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan);</div>
<div class="line"><a id="l01984" name="l01984"></a><span class="lineno"> 1984</span> <span class="keyword">auto</span> chanAmt = <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan);</div>
<div class="line"><a id="l01985" name="l01985"></a><span class="lineno"> 1985</span> BEAST_EXPECT(chanBal == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01986" name="l01986"></a><span class="lineno"> 1986</span> BEAST_EXPECT(chanAmt == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(2000));</div>
<div class="line"><a id="l01987" name="l01987"></a><span class="lineno"> 1987</span> </div>
<div class="line"><a id="l01988" name="l01988"></a><span class="lineno"> 1988</span> {</div>
<div class="line"><a id="l01989" name="l01989"></a><span class="lineno"> 1989</span> <span class="comment">// No signature needed since the owner is claiming</span></div>
<div class="line"><a id="l01990" name="l01990"></a><span class="lineno"> 1990</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l01991" name="l01991"></a><span class="lineno"> 1991</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l01992" name="l01992"></a><span class="lineno"> 1992</span> <span class="keyword">auto</span> <span class="keyword">const</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l01993" name="l01993"></a><span class="lineno"> 1993</span> <span class="keyword">auto</span> <span class="keyword">const</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l01994" name="l01994"></a><span class="lineno"> 1994</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l01995" name="l01995"></a><span class="lineno"> 1995</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(alice, chan, reqBal, authAmt),</div>
<div class="line"><a id="l01996" name="l01996"></a><span class="lineno"> 1996</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicketSeq++));</div>
<div class="line"><a id="l01997" name="l01997"></a><span class="lineno"> 1997</span> </div>
<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"> 1998</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l02000" name="l02000"></a><span class="lineno"> 2000</span> </div>
<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"> 2002</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span> </div>
<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == reqBal);</div>
<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span> BEAST_EXPECT(env.balance(bob) == preBob + delta);</div>
<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span> chanBal = reqBal;</div>
<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span> }</div>
<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span> {</div>
<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span> <span class="comment">// Claim with signature</span></div>
<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span> <span class="keyword">auto</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span> <span class="keyword">auto</span> <span class="keyword">const</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span> <span class="keyword">auto</span> <span class="keyword">const</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> =</div>
<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afe97c13985ceaed6e61f950cd19ea6d8">signClaimAuth</a>(alice.pk(), alice.sk(), chan, authAmt);</div>
<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqBal, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++));</div>
<div class="line"><a id="l02001" name="l02001"></a><span class="lineno"> 2001</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == reqBal);</div>
<div class="line"><a id="l02002" name="l02002"></a><span class="lineno"> 2002</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02003" name="l02003"></a><span class="lineno"> 2003</span> BEAST_EXPECT(env.balance(bob) == preBob + delta);</div>
<div class="line"><a id="l02004" name="l02004"></a><span class="lineno"> 2004</span> chanBal = reqBal;</div>
<div class="line"><a id="l02005" name="l02005"></a><span class="lineno"> 2005</span> }</div>
<div class="line"><a id="l02006" name="l02006"></a><span class="lineno"> 2006</span> {</div>
<div class="line"><a id="l02007" name="l02007"></a><span class="lineno"> 2007</span> <span class="comment">// Claim with signature</span></div>
<div class="line"><a id="l02008" name="l02008"></a><span class="lineno"> 2008</span> <span class="keyword">auto</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02009" name="l02009"></a><span class="lineno"> 2009</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l02010" name="l02010"></a><span class="lineno"> 2010</span> <span class="keyword">auto</span> <span class="keyword">const</span> reqBal = chanBal + delta;</div>
<div class="line"><a id="l02011" name="l02011"></a><span class="lineno"> 2011</span> <span class="keyword">auto</span> <span class="keyword">const</span> authAmt = reqBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100);</div>
<div class="line"><a id="l02012" name="l02012"></a><span class="lineno"> 2012</span> assert(reqBal &lt;= chanAmt);</div>
<div class="line"><a id="l02013" name="l02013"></a><span class="lineno"> 2013</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> =</div>
<div class="line"><a id="l02014" name="l02014"></a><span class="lineno"> 2014</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afe97c13985ceaed6e61f950cd19ea6d8">signClaimAuth</a>(alice.pk(), alice.sk(), chan, authAmt);</div>
<div class="line"><a id="l02015" name="l02015"></a><span class="lineno"> 2015</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqBal, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02016" name="l02016"></a><span class="lineno"> 2016</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++));</div>
<div class="line"><a id="l02017" name="l02017"></a><span class="lineno"> 2017</span> </div>
<div class="line"><a id="l02018" name="l02018"></a><span class="lineno"> 2018</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02019" name="l02019"></a><span class="lineno"> 2019</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02020" name="l02020"></a><span class="lineno"> 2020</span> </div>
<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span> </div>
<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == reqBal);</div>
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span> BEAST_EXPECT(env.balance(bob) == preBob + delta - feeDrops);</div>
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> chanBal = reqBal;</div>
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span> </div>
<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span> <span class="comment">// claim again</span></div>
<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"> 2031</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"> 2032</span> <span class="comment">// A transaction that generates a tec still consumes its ticket.</span></div>
<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"> 2033</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqBal, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"> 2034</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++),</div>
<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"> 2035</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#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>));</div>
<div class="line"><a id="l02021" name="l02021"></a><span class="lineno"> 2021</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == reqBal);</div>
<div class="line"><a id="l02022" name="l02022"></a><span class="lineno"> 2022</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02023" name="l02023"></a><span class="lineno"> 2023</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l02024" name="l02024"></a><span class="lineno"> 2024</span> BEAST_EXPECT(env.balance(bob) == preBob + delta - feeDrops);</div>
<div class="line"><a id="l02025" name="l02025"></a><span class="lineno"> 2025</span> chanBal = reqBal;</div>
<div class="line"><a id="l02026" name="l02026"></a><span class="lineno"> 2026</span> </div>
<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"> 2027</span> <span class="comment">// claim again</span></div>
<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02029" name="l02029"></a><span class="lineno"> 2029</span> <span class="comment">// A transaction that generates a tec still consumes its ticket.</span></div>
<div class="line"><a id="l02030" name="l02030"></a><span class="lineno"> 2030</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqBal, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02031" name="l02031"></a><span class="lineno"> 2031</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++),</div>
<div class="line"><a id="l02032" name="l02032"></a><span class="lineno"> 2032</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#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>));</div>
<div class="line"><a id="l02033" name="l02033"></a><span class="lineno"> 2033</span> </div>
<div class="line"><a id="l02034" name="l02034"></a><span class="lineno"> 2034</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02035" name="l02035"></a><span class="lineno"> 2035</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02036" name="l02036"></a><span class="lineno"> 2036</span> </div>
<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span> </div>
<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span> BEAST_EXPECT(env.balance(bob) == preBob - feeDrops);</div>
<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span> }</div>
<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span> {</div>
<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span> <span class="comment">// Try to claim more than authorized</span></div>
<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> authAmt = chanBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> reqAmt = authAmt + <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(1);</div>
<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span> assert(reqAmt &lt;= chanAmt);</div>
<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span> <span class="comment">// Note that since claim() returns a tem (neither tec nor tes),</span></div>
<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span> <span class="comment">// the ticket is not consumed. So we don&#39;t increment bobTicket.</span></div>
<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> =</div>
<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afe97c13985ceaed6e61f950cd19ea6d8">signClaimAuth</a>(alice.pk(), alice.sk(), chan, authAmt);</div>
<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"> 2054</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqAmt, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"> 2055</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq),</div>
<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"> 2056</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#afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea">temBAD_AMOUNT</a>));</div>
<div class="line"><a id="l02037" name="l02037"></a><span class="lineno"> 2037</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02038" name="l02038"></a><span class="lineno"> 2038</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02039" name="l02039"></a><span class="lineno"> 2039</span> BEAST_EXPECT(env.balance(bob) == preBob - feeDrops);</div>
<div class="line"><a id="l02040" name="l02040"></a><span class="lineno"> 2040</span> }</div>
<div class="line"><a id="l02041" name="l02041"></a><span class="lineno"> 2041</span> {</div>
<div class="line"><a id="l02042" name="l02042"></a><span class="lineno"> 2042</span> <span class="comment">// Try to claim more than authorized</span></div>
<div class="line"><a id="l02043" name="l02043"></a><span class="lineno"> 2043</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02044" name="l02044"></a><span class="lineno"> 2044</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> authAmt = chanBal + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(500);</div>
<div class="line"><a id="l02045" name="l02045"></a><span class="lineno"> 2045</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> reqAmt = authAmt + <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(1);</div>
<div class="line"><a id="l02046" name="l02046"></a><span class="lineno"> 2046</span> assert(reqAmt &lt;= chanAmt);</div>
<div class="line"><a id="l02047" name="l02047"></a><span class="lineno"> 2047</span> <span class="comment">// Note that since claim() returns a tem (neither tec nor tes),</span></div>
<div class="line"><a id="l02048" name="l02048"></a><span class="lineno"> 2048</span> <span class="comment">// the ticket is not consumed. So we don&#39;t increment bobTicket.</span></div>
<div class="line"><a id="l02049" name="l02049"></a><span class="lineno"> 2049</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> =</div>
<div class="line"><a id="l02050" name="l02050"></a><span class="lineno"> 2050</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afe97c13985ceaed6e61f950cd19ea6d8">signClaimAuth</a>(alice.pk(), alice.sk(), chan, authAmt);</div>
<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"> 2051</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan, reqAmt, authAmt, <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>), alice.pk()),</div>
<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq),</div>
<div class="line"><a id="l02053" name="l02053"></a><span class="lineno"> 2053</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#afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea">temBAD_AMOUNT</a>));</div>
<div class="line"><a id="l02054" name="l02054"></a><span class="lineno"> 2054</span> </div>
<div class="line"><a id="l02055" name="l02055"></a><span class="lineno"> 2055</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02056" name="l02056"></a><span class="lineno"> 2056</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02057" name="l02057"></a><span class="lineno"> 2057</span> </div>
<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"> 2058</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> </div>
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> BEAST_EXPECT(env.balance(bob) == preBob);</div>
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> }</div>
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> </div>
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</span> <span class="comment">// Dst tries to fund the channel</span></div>
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(bob, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++),</div>
<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"> 2069</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#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>));</div>
<div class="line"><a id="l02058" name="l02058"></a><span class="lineno"> 2058</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02059" name="l02059"></a><span class="lineno"> 2059</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02060" name="l02060"></a><span class="lineno"> 2060</span> BEAST_EXPECT(env.balance(bob) == preBob);</div>
<div class="line"><a id="l02061" name="l02061"></a><span class="lineno"> 2061</span> }</div>
<div class="line"><a id="l02062" name="l02062"></a><span class="lineno"> 2062</span> </div>
<div class="line"><a id="l02063" name="l02063"></a><span class="lineno"> 2063</span> <span class="comment">// Dst tries to fund the channel</span></div>
<div class="line"><a id="l02064" name="l02064"></a><span class="lineno"> 2064</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a7465bcfa8bde2f58f93cee57934f7df8">fund</a>(bob, chan, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l02065" name="l02065"></a><span class="lineno"> 2065</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++),</div>
<div class="line"><a id="l02066" name="l02066"></a><span class="lineno"> 2066</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#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>));</div>
<div class="line"><a id="l02067" name="l02067"></a><span class="lineno"> 2067</span> </div>
<div class="line"><a id="l02068" name="l02068"></a><span class="lineno"> 2068</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02069" name="l02069"></a><span class="lineno"> 2069</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02070" name="l02070"></a><span class="lineno"> 2070</span> </div>
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02072" name="l02072"></a><span class="lineno"> 2072</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02071" name="l02071"></a><span class="lineno"> 2071</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02072" name="l02072"></a><span class="lineno"> 2072</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02073" name="l02073"></a><span class="lineno"> 2073</span> </div>
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#aad855eb2e20ebbee9feb9637eb68c9a4">channelBalance</a>(*env.current(), chan) == chanBal);</div>
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> BEAST_EXPECT(<a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae05b84ca1fdac1d85b38698c1c7832cb">channelAmount</a>(*env.current(), chan) == chanAmt);</div>
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"> 2076</span> </div>
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span> {</div>
<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"> 2078</span> <span class="comment">// Dst closes channel</span></div>
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"> 2079</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice);</div>
<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"> 2080</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"> 2081</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan),</div>
<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>),</div>
<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"> 2083</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++));</div>
<div class="line"><a id="l02074" name="l02074"></a><span class="lineno"> 2074</span> {</div>
<div class="line"><a id="l02075" name="l02075"></a><span class="lineno"> 2075</span> <span class="comment">// Dst closes channel</span></div>
<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"> 2076</span> <span class="keyword">auto</span> <span class="keyword">const</span> preAlice = env.balance(alice);</div>
<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span> <span class="keyword">auto</span> <span class="keyword">const</span> preBob = env.balance(bob);</div>
<div class="line"><a id="l02078" name="l02078"></a><span class="lineno"> 2078</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a89cce4a1494cae4734479d88975dbd2c">claim</a>(bob, chan),</div>
<div class="line"><a id="l02079" name="l02079"></a><span class="lineno"> 2079</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1txflags.html">txflags</a>(<a class="code hl_variable" href="namespaceripple.html#ac1c00e26dbebe035301fefc29b02f82b">tfClose</a>),</div>
<div class="line"><a id="l02080" name="l02080"></a><span class="lineno"> 2080</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicketSeq++));</div>
<div class="line"><a id="l02081" name="l02081"></a><span class="lineno"> 2081</span> </div>
<div class="line"><a id="l02082" name="l02082"></a><span class="lineno"> 2082</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02083" name="l02083"></a><span class="lineno"> 2083</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02084" name="l02084"></a><span class="lineno"> 2084</span> </div>
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> </div>
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.current(), chan));</div>
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = chanAmt - chanBal;</div>
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span> assert(delta &gt; beast::zero);</div>
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span> BEAST_EXPECT(env.balance(alice) == preAlice + delta);</div>
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span> BEAST_EXPECT(env.balance(bob) == preBob - feeDrops);</div>
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</span> }</div>
<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"> 2095</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"> 2099</span> }</div>
<div class="line"><a id="l02085" name="l02085"></a><span class="lineno"> 2085</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1paychan.html#a06f27c7124c8e76c4068af61623b06ec">channelExists</a>(*env.current(), chan));</div>
<div class="line"><a id="l02086" name="l02086"></a><span class="lineno"> 2086</span> <span class="keyword">auto</span> <span class="keyword">const</span> feeDrops = env.current()-&gt;fees().base;</div>
<div class="line"><a id="l02087" name="l02087"></a><span class="lineno"> 2087</span> <span class="keyword">auto</span> <span class="keyword">const</span> delta = chanAmt - chanBal;</div>
<div class="line"><a id="l02088" name="l02088"></a><span class="lineno"> 2088</span> assert(delta &gt; beast::zero);</div>
<div class="line"><a id="l02089" name="l02089"></a><span class="lineno"> 2089</span> BEAST_EXPECT(env.balance(alice) == preAlice + delta);</div>
<div class="line"><a id="l02090" name="l02090"></a><span class="lineno"> 2090</span> BEAST_EXPECT(env.balance(bob) == preBob - feeDrops);</div>
<div class="line"><a id="l02091" name="l02091"></a><span class="lineno"> 2091</span> }</div>
<div class="line"><a id="l02092" name="l02092"></a><span class="lineno"> 2092</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, env.seq(alice) - aliceTicketSeq));</div>
<div class="line"><a id="l02093" name="l02093"></a><span class="lineno"> 2093</span> BEAST_EXPECT(env.seq(alice) == aliceSeq);</div>
<div class="line"><a id="l02094" name="l02094"></a><span class="lineno"> 2094</span> env.require(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.seq(bob) - bobTicketSeq));</div>
<div class="line"><a id="l02095" name="l02095"></a><span class="lineno"> 2095</span> BEAST_EXPECT(env.seq(bob) == bobSeq);</div>
<div class="line"><a id="l02096" name="l02096"></a><span class="lineno"> 2096</span> }</div>
</div>
<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span> </div>
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen02102" data-start="{" data-end="}">
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd"> 2102</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span> {</div>
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a1678fa451d8a3acb397efdfddf8d7a71">testSimple</a>(features);</div>
<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aad9d28395b753c6f7b99422aa9b9d5e1">testDisallowIncoming</a>(features);</div>
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aa76f753ded65f80ee5de6c264d7c767b">testCancelAfter</a>(features);</div>
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a49fef34665b30b3240648aeb41f0f790">testSettleDelay</a>(features);</div>
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a843c2ff4e53987579c7a3512b50f31c6">testExpiration</a>(features);</div>
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a77a54509f9b7fc3d1183684d4372231e">testCloseDry</a>(features);</div>
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"> 2110</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8cb2af1277398d162b9c793a0946af29">testDefaultAmount</a>(features);</div>
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"> 2111</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a4e1c070df9e0c7a9f1b302c21c1443df">testDisallowXRP</a>(features);</div>
<div class="line"><a id="l02112" name="l02112"></a><span class="lineno"> 2112</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#add9ad0ee74cb4cb8ab99868001968467">testDstTag</a>(features);</div>
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a6a54d5d43c8b45e426af8ed678db55a7">testDepositAuth</a>(features);</div>
<div class="line"><a id="l02114" name="l02114"></a><span class="lineno"> 2114</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a238b7050b2283700eeed055b47e46076">testMultiple</a>(features);</div>
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"> 2115</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a24d29e6a3e8a58acb1fd26200d392af9">testAccountChannelsRPC</a>(features);</div>
<div class="line"><a id="l02116" name="l02116"></a><span class="lineno"> 2116</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ab1bfc03ce0a3e30847aebff34089d61c">testAccountChannelsRPCMarkers</a>(features);</div>
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ac769d1d8f85fe681cbfdfeb65ffbbcaf">testAccountChannelsRPCSenderOnly</a>(features);</div>
<div class="line"><a id="l02118" name="l02118"></a><span class="lineno"> 2118</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ab2c84f1b37a1c091518dac7379941857">testAccountChannelAuthorize</a>(features);</div>
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"> 2119</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8fc9fa8eea423030f3d64e0e2ad4d52c">testAuthVerifyRPC</a>(features);</div>
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"> 2120</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afffed40d484241b375229e26513d75a1">testOptionalFields</a>(features);</div>
<div class="line"><a id="l02121" name="l02121"></a><span class="lineno"> 2121</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a9b774e4f432bf7999d9b116c81315d51">testMalformedPK</a>(features);</div>
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8c1e8dff93e990d8252c641e91b11be4">testMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a723a3d54ce62a8d06787a17a932fbf9d">testAccountDelete</a>(features);</div>
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">testUsingTickets</a>(features);</div>
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span> }</div>
<div class="line"><a id="l02097" name="l02097"></a><span class="lineno"> 2097</span> </div>
<div class="line"><a id="l02098" name="l02098"></a><span class="lineno"> 2098</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen02099" data-start="{" data-end="}">
<div class="line"><a id="l02099" name="l02099"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd"> 2099</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l02100" name="l02100"></a><span class="lineno"> 2100</span> {</div>
<div class="line"><a id="l02101" name="l02101"></a><span class="lineno"> 2101</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a1678fa451d8a3acb397efdfddf8d7a71">testSimple</a>(features);</div>
<div class="line"><a id="l02102" name="l02102"></a><span class="lineno"> 2102</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aad9d28395b753c6f7b99422aa9b9d5e1">testDisallowIncoming</a>(features);</div>
<div class="line"><a id="l02103" name="l02103"></a><span class="lineno"> 2103</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aa76f753ded65f80ee5de6c264d7c767b">testCancelAfter</a>(features);</div>
<div class="line"><a id="l02104" name="l02104"></a><span class="lineno"> 2104</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a49fef34665b30b3240648aeb41f0f790">testSettleDelay</a>(features);</div>
<div class="line"><a id="l02105" name="l02105"></a><span class="lineno"> 2105</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a843c2ff4e53987579c7a3512b50f31c6">testExpiration</a>(features);</div>
<div class="line"><a id="l02106" name="l02106"></a><span class="lineno"> 2106</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a77a54509f9b7fc3d1183684d4372231e">testCloseDry</a>(features);</div>
<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"> 2107</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8cb2af1277398d162b9c793a0946af29">testDefaultAmount</a>(features);</div>
<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a4e1c070df9e0c7a9f1b302c21c1443df">testDisallowXRP</a>(features);</div>
<div class="line"><a id="l02109" name="l02109"></a><span class="lineno"> 2109</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#add9ad0ee74cb4cb8ab99868001968467">testDstTag</a>(features);</div>
<div class="line"><a id="l02110" name="l02110"></a><span class="lineno"> 2110</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a6a54d5d43c8b45e426af8ed678db55a7">testDepositAuth</a>(features);</div>
<div class="line"><a id="l02111" name="l02111"></a><span class="lineno"> 2111</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a238b7050b2283700eeed055b47e46076">testMultiple</a>(features);</div>
<div class="line"><a id="l02112" name="l02112"></a><span class="lineno"> 2112</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a24d29e6a3e8a58acb1fd26200d392af9">testAccountChannelsRPC</a>(features);</div>
<div class="line"><a id="l02113" name="l02113"></a><span class="lineno"> 2113</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ab1bfc03ce0a3e30847aebff34089d61c">testAccountChannelsRPCMarkers</a>(features);</div>
<div class="line"><a id="l02114" name="l02114"></a><span class="lineno"> 2114</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ac769d1d8f85fe681cbfdfeb65ffbbcaf">testAccountChannelsRPCSenderOnly</a>(features);</div>
<div class="line"><a id="l02115" name="l02115"></a><span class="lineno"> 2115</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ab2c84f1b37a1c091518dac7379941857">testAccountChannelAuthorize</a>(features);</div>
<div class="line"><a id="l02116" name="l02116"></a><span class="lineno"> 2116</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8fc9fa8eea423030f3d64e0e2ad4d52c">testAuthVerifyRPC</a>(features);</div>
<div class="line"><a id="l02117" name="l02117"></a><span class="lineno"> 2117</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#afffed40d484241b375229e26513d75a1">testOptionalFields</a>(features);</div>
<div class="line"><a id="l02118" name="l02118"></a><span class="lineno"> 2118</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a9b774e4f432bf7999d9b116c81315d51">testMalformedPK</a>(features);</div>
<div class="line"><a id="l02119" name="l02119"></a><span class="lineno"> 2119</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8c1e8dff93e990d8252c641e91b11be4">testMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l02120" name="l02120"></a><span class="lineno"> 2120</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a723a3d54ce62a8d06787a17a932fbf9d">testAccountDelete</a>(features);</div>
<div class="line"><a id="l02121" name="l02121"></a><span class="lineno"> 2121</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">testUsingTickets</a>(features);</div>
<div class="line"><a id="l02122" name="l02122"></a><span class="lineno"> 2122</span> }</div>
</div>
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"> 2126</span> </div>
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"> 2127</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l02128" name="l02128"></a><span class="lineno"> 2128</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen02129" data-start="{" data-end="}">
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0"> 2129</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l02130" name="l02130"></a><span class="lineno"> 2130</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</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="l02133" name="l02133"></a><span class="lineno"> 2133</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - <a class="code hl_variable" href="structripple_1_1test_1_1PayChan__test.html#a2224b4d0b89e8ab2a54d66a392ebb82c">disallowIncoming</a>);</div>
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae170b51c47b860f66914e6a232974032">testDepositAuthCreds</a>();</div>
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8c1e8dff93e990d8252c641e91b11be4">testMetaAndOwnership</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - fixIncludeKeyletFields);</div>
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"> 2137</span> }</div>
<div class="line"><a id="l02123" name="l02123"></a><span class="lineno"> 2123</span> </div>
<div class="line"><a id="l02124" name="l02124"></a><span class="lineno"> 2124</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l02125" name="l02125"></a><span class="lineno"> 2125</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen02126" data-start="{" data-end="}">
<div class="line"><a id="l02126" name="l02126"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0"> 2126</a></span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l02127" name="l02127"></a><span class="lineno"> 2127</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l02128" name="l02128"></a><span class="lineno"> 2128</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l02129" name="l02129"></a><span class="lineno"> 2129</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="l02130" name="l02130"></a><span class="lineno"> 2130</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - <a class="code hl_variable" href="structripple_1_1test_1_1PayChan__test.html#a2224b4d0b89e8ab2a54d66a392ebb82c">disallowIncoming</a>);</div>
<div class="line"><a id="l02131" name="l02131"></a><span class="lineno"> 2131</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l02132" name="l02132"></a><span class="lineno"> 2132</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#ae170b51c47b860f66914e6a232974032">testDepositAuthCreds</a>();</div>
<div class="line"><a id="l02133" name="l02133"></a><span class="lineno"> 2133</span> <a class="code hl_function" href="structripple_1_1test_1_1PayChan__test.html#a8c1e8dff93e990d8252c641e91b11be4">testMetaAndOwnership</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - fixIncludeKeyletFields);</div>
<div class="line"><a id="l02134" name="l02134"></a><span class="lineno"> 2134</span> }</div>
</div>
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span>};</div>
<div class="line"><a id="l02135" name="l02135"></a><span class="lineno"> 2135</span>};</div>
</div>
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span> </div>
<div class="line"><a id="l02140" name="l02140"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test.html#a1c88c75a2fca71481dcd0700871f56a0"> 2140</a></span>BEAST_DEFINE_TESTSUITE(PayChan, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"> 2141</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l02136" name="l02136"></a><span class="lineno"> 2136</span> </div>
<div class="line"><a id="l02137" name="l02137"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test.html#a1c88c75a2fca71481dcd0700871f56a0"> 2137</a></span>BEAST_DEFINE_TESTSUITE(PayChan, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l02138" name="l02138"></a><span class="lineno"> 2138</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l02139" name="l02139"></a><span class="lineno"> 2139</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclassJson_1_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#l00130">json_value.h:131</a></div></div>
<div class="ttc" id="aclassbeast_1_1unit__test_1_1suite_html"><div class="ttname"><a href="classbeast_1_1unit__test_1_1suite.html">beast::unit_test::suite</a></div><div class="ttdoc">A testsuite class.</div><div class="ttdef"><b>Definition</b> <a href="suite_8h_source.html#l00051">suite.h:52</a></div></div>
@@ -2400,8 +2397,8 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a2224b4d0b89e8ab2a54d66a392ebb82c"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a2224b4d0b89e8ab2a54d66a392ebb82c">ripple::test::PayChan_test::disallowIncoming</a></div><div class="ttdeci">FeatureBitset const disallowIncoming</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00017">PayChan_test.cpp:17</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a238b7050b2283700eeed055b47e46076"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a238b7050b2283700eeed055b47e46076">ripple::test::PayChan_test::testMultiple</a></div><div class="ttdeci">void testMultiple(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01025">PayChan_test.cpp:1025</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a24d29e6a3e8a58acb1fd26200d392af9"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a24d29e6a3e8a58acb1fd26200d392af9">ripple::test::PayChan_test::testAccountChannelsRPC</a></div><div class="ttdeci">void testAccountChannelsRPC(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01048">PayChan_test.cpp:1048</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a2c018c1543e1cf3620b153118eb9dbf4"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">ripple::test::PayChan_test::testUsingTickets</a></div><div class="ttdeci">void testUsingTickets(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01940">PayChan_test.cpp:1940</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a2d95313d8dade19b4b1b87985b2bf6c0"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0">ripple::test::PayChan_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="PayChan__test_8cpp_source.html#l02129">PayChan_test.cpp:2129</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a2c018c1543e1cf3620b153118eb9dbf4"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a2c018c1543e1cf3620b153118eb9dbf4">ripple::test::PayChan_test::testUsingTickets</a></div><div class="ttdeci">void testUsingTickets(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01937">PayChan_test.cpp:1937</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a2d95313d8dade19b4b1b87985b2bf6c0"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a2d95313d8dade19b4b1b87985b2bf6c0">ripple::test::PayChan_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="PayChan__test_8cpp_source.html#l02126">PayChan_test.cpp:2126</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a49fef34665b30b3240648aeb41f0f790"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a49fef34665b30b3240648aeb41f0f790">ripple::test::PayChan_test::testSettleDelay</a></div><div class="ttdeci">void testSettleDelay(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00501">PayChan_test.cpp:501</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a4e1c070df9e0c7a9f1b302c21c1443df"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a4e1c070df9e0c7a9f1b302c21c1443df">ripple::test::PayChan_test::testDisallowXRP</a></div><div class="ttdeci">void testDisallowXRP(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00650">PayChan_test.cpp:650</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a6a54d5d43c8b45e426af8ed678db55a7"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a6a54d5d43c8b45e426af8ed678db55a7">ripple::test::PayChan_test::testDepositAuth</a></div><div class="ttdeci">void testDepositAuth(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00717">PayChan_test.cpp:717</a></div></div>
@@ -2414,7 +2411,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a8fc9fa8eea423030f3d64e0e2ad4d52c"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a8fc9fa8eea423030f3d64e0e2ad4d52c">ripple::test::PayChan_test::testAuthVerifyRPC</a></div><div class="ttdeci">void testAuthVerifyRPC(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01313">PayChan_test.cpp:1313</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_a9b774e4f432bf7999d9b116c81315d51"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#a9b774e4f432bf7999d9b116c81315d51">ripple::test::PayChan_test::testMalformedPK</a></div><div class="ttdeci">void testMalformedPK(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01704">PayChan_test.cpp:1704</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_aa76f753ded65f80ee5de6c264d7c767b"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#aa76f753ded65f80ee5de6c264d7c767b">ripple::test::PayChan_test::testCancelAfter</a></div><div class="ttdeci">void testCancelAfter(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00324">PayChan_test.cpp:324</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_aacab6355f4954eaebd11b354ab3222fd"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">ripple::test::PayChan_test::testWithFeats</a></div><div class="ttdeci">void testWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l02102">PayChan_test.cpp:2102</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_aacab6355f4954eaebd11b354ab3222fd"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#aacab6355f4954eaebd11b354ab3222fd">ripple::test::PayChan_test::testWithFeats</a></div><div class="ttdeci">void testWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l02099">PayChan_test.cpp:2099</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_aad9d28395b753c6f7b99422aa9b9d5e1"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#aad9d28395b753c6f7b99422aa9b9d5e1">ripple::test::PayChan_test::testDisallowIncoming</a></div><div class="ttdeci">void testDisallowIncoming(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l00240">PayChan_test.cpp:240</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_ab1bfc03ce0a3e30847aebff34089d61c"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#ab1bfc03ce0a3e30847aebff34089d61c">ripple::test::PayChan_test::testAccountChannelsRPCMarkers</a></div><div class="ttdeci">void testAccountChannelsRPCMarkers(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01122">PayChan_test.cpp:1122</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1PayChan__test_html_ab2c84f1b37a1c091518dac7379941857"><div class="ttname"><a href="structripple_1_1test_1_1PayChan__test.html#ab2c84f1b37a1c091518dac7379941857">ripple::test::PayChan_test::testAccountChannelAuthorize</a></div><div class="ttdeci">void testAccountChannelAuthorize(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="PayChan__test_8cpp_source.html#l01275">PayChan_test.cpp:1275</a></div></div>