mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-26 05:55:51 +00:00
deploy: 3574956e5e
This commit is contained in:
@@ -341,256 +341,243 @@ $(function() {
|
||||
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">tecDST_TAG_NEEDED</a>;</div>
|
||||
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
||||
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">if</span> (paths || sendMax || !saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>())</div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// Ripple payment with at least one intermediate step and uses</span></div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// transitive balances.</span></div>
|
||||
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="comment">// Payment with at least one intermediate step and uses transitive balances.</span></div>
|
||||
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> ((paths || sendMax || !saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>()) && ctx.<a class="code" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code" href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">open</a>())</div>
|
||||
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div>
|
||||
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classripple_1_1STPathSet.html">STPathSet</a> <span class="keyword">const</span>& paths = ctx.<a class="code" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>.<a class="code" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>);</div>
|
||||
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  </div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">// Copy paths into an editable class.</span></div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classripple_1_1STPathSet.html">STPathSet</a> <span class="keyword">const</span> spsPaths = ctx.<a class="code" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>.<a class="code" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>);</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">auto</span> pathTooBig = spsPaths.<a class="code" href="classripple_1_1STPathSet.html#af74f528bb7846fccf7665ec4e0e6667d">size</a>() > <a class="code" href="classripple_1_1Payment.html#aaa06d8fe433c1e7a5fc681828c9d2e2f">MaxPathSize</a>;</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  </div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (!pathTooBig)</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& path : spsPaths)</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (path.size() > <a class="code" href="classripple_1_1Payment.html#a2b7d28471e680181651531643311e4d8">MaxPathLength</a>)</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  pathTooBig = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> (ctx.<a class="code" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code" href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">open</a>() && pathTooBig)</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005">telBAD_PATH_COUNT</a>; <span class="comment">// Too many paths for proposed ledger.</span></div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <a class="code" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f"> 301</a></span> <a class="code" href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f">Payment::doApply</a>()</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> {</div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">auto</span> <span class="keyword">const</span> deliverMin = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~<a class="code" href="namespaceripple.html#a2695cfe5d7b5e17b9a0ed4ec86244ec5">sfDeliverMin</a>];</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// Ripple if source or destination is non-native or if there are paths.</span></div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> uTxFlags = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">getFlags</a>();</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> partialPaymentAllowed = uTxFlags & <a class="code" href="namespaceripple.html#a7efcc6de2ed8aa0fa1f3e0a632f2f095">tfPartialPayment</a>;</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> limitQuality = uTxFlags & <a class="code" href="namespaceripple.html#abc202169b736c0a032eb947f186b6e63">tfLimitQuality</a>;</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> defaultPathsAllowed = !(uTxFlags & <a class="code" href="namespaceripple.html#aab3ff08970a7fcec2229fc4c9e5f7d38">tfNoRippleDirect</a>);</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">auto</span> <span class="keyword">const</span> paths = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>);</div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">auto</span> <span class="keyword">const</span> sendMax = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~<a class="code" href="namespaceripple.html#aa693ff83cdfe0f5cb821db0000b22928">sfSendMax</a>];</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> uDstAccountID(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(<a class="code" href="namespaceripple.html#a15aa3b3032d0908932dc5abf4b1ef862">sfDestination</a>));</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> saDstAmount(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(<a class="code" href="namespaceripple.html#a29758397ce451beaa436c3a9dfc83030">sfAmount</a>));</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classripple_1_1STAmount.html">STAmount</a> maxSourceAmount;</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (sendMax)</div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  maxSourceAmount = *sendMax;</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>())</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  maxSourceAmount = saDstAmount;</div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  maxSourceAmount = <a class="code" href="classripple_1_1STAmount.html">STAmount</a>(</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a5c7b5375e72e2459d4b6d65797744ca6">getCurrency</a>(), <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>},</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  saDstAmount.<a class="code" href="classripple_1_1STAmount.html#ae7f9ce5e872fd96b92b0cedbf8f09f81">mantissa</a>(),</div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a2885d73708e1b809f31a46ffaea5ad7f">exponent</a>(),</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  saDstAmount < beast::zero);</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"maxSourceAmount="</span> << maxSourceAmount.<a class="code" href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">getFullText</a>()</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  << <span class="stringliteral">" saDstAmount="</span> << saDstAmount.<a class="code" href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">getFullText</a>();</div>
|
||||
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">if</span> (paths.<a class="code" href="classripple_1_1STPathSet.html#af74f528bb7846fccf7665ec4e0e6667d">size</a>() > <a class="code" href="classripple_1_1Payment.html#aaa06d8fe433c1e7a5fc681828c9d2e2f">MaxPathSize</a> ||</div>
|
||||
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a>(paths.<a class="code" href="classripple_1_1STPathSet.html#a942c597a3ff98e2f6a7c0a6681c388aa">begin</a>(), paths.<a class="code" href="classripple_1_1STPathSet.html#a3343684da99412733b6c1661720fc725">end</a>(), [](<a class="code" href="classripple_1_1STPath.html">STPath</a> <span class="keyword">const</span>& path) {</div>
|
||||
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  return path.size() > MaxPathLength;</div>
|
||||
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }))</div>
|
||||
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
||||
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005">telBAD_PATH_COUNT</a>;</div>
|
||||
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
||||
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div>
|
||||
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
|
||||
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> }</div>
|
||||
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div>
|
||||
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <a class="code" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f"> 291</a></span> <a class="code" href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f">Payment::doApply</a>()</div>
|
||||
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> {</div>
|
||||
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">auto</span> <span class="keyword">const</span> deliverMin = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~<a class="code" href="namespaceripple.html#a2695cfe5d7b5e17b9a0ed4ec86244ec5">sfDeliverMin</a>];</div>
|
||||
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
||||
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// Ripple if source or destination is non-native or if there are paths.</span></div>
|
||||
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> uTxFlags = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">getFlags</a>();</div>
|
||||
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> partialPaymentAllowed = uTxFlags & <a class="code" href="namespaceripple.html#a7efcc6de2ed8aa0fa1f3e0a632f2f095">tfPartialPayment</a>;</div>
|
||||
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> limitQuality = uTxFlags & <a class="code" href="namespaceripple.html#abc202169b736c0a032eb947f186b6e63">tfLimitQuality</a>;</div>
|
||||
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> defaultPathsAllowed = !(uTxFlags & <a class="code" href="namespaceripple.html#aab3ff08970a7fcec2229fc4c9e5f7d38">tfNoRippleDirect</a>);</div>
|
||||
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">auto</span> <span class="keyword">const</span> paths = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>);</div>
|
||||
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">auto</span> <span class="keyword">const</span> sendMax = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~<a class="code" href="namespaceripple.html#aa693ff83cdfe0f5cb821db0000b22928">sfSendMax</a>];</div>
|
||||
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
|
||||
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> uDstAccountID(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(<a class="code" href="namespaceripple.html#a15aa3b3032d0908932dc5abf4b1ef862">sfDestination</a>));</div>
|
||||
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> saDstAmount(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(<a class="code" href="namespaceripple.html#a29758397ce451beaa436c3a9dfc83030">sfAmount</a>));</div>
|
||||
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classripple_1_1STAmount.html">STAmount</a> maxSourceAmount;</div>
|
||||
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (sendMax)</div>
|
||||
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  maxSourceAmount = *sendMax;</div>
|
||||
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>())</div>
|
||||
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  maxSourceAmount = saDstAmount;</div>
|
||||
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  maxSourceAmount = <a class="code" href="classripple_1_1STAmount.html">STAmount</a>(</div>
|
||||
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a5c7b5375e72e2459d4b6d65797744ca6">getCurrency</a>(), <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>},</div>
|
||||
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  saDstAmount.<a class="code" href="classripple_1_1STAmount.html#ae7f9ce5e872fd96b92b0cedbf8f09f81">mantissa</a>(),</div>
|
||||
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a2885d73708e1b809f31a46ffaea5ad7f">exponent</a>(),</div>
|
||||
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  saDstAmount < beast::zero);</div>
|
||||
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
|
||||
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"maxSourceAmount="</span> << maxSourceAmount.<a class="code" href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">getFullText</a>()</div>
|
||||
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  << <span class="stringliteral">" saDstAmount="</span> << saDstAmount.<a class="code" href="classripple_1_1STAmount.html#aee39db45aa65eddca7002ad9bf3e7877">getFullText</a>();</div>
|
||||
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
|
||||
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// Open a ledger for editing.</span></div>
|
||||
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(uDstAccountID);</div>
|
||||
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">SLE::pointer</a> sleDst = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aad9fb1233dec10dcc10c2e3b1da6a723">peek</a>(k);</div>
|
||||
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
|
||||
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">if</span> (!sleDst)</div>
|
||||
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  {</div>
|
||||
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> seqno{</div>
|
||||
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a19e46a085c26216e75132e85139d09ea">featureDeletableAccounts</a>) ? <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#ac284afc905c482953c35c61b459fd85b">seq</a>()</div>
|
||||
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  : 1};</div>
|
||||
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// Open a ledger for editing.</span></div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(uDstAccountID);</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">SLE::pointer</a> sleDst = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aad9fb1233dec10dcc10c2e3b1da6a723">peek</a>(k);</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (!sleDst)</div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> seqno{</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a19e46a085c26216e75132e85139d09ea">featureDeletableAccounts</a>) ? <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#ac284afc905c482953c35c61b459fd85b">seq</a>()</div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  : 1};</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// Create the account.</span></div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  sleDst = std::make_shared<SLE>(k);</div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  sleDst->setAccountID(<a class="code" href="namespaceripple.html#a5bab99595719d22579e10d21cf048eb0">sfAccount</a>, uDstAccountID);</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  sleDst->setFieldU32(<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>, seqno);</div>
|
||||
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// Create the account.</span></div>
|
||||
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  sleDst = std::make_shared<SLE>(k);</div>
|
||||
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  sleDst->setAccountID(<a class="code" href="namespaceripple.html#a5bab99595719d22579e10d21cf048eb0">sfAccount</a>, uDstAccountID);</div>
|
||||
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  sleDst->setFieldU32(<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>, seqno);</div>
|
||||
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
|
||||
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aa3c5b5cd9dca5f906be4b36640706e3c">insert</a>(sleDst);</div>
|
||||
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
||||
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  {</div>
|
||||
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="comment">// Tell the engine that we are intending to change the destination</span></div>
|
||||
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// account. The source account gets always charged a fee so it's always</span></div>
|
||||
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">// marked as modified.</span></div>
|
||||
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sleDst);</div>
|
||||
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  }</div>
|
||||
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aa3c5b5cd9dca5f906be4b36640706e3c">insert</a>(sleDst);</div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// Tell the engine that we are intending to change the destination</span></div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// account. The source account gets always charged a fee so it's always</span></div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="comment">// marked as modified.</span></div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sleDst);</div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// Determine whether the destination requires deposit authorization.</span></div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> reqDepositAuth = sleDst->getFlags() & <a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05">lsfDepositAuth</a> &&</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a549e32c7ae17a01dcd562df1a9679853">featureDepositAuth</a>);</div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  </div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> depositPreauth = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a2af7805d6ffc69b2227309433bccc833">featureDepositPreauth</a>);</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> bRipple = paths || sendMax || !saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>();</div>
|
||||
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">// Determine whether the destination requires deposit authorization.</span></div>
|
||||
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> reqDepositAuth = sleDst->getFlags() & <a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05">lsfDepositAuth</a> &&</div>
|
||||
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a549e32c7ae17a01dcd562df1a9679853">featureDepositAuth</a>);</div>
|
||||
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
|
||||
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> depositPreauth = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a2af7805d6ffc69b2227309433bccc833">featureDepositPreauth</a>);</div>
|
||||
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  </div>
|
||||
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordtype">bool</span> <span class="keyword">const</span> bRipple = paths || sendMax || !saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>();</div>
|
||||
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div>
|
||||
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="comment">// If the destination has lsfDepositAuth set, then only direct XRP</span></div>
|
||||
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// payments (no intermediate steps) are allowed to the destination.</span></div>
|
||||
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (!depositPreauth && bRipple && reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
|
||||
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span> (bRipple)</div>
|
||||
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div>
|
||||
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">// Ripple payment with at least one intermediate step and uses</span></div>
|
||||
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">// transitive balances.</span></div>
|
||||
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// If the destination has lsfDepositAuth set, then only direct XRP</span></div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// payments (no intermediate steps) are allowed to the destination.</span></div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> (!depositPreauth && bRipple && reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (bRipple)</div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="comment">// Ripple payment with at least one intermediate step and uses</span></div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="comment">// transitive balances.</span></div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (depositPreauth && reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  {</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="comment">// If depositPreauth is enabled, then an account that requires</span></div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="comment">// authorization has two ways to get an IOU Payment in:</span></div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="comment">// 1. If Account == Destination, or</span></div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="comment">// 2. If Account is deposit preauthorized by destination.</span></div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">if</span> (uDstAccountID != <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)</div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  {</div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().exists(</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="namespaceripple_1_1keylet.html#a67984ec9aed38198ec52136ad2cd86c0">keylet::depositPreauth</a>(uDstAccountID, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)))</div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  }</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="comment">// Copy paths into an editable class.</span></div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="classripple_1_1STPathSet.html">STPathSet</a> spsPaths = <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>);</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html">path::RippleCalc::Input</a> rcInput;</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#a6f79984cb663abdbeb7723f9a8d27895">partialPaymentAllowed</a> = partialPaymentAllowed;</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#a5913b8a574634a704a8359529c5deff9">defaultPathsAllowed</a> = defaultPathsAllowed;</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#ae29bd31fd5f430c171b84071584f310f">limitQuality</a> = limitQuality;</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#af4ffb41f82dc83812f388dc0fc111c2e">isLedgerOpen</a> = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">open</a>();</div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html">path::RippleCalc::Output</a> rc;</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  {</div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="classripple_1_1PaymentSandbox.html">PaymentSandbox</a> pv(&<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>());</div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Entering RippleCalc in payment: "</span></div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  << <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">getTransactionID</a>();</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  rc = <a class="code" href="classripple_1_1path_1_1RippleCalc.html#a359d70f8c834cec541d4036f785372c9">path::RippleCalc::rippleCalculate</a>(</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  pv,</div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  maxSourceAmount,</div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  saDstAmount,</div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  uDstAccountID,</div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>,</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  spsPaths,</div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code" href="classripple_1_1Application.html#a25782128c9548339beec993b748b0268">logs</a>(),</div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  &rcInput);</div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="comment">// VFALCO NOTE We might not need to apply, depending</span></div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="comment">// on the TER. But always applying *should*</span></div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="comment">// be safe.</span></div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  pv.<a class="code" href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="comment">// TODO: is this right? If the amount is the correct amount, was</span></div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// the delivered amount previously set?</span></div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">if</span> (rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a94945b6df065d61d3463e87281900fce">result</a>() == <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a> && rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a> != saDstAmount)</div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span> (deliverMin && rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a> < *deliverMin)</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#abfb54432dd167403ef7211b513af1e82">setResult</a>(<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>);</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#ae41c98e735027c912354391f518e228d">deliver</a>(rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a>);</div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div>
|
||||
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">if</span> (depositPreauth && reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  {</div>
|
||||
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// If depositPreauth is enabled, then an account that requires</span></div>
|
||||
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// authorization has two ways to get an IOU Payment in:</span></div>
|
||||
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="comment">// 1. If Account == Destination, or</span></div>
|
||||
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="comment">// 2. If Account is deposit preauthorized by destination.</span></div>
|
||||
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (uDstAccountID != <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)</div>
|
||||
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div>
|
||||
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().exists(</div>
|
||||
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="namespaceripple_1_1keylet.html#a67984ec9aed38198ec52136ad2cd86c0">keylet::depositPreauth</a>(uDstAccountID, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)))</div>
|
||||
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div>
|
||||
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
||||
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
|
||||
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html">path::RippleCalc::Input</a> rcInput;</div>
|
||||
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#a6f79984cb663abdbeb7723f9a8d27895">partialPaymentAllowed</a> = partialPaymentAllowed;</div>
|
||||
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#a5913b8a574634a704a8359529c5deff9">defaultPathsAllowed</a> = defaultPathsAllowed;</div>
|
||||
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#ae29bd31fd5f430c171b84071584f310f">limitQuality</a> = limitQuality;</div>
|
||||
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  rcInput.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Input.html#af4ffb41f82dc83812f388dc0fc111c2e">isLedgerOpen</a> = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">open</a>();</div>
|
||||
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
||||
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html">path::RippleCalc::Output</a> rc;</div>
|
||||
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div>
|
||||
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="classripple_1_1PaymentSandbox.html">PaymentSandbox</a> pv(&<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>());</div>
|
||||
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) << <span class="stringliteral">"Entering RippleCalc in payment: "</span></div>
|
||||
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  << <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">getTransactionID</a>();</div>
|
||||
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  rc = <a class="code" href="classripple_1_1path_1_1RippleCalc.html#a359d70f8c834cec541d4036f785372c9">path::RippleCalc::rippleCalculate</a>(</div>
|
||||
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  pv,</div>
|
||||
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  maxSourceAmount,</div>
|
||||
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  saDstAmount,</div>
|
||||
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  uDstAccountID,</div>
|
||||
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>,</div>
|
||||
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">getFieldPathSet</a>(<a class="code" href="namespaceripple.html#a7fd7e51ca0c60ec6708ec74c0c50c8a7">sfPaths</a>),</div>
|
||||
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code" href="classripple_1_1Application.html#a25782128c9548339beec993b748b0268">logs</a>(),</div>
|
||||
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  &rcInput);</div>
|
||||
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="comment">// VFALCO NOTE We might not need to apply, depending</span></div>
|
||||
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// on the TER. But always applying *should*</span></div>
|
||||
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// be safe.</span></div>
|
||||
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  pv.<a class="code" href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
|
||||
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div>
|
||||
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
|
||||
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="comment">// TODO: is this right? If the amount is the correct amount, was</span></div>
|
||||
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="comment">// the delivered amount previously set?</span></div>
|
||||
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">if</span> (rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a94945b6df065d61d3463e87281900fce">result</a>() == <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a> && rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a> != saDstAmount)</div>
|
||||
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div>
|
||||
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">if</span> (deliverMin && rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a> < *deliverMin)</div>
|
||||
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#abfb54432dd167403ef7211b513af1e82">setResult</a>(<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cabd7038b5669becf7271665614c94efb6">tecPATH_PARTIAL</a>);</div>
|
||||
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#ae41c98e735027c912354391f518e228d">deliver</a>(rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a4bb53c6084caa799ffbd574c13d13ed8">actualAmountOut</a>);</div>
|
||||
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  }</div>
|
||||
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  </div>
|
||||
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">auto</span> terResult = rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a94945b6df065d61d3463e87281900fce">result</a>();</div>
|
||||
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
|
||||
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">// Because of its overhead, if RippleCalc</span></div>
|
||||
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="comment">// fails with a retry code, claim a fee</span></div>
|
||||
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// instead. Maybe the user will be more</span></div>
|
||||
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// careful with their path spec next time.</span></div>
|
||||
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">isTerRetry</a>(terResult))</div>
|
||||
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  terResult = <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">tecPATH_DRY</a>;</div>
|
||||
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">return</span> terResult;</div>
|
||||
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div>
|
||||
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div>
|
||||
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  assert(saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>());</div>
|
||||
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">auto</span> terResult = rc.<a class="code" href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a94945b6df065d61d3463e87281900fce">result</a>();</div>
|
||||
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// Direct XRP payment.</span></div>
|
||||
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="comment">// Because of its overhead, if RippleCalc</span></div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// fails with a retry code, claim a fee</span></div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// instead. Maybe the user will be more</span></div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="comment">// careful with their path spec next time.</span></div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">isTerRetry</a>(terResult))</div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  terResult = <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">tecPATH_DRY</a>;</div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">return</span> terResult;</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  assert(saDstAmount.<a class="code" href="classripple_1_1STAmount.html#af3a02d7e9cd0b11509a90e0e6980bd64">native</a>());</div>
|
||||
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">auto</span> <span class="keyword">const</span> sleSrc = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aad9fb1233dec10dcc10c2e3b1da6a723">peek</a>(<a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
|
||||
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span> (!sleSrc)</div>
|
||||
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
|
||||
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  </div>
|
||||
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="comment">// uOwnerCount is the number of entries in this ledger for this</span></div>
|
||||
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// account that require a reserve.</span></div>
|
||||
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">auto</span> <span class="keyword">const</span> uOwnerCount = sleSrc->getFieldU32(<a class="code" href="namespaceripple.html#aee6c41ec9be20b8705502ae9290ef2b0">sfOwnerCount</a>);</div>
|
||||
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  </div>
|
||||
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">// This is the total reserve in drops.</span></div>
|
||||
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">auto</span> <span class="keyword">const</span> reserve = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a9bbdb3fb4754482a8d6c6e6d25c2d1eb">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(uOwnerCount);</div>
|
||||
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">// Direct XRP payment.</span></div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">auto</span> <span class="keyword">const</span> sleSrc = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ApplyView.html#aad9fb1233dec10dcc10c2e3b1da6a723">peek</a>(<a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">if</span> (!sleSrc)</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  </div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="comment">// uOwnerCount is the number of entries in this ledger for this</span></div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment">// account that require a reserve.</span></div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">auto</span> <span class="keyword">const</span> uOwnerCount = sleSrc->getFieldU32(<a class="code" href="namespaceripple.html#aee6c41ec9be20b8705502ae9290ef2b0">sfOwnerCount</a>);</div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  </div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// This is the total reserve in drops.</span></div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">auto</span> <span class="keyword">const</span> reserve = <a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a9bbdb3fb4754482a8d6c6e6d25c2d1eb">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(uOwnerCount);</div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  </div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="comment">// mPriorBalance is the balance on the sending account BEFORE the</span></div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="comment">// fees were charged. We want to make sure we have enough reserve</span></div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="comment">// to send. Allow final spend to use reserve for fee.</span></div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">auto</span> <span class="keyword">const</span> mmm = <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(reserve, <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(<a class="code" href="namespaceripple.html#a13864ec0864daa5d24b70d276414b8ff">sfFee</a>).<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>());</div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> < saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm)</div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="comment">// Vote no. However the transaction might succeed, if applied in</span></div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="comment">// a different order.</span></div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"Delay transaction: Insufficient funds: "</span></div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  << <span class="stringliteral">" "</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>) << <span class="stringliteral">" / "</span></div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm) << <span class="stringliteral">" ("</span></div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(reserve) << <span class="stringliteral">")"</span>;</div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>;</div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// AMMs can never receive an XRP payment.</span></div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// Must use AMMDeposit transaction instead.</span></div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span> (sleDst->getFlags() & <a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5aa92bc301276504f22d869a02806c0a1f">lsfAMM</a>)</div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// The source account does have enough money. Make sure the</span></div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// source account has authority to deposit to the destination.</span></div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">if</span> (reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  {</div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">// If depositPreauth is enabled, then an account that requires</span></div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="comment">// authorization has three ways to get an XRP Payment in:</span></div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// 1. If Account == Destination, or</span></div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="comment">// 2. If Account is deposit preauthorized by destination, or</span></div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// 3. If the destination's XRP balance is</span></div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="comment">// a. less than or equal to the base reserve and</span></div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="comment">// b. the deposit amount is less than or equal to the base reserve,</span></div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// then we allow the deposit.</span></div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">// Rule 3 is designed to keep an account from getting wedged</span></div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// in an unusable state if it sets the lsfDepositAuth flag and</span></div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="comment">// then consumes all of its XRP. Without the rule if an</span></div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="comment">// account with lsfDepositAuth set spent all of its XRP, it</span></div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="comment">// would be unable to acquire more XRP required to pay fees.</span></div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="comment">// We choose the base reserve as our bound because it is</span></div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">// a small number that seldom changes but is always sufficient</span></div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// to get the account un-wedged.</span></div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">if</span> (uDstAccountID != <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)</div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().exists(<a class="code" href="namespaceripple_1_1keylet.html#a67984ec9aed38198ec52136ad2cd86c0">keylet::depositPreauth</a>(uDstAccountID, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)))</div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// Get the base reserve.</span></div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <a class="code" href="classripple_1_1XRPAmount.html">XRPAmount</a> <span class="keyword">const</span> dstReserve{<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a9bbdb3fb4754482a8d6c6e6d25c2d1eb">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(0)};</div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (saDstAmount > dstReserve ||</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  sleDst->getFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>) > dstReserve)</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  </div>
|
||||
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="comment">// Do the arithmetic for the transfer and make the ledger change.</span></div>
|
||||
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  sleSrc->setFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>, <a class="code" href="classripple_1_1Transactor.html#ae20c19d8ecec32cec52399081e76cc45">mSourceBalance</a> - saDstAmount);</div>
|
||||
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  sleDst->setFieldAmount(</div>
|
||||
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>, sleDst->getFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>) + saDstAmount);</div>
|
||||
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </div>
|
||||
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="comment">// Re-arm the password change fee if we can and need to.</span></div>
|
||||
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> ((sleDst->getFlags() & <a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>))</div>
|
||||
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  sleDst->clearFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
|
||||
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  </div>
|
||||
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> }</div>
|
||||
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
|
||||
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">// mPriorBalance is the balance on the sending account BEFORE the</span></div>
|
||||
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="comment">// fees were charged. We want to make sure we have enough reserve</span></div>
|
||||
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="comment">// to send. Allow final spend to use reserve for fee.</span></div>
|
||||
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">auto</span> <span class="keyword">const</span> mmm = <a class="codeRef" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(reserve, <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code" href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">getFieldAmount</a>(<a class="code" href="namespaceripple.html#a13864ec0864daa5d24b70d276414b8ff">sfFee</a>).<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>());</div>
|
||||
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  </div>
|
||||
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> < saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm)</div>
|
||||
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  {</div>
|
||||
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment">// Vote no. However the transaction might succeed, if applied in</span></div>
|
||||
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">// a different order.</span></div>
|
||||
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) << <span class="stringliteral">"Delay transaction: Insufficient funds: "</span></div>
|
||||
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  << <span class="stringliteral">" "</span> << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>) << <span class="stringliteral">" / "</span></div>
|
||||
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saDstAmount.<a class="code" href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">xrp</a>() + mmm) << <span class="stringliteral">" ("</span></div>
|
||||
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  << <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(reserve) << <span class="stringliteral">")"</span>;</div>
|
||||
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  </div>
|
||||
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">tecUNFUNDED_PAYMENT</a>;</div>
|
||||
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div>
|
||||
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
|
||||
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="comment">// AMMs can never receive an XRP payment.</span></div>
|
||||
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="comment">// Must use AMMDeposit transaction instead.</span></div>
|
||||
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (sleDst->isFieldPresent(<a class="code" href="namespaceripple.html#af487c2d8c871030560b07f7b7c118fd1">sfAMMID</a>))</div>
|
||||
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  </div>
|
||||
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="comment">// The source account does have enough money. Make sure the</span></div>
|
||||
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="comment">// source account has authority to deposit to the destination.</span></div>
|
||||
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">if</span> (reqDepositAuth)</div>
|
||||
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div>
|
||||
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">// If depositPreauth is enabled, then an account that requires</span></div>
|
||||
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// authorization has three ways to get an XRP Payment in:</span></div>
|
||||
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="comment">// 1. If Account == Destination, or</span></div>
|
||||
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// 2. If Account is deposit preauthorized by destination, or</span></div>
|
||||
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// 3. If the destination's XRP balance is</span></div>
|
||||
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// a. less than or equal to the base reserve and</span></div>
|
||||
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="comment">// b. the deposit amount is less than or equal to the base reserve,</span></div>
|
||||
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="comment">// then we allow the deposit.</span></div>
|
||||
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// Rule 3 is designed to keep an account from getting wedged</span></div>
|
||||
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// in an unusable state if it sets the lsfDepositAuth flag and</span></div>
|
||||
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">// then consumes all of its XRP. Without the rule if an</span></div>
|
||||
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">// account with lsfDepositAuth set spent all of its XRP, it</span></div>
|
||||
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">// would be unable to acquire more XRP required to pay fees.</span></div>
|
||||
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// We choose the base reserve as our bound because it is</span></div>
|
||||
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="comment">// a small number that seldom changes but is always sufficient</span></div>
|
||||
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// to get the account un-wedged.</span></div>
|
||||
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">if</span> (uDstAccountID != <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)</div>
|
||||
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div>
|
||||
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">if</span> (!<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().exists(<a class="code" href="namespaceripple_1_1keylet.html#a67984ec9aed38198ec52136ad2cd86c0">keylet::depositPreauth</a>(uDstAccountID, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>)))</div>
|
||||
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div>
|
||||
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">// Get the base reserve.</span></div>
|
||||
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classripple_1_1XRPAmount.html">XRPAmount</a> <span class="keyword">const</span> dstReserve{<a class="code" href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">view</a>().<a class="code" href="classripple_1_1ReadView.html#a9bbdb3fb4754482a8d6c6e6d25c2d1eb">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(0)};</div>
|
||||
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  </div>
|
||||
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">if</span> (saDstAmount > dstReserve ||</div>
|
||||
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  sleDst->getFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>) > dstReserve)</div>
|
||||
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div>
|
||||
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div>
|
||||
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div>
|
||||
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  </div>
|
||||
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="comment">// Do the arithmetic for the transfer and make the ledger change.</span></div>
|
||||
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  sleSrc->setFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>, <a class="code" href="classripple_1_1Transactor.html#ae20c19d8ecec32cec52399081e76cc45">mSourceBalance</a> - saDstAmount);</div>
|
||||
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  sleDst->setFieldAmount(</div>
|
||||
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>, sleDst->getFieldAmount(<a class="code" href="namespaceripple.html#ab8a9c54401e8209fca7396c6b9c610f4">sfBalance</a>) + saDstAmount);</div>
|
||||
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  </div>
|
||||
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="comment">// Re-arm the password change fee if we can and need to.</span></div>
|
||||
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> ((sleDst->getFlags() & <a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>))</div>
|
||||
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  sleDst->clearFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
|
||||
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
|
||||
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> }</div>
|
||||
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  </div>
|
||||
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="anamespaceripple_html_a0d78fe5b5eff36774b5be525cbcc3972"><div class="ttname"><a href="namespaceripple.html#a0d78fe5b5eff36774b5be525cbcc3972">ripple::badCurrency</a></div><div class="ttdeci">Currency const & badCurrency()</div><div class="ttdoc">We deliberately disallow the currency that looks like "XRP" because too many people were using it ins...</div><div class="ttdef"><b>Definition:</b> <a href="UintTypes_8cpp_source.html#l00135">UintTypes.cpp:135</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aee6c41ec9be20b8705502ae9290ef2b0"><div class="ttname"><a href="namespaceripple.html#aee6c41ec9be20b8705502ae9290ef2b0">ripple::sfOwnerCount</a></div><div class="ttdeci">const SF_UINT32 sfOwnerCount</div></div>
|
||||
@@ -612,18 +599,20 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a29758397ce451beaa436c3a9dfc83030"><div class="ttname"><a href="namespaceripple.html#a29758397ce451beaa436c3a9dfc83030">ripple::sfAmount</a></div><div class="ttdeci">const SF_AMOUNT sfAmount</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1PaymentSandbox_html"><div class="ttname"><a href="classripple_1_1PaymentSandbox.html">ripple::PaymentSandbox</a></div><div class="ttdoc">A wrapper which makes credits unavailable to balances.</div><div class="ttdef"><b>Definition:</b> <a href="PaymentSandbox_8h_source.html#l00112">PaymentSandbox.h:112</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_aafdaa4e246ee6879df9cbbf2482dcc7d"><div class="ttname"><a href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">ripple::Transactor::j_</a></div><div class="ttdeci">const beast::Journal j_</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00089">Transactor.h:89</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5b31f337f444082f547ef1838e7064fc"><div class="ttname"><a href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">ripple::isTesSuccess</a></div><div class="ttdeci">bool isTesSuccess(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00604">TER.h:604</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5b31f337f444082f547ef1838e7064fc"><div class="ttname"><a href="namespaceripple.html#a5b31f337f444082f547ef1838e7064fc">ripple::isTesSuccess</a></div><div class="ttdeci">bool isTesSuccess(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00609">TER.h:609</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STAmount_html_ae7f9ce5e872fd96b92b0cedbf8f09f81"><div class="ttname"><a href="classripple_1_1STAmount.html#ae7f9ce5e872fd96b92b0cedbf8f09f81">ripple::STAmount::mantissa</a></div><div class="ttdeci">std::uint64_t mantissa() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00341">STAmount.h:341</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a2af7805d6ffc69b2227309433bccc833"><div class="ttname"><a href="namespaceripple.html#a2af7805d6ffc69b2227309433bccc833">ripple::featureDepositPreauth</a></div><div class="ttdeci">const uint256 featureDepositPreauth</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a586714bf3cbbbb406d6f169742bce0d5"><div class="ttname"><a href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">ripple::sfSequence</a></div><div class="ttdeci">const SF_UINT32 sfSequence</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_a9bbdb3fb4754482a8d6c6e6d25c2d1eb"><div class="ttname"><a href="classripple_1_1ReadView.html#a9bbdb3fb4754482a8d6c6e6d25c2d1eb">ripple::ReadView::fees</a></div><div class="ttdeci">virtual Fees const & fees() const =0</div><div class="ttdoc">Returns the fees for the base ledger.</div></div>
|
||||
<div class="ttc" id="astructripple_1_1path_1_1RippleCalc_1_1Input_html"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Input.html">ripple::path::RippleCalc::Input</a></div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00046">RippleCalc.h:46</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a549e32c7ae17a01dcd562df1a9679853"><div class="ttname"><a href="namespaceripple.html#a549e32c7ae17a01dcd562df1a9679853">ripple::featureDepositAuth</a></div><div class="ttdeci">const uint256 featureDepositAuth</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00279">TER.h:279</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00280">TER.h:280</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ApplyView_html_a542437b9b59a623e755979acdc075af5"><div class="ttname"><a href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">ripple::ApplyView::update</a></div><div class="ttdeci">virtual void update(std::shared_ptr< SLE > const &sle)=0</div><div class="ttdoc">Indicate changes to a peeked SLE.</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a3e312ecdb199409dca142d307a3e0e5b"><div class="ttname"><a href="namespaceripple.html#a3e312ecdb199409dca142d307a3e0e5b">ripple::isLegalNet</a></div><div class="ttdeci">bool isLegalNet(STAmount const &value)</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00446">STAmount.h:446</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a77dc079164717b62995593c7633a5160"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">ripple::ApplyContext::rawView</a></div><div class="ttdeci">RawView & rawView()</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00067">ApplyContext.h:67</a></div></div>
|
||||
<div class="ttc" id="aall_any_none_of_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/all_any_none_of.html">std::any_of</a></div><div class="ttdeci">T any_of(T... args)</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Payment_html_ab73444b0f7a44d60c73dd0f2bd88a4c7"><div class="ttname"><a href="classripple_1_1Payment.html#ab73444b0f7a44d60c73dd0f2bd88a4c7">ripple::Payment::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8cpp_source.html#l00047">Payment.cpp:47</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STPathSet_html_a3343684da99412733b6c1661720fc725"><div class="ttname"><a href="classripple_1_1STPathSet.html#a3343684da99412733b6c1661720fc725">ripple::STPathSet::end</a></div><div class="ttdeci">std::vector< STPath >::const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00491">STPathSet.h:491</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1PreflightContext_html_a7db9100a0f215cba1c093674692601c4"><div class="ttname"><a href="structripple_1_1PreflightContext.html#a7db9100a0f215cba1c093674692601c4">ripple::PreflightContext::j</a></div><div class="ttdeci">const beast::Journal j</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00038">Transactor.h:38</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STPathSet_html"><div class="ttname"><a href="classripple_1_1STPathSet.html">ripple::STPathSet</a></div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00176">STPathSet.h:176</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STAmount_html_a6c2ca92e9c91e2a34493d61e02d79ebf"><div class="ttname"><a href="classripple_1_1STAmount.html#a6c2ca92e9c91e2a34493d61e02d79ebf">ripple::STAmount::xrp</a></div><div class="ttdeci">XRPAmount xrp() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8cpp_source.html#l00334">STAmount.cpp:334</a></div></div>
|
||||
@@ -632,8 +621,8 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a6ec1f10e560afe30ed435c3f7eea715d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">ripple::ApplyContext::app</a></div><div class="ttdeci">Application & app</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00047">ApplyContext.h:47</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a19e46a085c26216e75132e85139d09ea"><div class="ttname"><a href="namespaceripple.html#a19e46a085c26216e75132e85139d09ea">ripple::featureDeletableAccounts</a></div><div class="ttdeci">const uint256 featureDeletableAccounts</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_abc202169b736c0a032eb947f186b6e63"><div class="ttname"><a href="namespaceripple.html#abc202169b736c0a032eb947f186b6e63">ripple::tfLimitQuality</a></div><div class="ttdeci">constexpr std::uint32_t tfLimitQuality</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00104">TxFlags.h:104</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5fee6de5a4606aa8a6fff71b1a3993fc"><div class="ttname"><a href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">ripple::isTerRetry</a></div><div class="ttdeci">bool isTerRetry(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00598">TER.h:598</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#l00261">TER.h:261</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5fee6de5a4606aa8a6fff71b1a3993fc"><div class="ttname"><a href="namespaceripple.html#a5fee6de5a4606aa8a6fff71b1a3993fc">ripple::isTerRetry</a></div><div class="ttdeci">bool isTerRetry(TER x)</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00603">TER.h:603</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#l00262">TER.h:262</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint< 160, detail::AccountIDTag ></a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a2695cfe5d7b5e17b9a0ed4ec86244ec5"><div class="ttname"><a href="namespaceripple.html#a2695cfe5d7b5e17b9a0ed4ec86244ec5">ripple::sfDeliverMin</a></div><div class="ttdeci">const SF_AMOUNT sfDeliverMin</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">ripple::temINVALID_FLAG</a></div><div class="ttdeci">@ temINVALID_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00109">TER.h:109</a></div></div>
|
||||
@@ -650,11 +639,10 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_1_1keylet_html_a50c370db96b4fdcdd202d9c2c38afce9"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">ripple::keylet::account</a></div><div class="ttdeci">Keylet account(AccountID const &id) noexcept</div><div class="ttdoc">AccountID root.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00134">Indexes.cpp:134</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 &field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00589">STObject.cpp:589</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a857efd3ad8949f2de9e95c26117a2d36"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a857efd3ad8949f2de9e95c26117a2d36">ripple::temBAD_SEND_XRP_PATHS</a></div><div class="ttdeci">@ temBAD_SEND_XRP_PATHS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00101">TER.h:101</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1TERSubset_html"><div class="ttname"><a href="classripple_1_1TERSubset.html">ripple::TERSubset</a></div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00347">TER.h:347</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Payment_html_a2b7d28471e680181651531643311e4d8"><div class="ttname"><a href="classripple_1_1Payment.html#a2b7d28471e680181651531643311e4d8">ripple::Payment::MaxPathLength</a></div><div class="ttdeci">static const std::size_t MaxPathLength</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8h_source.html#l00036">Payment.h:36</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1TERSubset_html"><div class="ttname"><a href="classripple_1_1TERSubset.html">ripple::TERSubset</a></div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00352">TER.h:352</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a39edce38f9982e3c8fd55206b5d4ce71"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a39edce38f9982e3c8fd55206b5d4ce71">ripple::temDST_NEEDED</a></div><div class="ttdeci">@ temDST_NEEDED</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00107">TER.h:107</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="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">ripple::tecUNFUNDED_PAYMENT</a></div><div class="ttdeci">@ tecUNFUNDED_PAYMENT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00255">TER.h:255</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad6e984aac9838459128d97b668ec1e4f">ripple::tecUNFUNDED_PAYMENT</a></div><div class="ttdeci">@ tecUNFUNDED_PAYMENT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00256">TER.h:256</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#l00481">STObject.cpp:481</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Application_html_a25782128c9548339beec993b748b0268"><div class="ttname"><a href="classripple_1_1Application.html#a25782128c9548339beec993b748b0268">ripple::Application::logs</a></div><div class="ttdeci">virtual Logs & logs()=0</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STTx_html"><div class="ttname"><a href="classripple_1_1STTx.html">ripple::STTx</a></div><div class="ttdef"><b>Definition:</b> <a href="STTx_8h_source.html#l00045">STTx.h:45</a></div></div>
|
||||
@@ -665,8 +653,9 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005"><div class="ttname"><a href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a4088680033e7189ff23d6f9838919005">ripple::telBAD_PATH_COUNT</a></div><div class="ttdeci">@ telBAD_PATH_COUNT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00053">TER.h:53</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="astructripple_1_1path_1_1RippleCalc_1_1Output_html"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Output.html">ripple::path::RippleCalc::Output</a></div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00055">RippleCalc.h:55</a></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#l00252">TER.h:252</a></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#l00253">TER.h:253</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a0b220bf6f780bf2ec67b6a6e18e9440f"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a0b220bf6f780bf2ec67b6a6e18e9440f">ripple::temREDUNDANT</a></div><div class="ttdeci">@ temREDUNDANT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00110">TER.h:110</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_af487c2d8c871030560b07f7b7c118fd1"><div class="ttname"><a href="namespaceripple.html#af487c2d8c871030560b07f7b7c118fd1">ripple::sfAMMID</a></div><div class="ttdeci">const SF_UINT256 sfAMMID</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_a3351e0244f921234d5ba005a07ddf539"><div class="ttname"><a href="classripple_1_1ReadView.html#a3351e0244f921234d5ba005a07ddf539">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr< SLE const > read(Keylet const &k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
|
||||
<div class="ttc" id="astructripple_1_1PreclaimContext_html_a8e1240b39791cf309b9caaffe8e5d306"><div class="ttname"><a href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">ripple::PreclaimContext::tx</a></div><div class="ttdeci">STTx const & tx</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00058">Transactor.h:58</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1path_1_1RippleCalc_1_1Output_html_a94945b6df065d61d3463e87281900fce"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Output.html#a94945b6df065d61d3463e87281900fce">ripple::path::RippleCalc::Output::result</a></div><div class="ttdeci">TER result() const</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00077">RippleCalc.h:77</a></div></div>
|
||||
@@ -678,27 +667,27 @@ $(function() {
|
||||
<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="aclassripple_1_1Payment_html_aaa06d8fe433c1e7a5fc681828c9d2e2f"><div class="ttname"><a href="classripple_1_1Payment.html#aaa06d8fe433c1e7a5fc681828c9d2e2f">ripple::Payment::MaxPathSize</a></div><div class="ttdeci">static const std::size_t MaxPathSize</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8h_source.html#l00033">Payment.h:33</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_a1ac5d16d7b21e8af9cc94d7af39a85d5"><div class="ttname"><a href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">ripple::Transactor::view</a></div><div class="ttdeci">ApplyView & view()</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00107">Transactor.h:107</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STPathSet_html_a942c597a3ff98e2f6a7c0a6681c388aa"><div class="ttname"><a href="classripple_1_1STPathSet.html#a942c597a3ff98e2f6a7c0a6681c388aa">ripple::STPathSet::begin</a></div><div class="ttdeci">std::vector< STPath >::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00485">STPathSet.h:485</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1PaymentSandbox_html_a69d4b79f512abb2d67e3b3fefa76008b"><div class="ttname"><a href="classripple_1_1PaymentSandbox.html#a69d4b79f512abb2d67e3b3fefa76008b">ripple::PaymentSandbox::apply</a></div><div class="ttdeci">void apply(RawView &to)</div><div class="ttdoc">Apply changes to base view.</div><div class="ttdef"><b>Definition:</b> <a href="PaymentSandbox_8cpp_source.html#l00254">PaymentSandbox.cpp:254</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1Fees_html_acb07843d0d0e3ccacd7cf51d5296fe40"><div class="ttname"><a href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">ripple::Fees::accountReserve</a></div><div class="ttdeci">XRPAmount accountReserve(std::size_t ownerCount) const</div><div class="ttdoc">Returns the account reserve given the owner count, in drops.</div><div class="ttdef"><b>Definition:</b> <a href="ReadView_8h_source.html#l00066">ReadView.h:66</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_ac284afc905c482953c35c61b459fd85b"><div class="ttname"><a href="classripple_1_1ReadView.html#ac284afc905c482953c35c61b459fd85b">ripple::ReadView::seq</a></div><div class="ttdeci">LedgerIndex seq() const</div><div class="ttdoc">Returns the sequence number of the base ledger.</div><div class="ttdef"><b>Definition:</b> <a href="ReadView_8h_source.html#l00193">ReadView.h:193</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1Fees_html_acb07843d0d0e3ccacd7cf51d5296fe40"><div class="ttname"><a href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">ripple::Fees::accountReserve</a></div><div class="ttdeci">XRPAmount accountReserve(std::size_t ownerCount) const</div><div class="ttdoc">Returns the account reserve given the owner count, in drops.</div><div class="ttdef"><b>Definition:</b> <a href="protocol_2Fees_8h_source.html#l00049">protocol/Fees.h:49</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_ac284afc905c482953c35c61b459fd85b"><div class="ttname"><a href="classripple_1_1ReadView.html#ac284afc905c482953c35c61b459fd85b">ripple::ReadView::seq</a></div><div class="ttdeci">LedgerIndex seq() const</div><div class="ttdoc">Returns the sequence number of the base ledger.</div><div class="ttdef"><b>Definition:</b> <a href="ReadView_8h_source.html#l00122">ReadView.h:122</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_aaf2fa03be723bb78d8bdf41614a75a30"><div class="ttname"><a href="classripple_1_1ReadView.html#aaf2fa03be723bb78d8bdf41614a75a30">ripple::ReadView::rules</a></div><div class="ttdeci">virtual Rules const & rules() const =0</div><div class="ttdoc">Returns the tx processing rules.</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 &field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00428">STObject.cpp:428</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a999804f69d4c945a231d41eadabec2b8"><div class="ttname"><a href="namespaceripple.html#a999804f69d4c945a231d41eadabec2b8">ripple::sfDestinationTag</a></div><div class="ttdeci">const SF_UINT32 sfDestinationTag</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_abb2f6f5d7fd8c663c5df76b6fcba2c49"><div class="ttname"><a href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">ripple::Transactor::mPriorBalance</a></div><div class="ttdeci">XRPAmount mPriorBalance</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00092">Transactor.h:92</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1path_1_1RippleCalc_html_a359d70f8c834cec541d4036f785372c9"><div class="ttname"><a href="classripple_1_1path_1_1RippleCalc.html#a359d70f8c834cec541d4036f785372c9">ripple::path::RippleCalc::rippleCalculate</a></div><div class="ttdeci">static Output rippleCalculate(PaymentSandbox &view, STAmount const &saMaxAmountReq, STAmount const &saDstAmountReq, AccountID const &uDstAccountID, AccountID const &uSrcAccountID, STPathSet const &spsPaths, Logs &l, Input const *const pInputs=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8cpp_source.html#l00031">RippleCalc.cpp:31</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00275">TER.h:275</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00276">TER.h:276</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_ae20c19d8ecec32cec52399081e76cc45"><div class="ttname"><a href="classripple_1_1Transactor.html#ae20c19d8ecec32cec52399081e76cc45">ripple::Transactor::mSourceBalance</a></div><div class="ttdeci">XRPAmount mSourceBalance</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00093">Transactor.h:93</a></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="astructripple_1_1path_1_1RippleCalc_1_1Input_html_a6f79984cb663abdbeb7723f9a8d27895"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Input.html#a6f79984cb663abdbeb7723f9a8d27895">ripple::path::RippleCalc::Input::partialPaymentAllowed</a></div><div class="ttdeci">bool partialPaymentAllowed</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00050">RippleCalc.h:50</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">ripple::tecPATH_DRY</a></div><div class="ttdeci">@ tecPATH_DRY</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00264">TER.h:264</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Payment_html_a8b1a399da3a017a5a9d61cd2c8b2b19f"><div class="ttname"><a href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f">ripple::Payment::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8cpp_source.html#l00301">Payment.cpp:301</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">ripple::tecPATH_DRY</a></div><div class="ttdeci">@ tecPATH_DRY</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00265">TER.h:265</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Payment_html_a8b1a399da3a017a5a9d61cd2c8b2b19f"><div class="ttname"><a href="classripple_1_1Payment.html#a8b1a399da3a017a5a9d61cd2c8b2b19f">ripple::Payment::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8cpp_source.html#l00291">Payment.cpp:291</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_aef4ef0a89b5595b2a688b89e4ecef833"><div class="ttname"><a href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ripple::Transactor::ctx_</a></div><div class="ttdeci">ApplyContext & ctx_</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00088">Transactor.h:88</a></div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1Journal_html_a556228cb60bcf405c225d3f64b7b01ae"><div class="ttname"><a href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">beast::Journal::debug</a></div><div class="ttdeci">Stream debug() const</div><div class="ttdef"><b>Definition:</b> <a href="Journal_8h_source.html#l00315">Journal.h:315</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1path_1_1RippleCalc_1_1Output_html_abfb54432dd167403ef7211b513af1e82"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Output.html#abfb54432dd167403ef7211b513af1e82">ripple::path::RippleCalc::Output::setResult</a></div><div class="ttdeci">void setResult(TER const value)</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00082">RippleCalc.h:82</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00041">app/misc/impl/Manifest.cpp:41</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a13864ec0864daa5d24b70d276414b8ff"><div class="ttname"><a href="namespaceripple.html#a13864ec0864daa5d24b70d276414b8ff">ripple::sfFee</a></div><div class="ttdeci">const SF_AMOUNT sfFee</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5bab99595719d22579e10d21cf048eb0"><div class="ttname"><a href="namespaceripple.html#a5bab99595719d22579e10d21cf048eb0">ripple::sfAccount</a></div><div class="ttdeci">const SF_ACCOUNT sfAccount</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5aa92bc301276504f22d869a02806c0a1f"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5aa92bc301276504f22d869a02806c0a1f">ripple::lsfAMM</a></div><div class="ttdeci">@ lsfAMM</div><div class="ttdef"><b>Definition:</b> <a href="LedgerFormats_8h_source.html#l00252">LedgerFormats.h:252</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ababf50b6a950c48e10622ce16c0f73d2"><div class="ttname"><a href="namespaceripple.html#ababf50b6a950c48e10622ce16c0f73d2">ripple::tfPaymentMask</a></div><div class="ttdeci">constexpr std::uint32_t tfPaymentMask</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00105">TxFlags.h:105</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1PreflightContext_html_af202c00e509cfbb1df4fe69f4d6d6560"><div class="ttname"><a href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">ripple::PreflightContext::tx</a></div><div class="ttdeci">STTx const & tx</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00035">Transactor.h:35</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a260d2970ac1119109937ed1c5d4ca962a5c4a0a37ecf949f9b66ff5ed936ab581"><div class="ttname"><a href="namespaceripple.html#a260d2970ac1119109937ed1c5d4ca962a5c4a0a37ecf949f9b66ff5ed936ab581">ripple::telNO_DST_PARTIAL</a></div><div class="ttdeci">@ telNO_DST_PARTIAL</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00057">TER.h:57</a></div></div>
|
||||
@@ -707,16 +696,17 @@ $(function() {
|
||||
<div class="ttc" id="astructripple_1_1path_1_1RippleCalc_1_1Input_html_ae29bd31fd5f430c171b84071584f310f"><div class="ttname"><a href="structripple_1_1path_1_1RippleCalc_1_1Input.html#ae29bd31fd5f430c171b84071584f310f">ripple::path::RippleCalc::Input::limitQuality</a></div><div class="ttdeci">bool limitQuality</div><div class="ttdef"><b>Definition:</b> <a href="RippleCalc_8h_source.html#l00052">RippleCalc.h:52</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a524b9e72a35568bf34e38b8faefaeaab"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a524b9e72a35568bf34e38b8faefaeaab">ripple::temBAD_SEND_XRP_LIMIT</a></div><div class="ttdeci">@ temBAD_SEND_XRP_LIMIT</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00097">TER.h:97</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STObject_html_a03645626ad58a31437400f3c225a8de3"><div class="ttname"><a href="classripple_1_1STObject.html#a03645626ad58a31437400f3c225a8de3">ripple::STObject::getFieldPathSet</a></div><div class="ttdeci">STPathSet const & getFieldPathSet(SField const &field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00610">STObject.cpp:610</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STPath_html"><div class="ttname"><a href="classripple_1_1STPath.html">ripple::STPath</a></div><div class="ttdef"><b>Definition:</b> <a href="STPathSet_8h_source.html#l00118">STPathSet.h:118</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Payment_html_aa8a1ae4f359062212797281f175ab89d"><div class="ttname"><a href="classripple_1_1Payment.html#aa8a1ae4f359062212797281f175ab89d">ripple::Payment::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &ctx)</div><div class="ttdef"><b>Definition:</b> <a href="Payment_8cpp_source.html#l00207">Payment.cpp:207</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1keylet_html_a67984ec9aed38198ec52136ad2cd86c0"><div class="ttname"><a href="namespaceripple_1_1keylet.html#a67984ec9aed38198ec52136ad2cd86c0">ripple::keylet::depositPreauth</a></div><div class="ttdeci">Keylet depositPreauth(AccountID const &owner, AccountID const &preauthorized) noexcept</div><div class="ttdoc">A DepositPreauth.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00288">Indexes.cpp:288</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1TxConsequences_html"><div class="ttname"><a href="classripple_1_1TxConsequences.html">ripple::TxConsequences</a></div><div class="ttdoc">Class describing the consequences to the account of applying a transaction if the transaction consume...</div><div class="ttdef"><b>Definition:</b> <a href="applySteps_8h_source.html#l00045">applySteps.h:45</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ReadView_html_a8dc63ee1e4ae7b2f96823e146c53d03e"><div class="ttname"><a href="classripple_1_1ReadView.html#a8dc63ee1e4ae7b2f96823e146c53d03e">ripple::ReadView::open</a></div><div class="ttdeci">virtual bool open() const =0</div><div class="ttdoc">Returns true if this reflects an open ledger.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STAmount_html_a5c7b5375e72e2459d4b6d65797744ca6"><div class="ttname"><a href="classripple_1_1STAmount.html#a5c7b5375e72e2459d4b6d65797744ca6">ripple::STAmount::getCurrency</a></div><div class="ttdeci">Currency const & getCurrency() const</div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00353">STAmount.h:353</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00225">TER.h:225</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition:</b> <a href="TER_8h_source.html#l00226">TER.h:226</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Transactor_html_a558a1d4288c859eb5875154a86435220"><div class="ttname"><a href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">ripple::Transactor::account_</a></div><div class="ttdeci">const AccountID account_</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00091">Transactor.h:91</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1STObject_html_a8e207109e646759f4927d90e4404893f"><div class="ttname"><a href="classripple_1_1STObject.html#a8e207109e646759f4927d90e4404893f">ripple::STObject::getFieldAmount</a></div><div class="ttdeci">STAmount const & getFieldAmount(SField const &field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00603">STObject.cpp:603</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a8c8757b3b1f88baef47b31ed4e9682d0"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">ripple::ApplyContext::tx</a></div><div class="ttdeci">STTx const & tx</div><div class="ttdef"><b>Definition:</b> <a href="ApplyContext_8h_source.html#l00048">ApplyContext.h:48</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#l00260">TER.h:260</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#l00261">TER.h:261</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aab3ff08970a7fcec2229fc4c9e5f7d38"><div class="ttname"><a href="namespaceripple.html#aab3ff08970a7fcec2229fc4c9e5f7d38">ripple::tfNoRippleDirect</a></div><div class="ttdeci">constexpr std::uint32_t tfNoRippleDirect</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00102">TxFlags.h:102</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1XRPAmount_html"><div class="ttname"><a href="classripple_1_1XRPAmount.html">ripple::XRPAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="XRPAmount_8h_source.html#l00046">XRPAmount.h:46</a></div></div>
|
||||
<!-- start footer part -->
|
||||
|
||||
Reference in New Issue
Block a user