This commit is contained in:
bthomee
2025-08-05 17:13:37 +00:00
parent f4b9019010
commit 36b5821405
3 changed files with 336 additions and 253 deletions

View File

@@ -756,158 +756,213 @@ $(function() {
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(</div> <div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> UpdateArg{.series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 742, 2}}, .fee = baseFee});</div> <div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> UpdateArg{.series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 742, 2}}, .fee = baseFee});</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> }</div> <div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> }</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> }</div> <div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div> <div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> <span class="keywordflow">for</span> (<span class="keywordtype">bool</span> <span class="keyword">const</span> withFixOrder : {<span class="keyword">false</span>, <span class="keyword">true</span>})</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> <span class="keywordtype">void</span></div> <div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> {</div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367"> 684</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367">testMultisig</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div> <div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="comment">// Should be same order as creation</span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> {</div> <div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> Env env(</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> testcase(<span class="stringliteral">&quot;Multisig&quot;</span>);</div> <div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> *<span class="keyword">this</span>,</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <span class="keyword">using namespace </span>jtx;</div> <div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> withFixOrder ? <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>()</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> Oracle::setFee(100&#39;000);</div> <div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> : <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>() - fixPriceOracleOrder);</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> </div> <div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee =</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</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="l00690" name="l00690"></a><span class="lineno"> 690</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(env.current()-&gt;fees().base.drops());</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee =</div> <div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> </div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base.drops());</div> <div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <span class="keyword">auto</span> test = [&amp;](Env&amp; env, <a class="code hl_typedef" href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a1780dbf4d66e7975435c7d7ee45a8a8f">DataSeries</a> <span class="keyword">const</span>&amp; series) {</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> </div> <div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> env.fund(<a class="code hl_variable" href="namespaceripple_1_1test_1_1jtx.html#aea9cd3d4e6b5df2e62d53b34b605957e">XRP</a>(1&#39;000), owner);</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</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>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> Oracle <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</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_1Account.html">Account</a> <span class="keyword">const</span> bogie{<span class="stringliteral">&quot;bogie&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> env, {.owner = owner, .series = series, .fee = baseFee});</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> ed{<span class="stringliteral">&quot;ed&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.exists());</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_1Account.html">Account</a> <span class="keyword">const</span> becky{<span class="stringliteral">&quot;becky&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea8183aa2c95dc1385c8f58bf1917fcb0b">KeyType::ed25519</a>};</div> <div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <span class="keyword">auto</span> sle = env.le(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">keylet::oracle</a>(owner, <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.documentID()));</div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</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>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span> BEAST_EXPECT(</div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</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>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> sle-&gt;getFieldArray(sfPriceDataSeries).size() ==</div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</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>(10&#39;000), alice, becky, zelda, ed, bob);</div> <div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> series.size());</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> </div> <div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> </div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="comment">// alice uses a regular key with the master disabled.</span></div> <div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="keyword">auto</span> <span class="keyword">const</span> beforeQuoteAssetName1 =</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> alie{<span class="stringliteral">&quot;alie&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div> <div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> sle-&gt;getFieldArray(sfPriceDataSeries)[0]</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.html#a25348362262144c3927b86f8d349fd86">regkey</a>(alice, alie));</div> <div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> .getFieldCurrency(sfQuoteAsset)</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(alice, <a class="code hl_variable" href="namespaceripple.html#a67cb8f38f9c204304ea44fcff2953438">asfDisableMaster</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alice));</div> <div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> .getText();</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> </div> <div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keyword">auto</span> <span class="keyword">const</span> beforeQuoteAssetName2 =</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <span class="comment">// Attach signers to alice.</span></div> <div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> sle-&gt;getFieldArray(sfPriceDataSeries)[1]</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> env(signers(alice, 2, {{becky, 1}, {bogie, 1}, {ed, 2}}), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alie));</div> <div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> .getFieldCurrency(sfQuoteAsset)</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</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="l00709" name="l00709"></a><span class="lineno"> 709</span> .getText();</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> <span class="comment">// if multiSignReserve disabled then its 2 + 1 per signer</span></div> <div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> </div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordtype">int</span> <span class="keyword">const</span> signerListOwners{features[featureMultiSignReserve] ? 1 : 5};</div> <div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(UpdateArg{.series = series, .fee = baseFee});</div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</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_1owners.html">owners</a>(alice, signerListOwners));</div> <div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span> sle = env.le(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">keylet::oracle</a>(owner, <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.documentID()));</div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> </div> <div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> </div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="comment">// Create</span></div> <div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keyword">auto</span> <span class="keyword">const</span> afterQuoteAssetName1 =</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> <span class="comment">// Force close (true) and time advancement because the close time</span></div> <div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> sle-&gt;getFieldArray(sfPriceDataSeries)[0]</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="comment">// is no longer 0.</span></div> <div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> .getFieldCurrency(sfQuoteAsset)</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_1oracle_1_1Oracle.html">Oracle</a> oracle(</div> <div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> .getText();</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> env,</div> <div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <span class="keyword">auto</span> <span class="keyword">const</span> afterQuoteAssetName2 =</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#a92e584f6ad1e01c8943fa6732517c5a9">owner</a> = alice, .fee = baseFee, .close = <span class="keyword">true</span>},</div> <div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> sle-&gt;getFieldArray(sfPriceDataSeries)[1]</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="keyword">false</span>);</div> <div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> .getFieldCurrency(sfQuoteAsset)</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{</div> <div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> .getText();</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky), .fee = baseFee, .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4aafd3fcc27f093dd96e977fb0f07044f1">tefBAD_QUORUM</a>)});</div> <div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> </div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{</div> <div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> <span class="keywordflow">if</span> (env.current()-&gt;rules().enabled(fixPriceOracleOrder))</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(zelda), .fee = baseFee, .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</a>)});</div> <div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> {</div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky, bogie), .fee = baseFee});</div> <div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> BEAST_EXPECT(afterQuoteAssetName1 == beforeQuoteAssetName1);</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> BEAST_EXPECT(oracle.exists());</div> <div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span> BEAST_EXPECT(afterQuoteAssetName2 == beforeQuoteAssetName2);</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> </div> <div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> }</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <span class="comment">// Update</span></div> <div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div> <div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> {</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</div> <div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> BEAST_EXPECT(afterQuoteAssetName1 != beforeQuoteAssetName1);</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky),</div> <div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> BEAST_EXPECT(afterQuoteAssetName2 != beforeQuoteAssetName2);</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> .fee = baseFee,</div> <div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> }</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4aafd3fcc27f093dd96e977fb0f07044f1">tefBAD_QUORUM</a>)});</div> <div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> };</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div> <div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> test(env, {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 742, 2}, {<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;EUR&quot;</span>, 711, 2}});</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</div> <div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> }</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(zelda),</div> <div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> }</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> .fee = baseFee,</div> <div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> </div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</a>)});</div> <div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div> <div class="line"><a id="l00739" name="l00739"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367"> 739</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367">testMultisig</a>(<a class="code hl_class" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 741, 1}},</div> <div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> {</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky, bogie),</div> <div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> testcase(<span class="stringliteral">&quot;Multisig&quot;</span>);</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> .fee = baseFee});</div> <div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> BEAST_EXPECT(oracle.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 741, 1}}));</div> <div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> Oracle::setFee(100&#39;000);</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="comment">// remove the signer list</span></div> <div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> </div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> env(signers(alice, jtx::none), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alie));</div> <div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</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="l00746" name="l00746"></a><span class="lineno"> 746</span> env.close();</div> <div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee =</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> env.require(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1owners.html">owners</a>(alice, 1));</div> <div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base.drops());</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> <span class="comment">// create new signer list</span></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> env(signers(alice, 2, {{zelda, 1}, {bob, 1}, {ed, 2}}), sig(alie));</div> <div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</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>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> env.close();</div> <div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> bogie{<span class="stringliteral">&quot;bogie&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> <span class="comment">// old list fails</span></div> <div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> ed{<span class="stringliteral">&quot;ed&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> oracle.set(UpdateArg{</div> <div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> becky{<span class="stringliteral">&quot;becky&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea8183aa2c95dc1385c8f58bf1917fcb0b">KeyType::ed25519</a>};</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</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_1Account.html">Account</a> <span class="keyword">const</span> zelda{<span class="stringliteral">&quot;zelda&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> .msig = msig(becky, bogie),</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_1Account.html">Account</a> <span class="keyword">const</span> bob{<span class="stringliteral">&quot;bob&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> .fee = baseFee,</div> <div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</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>(10&#39;000), alice, becky, zelda, ed, bob);</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> .err = ter(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</a>)});</div> <div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> </div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="comment">// updated list succeeds</span></div> <div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="comment">// alice uses a regular key with the master disabled.</span></div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(UpdateArg{</div> <div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> alie{<span class="stringliteral">&quot;alie&quot;</span>, <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>};</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 7412, 2}},</div> <div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a25348362262144c3927b86f8d349fd86">regkey</a>(alice, alie));</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> .msig = msig(zelda, bob),</div> <div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> env(<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a50cacef3867fc01273aa9c29231f9a7c">fset</a>(alice, <a class="code hl_variable" href="namespaceripple.html#a67cb8f38f9c204304ea44fcff2953438">asfDisableMaster</a>), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alice));</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> .fee = baseFee});</div> <div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> </div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 7412, 2}}));</div> <div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> <span class="comment">// Attach signers to alice.</span></div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(UpdateArg{</div> <div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> env(signers(alice, 2, {{becky, 1}, {bogie, 1}, {ed, 2}}), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alie));</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 74245, 3}},</div> <div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</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="l00765" name="l00765"></a><span class="lineno"> 765</span> .msig = msig(ed),</div> <div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="comment">// if multiSignReserve disabled then its 2 + 1 per signer</span></div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> .fee = baseFee});</div> <div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> <span class="keywordtype">int</span> <span class="keyword">const</span> signerListOwners{features[featureMultiSignReserve] ? 1 : 5};</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 74245, 3}}));</div> <div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</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_1owners.html">owners</a>(alice, signerListOwners));</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> </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">// Remove</span></div> <div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> <span class="comment">// Create</span></div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove(</div> <div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="comment">// Force close (true) and time advancement because the close time</span></div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> {.msig = msig(bob), .fee = baseFee, .err = ter(tefBAD_QUORUM)});</div> <div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <span class="comment">// is no longer 0.</span></div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove(</div> <div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a> oracle(</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> {.msig = msig(becky),</div> <div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> env,</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> .fee = baseFee,</div> <div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#a92e584f6ad1e01c8943fa6732517c5a9">owner</a> = alice, .fee = baseFee, .close = <span class="keyword">true</span>},</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> .err = ter(tefBAD_SIGNATURE)});</div> <div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="keyword">false</span>);</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove({.msig = msig(ed), .fee = baseFee});</div> <div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.exists());</div> <div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky), .fee = baseFee, .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4aafd3fcc27f093dd96e977fb0f07044f1">tefBAD_QUORUM</a>)});</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> }</div> <div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> </div> <div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(zelda), .fee = baseFee, .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</a>)});</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> <span class="keywordtype">void</span></div> <div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html">CreateArg</a>{.<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">msig</a> = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky, bogie), .fee = baseFee});</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297"> 781</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297">testAmendment</a>()</div> <div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> BEAST_EXPECT(oracle.exists());</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> {</div> <div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> </div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> testcase(<span class="stringliteral">&quot;Amendment&quot;</span>);</div> <div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <span class="comment">// Update</span></div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <span class="keyword">using namespace </span>jtx;</div> <div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> </div> <div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> <span class="keyword">auto</span> <span class="keyword">const</span> features = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>() - featurePriceOracle;</div> <div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky),</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_1Account.html">Account</a> <span class="keyword">const</span> owner(<span class="stringliteral">&quot;owner&quot;</span>);</div> <div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> .fee = baseFee,</div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</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="l00788" name="l00788"></a><span class="lineno"> 788</span> .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4aafd3fcc27f093dd96e977fb0f07044f1">tefBAD_QUORUM</a>)});</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee =</div> <div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base.drops());</div> <div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> </div> <div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(zelda),</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</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>(1&#39;000), owner);</div> <div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> .fee = baseFee,</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> {</div> <div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> .err = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1ter.html">ter</a>(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</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_1oracle_1_1Oracle.html">Oracle</a> oracle(</div> <div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> oracle.set(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html">UpdateArg</a>{</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> env, {.owner = owner, .fee = baseFee, .err = <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="l00795" name="l00795"></a><span class="lineno"> 795</span> .<a class="code hl_variable" href="structripple_1_1test_1_1jtx_1_1oracle_1_1UpdateArg.html#ab5f28bfb56ed9e15ab80e9a44c045696">series</a> = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 741, 1}},</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> }</div> <div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> .msig = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1msig.html">msig</a>(becky, bogie),</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> </div> <div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> .fee = baseFee});</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> {</div> <div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> BEAST_EXPECT(oracle.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 741, 1}}));</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a> oracle(env, {.owner = owner, .fee = baseFee}, <span class="keyword">false</span>);</div> <div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> <span class="comment">// remove the signer list</span></div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> oracle.remove({.fee = baseFee, .err = <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="l00800" name="l00800"></a><span class="lineno"> 800</span> env(signers(alice, jtx::none), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>(alie));</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> }</div> <div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> env.close();</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> }</div> <div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> env.require(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1owners.html">owners</a>(alice, 1));</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> </div> <div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="comment">// create new signer list</span></div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span><span class="keyword">public</span>:</div> <div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> env(signers(alice, 2, {{zelda, 1}, {bob, 1}, {ed, 2}}), sig(alie));</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> <span class="keywordtype">void</span></div> <div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> env.close();</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a"> 806</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a">run</a>()<span class="keyword"> override</span></div> <div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> <span class="comment">// old list fails</span></div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span><span class="keyword"> </span>{</div> <div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> oracle.set(UpdateArg{</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <span class="keyword">using namespace </span>jtx;</div> <div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 740, 1}},</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> <span class="keyword">auto</span> <span class="keyword">const</span> all = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>();</div> <div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> .msig = msig(becky, bogie),</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> testInvalidSet();</div> <div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> .fee = baseFee,</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> testInvalidDelete();</div> <div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> .err = ter(<a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab2a35b856d8227d6717984f63aa5a445">tefBAD_SIGNATURE</a>)});</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> testCreate();</div> <div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="comment">// updated list succeeds</span></div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> testDelete();</div> <div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(UpdateArg{</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> testUpdate();</div> <div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 7412, 2}},</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> testAmendment();</div> <div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> .msig = msig(zelda, bob),</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; features :</div> <div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> .fee = baseFee});</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> {all,</div> <div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 7412, 2}}));</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> all - featureMultiSignReserve - featureExpandedSignerList,</div> <div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.set(UpdateArg{</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> all - featureExpandedSignerList})</div> <div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> .series = {{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 74245, 3}},</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> testMultisig(features);</div> <div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> .msig = msig(ed),</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> }</div> <div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> .fee = baseFee});</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span>};</div> <div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> BEAST_EXPECT(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.expectPrice({{<span class="stringliteral">&quot;XRP&quot;</span>, <span class="stringliteral">&quot;USD&quot;</span>, 74245, 3}}));</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> </div> <div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> </div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a06f39c6015d46509eb6959ca65b0c53a"> 824</a></span>BEAST_DEFINE_TESTSUITE(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a>, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div> <div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> <span class="comment">// Remove</span></div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> </div> <div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove(</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span>} <span class="comment">// namespace oracle</span></div> <div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> {.msig = msig(bob), .fee = baseFee, .err = ter(tefBAD_QUORUM)});</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> </div> <div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove(</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span>} <span class="comment">// namespace jtx</span></div> <div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> {.msig = msig(becky),</div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> </div> <div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> .fee = baseFee,</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span>} <span class="comment">// namespace test</span></div> <div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> .err = ter(tefBAD_SIGNATURE)});</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> </div> <div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.remove({.msig = msig(ed), .fee = baseFee});</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span>} <span class="comment">// namespace ripple</span></div> <div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> BEAST_EXPECT(!<a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">oracle</a>.exists());</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> }</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> </div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297"> 836</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297">testAmendment</a>()</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> {</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> testcase(<span class="stringliteral">&quot;Amendment&quot;</span>);</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> </div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <span class="keyword">auto</span> <span class="keyword">const</span> features = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>() - featurePriceOracle;</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span> owner(<span class="stringliteral">&quot;owner&quot;</span>);</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</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="l00844" name="l00844"></a><span class="lineno"> 844</span> <span class="keyword">auto</span> <span class="keyword">const</span> baseFee =</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(env.<a class="code hl_function" href="classripple_1_1test_1_1jtx_1_1Env.html#a65bedb2e0babbd55343f721de9008a37">current</a>()-&gt;fees().base.drops());</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> </div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</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>(1&#39;000), owner);</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> {</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a> oracle(</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> env, {.owner = owner, .fee = baseFee, .err = <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="l00851" name="l00851"></a><span class="lineno"> 851</span> }</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> </div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> {</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a> oracle(env, {.owner = owner, .fee = baseFee}, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> oracle.remove({.fee = baseFee, .err = <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="l00856" name="l00856"></a><span class="lineno"> 856</span> }</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> }</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> </div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> <span class="keywordtype">void</span></div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"><a class="line" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a"> 861</a></span> <a class="code hl_function" href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> <span class="keyword">using namespace </span>jtx;</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> <span class="keyword">auto</span> <span class="keyword">const</span> all = <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a8e5379a68ca5b5ae718e77312c2f1f94">testable_amendments</a>();</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> testInvalidSet();</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> testInvalidDelete();</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> testCreate();</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> testDelete();</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> testUpdate();</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> testAmendment();</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; features :</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> {all,</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> all - featureMultiSignReserve - featureExpandedSignerList,</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> all - featureExpandedSignerList})</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> testMultisig(features);</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> }</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span>};</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> </div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a06f39c6015d46509eb6959ca65b0c53a"> 879</a></span>BEAST_DEFINE_TESTSUITE(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1oracle_1_1Oracle.html">Oracle</a>, app, <a class="code hl_namespace" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> </div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span>} <span class="comment">// namespace oracle</span></div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> </div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span>} <span class="comment">// namespace jtx</span></div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> </div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> </div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div> <div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00148">json_value.h:149</a></div></div> <div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00148">json_value.h:149</a></div></div>
<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#l00054">suite.h:55</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#l00054">suite.h:55</a></div></div>
@@ -934,6 +989,7 @@ $(function() {
<div class="ttc" id="ahash_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/hash.html">std::hash</a></div></div> <div class="ttc" id="ahash_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/hash.html">std::hash</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div> <div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_a0c8501b7162b24e030168fb13b6d774a"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">ripple::keylet::oracle</a></div><div class="ttdeci">Keylet oracle(AccountID const &amp;account, std::uint32_t const &amp;documentID) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00520">Indexes.cpp:520</a></div></div> <div class="ttc" id="anamespaceripple_1_1keylet_html_a0c8501b7162b24e030168fb13b6d774a"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">ripple::keylet::oracle</a></div><div class="ttdeci">Keylet oracle(AccountID const &amp;account, std::uint32_t const &amp;documentID) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00520">Indexes.cpp:520</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1oracle_html_a1780dbf4d66e7975435c7d7ee45a8a8f"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a1780dbf4d66e7975435c7d7ee45a8a8f">ripple::test::jtx::oracle::DataSeries</a></div><div class="ttdeci">std::vector&lt; std::tuple&lt; std::string, std::string, std::optional&lt; std::uint32_t &gt;, std::optional&lt; std::uint8_t &gt; &gt; &gt; DataSeries</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00055">Oracle.h:59</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1oracle_html_a1c1c1ff86fdc94919051f6d5c68209ab"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a1c1c1ff86fdc94919051f6d5c68209ab">ripple::test::jtx::oracle::testStartTime</a></div><div class="ttdeci">static constexpr std::chrono::seconds testStartTime</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00112">Oracle.h:112</a></div></div> <div class="ttc" id="anamespaceripple_1_1test_1_1jtx_1_1oracle_html_a1c1c1ff86fdc94919051f6d5c68209ab"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx_1_1oracle.html#a1c1c1ff86fdc94919051f6d5c68209ab">ripple::test::jtx::oracle::testStartTime</a></div><div class="ttdeci">static constexpr std::chrono::seconds testStartTime</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00112">Oracle.h:112</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a12abe185058a3db015909ed92c421097"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ripple::test::jtx::ownerCount</a></div><div class="ttdeci">std::uint32_t ownerCount(Env const &amp;env, Account const &amp;account)</div><div class="ttdef"><b>Definition:</b> <a href="TestHelpers_8cpp_source.html#l00054">TestHelpers.cpp:54</a></div></div> <div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a12abe185058a3db015909ed92c421097"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a12abe185058a3db015909ed92c421097">ripple::test::jtx::ownerCount</a></div><div class="ttdeci">std::uint32_t ownerCount(Env const &amp;env, Account const &amp;account)</div><div class="ttdef"><b>Definition:</b> <a href="TestHelpers_8cpp_source.html#l00054">TestHelpers.cpp:54</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a25348362262144c3927b86f8d349fd86"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a25348362262144c3927b86f8d349fd86">ripple::test::jtx::regkey</a></div><div class="ttdeci">Json::Value regkey(Account const &amp;account, disabled_t)</div><div class="ttdoc">Disable the regular key.</div><div class="ttdef"><b>Definition:</b> <a href="regkey_8cpp_source.html#l00029">regkey.cpp:29</a></div></div> <div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a25348362262144c3927b86f8d349fd86"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a25348362262144c3927b86f8d349fd86">ripple::test::jtx::regkey</a></div><div class="ttdeci">Json::Value regkey(Account const &amp;account, disabled_t)</div><div class="ttdoc">Disable the regular key.</div><div class="ttdef"><b>Definition:</b> <a href="regkey_8cpp_source.html#l00029">regkey.cpp:29</a></div></div>
@@ -978,10 +1034,10 @@ $(function() {
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg_html_ae8dbfa217979a76d804bd875a758e917"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">ripple::test::jtx::oracle::CreateArg::msig</a></div><div class="ttdeci">std::optional&lt; jtx::msig &gt; msig</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00072">Oracle.h:72</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg_html_ae8dbfa217979a76d804bd875a758e917"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#ae8dbfa217979a76d804bd875a758e917">ripple::test::jtx::oracle::CreateArg::msig</a></div><div class="ttdeci">std::optional&lt; jtx::msig &gt; msig</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00072">Oracle.h:72</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg_html_af0d98f8a6087615a78dec2aa88e62a7c"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#af0d98f8a6087615a78dec2aa88e62a7c">ripple::test::jtx::oracle::CreateArg::provider</a></div><div class="ttdeci">std::optional&lt; AnyValue &gt; provider</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00068">Oracle.h:68</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg_html_af0d98f8a6087615a78dec2aa88e62a7c"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1CreateArg.html#af0d98f8a6087615a78dec2aa88e62a7c">ripple::test::jtx::oracle::CreateArg::provider</a></div><div class="ttdeci">std::optional&lt; AnyValue &gt; provider</div><div class="ttdef"><b>Definition:</b> <a href="Oracle_8h_source.html#l00068">Oracle.h:68</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html">ripple::test::jtx::oracle::Oracle_test</a></div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00029">Oracle_test.cpp:30</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html">ripple::test::jtx::oracle::Oracle_test</a></div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00029">Oracle_test.cpp:30</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a1d5d3700747ddec774c27db1b09ea297"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297">ripple::test::jtx::oracle::Oracle_test::testAmendment</a></div><div class="ttdeci">void testAmendment()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00781">Oracle_test.cpp:781</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a1d5d3700747ddec774c27db1b09ea297"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a1d5d3700747ddec774c27db1b09ea297">ripple::test::jtx::oracle::Oracle_test::testAmendment</a></div><div class="ttdeci">void testAmendment()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00836">Oracle_test.cpp:836</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a25d6505ca685bfcfeccfaafdb1054e4a"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a">ripple::test::jtx::oracle::Oracle_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="Oracle__test_8cpp_source.html#l00806">Oracle_test.cpp:806</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a25d6505ca685bfcfeccfaafdb1054e4a"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a25d6505ca685bfcfeccfaafdb1054e4a">ripple::test::jtx::oracle::Oracle_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="Oracle__test_8cpp_source.html#l00861">Oracle_test.cpp:861</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a5ae397649e0ef16a9130ffb9d95e247d"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a5ae397649e0ef16a9130ffb9d95e247d">ripple::test::jtx::oracle::Oracle_test::testCreate</a></div><div class="ttdeci">void testCreate()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00401">Oracle_test.cpp:401</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a5ae397649e0ef16a9130ffb9d95e247d"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a5ae397649e0ef16a9130ffb9d95e247d">ripple::test::jtx::oracle::Oracle_test::testCreate</a></div><div class="ttdeci">void testCreate()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00401">Oracle_test.cpp:401</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a97221c6e2f664356839503e104305367"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367">ripple::test::jtx::oracle::Oracle_test::testMultisig</a></div><div class="ttdeci">void testMultisig(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00684">Oracle_test.cpp:684</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_a97221c6e2f664356839503e104305367"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#a97221c6e2f664356839503e104305367">ripple::test::jtx::oracle::Oracle_test::testMultisig</a></div><div class="ttdeci">void testMultisig(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00739">Oracle_test.cpp:739</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_aa4b6ac9727dce6ff314a9ffe0de58bb5"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#aa4b6ac9727dce6ff314a9ffe0de58bb5">ripple::test::jtx::oracle::Oracle_test::testDelete</a></div><div class="ttdeci">void testDelete()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00503">Oracle_test.cpp:503</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_aa4b6ac9727dce6ff314a9ffe0de58bb5"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#aa4b6ac9727dce6ff314a9ffe0de58bb5">ripple::test::jtx::oracle::Oracle_test::testDelete</a></div><div class="ttdeci">void testDelete()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00503">Oracle_test.cpp:503</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_ad44264ee872791a99c1050d71ec782a2"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#ad44264ee872791a99c1050d71ec782a2">ripple::test::jtx::oracle::Oracle_test::testInvalidSet</a></div><div class="ttdeci">void testInvalidSet()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00033">Oracle_test.cpp:33</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_ad44264ee872791a99c1050d71ec782a2"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#ad44264ee872791a99c1050d71ec782a2">ripple::test::jtx::oracle::Oracle_test::testInvalidSet</a></div><div class="ttdeci">void testInvalidSet()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00033">Oracle_test.cpp:33</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_ae39b203a0c056b141007b93e15229771"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#ae39b203a0c056b141007b93e15229771">ripple::test::jtx::oracle::Oracle_test::testInvalidDelete</a></div><div class="ttdeci">void testInvalidDelete()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00458">Oracle_test.cpp:458</a></div></div> <div class="ttc" id="astructripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test_html_ae39b203a0c056b141007b93e15229771"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1oracle_1_1Oracle__test.html#ae39b203a0c056b141007b93e15229771">ripple::test::jtx::oracle::Oracle_test::testInvalidDelete</a></div><div class="ttdeci">void testInvalidDelete()</div><div class="ttdef"><b>Definition:</b> <a href="Oracle__test_8cpp_source.html#l00458">Oracle_test.cpp:458</a></div></div>

View File

@@ -287,105 +287,127 @@ $(function() {
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>{</div> <div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span>{</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">auto</span> <span class="keyword">const</span> oracleID = <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">keylet::oracle</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOracleDocumentID]);</div> <div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">auto</span> <span class="keyword">const</span> oracleID = <a class="code hl_function" href="namespaceripple_1_1keylet.html#a0c8501b7162b24e030168fb13b6d774a">keylet::oracle</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOracleDocumentID]);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div> <div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(oracleID))</div> <div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">auto</span> populatePriceData = [](<a class="code hl_class" href="classripple_1_1STObject.html">STObject</a>&amp; priceData, <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> <span class="keyword">const</span>&amp; entry) {</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> {</div> <div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <a class="code hl_function" href="namespaceripple.html#a047ba5ce701883dcdc9c04dbe50e53ff">setPriceDataInnerObjTemplate</a>(priceData);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// update</span></div> <div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#a168b1d0bbaa91de55bc518f68d4cf6f3">setFieldCurrency</a>(</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="comment">// the token pair that doesn&#39;t have their price updated will not</span></div> <div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> sfBaseAsset, entry.getFieldCurrency(sfBaseAsset));</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// include neither price nor scale in the updated PriceDataSeries</span></div> <div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#a168b1d0bbaa91de55bc518f68d4cf6f3">setFieldCurrency</a>(</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div> <div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> sfQuoteAsset, entry.getFieldCurrency(sfQuoteAsset));</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::pair&lt;Currency, Currency&gt;</a>, <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a>&gt; pairs;</div> <div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#ac0e2e3ed7f92a9f21aed2eda6d1ea5c6">setFieldU64</a>(sfAssetPrice, entry.getFieldU64(sfAssetPrice));</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// collect current token pairs</span></div> <div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (entry.isFieldPresent(sfScale))</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; entry : sle-&gt;getFieldArray(sfPriceDataSeries))</div> <div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#a6e622971f60d53b4a053065477264181">setFieldU8</a>(sfScale, entry.getFieldU8(sfScale));</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> {</div> <div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> };</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> priceData{sfPriceData};</div> <div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <a class="code hl_function" href="namespaceripple.html#a047ba5ce701883dcdc9c04dbe50e53ff">setPriceDataInnerObjTemplate</a>(priceData);</div> <div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(oracleID))</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> priceData.setFieldCurrency(</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> sfBaseAsset, entry.getFieldCurrency(sfBaseAsset));</div> <div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// update</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> priceData.setFieldCurrency(</div> <div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// the token pair that doesn&#39;t have their price updated will not</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> sfQuoteAsset, entry.getFieldCurrency(sfQuoteAsset));</div> <div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// include neither price nor scale in the updated PriceDataSeries</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/emplace.html">emplace</a>(<a class="code hl_function" href="namespaceripple.html#a5dd1aee6bf19281adb5e399002e74271">tokenPairKey</a>(entry), std::move(priceData));</div> <div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> }</div> <div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::pair&lt;Currency, Currency&gt;</a>, <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a>&gt; pairs;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">auto</span> <span class="keyword">const</span> oldCount = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/size.html">size</a>() &gt; 5 ? 2 : 1;</div> <div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// collect current token pairs</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// update/add/delete pairs</span></div> <div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; entry : sle-&gt;getFieldArray(sfPriceDataSeries))</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; entry : <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfPriceDataSeries))</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> {</div> <div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> priceData{sfPriceData};</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keyword">auto</span> <span class="keyword">const</span> key = <a class="code hl_function" href="namespaceripple.html#a5dd1aee6bf19281adb5e399002e74271">tokenPairKey</a>(entry);</div> <div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <a class="code hl_function" href="namespaceripple.html#a047ba5ce701883dcdc9c04dbe50e53ff">setPriceDataInnerObjTemplate</a>(priceData);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">if</span> (!entry.isFieldPresent(sfAssetPrice))</div> <div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#a168b1d0bbaa91de55bc518f68d4cf6f3">setFieldCurrency</a>(</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> {</div> <div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> sfBaseAsset, entry.getFieldCurrency(sfBaseAsset));</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// delete token pair</span></div> <div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> priceData.<a class="code hl_function" href="classripple_1_1STObject.html#a168b1d0bbaa91de55bc518f68d4cf6f3">setFieldCurrency</a>(</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/erase.html">erase</a>(key);</div> <div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> sfQuoteAsset, entry.getFieldCurrency(sfQuoteAsset));</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div> <div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/emplace.html">emplace</a>(<a class="code hl_function" href="namespaceripple.html#a5dd1aee6bf19281adb5e399002e74271">tokenPairKey</a>(entry), std::move(priceData));</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> iter = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(key); iter != pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/end.html">end</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> {</div> <div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">auto</span> <span class="keyword">const</span> oldCount = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/size.html">size</a>() &gt; 5 ? 2 : 1;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// update the price</span></div> <div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// update/add/delete pairs</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> iter-&gt;second.setFieldU64(</div> <div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; entry : <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfPriceDataSeries))</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> sfAssetPrice, entry.getFieldU64(sfAssetPrice));</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> <span class="keywordflow">if</span> (entry.isFieldPresent(sfScale))</div> <div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">auto</span> <span class="keyword">const</span> key = <a class="code hl_function" href="namespaceripple.html#a5dd1aee6bf19281adb5e399002e74271">tokenPairKey</a>(entry);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> iter-&gt;second.setFieldU8(sfScale, entry.getFieldU8(sfScale));</div> <div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span> (!entry.isFieldPresent(sfAssetPrice))</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> }</div> <div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> {</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">else</span></div> <div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="comment">// delete token pair</span></div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> {</div> <div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/erase.html">erase</a>(key);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// add a token pair with the price</span></div> <div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> }</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> priceData{sfPriceData};</div> <div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> iter = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/find.html">find</a>(key); iter != pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/end.html">end</a>())</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_function" href="namespaceripple.html#a047ba5ce701883dcdc9c04dbe50e53ff">setPriceDataInnerObjTemplate</a>(priceData);</div> <div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> priceData.setFieldCurrency(</div> <div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// update the price</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> sfBaseAsset, entry.getFieldCurrency(sfBaseAsset));</div> <div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> iter-&gt;second.setFieldU64(</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> priceData.setFieldCurrency(</div> <div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> sfAssetPrice, entry.getFieldU64(sfAssetPrice));</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> sfQuoteAsset, entry.getFieldCurrency(sfQuoteAsset));</div> <div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">if</span> (entry.isFieldPresent(sfScale))</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> priceData.setFieldU64(</div> <div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> iter-&gt;second.setFieldU8(sfScale, entry.getFieldU8(sfScale));</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> sfAssetPrice, entry.getFieldU64(sfAssetPrice));</div> <div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> }</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">if</span> (entry.isFieldPresent(sfScale))</div> <div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> priceData.setFieldU8(sfScale, entry.getFieldU8(sfScale));</div> <div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> {</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/emplace.html">emplace</a>(key, std::move(priceData));</div> <div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// add a token pair with the price</span></div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> }</div> <div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> priceData{sfPriceData};</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> }</div> <div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> populatePriceData(priceData, entry);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> updatedSeries;</div> <div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/emplace.html">emplace</a>(key, std::move(priceData));</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; iter : pairs)</div> <div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> }</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> updatedSeries.<a class="code hl_function" href="classripple_1_1STArray.html#adc3dc750320964c46b6d4ea2af8b8bc7">push_back</a>(std::move(iter.second));</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> sle-&gt;setFieldArray(sfPriceDataSeries, updatedSeries);</div> <div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> updatedSeries;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfURI))</div> <div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; iter : pairs)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> sle-&gt;setFieldVL(sfURI, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfURI]);</div> <div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> updatedSeries.<a class="code hl_function" href="classripple_1_1STArray.html#adc3dc750320964c46b6d4ea2af8b8bc7">push_back</a>(std::move(iter.second));</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> sle-&gt;setFieldU32(sfLastUpdateTime, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfLastUpdateTime]);</div> <div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> sle-&gt;setFieldArray(sfPriceDataSeries, updatedSeries);</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div> <div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfURI))</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">auto</span> <span class="keyword">const</span> newCount = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/size.html">size</a>() &gt; 5 ? 2 : 1;</div> <div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> sle-&gt;setFieldVL(sfURI, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfURI]);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">auto</span> <span class="keyword">const</span> adjust = newCount - oldCount;</div> <div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> sle-&gt;setFieldU32(sfLastUpdateTime, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfLastUpdateTime]);</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span> (adjust != 0 &amp;&amp; !<a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, adjust))</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> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div> <div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">auto</span> <span class="keyword">const</span> newCount = pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/size.html">size</a>() &gt; 5 ? 2 : 1;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </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> adjust = newCount - oldCount;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div> <div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">if</span> (adjust != 0 &amp;&amp; !<a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, adjust))</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> }</div> <div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">else</span></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> {</div> <div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// create</span></div> <div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div> <div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> sle = std::make_shared&lt;SLE&gt;(oracleID);</div> <div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> sle-&gt;setAccountID(sfOwner, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfAccount));</div> <div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="comment">// create</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> sle-&gt;setFieldVL(sfProvider, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfProvider]);</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="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfURI))</div> <div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> sle = std::make_shared&lt;SLE&gt;(oracleID);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> sle-&gt;setFieldVL(sfURI, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfURI]);</div> <div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> sle-&gt;setAccountID(sfOwner, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfAccount));</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>&amp; series = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfPriceDataSeries);</div> <div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> sle-&gt;setFieldVL(sfProvider, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfProvider]);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> sle-&gt;setFieldArray(sfPriceDataSeries, series);</div> <div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfURI))</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> sle-&gt;setFieldVL(sfAssetClass, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfAssetClass]);</div> <div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> sle-&gt;setFieldVL(sfURI, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfURI]);</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> sle-&gt;setFieldU32(sfLastUpdateTime, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfLastUpdateTime]);</div> <div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> </div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div> <div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> series;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keyword">auto</span> page = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#ae21b78e549dc6188382bd49e7d77d473">dirInsert</a>(</div> <div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixPriceOracleOrder))</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>), sle-&gt;<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>(), <a class="code hl_function" href="namespaceripple.html#a5b498122d9b8c1acbeb9fe459faac22b">describeOwnerDir</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div> <div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> {</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span> (!page)</div> <div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> series = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfPriceDataSeries);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div> <div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> }</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div> <div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> (*sle)[sfOwnerNode] = *page;</div> <div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> {</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> </div> <div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/map.html">std::map&lt;std::pair&lt;Currency, Currency&gt;</a>, <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a>&gt; pairs;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">auto</span> <span class="keyword">const</span> count = series.size() &gt; 5 ? 2 : 1;</div> <div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; entry : <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfPriceDataSeries))</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, count))</div> <div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> {</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</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> key = <a class="code hl_function" href="namespaceripple.html#a5dd1aee6bf19281adb5e399002e74271">tokenPairKey</a>(entry);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> </div> <div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> priceData{sfPriceData};</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#aa3c5b5cd9dca5f906be4b36640706e3c">insert</a>(sle);</div> <div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> populatePriceData(priceData, entry);</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div> <div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> pairs.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/map/emplace.html">emplace</a>(key, std::move(priceData));</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div> <div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div> <div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; iter : pairs)</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span>}</div> <div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> series.<a class="code hl_function" href="classripple_1_1STArray.html#adc3dc750320964c46b6d4ea2af8b8bc7">push_back</a>(std::move(iter.second));</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> </div> <div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> }</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span>} <span class="comment">// namespace ripple</span></div> <div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> sle-&gt;setFieldArray(sfPriceDataSeries, series);</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> sle-&gt;setFieldVL(sfAssetClass, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfAssetClass]);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> sle-&gt;setFieldU32(sfLastUpdateTime, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfLastUpdateTime]);</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="keyword">auto</span> page = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#ae21b78e549dc6188382bd49e7d77d473">dirInsert</a>(</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>), sle-&gt;<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>(), <a class="code hl_function" href="namespaceripple.html#a5b498122d9b8c1acbeb9fe459faac22b">describeOwnerDir</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">if</span> (!page)</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>; <span class="comment">// LCOV_EXCL_LINE</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> (*sle)[sfOwnerNode] = *page;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keyword">auto</span> <span class="keyword">const</span> count = series.<a class="code hl_function" href="classripple_1_1STArray.html#afdae4983cf41a2e6c3031d203b79c67b">size</a>() &gt; 5 ? 2 : 1;</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>, count))</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> </div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#aa3c5b5cd9dca5f906be4b36640706e3c">insert</a>(sle);</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> </div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span>}</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> </div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html"><div class="ttname"><a href="classripple_1_1ApplyContext.html">ripple::ApplyContext</a></div><div class="ttdoc">State information when applying a tx.</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00036">ApplyContext.h:37</a></div></div> <div class="ttc" id="aclassripple_1_1ApplyContext_html"><div class="ttname"><a href="classripple_1_1ApplyContext.html">ripple::ApplyContext</a></div><div class="ttdoc">State information when applying a tx.</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00036">ApplyContext.h:37</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a44c249b16b2cedb1224a96592407558d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">ripple::ApplyContext::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00078">ApplyContext.h:78</a></div></div> <div class="ttc" id="aclassripple_1_1ApplyContext_html_a44c249b16b2cedb1224a96592407558d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">ripple::ApplyContext::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00078">ApplyContext.h:78</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a7b78c8e924babce4d14359970f55ba02"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">ripple::ApplyContext::journal</a></div><div class="ttdeci">beast::Journal const journal</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00075">ApplyContext.h:75</a></div></div> <div class="ttc" id="aclassripple_1_1ApplyContext_html_a7b78c8e924babce4d14359970f55ba02"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">ripple::ApplyContext::journal</a></div><div class="ttdeci">beast::Journal const journal</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00075">ApplyContext.h:75</a></div></div>
@@ -398,17 +420,22 @@ $(function() {
<div class="ttc" id="aclassripple_1_1ReadView_html_a0583a050ea7799ba331f6222a905f304"><div class="ttname"><a href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div> <div class="ttc" id="aclassripple_1_1ReadView_html_a0583a050ea7799ba331f6222a905f304"><div class="ttname"><a href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_a9944284a00f671a4a9d9e00f9b28b258"><div class="ttname"><a href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">ripple::ReadView::fees</a></div><div class="ttdeci">virtual Fees const &amp; fees() const =0</div><div class="ttdoc">Returns the fees for the base ledger.</div></div> <div class="ttc" id="aclassripple_1_1ReadView_html_a9944284a00f671a4a9d9e00f9b28b258"><div class="ttname"><a href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">ripple::ReadView::fees</a></div><div class="ttdeci">virtual Fees const &amp; fees() const =0</div><div class="ttdoc">Returns the fees for the base ledger.</div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_aca9d5e022d68fdd94bf3c8e36a294a96"><div class="ttname"><a href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">ripple::ReadView::info</a></div><div class="ttdeci">virtual LedgerInfo const &amp; info() const =0</div><div class="ttdoc">Returns information about the ledger.</div></div> <div class="ttc" id="aclassripple_1_1ReadView_html_aca9d5e022d68fdd94bf3c8e36a294a96"><div class="ttname"><a href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">ripple::ReadView::info</a></div><div class="ttdeci">virtual LedgerInfo const &amp; info() const =0</div><div class="ttdoc">Returns information about the ledger.</div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_aceb3d74acaae18b238022337e5f250ce"><div class="ttname"><a href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">ripple::ReadView::rules</a></div><div class="ttdeci">virtual Rules const &amp; rules() const =0</div><div class="ttdoc">Returns the tx processing rules.</div></div>
<div class="ttc" id="aclassripple_1_1Rules_html_a1a8388a2b9588aa9446ece92a88e0dd2"><div class="ttname"><a href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">ripple::Rules::enabled</a></div><div class="ttdeci">bool enabled(uint256 const &amp;feature) const</div><div class="ttdoc">Returns true if a feature is enabled.</div><div class="ttdef"><b>Definition:</b> <a href="Rules_8cpp_source.html#l00130">Rules.cpp:130</a></div></div> <div class="ttc" id="aclassripple_1_1Rules_html_a1a8388a2b9588aa9446ece92a88e0dd2"><div class="ttname"><a href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">ripple::Rules::enabled</a></div><div class="ttdeci">bool enabled(uint256 const &amp;feature) const</div><div class="ttdoc">Returns true if a feature is enabled.</div><div class="ttdef"><b>Definition:</b> <a href="Rules_8cpp_source.html#l00130">Rules.cpp:130</a></div></div>
<div class="ttc" id="aclassripple_1_1SOTemplate_html"><div class="ttname"><a href="classripple_1_1SOTemplate.html">ripple::SOTemplate</a></div><div class="ttdoc">Defines the fields and their attributes within a STObject.</div><div class="ttdef"><b>Definition:</b> <a href="SOTemplate_8h_source.html#l00112">SOTemplate.h:113</a></div></div> <div class="ttc" id="aclassripple_1_1SOTemplate_html"><div class="ttname"><a href="classripple_1_1SOTemplate.html">ripple::SOTemplate</a></div><div class="ttdoc">Defines the fields and their attributes within a STObject.</div><div class="ttdef"><b>Definition:</b> <a href="SOTemplate_8h_source.html#l00112">SOTemplate.h:113</a></div></div>
<div class="ttc" id="aclassripple_1_1STArray_html"><div class="ttname"><a href="classripple_1_1STArray.html">ripple::STArray</a></div><div class="ttdef"><b>Definition:</b> <a href="STArray_8h_source.html#l00028">STArray.h:29</a></div></div> <div class="ttc" id="aclassripple_1_1STArray_html"><div class="ttname"><a href="classripple_1_1STArray.html">ripple::STArray</a></div><div class="ttdef"><b>Definition:</b> <a href="STArray_8h_source.html#l00028">STArray.h:29</a></div></div>
<div class="ttc" id="aclassripple_1_1STArray_html_adc3dc750320964c46b6d4ea2af8b8bc7"><div class="ttname"><a href="classripple_1_1STArray.html#adc3dc750320964c46b6d4ea2af8b8bc7">ripple::STArray::push_back</a></div><div class="ttdeci">void push_back(STObject const &amp;object)</div><div class="ttdef"><b>Definition:</b> <a href="STArray_8h_source.html#l00212">STArray.h:212</a></div></div> <div class="ttc" id="aclassripple_1_1STArray_html_adc3dc750320964c46b6d4ea2af8b8bc7"><div class="ttname"><a href="classripple_1_1STArray.html#adc3dc750320964c46b6d4ea2af8b8bc7">ripple::STArray::push_back</a></div><div class="ttdeci">void push_back(STObject const &amp;object)</div><div class="ttdef"><b>Definition:</b> <a href="STArray_8h_source.html#l00212">STArray.h:212</a></div></div>
<div class="ttc" id="aclassripple_1_1STArray_html_afdae4983cf41a2e6c3031d203b79c67b"><div class="ttname"><a href="classripple_1_1STArray.html#afdae4983cf41a2e6c3031d203b79c67b">ripple::STArray::size</a></div><div class="ttdeci">size_type size() const</div><div class="ttdef"><b>Definition:</b> <a href="STArray_8h_source.html#l00248">STArray.h:248</a></div></div>
<div class="ttc" id="aclassripple_1_1STCurrency_html_ab71aacd7f6769eae523f4a9a32e1ece1"><div class="ttname"><a href="classripple_1_1STCurrency.html#ab71aacd7f6769eae523f4a9a32e1ece1">ripple::STCurrency::currency</a></div><div class="ttdeci">Currency const &amp; currency() const</div><div class="ttdef"><b>Definition:</b> <a href="STCurrency_8h_source.html#l00089">STCurrency.h:89</a></div></div> <div class="ttc" id="aclassripple_1_1STCurrency_html_ab71aacd7f6769eae523f4a9a32e1ece1"><div class="ttname"><a href="classripple_1_1STCurrency.html#ab71aacd7f6769eae523f4a9a32e1ece1">ripple::STCurrency::currency</a></div><div class="ttdeci">Currency const &amp; currency() const</div><div class="ttdef"><b>Definition:</b> <a href="STCurrency_8h_source.html#l00089">STCurrency.h:89</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html"><div class="ttname"><a href="classripple_1_1STObject.html">ripple::STObject</a></div><div class="ttdef"><b>Definition:</b> <a href="STObject_8h_source.html#l00056">STObject.h:57</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html"><div class="ttname"><a href="classripple_1_1STObject.html">ripple::STObject</a></div><div class="ttdef"><b>Definition:</b> <a href="STObject_8h_source.html#l00056">STObject.h:57</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a0d2d874d34a1c3ed432cdb9fb1386b35"><div class="ttname"><a href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">ripple::STObject::getAccountID</a></div><div class="ttdeci">AccountID getAccountID(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00651">STObject.cpp:651</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_a0d2d874d34a1c3ed432cdb9fb1386b35"><div class="ttname"><a href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">ripple::STObject::getAccountID</a></div><div class="ttdeci">AccountID getAccountID(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00651">STObject.cpp:651</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a0fced814291f20736a0b1b50716ffb48"><div class="ttname"><a href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">ripple::STObject::getFieldArray</a></div><div class="ttdeci">STArray const &amp; getFieldArray(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00686">STObject.cpp:686</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_a0fced814291f20736a0b1b50716ffb48"><div class="ttname"><a href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">ripple::STObject::getFieldArray</a></div><div class="ttdeci">STArray const &amp; getFieldArray(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00686">STObject.cpp:686</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a168b1d0bbaa91de55bc518f68d4cf6f3"><div class="ttname"><a href="classripple_1_1STObject.html#a168b1d0bbaa91de55bc518f68d4cf6f3">ripple::STObject::setFieldCurrency</a></div><div class="ttdeci">void setFieldCurrency(SField const &amp;field, STCurrency const &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00795">STObject.cpp:795</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a6e622971f60d53b4a053065477264181"><div class="ttname"><a href="classripple_1_1STObject.html#a6e622971f60d53b4a053065477264181">ripple::STObject::setFieldU8</a></div><div class="ttdeci">void setFieldU8(SField const &amp;field, unsigned char)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00729">STObject.cpp:729</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a79d44cbca07f07419075eab63f02cf46"><div class="ttname"><a href="classripple_1_1STObject.html#a79d44cbca07f07419075eab63f02cf46">ripple::STObject::set</a></div><div class="ttdeci">void set(SOTemplate const &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00156">STObject.cpp:156</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_a79d44cbca07f07419075eab63f02cf46"><div class="ttname"><a href="classripple_1_1STObject.html#a79d44cbca07f07419075eab63f02cf46">ripple::STObject::set</a></div><div class="ttdeci">void set(SOTemplate const &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00156">STObject.cpp:156</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_aaf5d617701ac3afc4ad6a13862459692"><div class="ttname"><a href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">ripple::STObject::isFieldPresent</a></div><div class="ttdeci">bool isFieldPresent(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00484">STObject.cpp:484</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_aaf5d617701ac3afc4ad6a13862459692"><div class="ttname"><a href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">ripple::STObject::isFieldPresent</a></div><div class="ttdeci">bool isFieldPresent(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00484">STObject.cpp:484</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_ab0b017e27f7f03ba9e2827a26075524d"><div class="ttname"><a href="classripple_1_1STObject.html#ab0b017e27f7f03ba9e2827a26075524d">ripple::STObject::getFieldCurrency</a></div><div class="ttdeci">STCurrency const &amp; getFieldCurrency(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00693">STObject.cpp:693</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_ab0b017e27f7f03ba9e2827a26075524d"><div class="ttname"><a href="classripple_1_1STObject.html#ab0b017e27f7f03ba9e2827a26075524d">ripple::STObject::getFieldCurrency</a></div><div class="ttdeci">STCurrency const &amp; getFieldCurrency(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00693">STObject.cpp:693</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_ac0e2e3ed7f92a9f21aed2eda6d1ea5c6"><div class="ttname"><a href="classripple_1_1STObject.html#ac0e2e3ed7f92a9f21aed2eda6d1ea5c6">ripple::STObject::setFieldU64</a></div><div class="ttdeci">void setFieldU64(SField const &amp;field, std::uint64_t)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00747">STObject.cpp:747</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_af5aa57043ec772da30341e3c3b823d7f"><div class="ttname"><a href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">ripple::STObject::getFlags</a></div><div class="ttdeci">std::uint32_t getFlags() const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00537">STObject.cpp:537</a></div></div> <div class="ttc" id="aclassripple_1_1STObject_html_af5aa57043ec772da30341e3c3b823d7f"><div class="ttname"><a href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">ripple::STObject::getFlags</a></div><div class="ttdeci">std::uint32_t getFlags() const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00537">STObject.cpp:537</a></div></div>
<div class="ttc" id="aclassripple_1_1SetOracle_html_a11616651842f5d7f50205f4046549ff5"><div class="ttname"><a href="classripple_1_1SetOracle.html#a11616651842f5d7f50205f4046549ff5">ripple::SetOracle::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="SetOracle_8cpp_source.html#l00040">SetOracle.cpp:40</a></div></div> <div class="ttc" id="aclassripple_1_1SetOracle_html_a11616651842f5d7f50205f4046549ff5"><div class="ttname"><a href="classripple_1_1SetOracle.html#a11616651842f5d7f50205f4046549ff5">ripple::SetOracle::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &amp;ctx)</div><div class="ttdef"><b>Definition:</b> <a href="SetOracle_8cpp_source.html#l00040">SetOracle.cpp:40</a></div></div>
<div class="ttc" id="aclassripple_1_1SetOracle_html_a46ec333b3c8e46b9c07b0010bb038542"><div class="ttname"><a href="classripple_1_1SetOracle.html#a46ec333b3c8e46b9c07b0010bb038542">ripple::SetOracle::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition:</b> <a href="SetOracle_8cpp_source.html#l00208">SetOracle.cpp:208</a></div></div> <div class="ttc" id="aclassripple_1_1SetOracle_html_a46ec333b3c8e46b9c07b0010bb038542"><div class="ttname"><a href="classripple_1_1SetOracle.html#a46ec333b3c8e46b9c07b0010bb038542">ripple::SetOracle::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition:</b> <a href="SetOracle_8cpp_source.html#l00208">SetOracle.cpp:208</a></div></div>

View File

@@ -393,7 +393,7 @@ Private Attributes</h2></td></tr>
</table> </table>
</div><div class="memdoc"> </div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00684">684</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00739">739</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p>
</div> </div>
</div> </div>
@@ -420,7 +420,7 @@ Private Attributes</h2></td></tr>
</table> </table>
</div><div class="memdoc"> </div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00781">781</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00836">836</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p>
</div> </div>
</div> </div>
@@ -451,7 +451,7 @@ Private Attributes</h2></td></tr>
<p>Implements <a class="el" href="classbeast_1_1unit__test_1_1suite.html#aea7ffa0eca5e015d21be62a18adb8393">beast::unit_test::suite</a>.</p> <p>Implements <a class="el" href="classbeast_1_1unit__test_1_1suite.html#aea7ffa0eca5e015d21be62a18adb8393">beast::unit_test::suite</a>.</p>
<p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00806">806</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="Oracle__test_8cpp_source.html#l00861">861</a> of file <a class="el" href="Oracle__test_8cpp_source.html">Oracle_test.cpp</a>.</p>
</div> </div>
</div> </div>