Files
rippled/Escrow__test_8cpp_source.html
2025-11-11 09:48:14 -08:00

1914 lines
494 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: Escrow_test.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_120ed4da3e3217b1e7fc0b4f48568e79.html">test</a></li><li class="navelem"><a class="el" href="dir_7ab758b8a77751d62709b12ccae53e10.html">app</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">Escrow_test.cpp</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#include &lt;test/jtx.h&gt;</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span> </div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &lt;xrpld/app/tx/applySteps.h&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;xrpl/ledger/Dir.h&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;xrpl/protocol/Feature.h&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;xrpl/protocol/Indexes.h&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;xrpl/protocol/TxFlags.h&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;xrpl/protocol/jss.h&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/algorithm.html">algorithm</a>&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;<a class="codeRef" href="http://en.cppreference.com/w/cpp/header/iterator.html">iterator</a>&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">namespace </span>test {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="foldopen" id="foldopen00017" data-start="{" data-end="};">
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html"> 17</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structripple_1_1test_1_1Escrow__test.html">Escrow_test</a> : <span class="keyword">public</span> <a class="code hl_class" href="classbeast_1_1unit__test_1_1suite.html">beast::unit_test::suite</a></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span>{</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="}">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a6c091b6222b499b93e5a7200c57e32f9"> 20</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a6c091b6222b499b93e5a7200c57e32f9">testEnablement</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Enablement&quot;</span>);</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</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="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00029" name="l00029"></a><span class="lineno"> 29</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</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="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq1 = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</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="l00041" name="l00041"></a><span class="lineno"> 41</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, seq1),</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">auto</span> <span class="keyword">const</span> seq2 = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 2s),</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</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="l00054" name="l00054"></a><span class="lineno"> 54</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, seq2), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#af7ce5920308132ab9e6f0adbdc781b5d"> 58</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#af7ce5920308132ab9e6f0adbdc781b5d">testTiming</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Timing: Finish Only&quot;</span>);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</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="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00067" name="l00067"></a><span class="lineno"> 67</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</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="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// We create an escrow that can be finished in the future</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 97s;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(ts));</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// Advance the ledger, verifying that the finish won&#39;t complete</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// prematurely.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; ts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</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="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Timing: Cancel Only&quot;</span>);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</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="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00091" name="l00091"></a><span class="lineno"> 91</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</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="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// We create an escrow that can be cancelled in the future</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 117s;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts));</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Advance the ledger, verifying that the cancel won&#39;t complete</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// prematurely.</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; ts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</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="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// Verify that a finish won&#39;t work anymore.</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</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="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// Verify that the cancel will succeed</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> {</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Timing: Finish and Cancel -&gt; Finish&quot;</span>);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</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="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00124" name="l00124"></a><span class="lineno"> 124</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</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="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// We create an escrow that can be cancelled in the future</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">auto</span> <span class="keyword">const</span> fts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 117s;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">auto</span> <span class="keyword">const</span> cts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 192s;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(fts),</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(cts));</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// Advance the ledger, verifying that the finish and cancel won&#39;t</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// complete prematurely.</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; fts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</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="l00143" name="l00143"></a><span class="lineno"> 143</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</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="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// Verify that a cancel still won&#39;t work</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</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="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="comment">// And verify that a finish will</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> {</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Timing: Finish and Cancel -&gt; Cancel&quot;</span>);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</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="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00161" name="l00161"></a><span class="lineno"> 161</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</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="l00163" name="l00163"></a><span class="lineno"> 163</span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// We create an escrow that can be cancelled in the future</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">auto</span> <span class="keyword">const</span> fts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 109s;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">auto</span> <span class="keyword">const</span> cts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 184s;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(fts),</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(cts));</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// Advance the ledger, verifying that the finish and cancel won&#39;t</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// complete prematurely.</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; fts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</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="l00180" name="l00180"></a><span class="lineno"> 180</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</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="l00183" name="l00183"></a><span class="lineno"> 183</span> }</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Continue advancing, verifying that the cancel won&#39;t complete</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// prematurely. At this point a finish would succeed.</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; cts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</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="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// Verify that finish will no longer work, since we are past the</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// cancel activation time.</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</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="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// And verify that a cancel will succeed.</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> }</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00204" data-start="{" data-end="}">
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a39e9333db819456e231f21b5ed237adf"> 204</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a39e9333db819456e231f21b5ed237adf">testTags</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Tags&quot;</span>);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</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="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</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="l00214" name="l00214"></a><span class="lineno"> 214</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="l00215" name="l00215"></a><span class="lineno"> 215</span> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// Check to make sure that we correctly detect if tags are really</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// required:</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(bob, <a class="code hl_variable" href="namespaceripple.html#a2e3220cb8c660141f5300a9e38841295">asfRequireDest</a>));</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</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#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">tecDST_TAG_NEEDED</a>));</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// set source and dest tags</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1stag.html">stag</a>(1),</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1dtag.html">dtag</a>(2));</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> BEAST_EXPECT(sle);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> BEAST_EXPECT((*sle)[sfSourceTag] == 1);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> BEAST_EXPECT((*sle)[sfDestinationTag] == 2);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">if</span> (features[fixIncludeKeyletFields])</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> BEAST_EXPECT((*sle)[sfSequence] == <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> BEAST_EXPECT(!sle-&gt;isFieldPresent(sfSequence));</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> }</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00248" data-start="{" data-end="}">
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#af084b442ceb8419b2cb2dc1ac0ac126d"> 248</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#af084b442ceb8419b2cb2dc1ac0ac126d">testDisallowXRP</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Disallow XRP&quot;</span>);</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// Ignore the &quot;asfDisallowXRP&quot; account flag, which we should</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// have been doing before.</span></div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</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="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;george&quot;</span>);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;george&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#af9cd2b389ce115ba9d17fbd557aca94d">asfDisallowXRP</a>));</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;george&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10)),</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> }</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> }</div>
</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00268" data-start="{" data-end="}">
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#aa325f898b6d27b64c0c348aaf45f70f1"> 268</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#aa325f898b6d27b64c0c348aaf45f70f1">testRequiresConditionOrFinishAfter</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;RequiresConditionOrFinishAfter&quot;</span>);</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</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="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00277" name="l00277"></a><span class="lineno"> 277</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</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="l00279" name="l00279"></a><span class="lineno"> 279</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// Creating an escrow with only a cancel time is not allowed:</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100)),</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 90s),</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150),</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="comment">// Creating an escrow with only a cancel time and a condition is</span></div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="comment">// allowed:</span></div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100)),</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 90s),</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</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="l00294" name="l00294"></a><span class="lineno"> 294</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;carol&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>) == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5100));</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> </div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="comment">// Creating an escrow with only a cancel time and a finish time is</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="comment">// allowed:</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keyword">auto</span> <span class="keyword">const</span> seqFt = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(100)),</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>()), <span class="comment">// Set finish time to now so that</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// we can call finish immediately.</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 50s),</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee * 150));</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</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="l00309" name="l00309"></a><span class="lineno"> 309</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;carol&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, seqFt), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> BEAST_EXPECT(</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>) ==</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5200)); <span class="comment">// 5100 (from last transaction) + 100</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00316" data-start="{" data-end="}">
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a2f9a833073e5e55ae3c9de8bf4f35e52"> 316</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a2f9a833073e5e55ae3c9de8bf4f35e52">testFails</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> {</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Failure Cases&quot;</span>);</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</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="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00325" name="l00325"></a><span class="lineno"> 325</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;gw&quot;</span>);</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</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="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// temINVALID_FLAG</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s),</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</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#a61d9fbb44b335fbb5e82e3211e6639a2">tfPassive</a>),</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</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#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">temINVALID_FLAG</a>));</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="comment">// Finish time is in the past</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() - 5s),</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</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="l00338" name="l00338"></a><span class="lineno"> 338</span> </div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// Cancel time is in the past</span></div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() - 5s),</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</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="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="comment">// no destination account</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</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#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">tecNO_DST</a>));</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Using non-XRP:</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> withTokenEscrow =</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;rules().enabled(featureTokenEscrow);</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> {</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// tecNO_PERMISSION: token escrow is enabled but the issuer did not</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// set the asfAllowTrustLineLocking flag</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">auto</span> <span class="keyword">const</span> txResult =</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> withTokenEscrow ? <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>) : <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="l00360" name="l00360"></a><span class="lineno"> 360</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>)[<span class="stringliteral">&quot;USD&quot;</span>](500)),</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s),</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> txResult);</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> }</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// Sending zero or no XRP:</span></div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0)),</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</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="l00369" name="l00369"></a><span class="lineno"> 369</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(-1000)),</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</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="l00372" name="l00372"></a><span class="lineno"> 372</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="comment">// Fail if neither CancelAfter nor FinishAfter are specified:</span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a8845e05d481141ea5e8e5274796f45a7">temBAD_EXPIRATION</a>));</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// Fail if neither a FinishTime nor a condition are attached:</span></div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="comment">// Fail if FinishAfter has already passed:</span></div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() - 1s),</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</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="l00385" name="l00385"></a><span class="lineno"> 385</span> </div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> <span class="comment">// If both CancelAfter and FinishAfter are set, then CancelAfter must</span></div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="comment">// be strictly later than FinishAfter.</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 10s),</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 10s),</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</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#afe21c8454670d46fb93751a5edffed46a8845e05d481141ea5e8e5274796f45a7">temBAD_EXPIRATION</a>));</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 10s),</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s),</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</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#afe21c8454670d46fb93751a5edffed46a8845e05d481141ea5e8e5274796f45a7">temBAD_EXPIRATION</a>));</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="comment">// Carol now requires the use of a destination tag</span></div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#a2e3220cb8c660141f5300a9e38841295">asfRequireDest</a>));</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> </div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <span class="comment">// missing destination tag</span></div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</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#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">tecDST_TAG_NEEDED</a>));</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// Success!</span></div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1dtag.html">dtag</a>(1));</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> { <span class="comment">// Fail if the sender wants to send more than he has:</span></div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">auto</span> <span class="keyword">const</span> accountReserve = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().reserve);</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="keyword">auto</span> <span class="keyword">const</span> accountIncrement =</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().increment);</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(accountReserve + accountIncrement + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(50), <span class="stringliteral">&quot;daniel&quot;</span>);</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;daniel&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(51)),</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</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#aa298e929e02f59c2b05a30ee8805b38ca3577fa7a8b4da9a377d45f373d80de05">tecUNFUNDED</a>));</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(accountReserve + accountIncrement + <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(50), <span class="stringliteral">&quot;evan&quot;</span>);</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;evan&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(50)),</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</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#aa298e929e02f59c2b05a30ee8805b38ca3577fa7a8b4da9a377d45f373d80de05">tecUNFUNDED</a>));</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(accountReserve, <span class="stringliteral">&quot;frank&quot;</span>);</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;frank&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1)),</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</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#aa298e929e02f59c2b05a30ee8805b38cae930fb228ae74317976b57b4e87a7f0d">tecINSUFFICIENT_RESERVE</a>));</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> }</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> </div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> { <span class="comment">// Specify incorrect sequence number</span></div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;hannah&quot;</span>);</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;hannah&quot;</span>);</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;hannah&quot;</span>, <span class="stringliteral">&quot;hannah&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10)),</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</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="l00443" name="l00443"></a><span class="lineno"> 443</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;hannah&quot;</span>, <span class="stringliteral">&quot;hannah&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> + 7),</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</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#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>));</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> }</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> </div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> { <span class="comment">// Try to specify a condition for a non-conditional payment</span></div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;ivan&quot;</span>);</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;ivan&quot;</span>);</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> </div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;ivan&quot;</span>, <span class="stringliteral">&quot;ivan&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(10)),</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</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="l00455" name="l00455"></a><span class="lineno"> 455</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;ivan&quot;</span>, <span class="stringliteral">&quot;ivan&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> }</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> }</div>
</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> </div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00464" data-start="{" data-end="}">
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a1ccaf0e6bf9082b50b33c79e52accb46"> 464</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a1ccaf0e6bf9082b50b33c79e52accb46">testLockup</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> {</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Lockup&quot;</span>);</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> </div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> {</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="comment">// Unconditional</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</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="l00474" name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00475" name="l00475"></a><span class="lineno"> 475</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> </div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="comment">// Not enough time has elapsed for a finish and canceling isn&#39;t</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="comment">// possible.</span></div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00484" name="l00484"></a><span class="lineno"> 484</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00485" name="l00485"></a><span class="lineno"> 485</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="l00486" name="l00486"></a><span class="lineno"> 486</span> </div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="comment">// Cancel continues to not be possible</span></div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00489" name="l00489"></a><span class="lineno"> 489</span> </div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// Finish should succeed. Verify funds.</span></div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> }</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> {</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="comment">// Unconditionally pay from Alice to Bob. Zelda (neither source nor</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="comment">// destination) signs all cancels and finishes. This shows that</span></div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Escrow will make a payment to Bob with no intervention from Bob.</span></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</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="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00500" name="l00500"></a><span class="lineno"> 500</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>);</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="comment">// Not enough time has elapsed for a finish and canceling isn&#39;t</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="comment">// possible.</span></div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00509" name="l00509"></a><span class="lineno"> 509</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00510" name="l00510"></a><span class="lineno"> 510</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="l00511" name="l00511"></a><span class="lineno"> 511</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// Cancel continues to not be possible</span></div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00514" name="l00514"></a><span class="lineno"> 514</span> </div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="comment">// Finish should succeed. Verify funds.</span></div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</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="l00518" name="l00518"></a><span class="lineno"> 518</span> </div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000)));</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(4 * baseFee)));</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> }</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="comment">// Bob sets DepositAuth so only Bob can finish the escrow.</span></div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</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="l00526" name="l00526"></a><span class="lineno"> 526</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>);</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</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="l00531" name="l00531"></a><span class="lineno"> 531</span> </div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="comment">// Not enough time has elapsed for a finish and canceling isn&#39;t</span></div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> <span class="comment">// possible.</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00540" name="l00540"></a><span class="lineno"> 540</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00541" name="l00541"></a><span class="lineno"> 541</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00542" name="l00542"></a><span class="lineno"> 542</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00543" name="l00543"></a><span class="lineno"> 543</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00544" name="l00544"></a><span class="lineno"> 544</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00545" name="l00545"></a><span class="lineno"> 545</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="l00546" name="l00546"></a><span class="lineno"> 546</span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="comment">// Cancel continues to not be possible. Finish will only succeed for</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="comment">// Bob, because of DepositAuth.</span></div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00550" name="l00550"></a><span class="lineno"> 550</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00551" name="l00551"></a><span class="lineno"> 551</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00552" name="l00552"></a><span class="lineno"> 552</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00553" name="l00553"></a><span class="lineno"> 553</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00554" name="l00554"></a><span class="lineno"> 554</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</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="l00556" name="l00556"></a><span class="lineno"> 556</span> </div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - (baseFee * 5)));</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000) - (baseFee * 5)));</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - (baseFee * 4)));</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> }</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="comment">// Bob sets DepositAuth but preauthorizes Zelda, so Zelda can</span></div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="comment">// finish the escrow.</span></div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</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="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00566" name="l00566"></a><span class="lineno"> 566</span> </div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>);</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</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="l00570" name="l00570"></a><span class="lineno"> 570</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#a662867f42cb3f468f2e8830fbd7e0d8a">deposit::auth</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>));</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</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="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</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="l00578" name="l00578"></a><span class="lineno"> 578</span> </div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <span class="comment">// DepositPreauth allows Finish to succeed for either Zelda or</span></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="comment">// Bob. But Finish won&#39;t succeed for Alice since she is not</span></div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="comment">// preauthorized.</span></div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00583" name="l00583"></a><span class="lineno"> 583</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</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="l00585" name="l00585"></a><span class="lineno"> 585</span> </div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - (baseFee * 2)));</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000) - (baseFee * 2)));</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - (baseFee * 1)));</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> }</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> {</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// Conditional</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</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="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00594" name="l00594"></a><span class="lineno"> 594</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="comment">// Not enough time has elapsed for a finish and canceling isn&#39;t</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="comment">// possible.</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00604" name="l00604"></a><span class="lineno"> 604</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00605" name="l00605"></a><span class="lineno"> 605</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00606" name="l00606"></a><span class="lineno"> 606</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</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="l00611" name="l00611"></a><span class="lineno"> 611</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00612" name="l00612"></a><span class="lineno"> 612</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</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="l00617" name="l00617"></a><span class="lineno"> 617</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="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="comment">// Cancel continues to not be possible. Finish is possible but</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="comment">// requires the fulfillment associated with the escrow.</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00622" name="l00622"></a><span class="lineno"> 622</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00623" name="l00623"></a><span class="lineno"> 623</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</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="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> }</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> {</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="comment">// Self-escrowed conditional with DepositAuth.</span></div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</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="l00637" name="l00637"></a><span class="lineno"> 637</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00638" name="l00638"></a><span class="lineno"> 638</span> </div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</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="l00646" name="l00646"></a><span class="lineno"> 646</span> </div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="comment">// Finish is now possible but requires the cryptocondition.</span></div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> </div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="comment">// Enable deposit authorization. After this only Alice can finish</span></div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> <span class="comment">// the escrow.</span></div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</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="l00657" name="l00657"></a><span class="lineno"> 657</span> </div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</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="l00668" name="l00668"></a><span class="lineno"> 668</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> }</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="comment">// Self-escrowed conditional with DepositAuth and DepositPreauth.</span></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</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="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00677" name="l00677"></a><span class="lineno"> 677</span> </div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>);</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 5s));</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</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="l00685" name="l00685"></a><span class="lineno"> 685</span> </div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <span class="comment">// Alice preauthorizes Zelda for deposit, even though Alice has not</span></div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <span class="comment">// set the lsfDepositAuth flag (yet).</span></div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#a662867f42cb3f468f2e8830fbd7e0d8a">deposit::auth</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;zelda&quot;</span>));</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</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="l00690" name="l00690"></a><span class="lineno"> 690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="comment">// Finish is now possible but requires the cryptocondition.</span></div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> <span class="comment">// Alice enables deposit authorization. After this only Alice or</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="comment">// Zelda (because Zelda is preauthorized) can finish the escrow.</span></div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</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="l00703" name="l00703"></a><span class="lineno"> 703</span> </div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</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="l00714" name="l00714"></a><span class="lineno"> 714</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;zelda&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> }</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> }</div>
</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> </div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00722" data-start="{" data-end="}">
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a30d2eda60ddb8f1d6345d83bfe6a4974"> 722</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a30d2eda60ddb8f1d6345d83bfe6a4974">testEscrowConditions</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> {</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Escrow with CryptoConditions&quot;</span>);</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> </div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> </div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> { <span class="comment">// Test cryptoconditions</span></div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</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="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00732" name="l00732"></a><span class="lineno"> 732</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 0);</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000)));</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00742" name="l00742"></a><span class="lineno"> 742</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> </div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="comment">// Attempt to finish without a fulfillment</span></div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="comment">// Attempt to finish with a condition instead of a fulfillment</span></div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> </div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="comment">// Attempt to finish with an incorrect condition and various</span></div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="comment">// combinations of correct and incorrect fulfillments.</span></div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> </div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <span class="comment">// Attempt to finish with the correct condition &amp; fulfillment</span></div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> </div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="comment">// SLE removed on finish</span></div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>).<span class="keywordtype">id</span>(), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)));</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 0);</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000)));</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>));</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 0);</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, 1), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>));</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> }</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> { <span class="comment">// Test cancel when condition is present</span></div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</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="l00806" name="l00806"></a><span class="lineno"> 806</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00807" name="l00807"></a><span class="lineno"> 807</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 0);</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</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="l00814" name="l00814"></a><span class="lineno"> 814</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> <span class="comment">// balance restored on cancel</span></div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>));</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <span class="comment">// SLE removed on cancel</span></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;alice&quot;</span>).<span class="keywordtype">id</span>(), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>)));</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> }</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> {</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</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="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00824" name="l00824"></a><span class="lineno"> 824</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</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="l00826" name="l00826"></a><span class="lineno"> 826</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <span class="comment">// cancel fails before expiration</span></div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <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="l00833" name="l00833"></a><span class="lineno"> 833</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</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="l00835" name="l00835"></a><span class="lineno"> 835</span> <span class="comment">// finish fails after expiration</span></div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</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="l00841" name="l00841"></a><span class="lineno"> 841</span> BEAST_EXPECT((*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<span class="stringliteral">&quot;alice&quot;</span>))[sfOwnerCount] == 1);</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000)));</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> }</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> { <span class="comment">// Test long &amp; short conditions during creation</span></div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</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="l00846" name="l00846"></a><span class="lineno"> 846</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint8_t&gt;</a> v;</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> v.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>.size() + 2, 0x78);</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/byte/memcpy.html">std::memcpy</a>(v.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>() + 1, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>.data(), <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>.size());</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> </div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> <span class="keyword">auto</span> <span class="keyword">const</span> p = v.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>();</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keyword">auto</span> <span class="keyword">const</span> s = v.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> </div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s;</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> </div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> <span class="comment">// All these are expected to fail, because the</span></div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <span class="comment">// condition we pass in is malformed in some way</span></div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p, s}),</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p, s - 1}),</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p, s - 2}),</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p + 1, s - 1}),</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p + 1, s - 3}),</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p + 2, s - 2}),</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p + 2, s - 3}),</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> </div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00890" name="l00890"></a><span class="lineno"> 890</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{p + 1, s - 2}),</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(10 * baseFee));</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(10 * baseFee)));</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(150 * baseFee)));</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000)));</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> }</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> { <span class="comment">// Test long and short conditions &amp; fulfillments during finish</span></div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</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="l00904" name="l00904"></a><span class="lineno"> 904</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> </div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint8_t&gt;</a> cv;</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> cv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>.size() + 2, 0x78);</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/byte/memcpy.html">std::memcpy</a>(cv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>() + 1, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>.data(), <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>.size());</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> </div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> <span class="keyword">auto</span> <span class="keyword">const</span> cp = cv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>();</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keyword">auto</span> <span class="keyword">const</span> cs = cv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> </div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::uint8_t&gt;</a> fv;</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> fv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/resize.html">resize</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>.size() + 2, 0x13);</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/string/byte/memcpy.html">std::memcpy</a>(fv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>() + 1, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>.data(), <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>.size());</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> </div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <span class="keyword">auto</span> <span class="keyword">const</span> fp = fv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/data.html">data</a>();</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> <span class="keyword">auto</span> <span class="keyword">const</span> fs = fv.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>();</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> </div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> </div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> <span class="comment">// All these are expected to fail, because the</span></div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="comment">// condition we pass in is malformed in some way</span></div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs}),</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs - 1}),</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs - 2}),</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 1}),</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 3}),</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 2, cs - 2}),</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 2, cs - 3}),</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> </div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l00955" name="l00955"></a><span class="lineno"> 955</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(10 * baseFee));</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> </div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> <span class="comment">// Now, try to fulfill using the same sequence of</span></div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <span class="comment">// malformed conditions.</span></div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs}),</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs - 1}),</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp, cs - 2}),</div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 1}),</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 3}),</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 2, cs - 2}),</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 2, cs - 3}),</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> </div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> <span class="comment">// Now, using the correct condition, try malformed fulfillments:</span></div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs}),</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs - 1}),</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp, fs - 2}),</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp + 1, fs - 1}),</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp + 1, fs - 3}),</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp + 1, fs - 3}),</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp + 2, fs - 2}),</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{cp + 1, cs - 2}),</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{fp + 2, fs - 3}),</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> </div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="comment">// Now try for the right one</span></div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">escrow::cb2</a>),</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">escrow::fb2</a>),</div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(10 * baseFee)));</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000)));</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> }</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> { <span class="comment">// Test empty condition during creation and</span></div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">// empty condition &amp; fulfillment during finish</span></div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</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="l01051" name="l01051"></a><span class="lineno"> 1051</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> </div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{}),</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l01060" name="l01060"></a><span class="lineno"> 1060</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> </div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{}),</div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{}),</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{}),</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{}),</div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</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#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>));</div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> </div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">// Assemble finish that is missing the Condition or the Fulfillment</span></div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">// since either both must be present, or neither can:</span></div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> </div>
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">// Now finish it.</span></div>
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">escrow::cb3</a>),</div>
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">escrow::fb3</a>),</div>
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee));</div>
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(6000)));</div>
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1balance.html">balance</a>(<span class="stringliteral">&quot;alice&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(4000) - <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee)));</div>
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> }</div>
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> { <span class="comment">// Test a condition other than PreimageSha256, which</span></div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">// would require a separate amendment</span></div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</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="l01100" name="l01100"></a><span class="lineno"> 1100</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), <span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> </div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/array.html">std::array&lt;std::uint8_t, 45&gt;</a> cb = {</div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> {0xA2, 0x2B, 0x80, 0x20, 0x42, 0x4A, 0x70, 0x49, 0x49,</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> 0x52, 0x92, 0x67, 0xB6, 0x21, 0xB3, 0xD7, 0x91, 0x19,</div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> 0xD7, 0x29, 0xB2, 0x38, 0x2C, 0xED, 0x8B, 0x29, 0x6C,</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> 0x3C, 0x02, 0x8F, 0xA9, 0x7D, 0x35, 0x0F, 0x6D, 0x07,</div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> 0x81, 0x03, 0x06, 0x34, 0xD2, 0x82, 0x02, 0x03, 0xC8}};</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> </div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">// FIXME: this transaction should, eventually, return temDISABLED</span></div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="comment">// instead of temMALFORMED.</span></div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(cb),</div>
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</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#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">temMALFORMED</a>));</div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> }</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> }</div>
</div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> </div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01119" data-start="{" data-end="}">
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a3fee0d7540d2f764fe57db2913d1e7e0"> 1119</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a3fee0d7540d2f764fe57db2913d1e7e0">testMetaAndOwnership</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> {</div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> </div>
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</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="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="keyword">auto</span> <span class="keyword">const</span> bruce = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;bruce&quot;</span>);</div>
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> <span class="keyword">auto</span> <span class="keyword">const</span> carol = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a>(<span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> </div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> {</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Metadata to self&quot;</span>);</div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> </div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> <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="l01132" name="l01132"></a><span class="lineno"> 1132</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bruce, carol);</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> <span class="keyword">auto</span> <span class="keyword">const</span> aseq = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> <span class="keyword">auto</span> <span class="keyword">const</span> bseq = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bruce);</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> </div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, alice, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 500s));</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <span class="keyword">auto</span> <span class="keyword">const</span> aa = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), aseq));</div>
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> BEAST_EXPECT(aa);</div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> </div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> {</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> aod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(alice.id()));</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), aa) != aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> }</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> </div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(bruce, bruce, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 2s));</div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> <span class="keyword">auto</span> <span class="keyword">const</span> bb = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(bruce.id(), bseq));</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> BEAST_EXPECT(bb);</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> </div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> {</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bb) != bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> }</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> </div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(alice, alice, aseq));</div>
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> {</div>
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), aseq)));</div>
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> </div>
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> aod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(alice.id()));</div>
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), aa) == aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> </div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bb) != bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> }</div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> </div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bruce, bruce, bseq));</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> {</div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(bruce.id(), bseq)));</div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bb) == bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span> }</div>
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> }</div>
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> {</div>
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Metadata to other&quot;</span>);</div>
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> </div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</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="l01207" name="l01207"></a><span class="lineno"> 1207</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bruce, carol);</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> <span class="keyword">auto</span> <span class="keyword">const</span> aseq = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keyword">auto</span> <span class="keyword">const</span> bseq = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bruce);</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> </div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bruce, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(bruce, carol, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 2s));</div>
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> (*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">meta</a>())[sfTransactionResult] ==</div>
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <span class="keyword">static_cast&lt;</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a><span class="keyword">&gt;</span>(<a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>));</div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> </div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> <span class="keyword">auto</span> <span class="keyword">const</span> ab = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), aseq));</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> BEAST_EXPECT(ab);</div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> </div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <span class="keyword">auto</span> <span class="keyword">const</span> bc = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(bruce.id(), bseq));</div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> BEAST_EXPECT(bc);</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> </div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> {</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> aod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(alice.id()));</div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) != aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> </div>
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 2);</div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) != bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bc) != bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> </div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> cod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(carol.id()));</div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(cod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), cod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(cod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), cod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bc) != cod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> }</div>
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> </div>
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(alice, alice, aseq));</div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> {</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), aseq)));</div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(bruce.id(), bseq)));</div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> </div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> aod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(alice.id()));</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) == aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> </div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) == bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bc) != bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> </div>
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> cod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(carol.id()));</div>
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(cod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), cod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 1);</div>
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> }</div>
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> </div>
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>(5s);</div>
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bruce, bruce, bseq));</div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> {</div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(alice.id(), aseq)));</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> BEAST_EXPECT(!env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">le</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(bruce.id(), bseq)));</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> </div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> aod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(alice.id()));</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(aod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) == aod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> </div>
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> bod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(bruce.id()));</div>
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), ab) == bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> BEAST_EXPECT(</div>
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a>(bod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>(), bc) == bod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>());</div>
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> </div>
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> <a class="code hl_class" href="classripple_1_1Dir.html">ripple::Dir</a> cod(*env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>(), <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(carol.id()));</div>
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> BEAST_EXPECT(<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a>(cod.<a class="code hl_function" href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">begin</a>(), cod.<a class="code hl_function" href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">end</a>()) == 0);</div>
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> }</div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> }</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> }</div>
</div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> </div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01297" data-start="{" data-end="}">
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a6934cf4b3668b9a55a7c89e050ab4c6a"> 1297</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a6934cf4b3668b9a55a7c89e050ab4c6a">testConsequences</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> {</div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Consequences&quot;</span>);</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> </div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</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="l01304" name="l01304"></a><span class="lineno"> 1304</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l01305" name="l01305"></a><span class="lineno"> 1305</span> </div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af50f3bc6a170b27a2f0e5663f373b44d">memoize</a>(<span class="stringliteral">&quot;alice&quot;</span>);</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af50f3bc6a170b27a2f0e5663f373b44d">memoize</a>(<span class="stringliteral">&quot;bob&quot;</span>);</div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#af50f3bc6a170b27a2f0e5663f373b44d">memoize</a>(<span class="stringliteral">&quot;carol&quot;</span>);</div>
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> </div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> {</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> <span class="keyword">auto</span> <span class="keyword">const</span> jtx = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>(</div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(<span class="stringliteral">&quot;alice&quot;</span>, <span class="stringliteral">&quot;carol&quot;</span>, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s),</div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>(1),</div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee));</div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> <span class="keyword">auto</span> <span class="keyword">const</span> pf = <a class="code hl_function" href="namespaceripple.html#a24280b80536d1afd09e24a75f4596922">preflight</a>(</div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>(),</div>
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;rules(),</div>
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> *jtx.stx,</div>
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> <a class="code hl_enumvalue" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6eaf77cbea9706ce2ee7fdf5a85efbf70c5">tapNONE</a>,</div>
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> env.<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">journal</a>);</div>
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> BEAST_EXPECT(pf.ter == <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>);</div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> BEAST_EXPECT(!pf.consequences.isBlocker());</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> BEAST_EXPECT(pf.consequences.fee() == <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee));</div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> BEAST_EXPECT(pf.consequences.potentialSpend() == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000));</div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> }</div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> </div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> {</div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> <span class="keyword">auto</span> <span class="keyword">const</span> jtx =</div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, 3), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>(1), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee));</div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> <span class="keyword">auto</span> <span class="keyword">const</span> pf = <a class="code hl_function" href="namespaceripple.html#a24280b80536d1afd09e24a75f4596922">preflight</a>(</div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>(),</div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;rules(),</div>
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> *jtx.stx,</div>
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> <a class="code hl_enumvalue" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6eaf77cbea9706ce2ee7fdf5a85efbf70c5">tapNONE</a>,</div>
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> env.<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">journal</a>);</div>
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> BEAST_EXPECT(pf.ter == <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>);</div>
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> BEAST_EXPECT(!pf.consequences.isBlocker());</div>
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> BEAST_EXPECT(pf.consequences.fee() == <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee));</div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> BEAST_EXPECT(pf.consequences.potentialSpend() == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> }</div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> </div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> {</div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> <span class="keyword">auto</span> <span class="keyword">const</span> jtx =</div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">jt</a>(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(<span class="stringliteral">&quot;bob&quot;</span>, <span class="stringliteral">&quot;alice&quot;</span>, 3), <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>(1), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(baseFee));</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> <span class="keyword">auto</span> <span class="keyword">const</span> pf = <a class="code hl_function" href="namespaceripple.html#a24280b80536d1afd09e24a75f4596922">preflight</a>(</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">app</a>(),</div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;rules(),</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> *jtx.stx,</div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> <a class="code hl_enumvalue" href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6eaf77cbea9706ce2ee7fdf5a85efbf70c5">tapNONE</a>,</div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> env.<a class="code hl_variable" href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">journal</a>);</div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> BEAST_EXPECT(pf.ter == <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>);</div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> BEAST_EXPECT(!pf.consequences.isBlocker());</div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> BEAST_EXPECT(pf.consequences.fee() == <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">drops</a>(baseFee));</div>
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> BEAST_EXPECT(pf.consequences.potentialSpend() == <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(0));</div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> }</div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> }</div>
</div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> </div>
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01360" data-start="{" data-end="}">
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#ad10a97c74d2e9506081a1bbd9a05350f"> 1360</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#ad10a97c74d2e9506081a1bbd9a05350f">testEscrowWithTickets</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> {</div>
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Escrow with tickets&quot;</span>);</div>
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span> </div>
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> alice{<span class="stringliteral">&quot;alice&quot;</span>};</div>
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> bob{<span class="stringliteral">&quot;bob&quot;</span>};</div>
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> </div>
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> {</div>
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">// Create escrow and finish using tickets.</span></div>
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</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="l01372" name="l01372"></a><span class="lineno"> 1372</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l01373" name="l01373"></a><span class="lineno"> 1373</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob);</div>
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</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="l01375" name="l01375"></a><span class="lineno"> 1375</span> </div>
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span> <span class="comment">// alice creates a ticket.</span></div>
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</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> aliceTicket{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice) + 1};</div>
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(alice, 1));</div>
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> </div>
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> <span class="comment">// bob creates a bunch of tickets because he will be burning</span></div>
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">// through them with tec transactions. Just because we can</span></div>
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> <span class="comment">// we&#39;ll use them up starting from largest and going smaller.</span></div>
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> <span class="keyword">constexpr</span> <span class="keyword">static</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicketCount{20};</div>
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</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="l01386" name="l01386"></a><span class="lineno"> 1386</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicket{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob)};</div>
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, 1));</div>
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> </div>
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">// Note that from here on all transactions use tickets. No account</span></div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> <span class="comment">// root sequences should change.</span></div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</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> aliceRootSeq{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice)};</div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</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> bobRootSeq{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob)};</div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> </div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">// alice creates an escrow that can be finished in the future</span></div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 97s;</div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> </div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</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> escrowSeq = aliceTicket;</div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(ts),</div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicket));</div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice) == aliceRootSeq);</div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, 0));</div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> </div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> <span class="comment">// Advance the ledger, verifying that the finish won&#39;t complete</span></div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> <span class="comment">// prematurely. Note that each tec consumes one of bob&#39;s tickets.</span></div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; ts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> {</div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(--bobTicket),</div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</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="l01414" name="l01414"></a><span class="lineno"> 1414</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) == bobRootSeq);</div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> }</div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span> </div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span> <span class="comment">// bob tries to re-use a ticket, which is rejected.</span></div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicket),</div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</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#a75cb21d7f1df42f2fdc8efddb79b63f4a428f826ecea84dc8b43351c2d2b2117a">tefNO_TICKET</a>));</div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span> </div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span> <span class="comment">// bob uses one of his remaining tickets. Success!</span></div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(--bobTicket));</div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</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="l01428" name="l01428"></a><span class="lineno"> 1428</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) == bobRootSeq);</div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span> }</div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span> {</div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">// Create escrow and cancel using tickets.</span></div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</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="l01433" name="l01433"></a><span class="lineno"> 1433</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee = 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="l01434" name="l01434"></a><span class="lineno"> 1434</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob);</div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</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="l01436" name="l01436"></a><span class="lineno"> 1436</span> </div>
<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"> 1437</span> <span class="comment">// alice creates a ticket.</span></div>
<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</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> aliceTicket{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice) + 1};</div>
<div class="line"><a id="l01439" name="l01439"></a><span class="lineno"> 1439</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(alice, 1));</div>
<div class="line"><a id="l01440" name="l01440"></a><span class="lineno"> 1440</span> </div>
<div class="line"><a id="l01441" name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">// bob creates a bunch of tickets because he will be burning</span></div>
<div class="line"><a id="l01442" name="l01442"></a><span class="lineno"> 1442</span> <span class="comment">// through them with tec transactions.</span></div>
<div class="line"><a id="l01443" name="l01443"></a><span class="lineno"> 1443</span> <span class="keyword">constexpr</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicketCount{20};</div>
<div class="line"><a id="l01444" name="l01444"></a><span class="lineno"> 1444</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> bobTicket{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) + 1};</div>
<div class="line"><a id="l01445" name="l01445"></a><span class="lineno"> 1445</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ticket::create</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01446" name="l01446"></a><span class="lineno"> 1446</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="l01447" name="l01447"></a><span class="lineno"> 1447</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, 1));</div>
<div class="line"><a id="l01448" name="l01448"></a><span class="lineno"> 1448</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01449" name="l01449"></a><span class="lineno"> 1449</span> </div>
<div class="line"><a id="l01450" name="l01450"></a><span class="lineno"> 1450</span> <span class="comment">// Note that from here on all transactions use tickets. No account</span></div>
<div class="line"><a id="l01451" name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">// root sequences should change.</span></div>
<div class="line"><a id="l01452" name="l01452"></a><span class="lineno"> 1452</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> aliceRootSeq{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice)};</div>
<div class="line"><a id="l01453" name="l01453"></a><span class="lineno"> 1453</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> bobRootSeq{env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob)};</div>
<div class="line"><a id="l01454" name="l01454"></a><span class="lineno"> 1454</span> </div>
<div class="line"><a id="l01455" name="l01455"></a><span class="lineno"> 1455</span> <span class="comment">// alice creates an escrow that can be finished in the future.</span></div>
<div class="line"><a id="l01456" name="l01456"></a><span class="lineno"> 1456</span> <span class="keyword">auto</span> <span class="keyword">const</span> ts = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 117s;</div>
<div class="line"><a id="l01457" name="l01457"></a><span class="lineno"> 1457</span> </div>
<div class="line"><a id="l01458" name="l01458"></a><span class="lineno"> 1458</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> escrowSeq = aliceTicket;</div>
<div class="line"><a id="l01459" name="l01459"></a><span class="lineno"> 1459</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"> 1460</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">escrow::cancel_time</a>(ts),</div>
<div class="line"><a id="l01462" name="l01462"></a><span class="lineno"> 1462</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(aliceTicket));</div>
<div class="line"><a id="l01463" name="l01463"></a><span class="lineno"> 1463</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice) == aliceRootSeq);</div>
<div class="line"><a id="l01464" name="l01464"></a><span class="lineno"> 1464</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(alice, 0));</div>
<div class="line"><a id="l01465" name="l01465"></a><span class="lineno"> 1465</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, bobTicketCount));</div>
<div class="line"><a id="l01466" name="l01466"></a><span class="lineno"> 1466</span> </div>
<div class="line"><a id="l01467" name="l01467"></a><span class="lineno"> 1467</span> <span class="comment">// Advance the ledger, verifying that the cancel won&#39;t complete</span></div>
<div class="line"><a id="l01468" name="l01468"></a><span class="lineno"> 1468</span> <span class="comment">// prematurely.</span></div>
<div class="line"><a id="l01469" name="l01469"></a><span class="lineno"> 1469</span> <span class="keywordflow">for</span> (; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() &lt; ts; env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">close</a>())</div>
<div class="line"><a id="l01470" name="l01470"></a><span class="lineno"> 1470</span> {</div>
<div class="line"><a id="l01471" name="l01471"></a><span class="lineno"> 1471</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01472" name="l01472"></a><span class="lineno"> 1472</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01473" name="l01473"></a><span class="lineno"> 1473</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicket++),</div>
<div class="line"><a id="l01474" name="l01474"></a><span class="lineno"> 1474</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="l01475" name="l01475"></a><span class="lineno"> 1475</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) == bobRootSeq);</div>
<div class="line"><a id="l01476" name="l01476"></a><span class="lineno"> 1476</span> }</div>
<div class="line"><a id="l01477" name="l01477"></a><span class="lineno"> 1477</span> </div>
<div class="line"><a id="l01478" name="l01478"></a><span class="lineno"> 1478</span> <span class="comment">// Verify that a finish won&#39;t work anymore.</span></div>
<div class="line"><a id="l01479" name="l01479"></a><span class="lineno"> 1479</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01480" name="l01480"></a><span class="lineno"> 1480</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">escrow::condition</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">escrow::cb1</a>),</div>
<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"> 1481</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">escrow::fulfillment</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">escrow::fb1</a>),</div>
<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01483" name="l01483"></a><span class="lineno"> 1483</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicket++),</div>
<div class="line"><a id="l01484" name="l01484"></a><span class="lineno"> 1484</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="l01485" name="l01485"></a><span class="lineno"> 1485</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) == bobRootSeq);</div>
<div class="line"><a id="l01486" name="l01486"></a><span class="lineno"> 1486</span> </div>
<div class="line"><a id="l01487" name="l01487"></a><span class="lineno"> 1487</span> <span class="comment">// Verify that the cancel succeeds.</span></div>
<div class="line"><a id="l01488" name="l01488"></a><span class="lineno"> 1488</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">escrow::cancel</a>(bob, alice, escrowSeq),</div>
<div class="line"><a id="l01489" name="l01489"></a><span class="lineno"> 1489</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1fee.html">fee</a>(150 * baseFee),</div>
<div class="line"><a id="l01490" name="l01490"></a><span class="lineno"> 1490</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ticket::use</a>(bobTicket++));</div>
<div class="line"><a id="l01491" name="l01491"></a><span class="lineno"> 1491</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="l01492" name="l01492"></a><span class="lineno"> 1492</span> BEAST_EXPECT(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) == bobRootSeq);</div>
<div class="line"><a id="l01493" name="l01493"></a><span class="lineno"> 1493</span> </div>
<div class="line"><a id="l01494" name="l01494"></a><span class="lineno"> 1494</span> <span class="comment">// Verify that bob actually consumed his tickets.</span></div>
<div class="line"><a id="l01495" name="l01495"></a><span class="lineno"> 1495</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">require</a>(<a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">tickets</a>(bob, env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(bob) - bobTicket));</div>
<div class="line"><a id="l01496" name="l01496"></a><span class="lineno"> 1496</span> }</div>
<div class="line"><a id="l01497" name="l01497"></a><span class="lineno"> 1497</span> }</div>
</div>
<div class="line"><a id="l01498" name="l01498"></a><span class="lineno"> 1498</span> </div>
<div class="line"><a id="l01499" name="l01499"></a><span class="lineno"> 1499</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01500" data-start="{" data-end="}">
<div class="line"><a id="l01500" name="l01500"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a2e24f33305c0a499ea5b4296112c9a43"> 1500</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a2e24f33305c0a499ea5b4296112c9a43">testCredentials</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01501" name="l01501"></a><span class="lineno"> 1501</span> {</div>
<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"> 1502</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Test with credentials&quot;</span>);</div>
<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> </div>
<div class="line"><a id="l01504" name="l01504"></a><span class="lineno"> 1504</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l01505" name="l01505"></a><span class="lineno"> 1505</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l01506" name="l01506"></a><span class="lineno"> 1506</span> </div>
<div class="line"><a id="l01507" name="l01507"></a><span class="lineno"> 1507</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> alice{<span class="stringliteral">&quot;alice&quot;</span>};</div>
<div class="line"><a id="l01508" name="l01508"></a><span class="lineno"> 1508</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> bob{<span class="stringliteral">&quot;bob&quot;</span>};</div>
<div class="line"><a id="l01509" name="l01509"></a><span class="lineno"> 1509</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> carol{<span class="stringliteral">&quot;carol&quot;</span>};</div>
<div class="line"><a id="l01510" name="l01510"></a><span class="lineno"> 1510</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> dillon{<span class="stringliteral">&quot;dillon &quot;</span>};</div>
<div class="line"><a id="l01511" name="l01511"></a><span class="lineno"> 1511</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> zelda{<span class="stringliteral">&quot;zelda&quot;</span>};</div>
<div class="line"><a id="l01512" name="l01512"></a><span class="lineno"> 1512</span> </div>
<div class="line"><a id="l01513" name="l01513"></a><span class="lineno"> 1513</span> <span class="keywordtype">char</span> <span class="keyword">const</span> credType[] = <span class="stringliteral">&quot;abcde&quot;</span>;</div>
<div class="line"><a id="l01514" name="l01514"></a><span class="lineno"> 1514</span> </div>
<div class="line"><a id="l01515" name="l01515"></a><span class="lineno"> 1515</span> {</div>
<div class="line"><a id="l01516" name="l01516"></a><span class="lineno"> 1516</span> <span class="comment">// Credentials amendment not enabled</span></div>
<div class="line"><a id="l01517" name="l01517"></a><span class="lineno"> 1517</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Env.html">Env</a> env(*<span class="keyword">this</span>, features - featureCredentials);</div>
<div class="line"><a id="l01518" name="l01518"></a><span class="lineno"> 1518</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob);</div>
<div class="line"><a id="l01519" name="l01519"></a><span class="lineno"> 1519</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="l01520" name="l01520"></a><span class="lineno"> 1520</span> </div>
<div class="line"><a id="l01521" name="l01521"></a><span class="lineno"> 1521</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01522" name="l01522"></a><span class="lineno"> 1522</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01523" name="l01523"></a><span class="lineno"> 1523</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l01524" name="l01524"></a><span class="lineno"> 1524</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="l01525" name="l01525"></a><span class="lineno"> 1525</span> </div>
<div class="line"><a id="l01526" name="l01526"></a><span class="lineno"> 1526</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(bob, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l01527" name="l01527"></a><span class="lineno"> 1527</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="l01528" name="l01528"></a><span class="lineno"> 1528</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#a662867f42cb3f468f2e8830fbd7e0d8a">deposit::auth</a>(bob, alice));</div>
<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</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="l01530" name="l01530"></a><span class="lineno"> 1530</span> </div>
<div class="line"><a id="l01531" name="l01531"></a><span class="lineno"> 1531</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span> credIdx =</div>
<div class="line"><a id="l01532" name="l01532"></a><span class="lineno"> 1532</span> <span class="stringliteral">&quot;48004829F915654A81B11C4AB8218D96FED67F209B58328A72314FB6EA288B&quot;</span></div>
<div class="line"><a id="l01533" name="l01533"></a><span class="lineno"> 1533</span> <span class="stringliteral">&quot;E4&quot;</span>;</div>
<div class="line"><a id="l01534" name="l01534"></a><span class="lineno"> 1534</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01535" name="l01535"></a><span class="lineno"> 1535</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}),</div>
<div class="line"><a id="l01536" name="l01536"></a><span class="lineno"> 1536</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#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">temDISABLED</a>));</div>
<div class="line"><a id="l01537" name="l01537"></a><span class="lineno"> 1537</span> }</div>
<div class="line"><a id="l01538" name="l01538"></a><span class="lineno"> 1538</span> </div>
<div class="line"><a id="l01539" name="l01539"></a><span class="lineno"> 1539</span> {</div>
<div class="line"><a id="l01540" name="l01540"></a><span class="lineno"> 1540</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="l01541" name="l01541"></a><span class="lineno"> 1541</span> </div>
<div class="line"><a id="l01542" name="l01542"></a><span class="lineno"> 1542</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob, carol, dillon, zelda);</div>
<div class="line"><a id="l01543" name="l01543"></a><span class="lineno"> 1543</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="l01544" name="l01544"></a><span class="lineno"> 1544</span> </div>
<div class="line"><a id="l01545" name="l01545"></a><span class="lineno"> 1545</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a0529a6b1613da8aa0c2a8964b1820ac9">credentials::create</a>(carol, zelda, credType));</div>
<div class="line"><a id="l01546" name="l01546"></a><span class="lineno"> 1546</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="l01547" name="l01547"></a><span class="lineno"> 1547</span> <span class="keyword">auto</span> <span class="keyword">const</span> jv =</div>
<div class="line"><a id="l01548" name="l01548"></a><span class="lineno"> 1548</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#ade27ecac76c7d1262720bd7f112cf28e">credentials::ledgerEntry</a>(env, carol, zelda, credType);</div>
<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"> 1549</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span> credIdx = jv[jss::result][jss::index].asString();</div>
<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span> </div>
<div class="line"><a id="l01551" name="l01551"></a><span class="lineno"> 1551</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01552" name="l01552"></a><span class="lineno"> 1552</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01553" name="l01553"></a><span class="lineno"> 1553</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 50s));</div>
<div class="line"><a id="l01554" name="l01554"></a><span class="lineno"> 1554</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="l01555" name="l01555"></a><span class="lineno"> 1555</span> </div>
<div class="line"><a id="l01556" name="l01556"></a><span class="lineno"> 1556</span> <span class="comment">// Bob require preauthorization</span></div>
<div class="line"><a id="l01557" name="l01557"></a><span class="lineno"> 1557</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(bob, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l01558" name="l01558"></a><span class="lineno"> 1558</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="l01559" name="l01559"></a><span class="lineno"> 1559</span> </div>
<div class="line"><a id="l01560" name="l01560"></a><span class="lineno"> 1560</span> <span class="comment">// Fail, credentials not accepted</span></div>
<div class="line"><a id="l01561" name="l01561"></a><span class="lineno"> 1561</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(carol, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01562" name="l01562"></a><span class="lineno"> 1562</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}),</div>
<div class="line"><a id="l01563" name="l01563"></a><span class="lineno"> 1563</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#aa298e929e02f59c2b05a30ee8805b38ca949bc4765f151a8866814dafbd8ea558">tecBAD_CREDENTIALS</a>));</div>
<div class="line"><a id="l01564" name="l01564"></a><span class="lineno"> 1564</span> </div>
<div class="line"><a id="l01565" name="l01565"></a><span class="lineno"> 1565</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="l01566" name="l01566"></a><span class="lineno"> 1566</span> </div>
<div class="line"><a id="l01567" name="l01567"></a><span class="lineno"> 1567</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a3c554c809a810395ee98a696ca447fb5">credentials::accept</a>(carol, zelda, credType));</div>
<div class="line"><a id="l01568" name="l01568"></a><span class="lineno"> 1568</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="l01569" name="l01569"></a><span class="lineno"> 1569</span> </div>
<div class="line"><a id="l01570" name="l01570"></a><span class="lineno"> 1570</span> <span class="comment">// Fail, credentials doesnt belong to root account</span></div>
<div class="line"><a id="l01571" name="l01571"></a><span class="lineno"> 1571</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(dillon, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01572" name="l01572"></a><span class="lineno"> 1572</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}),</div>
<div class="line"><a id="l01573" name="l01573"></a><span class="lineno"> 1573</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#aa298e929e02f59c2b05a30ee8805b38ca949bc4765f151a8866814dafbd8ea558">tecBAD_CREDENTIALS</a>));</div>
<div class="line"><a id="l01574" name="l01574"></a><span class="lineno"> 1574</span> </div>
<div class="line"><a id="l01575" name="l01575"></a><span class="lineno"> 1575</span> <span class="comment">// Fail, no depositPreauth</span></div>
<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"> 1576</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(carol, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}),</div>
<div class="line"><a id="l01578" name="l01578"></a><span class="lineno"> 1578</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="l01579" name="l01579"></a><span class="lineno"> 1579</span> </div>
<div class="line"><a id="l01580" name="l01580"></a><span class="lineno"> 1580</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#ac0c24df5082c3715d3be7a4a7617b9d5">deposit::authCredentials</a>(bob, {{zelda, credType}}));</div>
<div class="line"><a id="l01581" name="l01581"></a><span class="lineno"> 1581</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="l01582" name="l01582"></a><span class="lineno"> 1582</span> </div>
<div class="line"><a id="l01583" name="l01583"></a><span class="lineno"> 1583</span> <span class="comment">// Success</span></div>
<div class="line"><a id="l01584" name="l01584"></a><span class="lineno"> 1584</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="l01585" name="l01585"></a><span class="lineno"> 1585</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(carol, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}));</div>
<div class="line"><a id="l01586" name="l01586"></a><span class="lineno"> 1586</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="l01587" name="l01587"></a><span class="lineno"> 1587</span> }</div>
<div class="line"><a id="l01588" name="l01588"></a><span class="lineno"> 1588</span> </div>
<div class="line"><a id="l01589" name="l01589"></a><span class="lineno"> 1589</span> {</div>
<div class="line"><a id="l01590" name="l01590"></a><span class="lineno"> 1590</span> <a class="code hl_variable" href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">testcase</a>(<span class="stringliteral">&quot;Escrow with credentials without depositPreauth&quot;</span>);</div>
<div class="line"><a id="l01591" name="l01591"></a><span class="lineno"> 1591</span> <span class="keyword">using namespace </span><a class="code hl_namespaceRef" href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a>;</div>
<div class="line"><a id="l01592" name="l01592"></a><span class="lineno"> 1592</span> </div>
<div class="line"><a id="l01593" name="l01593"></a><span class="lineno"> 1593</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="l01594" name="l01594"></a><span class="lineno"> 1594</span> </div>
<div class="line"><a id="l01595" name="l01595"></a><span class="lineno"> 1595</span> env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">fund</a>(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(5000), alice, bob, carol, dillon, zelda);</div>
<div class="line"><a id="l01596" name="l01596"></a><span class="lineno"> 1596</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="l01597" name="l01597"></a><span class="lineno"> 1597</span> </div>
<div class="line"><a id="l01598" name="l01598"></a><span class="lineno"> 1598</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a0529a6b1613da8aa0c2a8964b1820ac9">credentials::create</a>(carol, zelda, credType));</div>
<div class="line"><a id="l01599" name="l01599"></a><span class="lineno"> 1599</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="l01600" name="l01600"></a><span class="lineno"> 1600</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a3c554c809a810395ee98a696ca447fb5">credentials::accept</a>(carol, zelda, credType));</div>
<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</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="l01602" name="l01602"></a><span class="lineno"> 1602</span> <span class="keyword">auto</span> <span class="keyword">const</span> jv =</div>
<div class="line"><a id="l01603" name="l01603"></a><span class="lineno"> 1603</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#ade27ecac76c7d1262720bd7f112cf28e">credentials::ledgerEntry</a>(env, carol, zelda, credType);</div>
<div class="line"><a id="l01604" name="l01604"></a><span class="lineno"> 1604</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> <span class="keyword">const</span> credIdx = jv[jss::result][jss::index].asString();</div>
<div class="line"><a id="l01605" name="l01605"></a><span class="lineno"> 1605</span> </div>
<div class="line"><a id="l01606" name="l01606"></a><span class="lineno"> 1606</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01607" name="l01607"></a><span class="lineno"> 1607</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01608" name="l01608"></a><span class="lineno"> 1608</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 50s));</div>
<div class="line"><a id="l01609" name="l01609"></a><span class="lineno"> 1609</span> <span class="comment">// time advance</span></div>
<div class="line"><a id="l01610" name="l01610"></a><span class="lineno"> 1610</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="l01611" name="l01611"></a><span class="lineno"> 1611</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="l01612" name="l01612"></a><span class="lineno"> 1612</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="l01613" name="l01613"></a><span class="lineno"> 1613</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="l01614" name="l01614"></a><span class="lineno"> 1614</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="l01615" name="l01615"></a><span class="lineno"> 1615</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="l01616" name="l01616"></a><span class="lineno"> 1616</span> </div>
<div class="line"><a id="l01617" name="l01617"></a><span class="lineno"> 1617</span> <span class="comment">// Succeed, Bob doesn&#39;t require preauthorization</span></div>
<div class="line"><a id="l01618" name="l01618"></a><span class="lineno"> 1618</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(carol, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdx}));</div>
<div class="line"><a id="l01619" name="l01619"></a><span class="lineno"> 1619</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="l01620" name="l01620"></a><span class="lineno"> 1620</span> </div>
<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"> 1621</span> {</div>
<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span> <span class="keywordtype">char</span> <span class="keyword">const</span> credType2[] = <span class="stringliteral">&quot;fghijk&quot;</span>;</div>
<div class="line"><a id="l01623" name="l01623"></a><span class="lineno"> 1623</span> </div>
<div class="line"><a id="l01624" name="l01624"></a><span class="lineno"> 1624</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a0529a6b1613da8aa0c2a8964b1820ac9">credentials::create</a>(bob, zelda, credType2));</div>
<div class="line"><a id="l01625" name="l01625"></a><span class="lineno"> 1625</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="l01626" name="l01626"></a><span class="lineno"> 1626</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a3c554c809a810395ee98a696ca447fb5">credentials::accept</a>(bob, zelda, credType2));</div>
<div class="line"><a id="l01627" name="l01627"></a><span class="lineno"> 1627</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="l01628" name="l01628"></a><span class="lineno"> 1628</span> <span class="keyword">auto</span> <span class="keyword">const</span> credIdxBob =</div>
<div class="line"><a id="l01629" name="l01629"></a><span class="lineno"> 1629</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#ade27ecac76c7d1262720bd7f112cf28e">credentials::ledgerEntry</a>(</div>
<div class="line"><a id="l01630" name="l01630"></a><span class="lineno"> 1630</span> env, bob, zelda, credType2)[jss::result][jss::index]</div>
<div class="line"><a id="l01631" name="l01631"></a><span class="lineno"> 1631</span> .<a class="code hl_function" href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">asString</a>();</div>
<div class="line"><a id="l01632" name="l01632"></a><span class="lineno"> 1632</span> </div>
<div class="line"><a id="l01633" name="l01633"></a><span class="lineno"> 1633</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> = env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">seq</a>(alice);</div>
<div class="line"><a id="l01634" name="l01634"></a><span class="lineno"> 1634</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">escrow::create</a>(alice, bob, <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1000)),</div>
<div class="line"><a id="l01635" name="l01635"></a><span class="lineno"> 1635</span> <a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">escrow::finish_time</a>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">now</a>() + 1s));</div>
<div class="line"><a id="l01636" name="l01636"></a><span class="lineno"> 1636</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="l01637" name="l01637"></a><span class="lineno"> 1637</span> </div>
<div class="line"><a id="l01638" name="l01638"></a><span class="lineno"> 1638</span> <span class="comment">// Bob require preauthorization</span></div>
<div class="line"><a id="l01639" name="l01639"></a><span class="lineno"> 1639</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(bob, <a class="code hl_variable" href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">asfDepositAuth</a>));</div>
<div class="line"><a id="l01640" name="l01640"></a><span class="lineno"> 1640</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="l01641" name="l01641"></a><span class="lineno"> 1641</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#ac0c24df5082c3715d3be7a4a7617b9d5">deposit::authCredentials</a>(bob, {{zelda, credType}}));</div>
<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"> 1642</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="l01643" name="l01643"></a><span class="lineno"> 1643</span> </div>
<div class="line"><a id="l01644" name="l01644"></a><span class="lineno"> 1644</span> <span class="comment">// Use any valid credentials if account == dst</span></div>
<div class="line"><a id="l01645" name="l01645"></a><span class="lineno"> 1645</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">escrow::finish</a>(bob, alice, <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>),</div>
<div class="line"><a id="l01646" name="l01646"></a><span class="lineno"> 1646</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">credentials::ids</a>({credIdxBob}));</div>
<div class="line"><a id="l01647" name="l01647"></a><span class="lineno"> 1647</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="l01648" name="l01648"></a><span class="lineno"> 1648</span> }</div>
<div class="line"><a id="l01649" name="l01649"></a><span class="lineno"> 1649</span> }</div>
<div class="line"><a id="l01650" name="l01650"></a><span class="lineno"> 1650</span> }</div>
</div>
<div class="line"><a id="l01651" name="l01651"></a><span class="lineno"> 1651</span> </div>
<div class="line"><a id="l01652" name="l01652"></a><span class="lineno"> 1652</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01653" data-start="{" data-end="}">
<div class="line"><a id="l01653" name="l01653"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#ac61c2659a62bfd7f97b1e59358191c59"> 1653</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#ac61c2659a62bfd7f97b1e59358191c59">testWithFeats</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l01654" name="l01654"></a><span class="lineno"> 1654</span> {</div>
<div class="line"><a id="l01655" name="l01655"></a><span class="lineno"> 1655</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a6c091b6222b499b93e5a7200c57e32f9">testEnablement</a>(features);</div>
<div class="line"><a id="l01656" name="l01656"></a><span class="lineno"> 1656</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#af7ce5920308132ab9e6f0adbdc781b5d">testTiming</a>(features);</div>
<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"> 1657</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a39e9333db819456e231f21b5ed237adf">testTags</a>(features);</div>
<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#af084b442ceb8419b2cb2dc1ac0ac126d">testDisallowXRP</a>(features);</div>
<div class="line"><a id="l01659" name="l01659"></a><span class="lineno"> 1659</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#aa325f898b6d27b64c0c348aaf45f70f1">testRequiresConditionOrFinishAfter</a>(features);</div>
<div class="line"><a id="l01660" name="l01660"></a><span class="lineno"> 1660</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a2f9a833073e5e55ae3c9de8bf4f35e52">testFails</a>(features);</div>
<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"> 1661</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a1ccaf0e6bf9082b50b33c79e52accb46">testLockup</a>(features);</div>
<div class="line"><a id="l01662" name="l01662"></a><span class="lineno"> 1662</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a30d2eda60ddb8f1d6345d83bfe6a4974">testEscrowConditions</a>(features);</div>
<div class="line"><a id="l01663" name="l01663"></a><span class="lineno"> 1663</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a3fee0d7540d2f764fe57db2913d1e7e0">testMetaAndOwnership</a>(features);</div>
<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"> 1664</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a6934cf4b3668b9a55a7c89e050ab4c6a">testConsequences</a>(features);</div>
<div class="line"><a id="l01665" name="l01665"></a><span class="lineno"> 1665</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#ad10a97c74d2e9506081a1bbd9a05350f">testEscrowWithTickets</a>(features);</div>
<div class="line"><a id="l01666" name="l01666"></a><span class="lineno"> 1666</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a2e24f33305c0a499ea5b4296112c9a43">testCredentials</a>(features);</div>
<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"> 1667</span> }</div>
</div>
<div class="line"><a id="l01668" name="l01668"></a><span class="lineno"> 1668</span> </div>
<div class="line"><a id="l01669" name="l01669"></a><span class="lineno"> 1669</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"> 1670</span> <span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen01671" data-start="{" data-end="}">
<div class="line"><a id="l01671" name="l01671"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1Escrow__test.html#a0300ce57d20dc291d87e5c2f69965732"> 1671</a></span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a0300ce57d20dc291d87e5c2f69965732">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l01672" name="l01672"></a><span class="lineno"> 1672</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"> 1673</span> <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a id="l01674" name="l01674"></a><span class="lineno"> 1674</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="l01675" name="l01675"></a><span class="lineno"> 1675</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#ac61c2659a62bfd7f97b1e59358191c59">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a>);</div>
<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"> 1676</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#ac61c2659a62bfd7f97b1e59358191c59">testWithFeats</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - featureTokenEscrow);</div>
<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"> 1677</span> <a class="code hl_function" href="structripple_1_1test_1_1Escrow__test.html#a39e9333db819456e231f21b5ed237adf">testTags</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">all</a> - fixIncludeKeyletFields);</div>
<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> }</div>
</div>
<div class="line"><a id="l01679" name="l01679"></a><span class="lineno"> 1679</span>};</div>
</div>
<div class="line"><a id="l01680" name="l01680"></a><span class="lineno"> 1680</span> </div>
<div class="line"><a id="l01681" name="l01681"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test.html#a1c03bb04dc976e0b9d742f90b0aa1b01"> 1681</a></span>BEAST_DEFINE_TESTSUITE(Escrow, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l01682" name="l01682"></a><span class="lineno"> 1682</span> </div>
<div class="line"><a id="l01683" name="l01683"></a><span class="lineno"> 1683</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l01684" name="l01684"></a><span class="lineno"> 1684</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aalgorithm_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/algorithm.html">algorithm</a></div></div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div></div>
<div class="ttc" id="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_ab0d86bf425efefd03513e8dbfaca317b"><div class="ttname"><a href="classJson_1_1Value.html#ab0d86bf425efefd03513e8dbfaca317b">Json::Value::asString</a></div><div class="ttdeci">std::string asString() const</div><div class="ttdoc">Returns the unquoted string value.</div><div class="ttdef"><b>Definition</b> <a href="json__value_8cpp_source.html#l00471">json_value.cpp:471</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>
<div class="ttc" id="aclassbeast_1_1unit__test_1_1suite_html_aaa1237d9b85c69d35fe86645cee094b5"><div class="ttname"><a href="classbeast_1_1unit__test_1_1suite.html#aaa1237d9b85c69d35fe86645cee094b5">beast::unit_test::suite::testcase</a></div><div class="ttdeci">testcase_t testcase</div><div class="ttdoc">Memberspace for declaring test cases.</div><div class="ttdef"><b>Definition</b> <a href="suite_8h_source.html#l00152">suite.h:152</a></div></div>
<div class="ttc" id="aclassripple_1_1Dir_html"><div class="ttname"><a href="classripple_1_1Dir.html">ripple::Dir</a></div><div class="ttdoc">A class that simplifies iterating ledger directory pages.</div><div class="ttdef"><b>Definition</b> <a href="Dir_8h_source.html#l00021">Dir.h:22</a></div></div>
<div class="ttc" id="aclassripple_1_1Dir_html_a69f16bc7296fba8206ab4dcfc28ecbe8"><div class="ttname"><a href="classripple_1_1Dir.html#a69f16bc7296fba8206ab4dcfc28ecbe8">ripple::Dir::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition</b> <a href="Dir_8cpp_source.html#l00033">Dir.cpp:33</a></div></div>
<div class="ttc" id="aclassripple_1_1Dir_html_ae95c4bb3f21aaaea0fa1e804357d7338"><div class="ttname"><a href="classripple_1_1Dir.html#ae95c4bb3f21aaaea0fa1e804357d7338">ripple::Dir::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition</b> <a href="Dir_8cpp_source.html#l00015">Dir.cpp:15</a></div></div>
<div class="ttc" id="aclassripple_1_1FeatureBitset_html"><div class="ttname"><a href="classripple_1_1FeatureBitset.html">ripple::FeatureBitset</a></div><div class="ttdef"><b>Definition</b> <a href="Feature_8h_source.html#l00143">Feature.h:144</a></div></div>
<div class="ttc" id="aclassripple_1_1Slice_html"><div class="ttname"><a href="classripple_1_1Slice.html">ripple::Slice</a></div><div class="ttdoc">An immutable linear range of bytes.</div><div class="ttdef"><b>Definition</b> <a href="Slice_8h_source.html#l00026">Slice.h:27</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Account_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Account.html">ripple::test::jtx::Account</a></div><div class="ttdoc">Immutable cryptographic account descriptor.</div><div class="ttdef"><b>Definition</b> <a href="Account_8h_source.html#l00019">Account.h:20</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html">ripple::test::jtx::Env</a></div><div class="ttdoc">A transaction testing environment.</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00101">Env.h:102</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a2ef09f6f41b7d8a2dc89175e3b108f87"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a2ef09f6f41b7d8a2dc89175e3b108f87">ripple::test::jtx::Env::seq</a></div><div class="ttdeci">std::uint32_t seq(Account const &amp;account) const</div><div class="ttdoc">Returns the next sequence number on account.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00250">Env.cpp:250</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a34c9d58eaca6b7238258eadaf94b4a46"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a34c9d58eaca6b7238258eadaf94b4a46">ripple::test::jtx::Env::require</a></div><div class="ttdeci">void require(Args const &amp;... args)</div><div class="ttdoc">Check a set of requirements.</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00528">Env.h:528</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a65bedb2e0babbd55343f721de9008a37"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">ripple::test::jtx::Env::current</a></div><div class="ttdeci">std::shared_ptr&lt; OpenView const &gt; current() const</div><div class="ttdoc">Returns the current ledger.</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00312">Env.h:312</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a69095691c9bcfab1f3d69c645f2dbe33"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a69095691c9bcfab1f3d69c645f2dbe33">ripple::test::jtx::Env::close</a></div><div class="ttdeci">bool close(NetClock::time_point closeTime, std::optional&lt; std::chrono::milliseconds &gt; consensusDelay=std::nullopt)</div><div class="ttdoc">Close and advance the ledger.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00103">Env.cpp:103</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ac97544537f03e62be698194aabe47a32"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ac97544537f03e62be698194aabe47a32">ripple::test::jtx::Env::jt</a></div><div class="ttdeci">JTx jt(JsonValue &amp;&amp;jv, FN const &amp;... fN)</div><div class="ttdoc">Create a JTx from parameters.</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00489">Env.h:489</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acb1c9d82d157da3b4f05b7f3756058e4"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acb1c9d82d157da3b4f05b7f3756058e4">ripple::test::jtx::Env::now</a></div><div class="ttdeci">NetClock::time_point now()</div><div class="ttdoc">Returns the current network time.</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00265">Env.h:265</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acd48f8ab02c37b1a30cedf4dec7cc96c"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acd48f8ab02c37b1a30cedf4dec7cc96c">ripple::test::jtx::Env::app</a></div><div class="ttdeci">Application &amp; app()</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00242">Env.h:242</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_acfdfa1e283de8fb2dad0216cd1711307"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#acfdfa1e283de8fb2dad0216cd1711307">ripple::test::jtx::Env::journal</a></div><div class="ttdeci">beast::Journal const journal</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00143">Env.h:143</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_ae2349266cb09d1f1c3de06606ebdf9e2"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#ae2349266cb09d1f1c3de06606ebdf9e2">ripple::test::jtx::Env::fund</a></div><div class="ttdeci">void fund(bool setDefaultRipple, STAmount const &amp;amount, Account const &amp;account)</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00271">Env.cpp:271</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_aeb88ee7af1fd9262cd4bd0738c5748d3"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#aeb88ee7af1fd9262cd4bd0738c5748d3">ripple::test::jtx::Env::meta</a></div><div class="ttdeci">std::shared_ptr&lt; STObject const &gt; meta()</div><div class="ttdoc">Return metadata for the last JTx.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00485">Env.cpp:485</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_af09170466fd01f912527c64d7a34dc1e"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#af09170466fd01f912527c64d7a34dc1e">ripple::test::jtx::Env::balance</a></div><div class="ttdeci">PrettyAmount balance(Account const &amp;account) const</div><div class="ttdoc">Returns the XRP balance on an account.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00165">Env.cpp:165</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_af50f3bc6a170b27a2f0e5663f373b44d"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#af50f3bc6a170b27a2f0e5663f373b44d">ripple::test::jtx::Env::memoize</a></div><div class="ttdeci">void memoize(Account const &amp;account)</div><div class="ttdoc">Associate AccountID with account.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00138">Env.cpp:138</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_af928cd176555b2cf28da85e274c571bc"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#af928cd176555b2cf28da85e274c571bc">ripple::test::jtx::Env::le</a></div><div class="ttdeci">std::shared_ptr&lt; SLE const &gt; le(Account const &amp;account) const</div><div class="ttdoc">Return an account root.</div><div class="ttdef"><b>Definition</b> <a href="Env_8cpp_source.html#l00259">Env.cpp:259</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1balance_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1balance.html">ripple::test::jtx::balance</a></div><div class="ttdoc">A balance matches.</div><div class="ttdef"><b>Definition</b> <a href="balance_8h_source.html#l00019">balance.h:20</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1credentials_1_1ids_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1credentials_1_1ids.html">ripple::test::jtx::credentials::ids</a></div><div class="ttdef"><b>Definition</b> <a href="credentials_8h_source.html#l00043">credentials.h:44</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1fee_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1fee.html">ripple::test::jtx::fee</a></div><div class="ttdoc">Set the fee on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="fee_8h_source.html#l00017">fee.h:18</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1ter_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1ter.html">ripple::test::jtx::ter</a></div><div class="ttdoc">Set the expected result code for a JTx The test will fail if the code doesn't match.</div><div class="ttdef"><b>Definition</b> <a href="ter_8h_source.html#l00015">ter.h:16</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1ticket_1_1use_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1ticket_1_1use.html">ripple::test::jtx::ticket::use</a></div><div class="ttdoc">Set a ticket sequence on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="ticket_8h_source.html#l00028">ticket.h:29</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1txflags_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1txflags.html">ripple::test::jtx::txflags</a></div><div class="ttdoc">Set the flags on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="txflags_8h_source.html#l00011">txflags.h:12</a></div></div>
<div class="ttc" id="adata_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/data.html">std::vector::data</a></div><div class="ttdeci">T data(T... args)</div></div>
<div class="ttc" id="adistance_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/iterator/distance.html">std::distance</a></div><div class="ttdeci">T distance(T... args)</div></div>
<div class="ttc" id="afind_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/find.html">std::find</a></div><div class="ttdeci">T find(T... args)</div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a></div></div>
<div class="ttc" id="aiterator_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/iterator.html">iterator</a></div></div>
<div class="ttc" id="amemcpy_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/byte/memcpy.html">std::memcpy</a></div><div class="ttdeci">T memcpy(T... args)</div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_ab82de2a0ed5a2dde37fcb992a0b36356"><div class="ttname"><a href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">ripple::keylet::escrow</a></div><div class="ttdeci">Keylet escrow(AccountID const &amp;src, std::uint32_t seq) noexcept</div><div class="ttdoc">An escrow entry.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00370">Indexes.cpp:370</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_acd4d51d467fc6e75745baf179a7965ef"><div class="ttname"><a href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">ripple::keylet::ownerDir</a></div><div class="ttdeci">Keylet ownerDir(AccountID const &amp;id) noexcept</div><div class="ttdoc">The root page of an account's directory.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00355">Indexes.cpp:355</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1credentials_html_a0529a6b1613da8aa0c2a8964b1820ac9"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a0529a6b1613da8aa0c2a8964b1820ac9">ripple::test::jtx::credentials::create</a></div><div class="ttdeci">Json::Value create(jtx::Account const &amp;subject, jtx::Account const &amp;issuer, std::string_view credType)</div><div class="ttdef"><b>Definition</b> <a href="creds_8cpp_source.html#l00013">creds.cpp:13</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1credentials_html_a3c554c809a810395ee98a696ca447fb5"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#a3c554c809a810395ee98a696ca447fb5">ripple::test::jtx::credentials::accept</a></div><div class="ttdeci">Json::Value accept(jtx::Account const &amp;subject, jtx::Account const &amp;issuer, std::string_view credType)</div><div class="ttdef"><b>Definition</b> <a href="creds_8cpp_source.html#l00029">creds.cpp:29</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1credentials_html_ade27ecac76c7d1262720bd7f112cf28e"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1credentials.html#ade27ecac76c7d1262720bd7f112cf28e">ripple::test::jtx::credentials::ledgerEntry</a></div><div class="ttdeci">Json::Value ledgerEntry(jtx::Env &amp;env, jtx::Account const &amp;subject, jtx::Account const &amp;issuer, std::string_view credType)</div><div class="ttdef"><b>Definition</b> <a href="creds_8cpp_source.html#l00059">creds.cpp:59</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1deposit_html_a662867f42cb3f468f2e8830fbd7e0d8a"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#a662867f42cb3f468f2e8830fbd7e0d8a">ripple::test::jtx::deposit::auth</a></div><div class="ttdeci">Json::Value auth(Account const &amp;account, Account const &amp;auth)</div><div class="ttdoc">Preauthorize for deposit.</div><div class="ttdef"><b>Definition</b> <a href="deposit_8cpp_source.html#l00013">deposit.cpp:13</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1deposit_html_ac0c24df5082c3715d3be7a4a7617b9d5"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1deposit.html#ac0c24df5082c3715d3be7a4a7617b9d5">ripple::test::jtx::deposit::authCredentials</a></div><div class="ttdeci">Json::Value authCredentials(jtx::Account const &amp;account, std::vector&lt; AuthorizeCredentials &gt; const &amp;auth)</div><div class="ttdef"><b>Definition</b> <a href="deposit_8cpp_source.html#l00035">deposit.cpp:35</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a0d6048ded93ecba891598abc0ba43807"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a0d6048ded93ecba891598abc0ba43807">ripple::test::jtx::escrow::condition</a></div><div class="ttdeci">auto const condition</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00084">escrow.h:84</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a22ea933863ecbff227b326a082d52127"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a22ea933863ecbff227b326a082d52127">ripple::test::jtx::escrow::fb2</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 7 &gt; const fb2</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00059">escrow.h:59</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a3a1579207c6669a706a41ddd53d35431"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3a1579207c6669a706a41ddd53d35431">ripple::test::jtx::escrow::fb3</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 8 &gt; const fb3</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00069">escrow.h:69</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a3c601d61c219f235ee614e1fb24c3248"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3c601d61c219f235ee614e1fb24c3248">ripple::test::jtx::escrow::cb1</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 39 &gt; const cb1</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00052">escrow.h:52</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a3df8c3b232afbec6fb51e8a385f056ce"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a3df8c3b232afbec6fb51e8a385f056ce">ripple::test::jtx::escrow::cb3</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 39 &gt; const cb3</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00072">escrow.h:72</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a4d09eeb359db86171450826678383325"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a4d09eeb359db86171450826678383325">ripple::test::jtx::escrow::create</a></div><div class="ttdeci">Json::Value create(AccountID const &amp;account, AccountID const &amp;to, STAmount const &amp;amount)</div><div class="ttdef"><b>Definition</b> <a href="escrow_8cpp_source.html#l00014">escrow.cpp:14</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a53e4429dc48811bb849b5a4d9ed751b4"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a53e4429dc48811bb849b5a4d9ed751b4">ripple::test::jtx::escrow::finish_time</a></div><div class="ttdeci">auto const finish_time</div><div class="ttdoc">Set the &quot;FinishAfter&quot; time tag on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00079">escrow.h:79</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a7bec6aac0f69fb6772d65a937ccfd4fd"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a7bec6aac0f69fb6772d65a937ccfd4fd">ripple::test::jtx::escrow::fulfillment</a></div><div class="ttdeci">auto const fulfillment</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00086">escrow.h:86</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_a9a4c6814d8c3806defac9610bbc6244a"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#a9a4c6814d8c3806defac9610bbc6244a">ripple::test::jtx::escrow::cancel</a></div><div class="ttdeci">Json::Value cancel(AccountID const &amp;account, Account const &amp;from, std::uint32_t seq)</div><div class="ttdef"><b>Definition</b> <a href="escrow_8cpp_source.html#l00038">escrow.cpp:38</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_aadba0417dbaab42d797a44b2a600fbc5"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aadba0417dbaab42d797a44b2a600fbc5">ripple::test::jtx::escrow::cb2</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 39 &gt; const cb2</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00062">escrow.h:62</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_abd4ed8192d36e430dec2c61f12b27081"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#abd4ed8192d36e430dec2c61f12b27081">ripple::test::jtx::escrow::cancel_time</a></div><div class="ttdeci">auto const cancel_time</div><div class="ttdoc">Set the &quot;CancelAfter&quot; time tag on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00082">escrow.h:82</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_ac34a47c0cea8b56801c3a0e0512dd94f"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#ac34a47c0cea8b56801c3a0e0512dd94f">ripple::test::jtx::escrow::fb1</a></div><div class="ttdeci">std::array&lt; std::uint8_t, 4 &gt; const fb1</div><div class="ttdef"><b>Definition</b> <a href="escrow_8h_source.html#l00050">escrow.h:50</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1escrow_html_aee8f54b78310dbfe08203ca60be3a379"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1escrow.html#aee8f54b78310dbfe08203ca60be3a379">ripple::test::jtx::escrow::finish</a></div><div class="ttdeci">Json::Value finish(AccountID const &amp;account, AccountID const &amp;from, std::uint32_t seq)</div><div class="ttdef"><b>Definition</b> <a href="escrow_8cpp_source.html#l00026">escrow.cpp:26</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1ticket_html_a1e24650b39bab99fc665d9f80365cc27"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1ticket.html#a1e24650b39bab99fc665d9f80365cc27">ripple::test::jtx::ticket::create</a></div><div class="ttdeci">Json::Value create(Account const &amp;account, std::uint32_t count)</div><div class="ttdoc">Create one of more tickets.</div><div class="ttdef"><b>Definition</b> <a href="ticket_8cpp_source.html#l00012">ticket.cpp:12</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a47271eb5e7eb9b5aada383ccfaf9c0cf"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a47271eb5e7eb9b5aada383ccfaf9c0cf">ripple::test::jtx::drops</a></div><div class="ttdeci">PrettyAmount drops(Integer i)</div><div class="ttdoc">Returns an XRP PrettyAmount, which is trivially convertible to STAmount.</div><div class="ttdef"><b>Definition</b> <a href="src_2test_2jtx_2amount_8h_source.html#l00307">src/test/jtx/amount.h:307</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a50cacef3867fc01273aa9c29231f9a7c"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">ripple::test::jtx::fset</a></div><div class="ttdeci">Json::Value fset(Account const &amp;account, std::uint32_t on, std::uint32_t off=0)</div><div class="ttdoc">Add and/or remove flag.</div><div class="ttdef"><b>Definition</b> <a href="flags_8cpp_source.html#l00010">flags.cpp:10</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a8e5379a68ca5b5ae718e77312c2f1f94"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">ripple::test::jtx::testable_amendments</a></div><div class="ttdeci">FeatureBitset testable_amendments()</div><div class="ttdef"><b>Definition</b> <a href="Env_8h_source.html#l00055">Env.h:55</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_ae64f812b5cb3805c184e07d6b1b643de"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#ae64f812b5cb3805c184e07d6b1b643de">ripple::test::jtx::tickets</a></div><div class="ttdeci">owner_count&lt; ltTICKET &gt; tickets</div><div class="ttdoc">Match the number of tickets on the account.</div><div class="ttdef"><b>Definition</b> <a href="ticket_8h_source.html#l00045">ticket.h:45</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_aea9cd3d4e6b5df2e62d53b34b605957e"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">ripple::test::jtx::XRP</a></div><div class="ttdeci">XRP_t const XRP</div><div class="ttdoc">Converts to XRP Issue or STAmount.</div><div class="ttdef"><b>Definition</b> <a href="amount_8cpp_source.html#l00092">amount.cpp:92</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition</b> <a href="algorithm_8h_source.html#l00006">algorithm.h:6</a></div></div>
<div class="ttc" id="anamespaceripple_html_a1d8ec9af2fd805d04e032c52f6968211"><div class="ttname"><a href="namespaceripple.html#a1d8ec9af2fd805d04e032c52f6968211">ripple::asfDepositAuth</a></div><div class="ttdeci">constexpr std::uint32_t asfDepositAuth</div><div class="ttdef"><b>Definition</b> <a href="TxFlags_8h_source.html#l00066">TxFlags.h:66</a></div></div>
<div class="ttc" id="anamespaceripple_html_a24280b80536d1afd09e24a75f4596922"><div class="ttname"><a href="namespaceripple.html#a24280b80536d1afd09e24a75f4596922">ripple::preflight</a></div><div class="ttdeci">PreflightResult preflight(Application &amp;app, Rules const &amp;rules, STTx const &amp;tx, ApplyFlags flags, beast::Journal j)</div><div class="ttdoc">Gate a transaction based on static information.</div><div class="ttdef"><b>Definition</b> <a href="applySteps_8cpp_source.html#l00285">applySteps.cpp:285</a></div></div>
<div class="ttc" id="anamespaceripple_html_a2e3220cb8c660141f5300a9e38841295"><div class="ttname"><a href="namespaceripple.html#a2e3220cb8c660141f5300a9e38841295">ripple::asfRequireDest</a></div><div class="ttdeci">constexpr std::uint32_t asfRequireDest</div><div class="ttdef"><b>Definition</b> <a href="TxFlags_8h_source.html#l00058">TxFlags.h:58</a></div></div>
<div class="ttc" id="anamespaceripple_html_a61d9fbb44b335fbb5e82e3211e6639a2"><div class="ttname"><a href="namespaceripple.html#a61d9fbb44b335fbb5e82e3211e6639a2">ripple::tfPassive</a></div><div class="ttdeci">constexpr std::uint32_t tfPassive</div><div class="ttdef"><b>Definition</b> <a href="TxFlags_8h_source.html#l00079">TxFlags.h:79</a></div></div>
<div class="ttc" id="anamespaceripple_html_a75cb21d7f1df42f2fdc8efddb79b63f4a428f826ecea84dc8b43351c2d2b2117a"><div class="ttname"><a href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4a428f826ecea84dc8b43351c2d2b2117a">ripple::tefNO_TICKET</a></div><div class="ttdeci">@ tefNO_TICKET</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00166">TER.h:166</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51"><div class="ttname"><a href="namespaceripple.html#a7ffb3f54d739bb8f967d695f08fb66ccaa181a603769c1f98ad927e7367c7aa51">ripple::TxSearched::all</a></div><div class="ttdeci">@ all</div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">ripple::tecCRYPTOCONDITION_ERROR</a></div><div class="ttdeci">@ tecCRYPTOCONDITION_ERROR</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00294">TER.h:294</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">ripple::tecNO_DST</a></div><div class="ttdeci">@ tecNO_DST</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00272">TER.h:272</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca3577fa7a8b4da9a377d45f373d80de05"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca3577fa7a8b4da9a377d45f373d80de05">ripple::tecUNFUNDED</a></div><div class="ttdeci">@ tecUNFUNDED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00277">TER.h:277</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">ripple::tecNO_TARGET</a></div><div class="ttdeci">@ tecNO_TARGET</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00286">TER.h:286</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca949bc4765f151a8866814dafbd8ea558"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca949bc4765f151a8866814dafbd8ea558">ripple::tecBAD_CREDENTIALS</a></div><div class="ttdeci">@ tecBAD_CREDENTIALS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00341">TER.h:341</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00287">TER.h:287</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00291">TER.h:291</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cae930fb228ae74317976b57b4e87a7f0d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cae930fb228ae74317976b57b4e87a7f0d">ripple::tecINSUFFICIENT_RESERVE</a></div><div class="ttdeci">@ tecINSUFFICIENT_RESERVE</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00289">TER.h:289</a></div></div>
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00227">TER.h:226</a></div></div>
<div class="ttc" id="anamespaceripple_html_ad2487abbcc1a5d6064b72144b461df6eaf77cbea9706ce2ee7fdf5a85efbf70c5"><div class="ttname"><a href="namespaceripple.html#ad2487abbcc1a5d6064b72144b461df6eaf77cbea9706ce2ee7fdf5a85efbf70c5">ripple::tapNONE</a></div><div class="ttdeci">@ tapNONE</div><div class="ttdef"><b>Definition</b> <a href="ApplyView_8h_source.html#l00012">ApplyView.h:12</a></div></div>
<div class="ttc" id="anamespaceripple_html_af9cd2b389ce115ba9d17fbd557aca94d"><div class="ttname"><a href="namespaceripple.html#af9cd2b389ce115ba9d17fbd557aca94d">ripple::asfDisallowXRP</a></div><div class="ttdeci">constexpr std::uint32_t asfDisallowXRP</div><div class="ttdef"><b>Definition</b> <a href="TxFlags_8h_source.html#l00060">TxFlags.h:60</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea">ripple::temBAD_AMOUNT</a></div><div class="ttdeci">@ temBAD_AMOUNT</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00070">TER.h:70</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">ripple::temMALFORMED</a></div><div class="ttdeci">@ temMALFORMED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00068">TER.h:68</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a8845e05d481141ea5e8e5274796f45a7"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a8845e05d481141ea5e8e5274796f45a7">ripple::temBAD_EXPIRATION</a></div><div class="ttdeci">@ temBAD_EXPIRATION</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00072">TER.h:72</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">ripple::temINVALID_FLAG</a></div><div class="ttdeci">@ temINVALID_FLAG</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00092">TER.h:92</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">ripple::temDISABLED</a></div><div class="ttdeci">@ temDISABLED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00095">TER.h:95</a></div></div>
<div class="ttc" id="anamespacestd_1_1chrono_html"><div class="ttname"><a href="http://en.cppreference.com/w/namespacestd_1_1chrono.html">std::chrono</a></div></div>
<div class="ttc" id="aresize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/resize.html">std::vector::resize</a></div><div class="ttdeci">T resize(T... args)</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html">ripple::test::Escrow_test</a></div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00017">Escrow_test.cpp:18</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a0300ce57d20dc291d87e5c2f69965732"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a0300ce57d20dc291d87e5c2f69965732">ripple::test::Escrow_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="Escrow__test_8cpp_source.html#l01671">Escrow_test.cpp:1671</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a1ccaf0e6bf9082b50b33c79e52accb46"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a1ccaf0e6bf9082b50b33c79e52accb46">ripple::test::Escrow_test::testLockup</a></div><div class="ttdeci">void testLockup(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00464">Escrow_test.cpp:464</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a2e24f33305c0a499ea5b4296112c9a43"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a2e24f33305c0a499ea5b4296112c9a43">ripple::test::Escrow_test::testCredentials</a></div><div class="ttdeci">void testCredentials(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l01500">Escrow_test.cpp:1500</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a2f9a833073e5e55ae3c9de8bf4f35e52"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a2f9a833073e5e55ae3c9de8bf4f35e52">ripple::test::Escrow_test::testFails</a></div><div class="ttdeci">void testFails(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00316">Escrow_test.cpp:316</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a30d2eda60ddb8f1d6345d83bfe6a4974"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a30d2eda60ddb8f1d6345d83bfe6a4974">ripple::test::Escrow_test::testEscrowConditions</a></div><div class="ttdeci">void testEscrowConditions(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00722">Escrow_test.cpp:722</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a39e9333db819456e231f21b5ed237adf"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a39e9333db819456e231f21b5ed237adf">ripple::test::Escrow_test::testTags</a></div><div class="ttdeci">void testTags(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00204">Escrow_test.cpp:204</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a3fee0d7540d2f764fe57db2913d1e7e0"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a3fee0d7540d2f764fe57db2913d1e7e0">ripple::test::Escrow_test::testMetaAndOwnership</a></div><div class="ttdeci">void testMetaAndOwnership(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l01119">Escrow_test.cpp:1119</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a6934cf4b3668b9a55a7c89e050ab4c6a"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a6934cf4b3668b9a55a7c89e050ab4c6a">ripple::test::Escrow_test::testConsequences</a></div><div class="ttdeci">void testConsequences(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l01297">Escrow_test.cpp:1297</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_a6c091b6222b499b93e5a7200c57e32f9"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#a6c091b6222b499b93e5a7200c57e32f9">ripple::test::Escrow_test::testEnablement</a></div><div class="ttdeci">void testEnablement(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00020">Escrow_test.cpp:20</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_aa325f898b6d27b64c0c348aaf45f70f1"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#aa325f898b6d27b64c0c348aaf45f70f1">ripple::test::Escrow_test::testRequiresConditionOrFinishAfter</a></div><div class="ttdeci">void testRequiresConditionOrFinishAfter(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00268">Escrow_test.cpp:268</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_ac61c2659a62bfd7f97b1e59358191c59"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#ac61c2659a62bfd7f97b1e59358191c59">ripple::test::Escrow_test::testWithFeats</a></div><div class="ttdeci">void testWithFeats(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l01653">Escrow_test.cpp:1653</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_ad10a97c74d2e9506081a1bbd9a05350f"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#ad10a97c74d2e9506081a1bbd9a05350f">ripple::test::Escrow_test::testEscrowWithTickets</a></div><div class="ttdeci">void testEscrowWithTickets(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l01360">Escrow_test.cpp:1360</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_af084b442ceb8419b2cb2dc1ac0ac126d"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#af084b442ceb8419b2cb2dc1ac0ac126d">ripple::test::Escrow_test::testDisallowXRP</a></div><div class="ttdeci">void testDisallowXRP(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00248">Escrow_test.cpp:248</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1Escrow__test_html_af7ce5920308132ab9e6f0adbdc781b5d"><div class="ttname"><a href="structripple_1_1test_1_1Escrow__test.html#af7ce5920308132ab9e6f0adbdc781b5d">ripple::test::Escrow_test::testTiming</a></div><div class="ttdeci">void testTiming(FeatureBitset features)</div><div class="ttdef"><b>Definition</b> <a href="Escrow__test_8cpp_source.html#l00058">Escrow_test.cpp:58</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1dtag_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1dtag.html">ripple::test::jtx::dtag</a></div><div class="ttdoc">Set the destination tag on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="tag_8h_source.html#l00012">tag.h:13</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1seq_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1seq.html">ripple::test::jtx::seq</a></div><div class="ttdoc">Set the sequence number on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="seq_8h_source.html#l00014">seq.h:15</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1stag_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1stag.html">ripple::test::jtx::stag</a></div><div class="ttdoc">Set the source tag on a JTx.</div><div class="ttdef"><b>Definition</b> <a href="tag_8h_source.html#l00027">tag.h:28</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>