This commit is contained in:
intelliot
2023-02-07 23:47:10 +00:00
parent f99123bc9a
commit c7d8e7e2ae
2196 changed files with 52159 additions and 44783 deletions

View File

@@ -482,103 +482,101 @@ $(function() {
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span> (with_rate)</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="comment">// 65.00000000000001 is correct.</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// This is result of limited precision.</span></div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; env.require(balance(</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; alice,</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="classripple_1_1STAmount.html">STAmount</a>(</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; carol[<span class="stringliteral">&quot;USD&quot;</span>].issue(),</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; 6500000000000001ull,</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; -14,</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">false</span>,</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">true</span>,</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="structripple_1_1STAmount_1_1unchecked.html">STAmount::unchecked</a>{})));</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; env.require(balance(carol, gw[<span class="stringliteral">&quot;USD&quot;</span>](35)));</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; env.require(balance(alice, carol[<span class="stringliteral">&quot;USD&quot;</span>](-50)));</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; env.require(balance(carol, gw[<span class="stringliteral">&quot;USD&quot;</span>](50)));</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; env.require(balance(alice, bob[<span class="stringliteral">&quot;USD&quot;</span>](-100)));</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; env.require(balance(amazon, gw[<span class="stringliteral">&quot;USD&quot;</span>](150)));</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; env.require(balance(bob, gw[<span class="stringliteral">&quot;USD&quot;</span>](0)));</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78"> 438</a></span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">testInvoiceID</a>(<a class="code" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; testcase(<span class="stringliteral">&quot;Set Invoice ID on Payment&quot;</span>);</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; Env env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; Account alice{<span class="stringliteral">&quot;alice&quot;</span>};</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">auto</span> wsc = <a class="code" href="namespaceripple_1_1test.html#aa4c787a68f386968ba9901187fa01873">test::makeWSClient</a>(env.app().config());</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; </div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; env.fund(XRP(10000), alice);</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; env.close();</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvs;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; jvs[jss::accounts] = <a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>;</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; jvs[jss::accounts].<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(env.master.human());</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; jvs[jss::streams] = <a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>;</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; jvs[jss::streams].<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(<span class="stringliteral">&quot;transactions&quot;</span>);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; BEAST_EXPECT(wsc-&gt;invoke(<span class="stringliteral">&quot;subscribe&quot;</span>, jvs)[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordtype">char</span> <span class="keyword">const</span>* invoiceid =</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="stringliteral">&quot;243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89&quot;</span>;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">auto</span> tx = env.jt(</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; pay(env.master, alice, XRP(10000)),</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; json(<a class="code" href="namespaceripple.html#aa4ddd63a8c28c5c757c0c73982cf8c90">sfInvoiceID</a>.<a class="code" href="classripple_1_1SField.html#a634bfabbd5e4494a2d5be6b7c6d3d70d">fieldName</a>, invoiceid));</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; jv[jss::tx_blob] = <a class="code" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(tx.stx-&gt;getSerializer().slice());</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">auto</span> jrr = wsc-&gt;invoke(<span class="stringliteral">&quot;submit&quot;</span>, jv)[jss::result];</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; BEAST_EXPECT(jrr[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; BEAST_EXPECT(jrr[jss::tx_json][<a class="code" href="namespaceripple.html#aa4ddd63a8c28c5c757c0c73982cf8c90">sfInvoiceID</a>.<a class="code" href="classripple_1_1SField.html#a634bfabbd5e4494a2d5be6b7c6d3d70d">fieldName</a>] == invoiceid);</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; env.close();</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; </div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">using namespace </span>std::chrono_literals;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; BEAST_EXPECT(wsc-&gt;findMsg(2s, [invoiceid](<span class="keyword">auto</span> <span class="keyword">const</span>&amp; jval) {</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; auto const&amp; t = jval[jss::transaction];</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; return t[jss::TransactionType] == jss::Payment &amp;&amp;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; t[sfInvoiceID.fieldName] == invoiceid;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }));</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; BEAST_EXPECT(wsc-&gt;invoke(<span class="stringliteral">&quot;unsubscribe&quot;</span>, jv)[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; </div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322"> 482</a></span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a8987c7dcd8299a7d0bbd06bbc3ba77a1">testTrustNonexistent</a>();</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a482c0e6faecda04362149b22ec843bd8">testCreditLimit</a>();</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; </div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">auto</span> testWithFeatures = [<span class="keyword">this</span>](<a class="code" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features) {</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a572e97e6c0774c4b273d11b66c066efa">testPayNonexistent</a>(features);</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a5cc032a29303d46246da0ef90aacc629">testDirectRipple</a>(features);</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">false</span>, <span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">false</span>, <span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">true</span>, <span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">true</span>, <span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#abc7e867d233e9c0f0faba23a4e1480be">testWithPath</a>(features);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#adc7781e9c5186c94682bd6906fb66c45">testIndirect</a>(features);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#ac29fd59eef087c08252022a9750bdb33">testIndirectMultiPath</a>(<span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#ac29fd59eef087c08252022a9750bdb33">testIndirectMultiPath</a>(<span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">testInvoiceID</a>(features);</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; };</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> sa = supported_amendments();</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; testWithFeatures(sa - <a class="code" href="namespaceripple.html#a2cb56a55020f266d207ee04d66cc97ae">featureFlowCross</a>);</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; testWithFeatures(sa);</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;};</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; env.require(balance(</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; alice,</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <a class="code" href="classripple_1_1STAmount.html">STAmount</a>(</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; carol[<span class="stringliteral">&quot;USD&quot;</span>].issue(),</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; 6500000000000000ull,</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; -14,</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">false</span>,</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">true</span>,</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="structripple_1_1STAmount_1_1unchecked.html">STAmount::unchecked</a>{})));</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; env.require(balance(carol, gw[<span class="stringliteral">&quot;USD&quot;</span>](35)));</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; {</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; env.require(balance(alice, carol[<span class="stringliteral">&quot;USD&quot;</span>](-50)));</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; env.require(balance(carol, gw[<span class="stringliteral">&quot;USD&quot;</span>](50)));</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; env.require(balance(alice, bob[<span class="stringliteral">&quot;USD&quot;</span>](-100)));</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; env.require(balance(amazon, gw[<span class="stringliteral">&quot;USD&quot;</span>](150)));</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; env.require(balance(bob, gw[<span class="stringliteral">&quot;USD&quot;</span>](0)));</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78"> 436</a></span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">testInvoiceID</a>(<a class="code" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features)</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; testcase(<span class="stringliteral">&quot;Set Invoice ID on Payment&quot;</span>);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; Env env{*<span class="keyword">this</span>, features};</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; Account alice{<span class="stringliteral">&quot;alice&quot;</span>};</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">auto</span> wsc = <a class="code" href="namespaceripple_1_1test.html#aa4c787a68f386968ba9901187fa01873">test::makeWSClient</a>(env.app().config());</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; env.fund(XRP(10000), alice);</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; env.close();</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; </div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvs;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; jvs[jss::accounts] = <a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>;</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; jvs[jss::accounts].<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(env.master.human());</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; jvs[jss::streams] = <a class="code" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a>;</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; jvs[jss::streams].<a class="code" href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">append</a>(<span class="stringliteral">&quot;transactions&quot;</span>);</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; BEAST_EXPECT(wsc-&gt;invoke(<span class="stringliteral">&quot;subscribe&quot;</span>, jvs)[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; </div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordtype">char</span> <span class="keyword">const</span>* invoiceid =</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="stringliteral">&quot;243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89&quot;</span>;</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; </div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">auto</span> tx = env.jt(</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; pay(env.master, alice, XRP(10000)),</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; json(<a class="code" href="namespaceripple.html#aa4ddd63a8c28c5c757c0c73982cf8c90">sfInvoiceID</a>.<a class="code" href="classripple_1_1SField.html#a634bfabbd5e4494a2d5be6b7c6d3d70d">fieldName</a>, invoiceid));</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; jv[jss::tx_blob] = <a class="code" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(tx.stx-&gt;getSerializer().slice());</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">auto</span> jrr = wsc-&gt;invoke(<span class="stringliteral">&quot;submit&quot;</span>, jv)[jss::result];</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; BEAST_EXPECT(jrr[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; BEAST_EXPECT(jrr[jss::tx_json][<a class="code" href="namespaceripple.html#aa4ddd63a8c28c5c757c0c73982cf8c90">sfInvoiceID</a>.<a class="code" href="classripple_1_1SField.html#a634bfabbd5e4494a2d5be6b7c6d3d70d">fieldName</a>] == invoiceid);</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; env.close();</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">using namespace </span>std::chrono_literals;</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; BEAST_EXPECT(wsc-&gt;findMsg(2s, [invoiceid](<span class="keyword">auto</span> <span class="keyword">const</span>&amp; jval) {</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; auto const&amp; t = jval[jss::transaction];</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; return t[jss::TransactionType] == jss::Payment &amp;&amp;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; t[sfInvoiceID.fieldName] == invoiceid;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }));</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; </div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; BEAST_EXPECT(wsc-&gt;invoke(<span class="stringliteral">&quot;unsubscribe&quot;</span>, jv)[jss::status] == <span class="stringliteral">&quot;success&quot;</span>);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322"> 480</a></span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322">run</a>()<span class="keyword"> override</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a8987c7dcd8299a7d0bbd06bbc3ba77a1">testTrustNonexistent</a>();</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a482c0e6faecda04362149b22ec843bd8">testCreditLimit</a>();</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">auto</span> testWithFeatures = [<span class="keyword">this</span>](<a class="code" href="classripple_1_1FeatureBitset.html">FeatureBitset</a> features) {</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a572e97e6c0774c4b273d11b66c066efa">testPayNonexistent</a>(features);</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a5cc032a29303d46246da0ef90aacc629">testDirectRipple</a>(features);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">false</span>, <span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">false</span>, <span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">true</span>, <span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">testWithTransferFee</a>(<span class="keyword">true</span>, <span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#abc7e867d233e9c0f0faba23a4e1480be">testWithPath</a>(features);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#adc7781e9c5186c94682bd6906fb66c45">testIndirect</a>(features);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#ac29fd59eef087c08252022a9750bdb33">testIndirectMultiPath</a>(<span class="keyword">true</span>, features);</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#ac29fd59eef087c08252022a9750bdb33">testIndirectMultiPath</a>(<span class="keyword">false</span>, features);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">testInvoiceID</a>(features);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; };</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keyword">using namespace </span>test::jtx;</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> sa = supported_amendments();</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; testWithFeatures(sa - <a class="code" href="namespaceripple.html#a2cb56a55020f266d207ee04d66cc97ae">featureFlowCross</a>);</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; testWithFeatures(sa);</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;};</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<a class="code" href="namespaceripple.html#a2701412a11b118c19256a4c901db2938">BEAST_DEFINE_TESTSUITE</a>(TrustAndBalance, app, <a class="code" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; </div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<a class="code" href="namespaceripple.html#a2701412a11b118c19256a4c901db2938">BEAST_DEFINE_TESTSUITE</a>(TrustAndBalance, app, <a class="code" href="namespaceripple.html">ripple</a>);</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<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 class="ttdoc">STL class.</div></div>
<div class="ttc" id="anamespaceripple_html_a2701412a11b118c19256a4c901db2938"><div class="ttname"><a href="namespaceripple.html#a2701412a11b118c19256a4c901db2938">ripple::BEAST_DEFINE_TESTSUITE</a></div><div class="ttdeci">BEAST_DEFINE_TESTSUITE(AccountTxPaging, app, ripple)</div></div>
@@ -588,20 +586,20 @@ $(function() {
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_abc7e867d233e9c0f0faba23a4e1480be"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#abc7e867d233e9c0f0faba23a4e1480be">ripple::TrustAndBalance_test::testWithPath</a></div><div class="ttdeci">void testWithPath(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00281">TrustAndBalance_test.cpp:281</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Account_html_aee0c1b197f33ad230162080a4ff2be16"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Account.html#aee0c1b197f33ad230162080a4ff2be16">ripple::test::jtx::Account::human</a></div><div class="ttdeci">std::string const &amp; human() const</div><div class="ttdoc">Returns the human readable public key.</div><div class="ttdef"><b>Definition:</b> <a href="Account_8h_source.html#l00113">Account.h:113</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a5cc032a29303d46246da0ef90aacc629"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a5cc032a29303d46246da0ef90aacc629">ripple::TrustAndBalance_test::testDirectRipple</a></div><div class="ttdeci">void testDirectRipple(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00161">TrustAndBalance_test.cpp:161</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a3cf88b801a10d217e954747814226d78"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">ripple::TrustAndBalance_test::testInvoiceID</a></div><div class="ttdeci">void testInvoiceID(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00438">TrustAndBalance_test.cpp:438</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a3cf88b801a10d217e954747814226d78"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a3cf88b801a10d217e954747814226d78">ripple::TrustAndBalance_test::testInvoiceID</a></div><div class="ttdeci">void testInvoiceID(FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00436">TrustAndBalance_test.cpp:436</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf30c1d76d9aca04b89314307a476b2bd">ripple::tecNO_DST_INSUF_XRP</a></div><div class="ttdeci">@ tecNO_DST_INSUF_XRP</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00255">TER.h:255</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a4e914b1c25d92e12af1ca3081359c9de"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a4e914b1c25d92e12af1ca3081359c9de">ripple::TrustAndBalance_test::testWithTransferFee</a></div><div class="ttdeci">void testWithTransferFee(bool subscribe, bool with_rate, FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00202">TrustAndBalance_test.cpp:202</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_ac29fd59eef087c08252022a9750bdb33"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#ac29fd59eef087c08252022a9750bdb33">ripple::TrustAndBalance_test::testIndirectMultiPath</a></div><div class="ttdeci">void testIndirectMultiPath(bool with_rate, FeatureBitset features)</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00371">TrustAndBalance_test.cpp:371</a></div></div>
<div class="ttc" id="anamespaceripple_html_a823af8711d62eb5661ccab5af1dde03a"><div class="ttname"><a href="namespaceripple.html#a823af8711d62eb5661ccab5af1dde03a">ripple::sfLowLimit</a></div><div class="ttdeci">const SF_AMOUNT sfLowLimit</div></div>
<div class="ttc" id="aclassJson_1_1Value_html_a7e49ac977e4bcf59745a09d426669f75"><div class="ttname"><a href="classJson_1_1Value.html#a7e49ac977e4bcf59745a09d426669f75">Json::Value::append</a></div><div class="ttdeci">Value &amp; append(const Value &amp;value)</div><div class="ttdoc">Append value to array at the end.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00882">json_value.cpp:882</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a4577dc5ae3314c8412594c05c09fe322"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322">ripple::TrustAndBalance_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00482">TrustAndBalance_test.cpp:482</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html_a4577dc5ae3314c8412594c05c09fe322"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html#a4577dc5ae3314c8412594c05c09fe322">ripple::TrustAndBalance_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00480">TrustAndBalance_test.cpp:480</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a1046843f003c2141d16ab41ad30dba5e"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a1046843f003c2141d16ab41ad30dba5e">ripple::temBAD_LIMIT</a></div><div class="ttdeci">@ temBAD_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00089">TER.h:89</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html"><div class="ttname"><a href="classripple_1_1STAmount.html">ripple::STAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00044">STAmount.h:44</a></div></div>
<div class="ttc" id="aclassripple_1_1STAmount_html"><div class="ttname"><a href="classripple_1_1STAmount.html">ripple::STAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00045">STAmount.h:45</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1path_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1path.html">ripple::test::jtx::path</a></div><div class="ttdoc">Add a path.</div><div class="ttdef"><b>Definition:</b> <a href="paths_8h_source.html#l00055">paths.h:55</a></div></div>
<div class="ttc" id="anamespaceripple_html_a78b8a880e6176b96eea2351ce8b9db77"><div class="ttname"><a href="namespaceripple.html#a78b8a880e6176b96eea2351ce8b9db77">ripple::sfHighLimit</a></div><div class="ttdeci">const SF_AMOUNT sfHighLimit</div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">ripple::tecPATH_PARTIAL</a></div><div class="ttdeci">@ tecPATH_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00246">TER.h:246</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCensorshipDetector_8h_source.html#l00029">RCLCensorshipDetector.h:29</a></div></div>
<div class="ttc" id="astructripple_1_1STAmount_1_1unchecked_html"><div class="ttname"><a href="structripple_1_1STAmount_1_1unchecked.html">ripple::STAmount::unchecked</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00079">STAmount.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1STAmount_1_1unchecked_html"><div class="ttname"><a href="structripple_1_1STAmount_1_1unchecked.html">ripple::STAmount::unchecked</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00080">STAmount.h:80</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa4ddd63a8c28c5c757c0c73982cf8c90"><div class="ttname"><a href="namespaceripple.html#aa4ddd63a8c28c5c757c0c73982cf8c90">ripple::sfInvoiceID</a></div><div class="ttdeci">const SF_UINT256 sfInvoiceID</div></div>
<div class="ttc" id="anamespaceripple_html_ab8a9c54401e8209fca7396c6b9c610f4"><div class="ttname"><a href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">ripple::sfBalance</a></div><div class="ttdeci">const SF_AMOUNT sfBalance</div></div>
<div class="ttc" id="aclassripple_1_1FeatureBitset_html"><div class="ttname"><a href="classripple_1_1FeatureBitset.html">ripple::FeatureBitset</a></div><div class="ttdef"><b>Definition:</b> <a href="Feature_8h_source.html#l00113">Feature.h:113</a></div></div>
@@ -618,7 +616,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html">ripple::test::jtx::Env</a></div><div class="ttdoc">A transaction testing environment.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00116">Env.h:116</a></div></div>
<div class="ttc" id="aclassripple_1_1TrustAndBalance__test_html"><div class="ttname"><a href="classripple_1_1TrustAndBalance__test.html">ripple::TrustAndBalance_test</a></div><div class="ttdef"><b>Definition:</b> <a href="TrustAndBalance__test_8cpp_source.html#l00029">TrustAndBalance_test.cpp:29</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">ripple::tecNO_DST</a></div><div class="ttdeci">@ tecNO_DST</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00254">TER.h:254</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a0f3a59ffc07ea469d2999d1ae0aeea77"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a0f3a59ffc07ea469d2999d1ae0aeea77">ripple::test::jtx::Env::rpc</a></div><div class="ttdeci">Json::Value rpc(std::unordered_map&lt; std::string, std::string &gt; const &amp;headers, std::string const &amp;cmd, Args &amp;&amp;... args)</div><div class="ttdoc">Execute an RPC command.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00684">Env.h:684</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1Env_html_a0f3a59ffc07ea469d2999d1ae0aeea77"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1Env.html#a0f3a59ffc07ea469d2999d1ae0aeea77">ripple::test::jtx::Env::rpc</a></div><div class="ttdeci">Json::Value rpc(std::unordered_map&lt; std::string, std::string &gt; const &amp;headers, std::string const &amp;cmd, Args &amp;&amp;... args)</div><div class="ttdoc">Execute an RPC command.</div><div class="ttdef"><b>Definition:</b> <a href="Env_8h_source.html#l00687">Env.h:687</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#l00145">json_value.h:145</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>