mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-26 22:15:52 +00:00
deploy: 37c377a1b6
This commit is contained in:
@@ -1125,420 +1125,425 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <span class="comment">// compute balance to transfer</span></div>
|
||||
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span> finalAmt = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aa40b0743a468d95eeaaf4914ea555866">value</a>() - xferFee;</div>
|
||||
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> }</div>
|
||||
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
|
||||
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a83da4b11e236a23156ac525c94494dcf">rippleUnlockEscrowMPT</a>(view, sender, receiver, finalAmt, journal);</div>
|
||||
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span>}</div>
|
||||
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a2bf72b4d8923d178f4cb5ed49cdc1e24">rippleUnlockEscrowMPT</a>(</div>
|
||||
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> view,</div>
|
||||
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> sender,</div>
|
||||
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> receiver,</div>
|
||||
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> finalAmt,</div>
|
||||
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> view.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixTokenEscrowV1) ? amount : finalAmt,</div>
|
||||
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> journal);</div>
|
||||
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> </div>
|
||||
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01015" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792"> 1015</a></span><a class="code hl_function" href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792">EscrowFinish::doApply</a>()</div>
|
||||
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span>{</div>
|
||||
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOwner], <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(k);</div>
|
||||
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> {</div>
|
||||
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> </div>
|
||||
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> }</div>
|
||||
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
|
||||
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <span class="comment">// If a cancel time is present, a finish operation should only succeed prior</span></div>
|
||||
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <span class="comment">// to that time. fix1571 corrects a logic error in the check that would make</span></div>
|
||||
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">// a finish only succeed strictly after the cancel time.</span></div>
|
||||
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1571))</div>
|
||||
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> {</div>
|
||||
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <span class="keyword">auto</span> <span class="keyword">const</span> now = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>;</div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> </div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">// Too soon: can't execute before the finish time</span></div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordflow">if</span> ((*slep)[~sfFinishAfter] && !<a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfFinishAfter]))</div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> </div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">// Too late: can't execute after the cancel time</span></div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="keywordflow">if</span> ((*slep)[~sfCancelAfter] && <a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfCancelAfter]))</div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> }</div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> {</div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <span class="comment">// Too soon?</span></div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <span class="keywordflow">if</span> ((*slep)[~sfFinishAfter] &&</div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> (*slep)[sfFinishAfter])</div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="comment">// Too late?</span></div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <span class="keywordflow">if</span> ((*slep)[~sfCancelAfter] &&</div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> (*slep)[sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> }</div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> </div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">// Check cryptocondition fulfillment</span></div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> {</div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keyword">auto</span> <span class="keyword">const</span> <span class="keywordtype">id</span> = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">getTransactionID</a>();</div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> <span class="keyword">auto</span> flags = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#a22f52b3e9c359e43b7fd0a96ab38e029">getFlags</a>(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> </div>
|
||||
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01020" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792"> 1020</a></span><a class="code hl_function" href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792">EscrowFinish::doApply</a>()</div>
|
||||
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span>{</div>
|
||||
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOwner], <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(k);</div>
|
||||
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> {</div>
|
||||
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> </div>
|
||||
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> }</div>
|
||||
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> </div>
|
||||
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <span class="comment">// If a cancel time is present, a finish operation should only succeed prior</span></div>
|
||||
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span> <span class="comment">// to that time. fix1571 corrects a logic error in the check that would make</span></div>
|
||||
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="comment">// a finish only succeed strictly after the cancel time.</span></div>
|
||||
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1571))</div>
|
||||
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> {</div>
|
||||
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <span class="keyword">auto</span> <span class="keyword">const</span> now = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>;</div>
|
||||
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> </div>
|
||||
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <span class="comment">// Too soon: can't execute before the finish time</span></div>
|
||||
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="keywordflow">if</span> ((*slep)[~sfFinishAfter] && !<a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfFinishAfter]))</div>
|
||||
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> </div>
|
||||
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> <span class="comment">// Too late: can't execute after the cancel time</span></div>
|
||||
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> <span class="keywordflow">if</span> ((*slep)[~sfCancelAfter] && <a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfCancelAfter]))</div>
|
||||
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span> }</div>
|
||||
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> {</div>
|
||||
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> <span class="comment">// Too soon?</span></div>
|
||||
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> <span class="keywordflow">if</span> ((*slep)[~sfFinishAfter] &&</div>
|
||||
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span> (*slep)[sfFinishAfter])</div>
|
||||
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span> </div>
|
||||
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">// Too late?</span></div>
|
||||
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span> <span class="keywordflow">if</span> ((*slep)[~sfCancelAfter] &&</div>
|
||||
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> (*slep)[sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> }</div>
|
||||
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> </div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="keyword">auto</span> <span class="keyword">const</span> cb = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~sfCondition];</div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> </div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <span class="comment">// It's unlikely that the results of the check will</span></div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="comment">// expire from the hash router, but if it happens,</span></div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> <span class="comment">// simply re-run the check.</span></div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">if</span> (cb && !any(flags & (<a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a> | <a class="code hl_variable" href="namespaceripple.html#a74fe9492132be2c47b97e7bb4de18cb8">SF_CF_VALID</a>)))</div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> {</div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="keyword">auto</span> <span class="keyword">const</span> fb = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~sfFulfillment];</div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> </div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordflow">if</span> (!fb)</div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>;</div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> </div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a8bfde2a725fdf2ec6390e107c0324e0d">checkCondition</a>(*fb, *cb))</div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> flags = <a class="code hl_variable" href="namespaceripple.html#a74fe9492132be2c47b97e7bb4de18cb8">SF_CF_VALID</a>;</div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> flags = <a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a>;</div>
|
||||
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">// Check cryptocondition fulfillment</span></div>
|
||||
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> {</div>
|
||||
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span> <span class="keyword">auto</span> <span class="keyword">const</span> <span class="keywordtype">id</span> = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STTx.html#ad314af66e2542db537b3b5de291d33c3">getTransactionID</a>();</div>
|
||||
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="keyword">auto</span> flags = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#a22f52b3e9c359e43b7fd0a96ab38e029">getFlags</a>(<span class="keywordtype">id</span>);</div>
|
||||
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span> </div>
|
||||
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> <span class="keyword">auto</span> <span class="keyword">const</span> cb = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~sfCondition];</div>
|
||||
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> </div>
|
||||
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">// It's unlikely that the results of the check will</span></div>
|
||||
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">// expire from the hash router, but if it happens,</span></div>
|
||||
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">// simply re-run the check.</span></div>
|
||||
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span> <span class="keywordflow">if</span> (cb && !any(flags & (<a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a> | <a class="code hl_variable" href="namespaceripple.html#a74fe9492132be2c47b97e7bb4de18cb8">SF_CF_VALID</a>)))</div>
|
||||
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> {</div>
|
||||
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span> <span class="keyword">auto</span> <span class="keyword">const</span> fb = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[~sfFulfillment];</div>
|
||||
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> </div>
|
||||
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span> <span class="keywordflow">if</span> (!fb)</div>
|
||||
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>;</div>
|
||||
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> </div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#a8ee73756ff7f46f1616a2996740abfda">setFlags</a>(<span class="keywordtype">id</span>, flags);</div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> }</div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> </div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">// If the check failed, then simply return an error</span></div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">// and don't look at anything else.</span></div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <span class="keywordflow">if</span> (any(flags & <a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a>))</div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a8bfde2a725fdf2ec6390e107c0324e0d">checkCondition</a>(*fb, *cb))</div>
|
||||
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> flags = <a class="code hl_variable" href="namespaceripple.html#a74fe9492132be2c47b97e7bb4de18cb8">SF_CF_VALID</a>;</div>
|
||||
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> flags = <a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a>;</div>
|
||||
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span> </div>
|
||||
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code hl_function" href="classripple_1_1Application.html#ad60542d0ed6bf805110c4c85ddf63c3c">getHashRouter</a>().<a class="code hl_function" href="classripple_1_1HashRouter.html#a8ee73756ff7f46f1616a2996740abfda">setFlags</a>(<span class="keywordtype">id</span>, flags);</div>
|
||||
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> }</div>
|
||||
<div class="line"><a id="l01086" name="l01086"></a><span class="lineno"> 1086</span> </div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">// Check against condition in the ledger entry:</span></div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="keyword">auto</span> <span class="keyword">const</span> cond = (*slep)[~sfCondition];</div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> </div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">// If a condition wasn't specified during creation,</span></div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">// one shouldn't be included now.</span></div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <span class="keywordflow">if</span> (!cond && cb)</div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">// If the check failed, then simply return an error</span></div>
|
||||
<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">// and don't look at anything else.</span></div>
|
||||
<div class="line"><a id="l01089" name="l01089"></a><span class="lineno"> 1089</span> <span class="keywordflow">if</span> (any(flags & <a class="code hl_variable" href="namespaceripple.html#ab2711b68b31e3391ad2e8203abf716b5">SF_CF_INVALID</a>))</div>
|
||||
<div class="line"><a id="l01090" name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01091" name="l01091"></a><span class="lineno"> 1091</span> </div>
|
||||
<div class="line"><a id="l01092" name="l01092"></a><span class="lineno"> 1092</span> <span class="comment">// Check against condition in the ledger entry:</span></div>
|
||||
<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"> 1093</span> <span class="keyword">auto</span> <span class="keyword">const</span> cond = (*slep)[~sfCondition];</div>
|
||||
<div class="line"><a id="l01094" name="l01094"></a><span class="lineno"> 1094</span> </div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// If a condition was specified during creation of</span></div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">// the suspended payment, the identical condition</span></div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> <span class="comment">// must be presented again. We don't check if the</span></div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">// fulfillment matches the condition since we did</span></div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <span class="comment">// that in preflight.</span></div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <span class="keywordflow">if</span> (cond && (cond != cb))</div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> }</div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> </div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">// NOTE: Escrow payments cannot be used to fund accounts.</span></div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> destID = (*slep)[sfDestination];</div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <span class="keyword">auto</span> <span class="keyword">const</span> sled = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(destID));</div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> <span class="keywordflow">if</span> (!sled)</div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">tecNO_DST</a>;</div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureDepositAuth))</div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> {</div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> err = <a class="code hl_function" href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">verifyDepositPreauth</a>(</div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, destID, sled, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(err))</div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordflow">return</span> err;</div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> }</div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> </div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> </div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="comment">// Remove escrow from owner directory</span></div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> {</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> <span class="keyword">auto</span> <span class="keyword">const</span> page = (*slep)[sfOwnerNode];</div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(account), page, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> {</div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from owner."</span>;</div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> }</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> }</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> </div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> <span class="comment">// Remove escrow from recipient's owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfDestinationNode])</div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> {</div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(destID), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> {</div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> }</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> }</div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> </div>
|
||||
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = slep->getFieldAmount(sfAmount);</div>
|
||||
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <span class="comment">// Transfer amount to destination</span></div>
|
||||
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> (*sled)[sfBalance] = (*sled)[sfBalance] + amount;</div>
|
||||
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> {</div>
|
||||
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">temDISABLED</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
|
||||
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <a class="code hl_struct" href="structripple_1_1Rate.html">Rate</a> lockedRate = slep->isFieldPresent(sfTransferRate)</div>
|
||||
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> ? <a class="code hl_struct" href="structripple_1_1Rate.html">ripple::Rate</a>(slep->getFieldU32(sfTransferRate))</div>
|
||||
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> : <a class="code hl_variable" href="namespaceripple.html#afbcd0117839fb629a769c600a741f452">parityRate</a>;</div>
|
||||
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> createAsset = destID == <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
|
||||
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> <span class="keywordflow">return</span> escrowUnlockApplyHelper<T>(</div>
|
||||
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(),</div>
|
||||
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> lockedRate,</div>
|
||||
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> sled,</div>
|
||||
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>,</div>
|
||||
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> amount,</div>
|
||||
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> issuer,</div>
|
||||
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> account,</div>
|
||||
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> destID,</div>
|
||||
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> createAsset,</div>
|
||||
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>);</div>
|
||||
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> },</div>
|
||||
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> </div>
|
||||
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">// Remove escrow from issuers owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfIssuerNode]; optPage)</div>
|
||||
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> {</div>
|
||||
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(issuer), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> {</div>
|
||||
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> }</div>
|
||||
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> }</div>
|
||||
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> }</div>
|
||||
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> </div>
|
||||
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sled);</div>
|
||||
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> </div>
|
||||
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> <span class="comment">// Adjust source owner count</span></div>
|
||||
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(account));</div>
|
||||
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> <a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), sle, -1, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
|
||||
<div class="line"><a id="l01095" name="l01095"></a><span class="lineno"> 1095</span> <span class="comment">// If a condition wasn't specified during creation,</span></div>
|
||||
<div class="line"><a id="l01096" name="l01096"></a><span class="lineno"> 1096</span> <span class="comment">// one shouldn't be included now.</span></div>
|
||||
<div class="line"><a id="l01097" name="l01097"></a><span class="lineno"> 1097</span> <span class="keywordflow">if</span> (!cond && cb)</div>
|
||||
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"> 1098</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> </div>
|
||||
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">// If a condition was specified during creation of</span></div>
|
||||
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">// the suspended payment, the identical condition</span></div>
|
||||
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">// must be presented again. We don't check if the</span></div>
|
||||
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">// fulfillment matches the condition since we did</span></div>
|
||||
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span> <span class="comment">// that in preflight.</span></div>
|
||||
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> <span class="keywordflow">if</span> (cond && (cond != cb))</div>
|
||||
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca0d2c540d43d291ee01366fb9eb95c20f">tecCRYPTOCONDITION_ERROR</a>;</div>
|
||||
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> }</div>
|
||||
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> </div>
|
||||
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> <span class="comment">// NOTE: Escrow payments cannot be used to fund accounts.</span></div>
|
||||
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> destID = (*slep)[sfDestination];</div>
|
||||
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> <span class="keyword">auto</span> <span class="keyword">const</span> sled = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(destID));</div>
|
||||
<div class="line"><a id="l01112" name="l01112"></a><span class="lineno"> 1112</span> <span class="keywordflow">if</span> (!sled)</div>
|
||||
<div class="line"><a id="l01113" name="l01113"></a><span class="lineno"> 1113</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">tecNO_DST</a>;</div>
|
||||
<div class="line"><a id="l01114" name="l01114"></a><span class="lineno"> 1114</span> </div>
|
||||
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureDepositAuth))</div>
|
||||
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span> {</div>
|
||||
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> err = <a class="code hl_function" href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">verifyDepositPreauth</a>(</div>
|
||||
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, destID, sled, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(err))</div>
|
||||
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span> <span class="keywordflow">return</span> err;</div>
|
||||
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span> }</div>
|
||||
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> </div>
|
||||
<div class="line"><a id="l01123" name="l01123"></a><span class="lineno"> 1123</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01124" name="l01124"></a><span class="lineno"> 1124</span> </div>
|
||||
<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">// Remove escrow from owner directory</span></div>
|
||||
<div class="line"><a id="l01126" name="l01126"></a><span class="lineno"> 1126</span> {</div>
|
||||
<div class="line"><a id="l01127" name="l01127"></a><span class="lineno"> 1127</span> <span class="keyword">auto</span> <span class="keyword">const</span> page = (*slep)[sfOwnerNode];</div>
|
||||
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"> 1128</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(account), page, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> {</div>
|
||||
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from owner."</span>;</div>
|
||||
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span> }</div>
|
||||
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> }</div>
|
||||
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> </div>
|
||||
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">// Remove escrow from recipient's owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfDestinationNode])</div>
|
||||
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> {</div>
|
||||
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(destID), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> {</div>
|
||||
<div class="line"><a id="l01142" name="l01142"></a><span class="lineno"> 1142</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01143" name="l01143"></a><span class="lineno"> 1143</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01144" name="l01144"></a><span class="lineno"> 1144</span> }</div>
|
||||
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"> 1145</span> }</div>
|
||||
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span> </div>
|
||||
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = slep->getFieldAmount(sfAmount);</div>
|
||||
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">// Transfer amount to destination</span></div>
|
||||
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> (*sled)[sfBalance] = (*sled)[sfBalance] + amount;</div>
|
||||
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> {</div>
|
||||
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">temDISABLED</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> </div>
|
||||
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> <a class="code hl_struct" href="structripple_1_1Rate.html">Rate</a> lockedRate = slep->isFieldPresent(sfTransferRate)</div>
|
||||
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> ? <a class="code hl_struct" href="structripple_1_1Rate.html">ripple::Rate</a>(slep->getFieldU32(sfTransferRate))</div>
|
||||
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> : <a class="code hl_variable" href="namespaceripple.html#afbcd0117839fb629a769c600a741f452">parityRate</a>;</div>
|
||||
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> createAsset = destID == <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
|
||||
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> <span class="keywordflow">return</span> escrowUnlockApplyHelper<T>(</div>
|
||||
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(),</div>
|
||||
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> lockedRate,</div>
|
||||
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> sled,</div>
|
||||
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>,</div>
|
||||
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> amount,</div>
|
||||
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span> issuer,</div>
|
||||
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span> account,</div>
|
||||
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> destID,</div>
|
||||
<div class="line"><a id="l01172" name="l01172"></a><span class="lineno"> 1172</span> createAsset,</div>
|
||||
<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"> 1173</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>);</div>
|
||||
<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> },</div>
|
||||
<div class="line"><a id="l01175" name="l01175"></a><span class="lineno"> 1175</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01176" name="l01176"></a><span class="lineno"> 1176</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01177" name="l01177"></a><span class="lineno"> 1177</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01178" name="l01178"></a><span class="lineno"> 1178</span> </div>
|
||||
<div class="line"><a id="l01179" name="l01179"></a><span class="lineno"> 1179</span> <span class="comment">// Remove escrow from issuers owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01180" name="l01180"></a><span class="lineno"> 1180</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfIssuerNode]; optPage)</div>
|
||||
<div class="line"><a id="l01181" name="l01181"></a><span class="lineno"> 1181</span> {</div>
|
||||
<div class="line"><a id="l01182" name="l01182"></a><span class="lineno"> 1182</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(issuer), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span> {</div>
|
||||
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01187" name="l01187"></a><span class="lineno"> 1187</span> }</div>
|
||||
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"> 1188</span> }</div>
|
||||
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span> }</div>
|
||||
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> </div>
|
||||
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sled);</div>
|
||||
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> </div>
|
||||
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">// Remove escrow from ledger</span></div>
|
||||
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afda9c12acbda605becf20f54d45587d4">erase</a>(slep);</div>
|
||||
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">// Adjust source owner count</span></div>
|
||||
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(account));</div>
|
||||
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span> <a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), sle, -1, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
|
||||
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span> </div>
|
||||
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span><span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> </div>
|
||||
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span><a class="code hl_class" href="classripple_1_1TERSubset.html">NotTEC</a></div>
|
||||
<div class="foldopen" id="foldopen01201" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a"> 1201</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a">EscrowCancel::preflight</a>(<a class="code hl_struct" href="structripple_1_1PreflightContext.html">PreflightContext</a> <span class="keyword">const</span>& ctx)</div>
|
||||
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span>{</div>
|
||||
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#ab27bfce9ca08a7330ff573e4e2d5fc68">rules</a>.<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1543) && ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">getFlags</a>() & <a class="code hl_variable" href="namespaceripple.html#ac8844b7ad1603892172e8e6d1044de00">tfUniversalMask</a>)</div>
|
||||
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">temINVALID_FLAG</a>;</div>
|
||||
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span> </div>
|
||||
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_function" href="namespaceripple.html#a5dfb437ade69624474bbe4125ceb791a">preflight1</a>(ctx); !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> </div>
|
||||
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a8b257ff89d14ac75ce240946f32d3773">preflight2</a>(ctx);</div>
|
||||
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span>}</div>
|
||||
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> <span class="comment">// Remove escrow from ledger</span></div>
|
||||
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afda9c12acbda605becf20f54d45587d4">erase</a>(slep);</div>
|
||||
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01201" name="l01201"></a><span class="lineno"> 1201</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> </div>
|
||||
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span><span class="keyword">template</span> <Val<span class="keywordtype">id</span>IssueType T></div>
|
||||
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span><span class="keyword">static</span> <a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"><a class="line" href="namespaceripple.html#a9d1fee04f23a89bcbdc5f34f09ad9126"> 1214</a></span><a class="code hl_function" href="namespaceripple.html#a9d1fee04f23a89bcbdc5f34f09ad9126">escrowCancelPreclaimHelper</a>(</div>
|
||||
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount);</div>
|
||||
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span> </div>
|
||||
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"> 1219</span><span class="keyword">template</span> <></div>
|
||||
<div class="foldopen" id="foldopen01220" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"><a class="line" href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c"> 1220</a></span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span><a class="code hl_function" href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c">escrowCancelPreclaimHelper<Issue></a>(</div>
|
||||
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount)</div>
|
||||
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span>{</div>
|
||||
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <span class="comment">// If the issuer is the same as the account, return tecINTERNAL</span></div>
|
||||
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordflow">if</span> (issuer == account)</div>
|
||||
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> </div>
|
||||
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">// If the issuer has requireAuth set, check if the account is authorized</span></div>
|
||||
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter = <a class="code hl_function" href="namespaceripple.html#a16b466cc38b73c15e032e268db4c4de7">requireAuth</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>, amount.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), account);</div>
|
||||
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
|
||||
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> <span class="keywordflow">return</span> ter;</div>
|
||||
<div class="line"><a id="l01202" name="l01202"></a><span class="lineno"> 1202</span> </div>
|
||||
<div class="line"><a id="l01203" name="l01203"></a><span class="lineno"> 1203</span><span class="comment">//------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a id="l01204" name="l01204"></a><span class="lineno"> 1204</span> </div>
|
||||
<div class="line"><a id="l01205" name="l01205"></a><span class="lineno"> 1205</span><a class="code hl_class" href="classripple_1_1TERSubset.html">NotTEC</a></div>
|
||||
<div class="foldopen" id="foldopen01206" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a"> 1206</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a">EscrowCancel::preflight</a>(<a class="code hl_struct" href="structripple_1_1PreflightContext.html">PreflightContext</a> <span class="keyword">const</span>& ctx)</div>
|
||||
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span>{</div>
|
||||
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#ab27bfce9ca08a7330ff573e4e2d5fc68">rules</a>.<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1543) && ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">getFlags</a>() & <a class="code hl_variable" href="namespaceripple.html#ac8844b7ad1603892172e8e6d1044de00">tfUniversalMask</a>)</div>
|
||||
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">temINVALID_FLAG</a>;</div>
|
||||
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> </div>
|
||||
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_function" href="namespaceripple.html#a5dfb437ade69624474bbe4125ceb791a">preflight1</a>(ctx); !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span> </div>
|
||||
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a8b257ff89d14ac75ce240946f32d3773">preflight2</a>(ctx);</div>
|
||||
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01216" name="l01216"></a><span class="lineno"> 1216</span> </div>
|
||||
<div class="line"><a id="l01217" name="l01217"></a><span class="lineno"> 1217</span><span class="keyword">template</span> <Val<span class="keywordtype">id</span>IssueType T></div>
|
||||
<div class="line"><a id="l01218" name="l01218"></a><span class="lineno"> 1218</span><span class="keyword">static</span> <a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01219" name="l01219"></a><span class="lineno"><a class="line" href="namespaceripple.html#a9d1fee04f23a89bcbdc5f34f09ad9126"> 1219</a></span><a class="code hl_function" href="namespaceripple.html#a9d1fee04f23a89bcbdc5f34f09ad9126">escrowCancelPreclaimHelper</a>(</div>
|
||||
<div class="line"><a id="l01220" name="l01220"></a><span class="lineno"> 1220</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"> 1221</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount);</div>
|
||||
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"> 1223</span> </div>
|
||||
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span><span class="keyword">template</span> <></div>
|
||||
<div class="foldopen" id="foldopen01225" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"><a class="line" href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c"> 1225</a></span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><a class="code hl_function" href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c">escrowCancelPreclaimHelper<Issue></a>(</div>
|
||||
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount)</div>
|
||||
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>{</div>
|
||||
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">// If the issuer is the same as the account, return tecINTERNAL</span></div>
|
||||
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> <span class="keywordflow">if</span> (issuer == account)</div>
|
||||
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> </div>
|
||||
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span>}</div>
|
||||
<div class="line"><a id="l01236" name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">// If the issuer has requireAuth set, check if the account is authorized</span></div>
|
||||
<div class="line"><a id="l01237" name="l01237"></a><span class="lineno"> 1237</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter = <a class="code hl_function" href="namespaceripple.html#a16b466cc38b73c15e032e268db4c4de7">requireAuth</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>, amount.<a class="code hl_function" href="classripple_1_1STAmount.html#acab76380a95d902071fd26ab3425bbe5">issue</a>(), account);</div>
|
||||
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
|
||||
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span> <span class="keywordflow">return</span> ter;</div>
|
||||
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span> </div>
|
||||
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01238" name="l01238"></a><span class="lineno"> 1238</span> </div>
|
||||
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"> 1239</span><span class="keyword">template</span> <></div>
|
||||
<div class="foldopen" id="foldopen01240" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"><a class="line" href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990"> 1240</a></span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span><a class="code hl_function" href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990">escrowCancelPreclaimHelper<MPTIssue></a>(</div>
|
||||
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount)</div>
|
||||
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span>{</div>
|
||||
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> <span class="comment">// If the issuer is the same as the account, return tecINTERNAL</span></div>
|
||||
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> <span class="keywordflow">if</span> (issuer == account)</div>
|
||||
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span> </div>
|
||||
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <span class="comment">// If the mpt does not exist, return tecOBJECT_NOT_FOUND</span></div>
|
||||
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuanceKey =</div>
|
||||
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a7e12ae09e428d8a07cf82d04e62b7608">keylet::mptIssuance</a>(amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">get</a><<a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>>().<a class="code hl_function" href="classripple_1_1MPTIssue.html#ad6cbfdbce5a5d92e1536fc9835b54757">getMptID</a>());</div>
|
||||
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleIssuance = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(issuanceKey);</div>
|
||||
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> <span class="keywordflow">if</span> (!sleIssuance)</div>
|
||||
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca2f3fdd22dc22973eca4c97cb3f9e65fc">tecOBJECT_NOT_FOUND</a>;</div>
|
||||
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> </div>
|
||||
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> <span class="comment">// If the issuer has requireAuth set, check if the account is</span></div>
|
||||
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">// authorized</span></div>
|
||||
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> <span class="keyword">auto</span> <span class="keyword">const</span>& mptIssue = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">get</a><<a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>>();</div>
|
||||
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter =</div>
|
||||
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> <a class="code hl_function" href="namespaceripple.html#a16b466cc38b73c15e032e268db4c4de7">requireAuth</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>, mptIssue, account, <a class="code hl_enumvalue" href="namespaceripple.html#a4e070aef85986336795216a3e5336f8da41aee20744fc47f976626aa2ade7adcb">AuthType::WeakAuth</a>);</div>
|
||||
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
|
||||
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="keywordflow">return</span> ter;</div>
|
||||
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> </div>
|
||||
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span>}</div>
|
||||
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> </div>
|
||||
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span><span class="keyword">template</span> <></div>
|
||||
<div class="foldopen" id="foldopen01245" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"><a class="line" href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990"> 1245</a></span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span><a class="code hl_function" href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990">escrowCancelPreclaimHelper<MPTIssue></a>(</div>
|
||||
<div class="line"><a id="l01247" name="l01247"></a><span class="lineno"> 1247</span> <a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx,</div>
|
||||
<div class="line"><a id="l01248" name="l01248"></a><span class="lineno"> 1248</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>& account,</div>
|
||||
<div class="line"><a id="l01249" name="l01249"></a><span class="lineno"> 1249</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span>& amount)</div>
|
||||
<div class="line"><a id="l01250" name="l01250"></a><span class="lineno"> 1250</span>{</div>
|
||||
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">// If the issuer is the same as the account, return tecINTERNAL</span></div>
|
||||
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> <span class="keywordflow">if</span> (issuer == account)</div>
|
||||
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span> </div>
|
||||
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> <span class="comment">// If the mpt does not exist, return tecOBJECT_NOT_FOUND</span></div>
|
||||
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuanceKey =</div>
|
||||
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#a7e12ae09e428d8a07cf82d04e62b7608">keylet::mptIssuance</a>(amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">get</a><<a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>>().<a class="code hl_function" href="classripple_1_1MPTIssue.html#ad6cbfdbce5a5d92e1536fc9835b54757">getMptID</a>());</div>
|
||||
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleIssuance = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(issuanceKey);</div>
|
||||
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span> <span class="keywordflow">if</span> (!sleIssuance)</div>
|
||||
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca2f3fdd22dc22973eca4c97cb3f9e65fc">tecOBJECT_NOT_FOUND</a>;</div>
|
||||
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> </div>
|
||||
<div class="line"><a id="l01263" name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">// If the issuer has requireAuth set, check if the account is</span></div>
|
||||
<div class="line"><a id="l01264" name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">// authorized</span></div>
|
||||
<div class="line"><a id="l01265" name="l01265"></a><span class="lineno"> 1265</span> <span class="keyword">auto</span> <span class="keyword">const</span>& mptIssue = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a4faedb8cf3aa230868cc0ecd3b0da6d6">get</a><<a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>>();</div>
|
||||
<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"> 1266</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ter =</div>
|
||||
<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> <a class="code hl_function" href="namespaceripple.html#a16b466cc38b73c15e032e268db4c4de7">requireAuth</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>, mptIssue, account, <a class="code hl_enumvalue" href="namespaceripple.html#a4e070aef85986336795216a3e5336f8da41aee20744fc47f976626aa2ade7adcb">AuthType::WeakAuth</a>);</div>
|
||||
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> ter != <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
|
||||
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span> <span class="keywordflow">return</span> ter;</div>
|
||||
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"> 1270</span> </div>
|
||||
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01268" name="l01268"></a><span class="lineno"> 1268</span> </div>
|
||||
<div class="line"><a id="l01269" name="l01269"></a><span class="lineno"> 1269</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01270" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01270" name="l01270"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce"> 1270</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce">EscrowCancel::preclaim</a>(<a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx)</div>
|
||||
<div class="line"><a id="l01271" name="l01271"></a><span class="lineno"> 1271</span>{</div>
|
||||
<div class="line"><a id="l01272" name="l01272"></a><span class="lineno"> 1272</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> {</div>
|
||||
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>[sfOwner], ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(k);</div>
|
||||
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> </div>
|
||||
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = (*slep)[sfAmount];</div>
|
||||
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> </div>
|
||||
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> {</div>
|
||||
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> <span class="keywordflow">return</span> escrowCancelPreclaimHelper<T>(</div>
|
||||
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> ctx, account, amount);</div>
|
||||
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> },</div>
|
||||
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> }</div>
|
||||
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> }</div>
|
||||
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span>}</div>
|
||||
<div class="line"><a id="l01273" name="l01273"></a><span class="lineno"> 1273</span> </div>
|
||||
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"> 1274</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01275" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce"> 1275</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce">EscrowCancel::preclaim</a>(<a class="code hl_struct" href="structripple_1_1PreclaimContext.html">PreclaimContext</a> <span class="keyword">const</span>& ctx)</div>
|
||||
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span>{</div>
|
||||
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> {</div>
|
||||
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>[sfOwner], ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = ctx.<a class="code hl_variable" href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">view</a>.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(k);</div>
|
||||
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01282" name="l01282"></a><span class="lineno"> 1282</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01283" name="l01283"></a><span class="lineno"> 1283</span> </div>
|
||||
<div class="line"><a id="l01284" name="l01284"></a><span class="lineno"> 1284</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01285" name="l01285"></a><span class="lineno"> 1285</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = (*slep)[sfAmount];</div>
|
||||
<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"> 1286</span> </div>
|
||||
<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01288" name="l01288"></a><span class="lineno"> 1288</span> {</div>
|
||||
<div class="line"><a id="l01289" name="l01289"></a><span class="lineno"> 1289</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01290" name="l01290"></a><span class="lineno"> 1290</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01291" name="l01291"></a><span class="lineno"> 1291</span> <span class="keywordflow">return</span> escrowCancelPreclaimHelper<T>(</div>
|
||||
<div class="line"><a id="l01292" name="l01292"></a><span class="lineno"> 1292</span> ctx, account, amount);</div>
|
||||
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"> 1293</span> },</div>
|
||||
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordflow">return</span> ret;</div>
|
||||
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> }</div>
|
||||
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span> }</div>
|
||||
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span> </div>
|
||||
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01298" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4"> 1298</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4">EscrowCancel::doApply</a>()</div>
|
||||
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span>{</div>
|
||||
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOwner], <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(k);</div>
|
||||
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> {</div>
|
||||
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> </div>
|
||||
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> }</div>
|
||||
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> </div>
|
||||
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1571))</div>
|
||||
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> {</div>
|
||||
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <span class="keyword">auto</span> <span class="keyword">const</span> now = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>;</div>
|
||||
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> </div>
|
||||
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> <span class="comment">// No cancel time specified: can't execute at all.</span></div>
|
||||
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> <span class="keywordflow">if</span> (!(*slep)[~sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> </div>
|
||||
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">// Too soon: can't execute before the cancel time.</span></div>
|
||||
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfCancelAfter]))</div>
|
||||
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> }</div>
|
||||
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> {</div>
|
||||
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">// Too soon?</span></div>
|
||||
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> <span class="keywordflow">if</span> (!(*slep)[~sfCancelAfter] ||</div>
|
||||
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> (*slep)[sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> }</div>
|
||||
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> </div>
|
||||
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> </div>
|
||||
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> <span class="comment">// Remove escrow from owner directory</span></div>
|
||||
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> {</div>
|
||||
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> <span class="keyword">auto</span> <span class="keyword">const</span> page = (*slep)[sfOwnerNode];</div>
|
||||
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(account), page, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> {</div>
|
||||
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from owner."</span>;</div>
|
||||
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> }</div>
|
||||
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> }</div>
|
||||
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> </div>
|
||||
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> <span class="comment">// Remove escrow from recipient's owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfDestinationNode]; optPage)</div>
|
||||
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> {</div>
|
||||
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>((*slep)[sfDestination]),</div>
|
||||
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> *optPage,</div>
|
||||
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>,</div>
|
||||
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> {</div>
|
||||
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> }</div>
|
||||
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> }</div>
|
||||
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> </div>
|
||||
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(account));</div>
|
||||
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = slep->getFieldAmount(sfAmount);</div>
|
||||
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> </div>
|
||||
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">// Transfer amount back to the owner</span></div>
|
||||
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span> (*sle)[sfBalance] = (*sle)[sfBalance] + amount;</div>
|
||||
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> {</div>
|
||||
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">temDISABLED</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> </div>
|
||||
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> createAsset = account == <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
|
||||
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span> <span class="keywordflow">return</span> escrowUnlockApplyHelper<T>(</div>
|
||||
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(),</div>
|
||||
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> <a class="code hl_variable" href="namespaceripple.html#afbcd0117839fb629a769c600a741f452">parityRate</a>,</div>
|
||||
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span> slep,</div>
|
||||
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>,</div>
|
||||
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> amount,</div>
|
||||
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> issuer,</div>
|
||||
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> account, <span class="comment">// sender and receiver are the same</span></div>
|
||||
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> account,</div>
|
||||
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> createAsset,</div>
|
||||
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>);</div>
|
||||
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> },</div>
|
||||
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span> <span class="keywordflow">return</span> ret; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span> </div>
|
||||
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> <span class="comment">// Remove escrow from issuers owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfIssuerNode]; optPage)</div>
|
||||
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> {</div>
|
||||
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(issuer), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> {</div>
|
||||
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> }</div>
|
||||
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> }</div>
|
||||
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> }</div>
|
||||
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> </div>
|
||||
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> <a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), sle, -1, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
|
||||
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> </div>
|
||||
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> <span class="comment">// Remove escrow from ledger</span></div>
|
||||
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afda9c12acbda605becf20f54d45587d4">erase</a>(slep);</div>
|
||||
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> </div>
|
||||
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span>}</div>
|
||||
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span> </div>
|
||||
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
|
||||
<div class="foldopen" id="foldopen01303" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"><a class="line" href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4"> 1303</a></span><a class="code hl_function" href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4">EscrowCancel::doApply</a>()</div>
|
||||
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span>{</div>
|
||||
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span> <span class="keyword">auto</span> <span class="keyword">const</span> k = <a class="code hl_function" href="namespaceripple_1_1keylet.html#ab82de2a0ed5a2dde37fcb992a0b36356">keylet::escrow</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOwner], <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>[sfOfferSequence]);</div>
|
||||
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span> <span class="keyword">auto</span> <span class="keyword">const</span> slep = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(k);</div>
|
||||
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> <span class="keywordflow">if</span> (!slep)</div>
|
||||
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span> {</div>
|
||||
<div class="line"><a id="l01309" name="l01309"></a><span class="lineno"> 1309</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"> 1310</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">tecINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span> </div>
|
||||
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4bd7fa9c0845dbf5c766e202d87a750c">tecNO_TARGET</a>;</div>
|
||||
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span> }</div>
|
||||
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> </div>
|
||||
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fix1571))</div>
|
||||
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span> {</div>
|
||||
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> <span class="keyword">auto</span> <span class="keyword">const</span> now = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>;</div>
|
||||
<div class="line"><a id="l01318" name="l01318"></a><span class="lineno"> 1318</span> </div>
|
||||
<div class="line"><a id="l01319" name="l01319"></a><span class="lineno"> 1319</span> <span class="comment">// No cancel time specified: can't execute at all.</span></div>
|
||||
<div class="line"><a id="l01320" name="l01320"></a><span class="lineno"> 1320</span> <span class="keywordflow">if</span> (!(*slep)[~sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01321" name="l01321"></a><span class="lineno"> 1321</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01322" name="l01322"></a><span class="lineno"> 1322</span> </div>
|
||||
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">// Too soon: can't execute before the cancel time.</span></div>
|
||||
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">after</a>(now, (*slep)[sfCancelAfter]))</div>
|
||||
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span> }</div>
|
||||
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> {</div>
|
||||
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> <span class="comment">// Too soon?</span></div>
|
||||
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> <span class="keywordflow">if</span> (!(*slep)[~sfCancelAfter] ||</div>
|
||||
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aca9d5e022d68fdd94bf3c8e36a294a96">info</a>().<a class="code hl_variable" href="structripple_1_1LedgerHeader.html#acbaff4abb7243e02f45e63bd19843aa9">parentCloseTime</a>.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count() <=</div>
|
||||
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span> (*slep)[sfCancelAfter])</div>
|
||||
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">tecNO_PERMISSION</a>;</div>
|
||||
<div class="line"><a id="l01334" name="l01334"></a><span class="lineno"> 1334</span> }</div>
|
||||
<div class="line"><a id="l01335" name="l01335"></a><span class="lineno"> 1335</span> </div>
|
||||
<div class="line"><a id="l01336" name="l01336"></a><span class="lineno"> 1336</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span> account = (*slep)[sfAccount];</div>
|
||||
<div class="line"><a id="l01337" name="l01337"></a><span class="lineno"> 1337</span> </div>
|
||||
<div class="line"><a id="l01338" name="l01338"></a><span class="lineno"> 1338</span> <span class="comment">// Remove escrow from owner directory</span></div>
|
||||
<div class="line"><a id="l01339" name="l01339"></a><span class="lineno"> 1339</span> {</div>
|
||||
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"> 1340</span> <span class="keyword">auto</span> <span class="keyword">const</span> page = (*slep)[sfOwnerNode];</div>
|
||||
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(account), page, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span> {</div>
|
||||
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from owner."</span>;</div>
|
||||
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> }</div>
|
||||
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> }</div>
|
||||
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> </div>
|
||||
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> <span class="comment">// Remove escrow from recipient's owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfDestinationNode]; optPage)</div>
|
||||
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> {</div>
|
||||
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>((*slep)[sfDestination]),</div>
|
||||
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> *optPage,</div>
|
||||
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>,</div>
|
||||
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> {</div>
|
||||
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>;</div>
|
||||
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> }</div>
|
||||
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> }</div>
|
||||
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> </div>
|
||||
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(account));</div>
|
||||
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> <span class="keyword">const</span> amount = slep->getFieldAmount(sfAmount);</div>
|
||||
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span> </div>
|
||||
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> <span class="comment">// Transfer amount back to the owner</span></div>
|
||||
<div class="line"><a id="l01367" name="l01367"></a><span class="lineno"> 1367</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">isXRP</a>(amount))</div>
|
||||
<div class="line"><a id="l01368" name="l01368"></a><span class="lineno"> 1368</span> (*sle)[sfBalance] = (*sle)[sfBalance] + amount;</div>
|
||||
<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"> 1369</span> <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> {</div>
|
||||
<div class="line"><a id="l01371" name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#aceb3d74acaae18b238022337e5f250ce">rules</a>().<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(featureTokenEscrow))</div>
|
||||
<div class="line"><a id="l01372" name="l01372"></a><span class="lineno"> 1372</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">temDISABLED</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"> 1373</span> </div>
|
||||
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span> <span class="keyword">auto</span> <span class="keyword">const</span> issuer = amount.<a class="code hl_function" href="classripple_1_1STAmount.html#aaac822e5948df5f12b6eaf48feaf1684">getIssuer</a>();</div>
|
||||
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> createAsset = account == <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
|
||||
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/utility/variant/visit.html">std::visit</a>(</div>
|
||||
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> [&]<<span class="keyword">typename</span> T>(T <span class="keyword">const</span>&) {</div>
|
||||
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> <span class="keywordflow">return</span> escrowUnlockApplyHelper<T>(</div>
|
||||
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(),</div>
|
||||
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span> <a class="code hl_variable" href="namespaceripple.html#afbcd0117839fb629a769c600a741f452">parityRate</a>,</div>
|
||||
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> slep,</div>
|
||||
<div class="line"><a id="l01382" name="l01382"></a><span class="lineno"> 1382</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a>,</div>
|
||||
<div class="line"><a id="l01383" name="l01383"></a><span class="lineno"> 1383</span> amount,</div>
|
||||
<div class="line"><a id="l01384" name="l01384"></a><span class="lineno"> 1384</span> issuer,</div>
|
||||
<div class="line"><a id="l01385" name="l01385"></a><span class="lineno"> 1385</span> account, <span class="comment">// sender and receiver are the same</span></div>
|
||||
<div class="line"><a id="l01386" name="l01386"></a><span class="lineno"> 1386</span> account,</div>
|
||||
<div class="line"><a id="l01387" name="l01387"></a><span class="lineno"> 1387</span> createAsset,</div>
|
||||
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"> 1388</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>);</div>
|
||||
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> },</div>
|
||||
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span> amount.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>().<a class="code hl_function" href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">value</a>());</div>
|
||||
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
|
||||
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span> <span class="keywordflow">return</span> ret; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span> </div>
|
||||
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">// Remove escrow from issuers owner directory, if present.</span></div>
|
||||
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> optPage = (*slep)[~sfIssuerNode]; optPage)</div>
|
||||
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> {</div>
|
||||
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span> <span class="keywordflow">if</span> (!<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a5a06441ef4fdb9b7f6e51437ce4a959f">dirRemove</a>(</div>
|
||||
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span> <a class="code hl_function" href="namespaceripple_1_1keylet.html#acd4d51d467fc6e75745baf179a7965ef">keylet::ownerDir</a>(issuer), *optPage, k.<a class="code hl_variable" href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">key</a>, <span class="keyword">true</span>))</div>
|
||||
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span> {</div>
|
||||
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">fatal</a>()) << <span class="stringliteral">"Unable to delete Escrow from recipient."</span>;</div>
|
||||
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ab5c44faf987ebd7709fa11a2c8502b5f">tefBAD_LEDGER</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
|
||||
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span> }</div>
|
||||
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span> }</div>
|
||||
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> }</div>
|
||||
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> </div>
|
||||
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span> <a class="code hl_function" href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">adjustOwnerCount</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>(), sle, -1, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a7b78c8e924babce4d14359970f55ba02">journal</a>);</div>
|
||||
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
|
||||
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span> </div>
|
||||
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> <span class="comment">// Remove escrow from ledger</span></div>
|
||||
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afda9c12acbda605becf20f54d45587d4">erase</a>(slep);</div>
|
||||
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span> </div>
|
||||
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
|
||||
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span> </div>
|
||||
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span>} <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span> </div>
|
||||
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span>} <span class="comment">// namespace ripple</span></div>
|
||||
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
|
||||
<div class="ttc" id="aclassbeast_1_1Journal_html_a3dfb8e2e3eecccdb5cf78ff21bca069c"><div class="ttname"><a href="classbeast_1_1Journal.html#a3dfb8e2e3eecccdb5cf78ff21bca069c">beast::Journal::fatal</a></div><div class="ttdeci">Stream fatal() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00352">Journal.h:352</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#l00328">Journal.h:328</a></div></div>
|
||||
@@ -1556,16 +1561,16 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="ttc" id="aclassripple_1_1ApplyView_html_afa666aaa8eb0080d96f910f8a719291d"><div class="ttname"><a href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">ripple::ApplyView::peek</a></div><div class="ttdeci">virtual std::shared_ptr< SLE > peek(Keylet const &k)=0</div><div class="ttdoc">Prepare to modify the SLE associated with key.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1ApplyView_html_afda9c12acbda605becf20f54d45587d4"><div class="ttname"><a href="classripple_1_1ApplyView.html#afda9c12acbda605becf20f54d45587d4">ripple::ApplyView::erase</a></div><div class="ttdeci">virtual void erase(std::shared_ptr< SLE > const &sle)=0</div><div class="ttdoc">Remove a peeked SLE.</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Asset_html_aa57a6038f59dbd5dd7b31cd18bf0ab95"><div class="ttname"><a href="classripple_1_1Asset.html#aa57a6038f59dbd5dd7b31cd18bf0ab95">ripple::Asset::value</a></div><div class="ttdeci">constexpr value_type const & value() const</div><div class="ttdef"><b>Definition</b> <a href="Asset_8h_source.html#l00156">Asset.h:156</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_aa5724ed5ab0803c7cb60bfea932522a4"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4">ripple::EscrowCancel::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01298">Escrow.cpp:1298</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_ab52ca65e52422927047198620c2b636a"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a">ripple::EscrowCancel::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01201">Escrow.cpp:1201</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_af11b9c4dcf00144083db1ce8ebbe12ce"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce">ripple::EscrowCancel::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01270">Escrow.cpp:1270</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_aa5724ed5ab0803c7cb60bfea932522a4"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#aa5724ed5ab0803c7cb60bfea932522a4">ripple::EscrowCancel::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01303">Escrow.cpp:1303</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_ab52ca65e52422927047198620c2b636a"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#ab52ca65e52422927047198620c2b636a">ripple::EscrowCancel::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01206">Escrow.cpp:1206</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCancel_html_af11b9c4dcf00144083db1ce8ebbe12ce"><div class="ttname"><a href="classripple_1_1EscrowCancel.html#af11b9c4dcf00144083db1ce8ebbe12ce">ripple::EscrowCancel::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01275">Escrow.cpp:1275</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCreate_html_a9eeacc907cf225f3bb44f3eb0ea3b80f"><div class="ttname"><a href="classripple_1_1EscrowCreate.html#a9eeacc907cf225f3bb44f3eb0ea3b80f">ripple::EscrowCreate::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00122">Escrow.cpp:122</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCreate_html_ae5971dc2a61f7c9707dfd360cfc6965c"><div class="ttname"><a href="classripple_1_1EscrowCreate.html#ae5971dc2a61f7c9707dfd360cfc6965c">ripple::EscrowCreate::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00455">Escrow.cpp:455</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCreate_html_ae6aef029e756b5711be907cceb3dc07a"><div class="ttname"><a href="classripple_1_1EscrowCreate.html#ae6aef029e756b5711be907cceb3dc07a">ripple::EscrowCreate::makeTxConsequences</a></div><div class="ttdeci">static TxConsequences makeTxConsequences(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00082">Escrow.cpp:82</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowCreate_html_af2d7f8bc9d92dbb66f6986382c1a7bcd"><div class="ttname"><a href="classripple_1_1EscrowCreate.html#af2d7f8bc9d92dbb66f6986382c1a7bcd">ripple::EscrowCreate::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00363">Escrow.cpp:363</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowFinish_html_a78fc02c003373b0ad77efdfaa36d30e8"><div class="ttname"><a href="classripple_1_1EscrowFinish.html#a78fc02c003373b0ad77efdfaa36d30e8">ripple::EscrowFinish::preclaim</a></div><div class="ttdeci">static TER preclaim(PreclaimContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00761">Escrow.cpp:761</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowFinish_html_a9cf3b85c714f7ff77becb64b10a49d73"><div class="ttname"><a href="classripple_1_1EscrowFinish.html#a9cf3b85c714f7ff77becb64b10a49d73">ripple::EscrowFinish::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00628">Escrow.cpp:628</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowFinish_html_ac721b7cc599466f53e13a6d42ca93792"><div class="ttname"><a href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792">ripple::EscrowFinish::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01015">Escrow.cpp:1015</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowFinish_html_ac721b7cc599466f53e13a6d42ca93792"><div class="ttname"><a href="classripple_1_1EscrowFinish.html#ac721b7cc599466f53e13a6d42ca93792">ripple::EscrowFinish::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01020">Escrow.cpp:1020</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1EscrowFinish_html_ade982a23b9e5024f0cc518a26a16b85b"><div class="ttname"><a href="classripple_1_1EscrowFinish.html#ade982a23b9e5024f0cc518a26a16b85b">ripple::EscrowFinish::calculateBaseFee</a></div><div class="ttdeci">static XRPAmount calculateBaseFee(ReadView const &view, STTx const &tx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00683">Escrow.cpp:683</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1HashRouter_html_a22f52b3e9c359e43b7fd0a96ab38e029"><div class="ttname"><a href="classripple_1_1HashRouter.html#a22f52b3e9c359e43b7fd0a96ab38e029">ripple::HashRouter::getFlags</a></div><div class="ttdeci">HashRouterFlags getFlags(uint256 const &key)</div><div class="ttdef"><b>Definition</b> <a href="HashRouter_8cpp_source.html#l00098">HashRouter.cpp:98</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1HashRouter_html_a8ee73756ff7f46f1616a2996740abfda"><div class="ttname"><a href="classripple_1_1HashRouter.html#a8ee73756ff7f46f1616a2996740abfda">ripple::HashRouter::setFlags</a></div><div class="ttdeci">bool setFlags(uint256 const &key, HashRouterFlags flags)</div><div class="ttdoc">Set the flags on a hash.</div><div class="ttdef"><b>Definition</b> <a href="HashRouter_8cpp_source.html#l00106">HashRouter.cpp:106</a></div></div>
|
||||
@@ -1631,6 +1636,7 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="ttc" id="anamespaceripple_html_a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90"><div class="ttname"><a href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90">ripple::fhIGNORE_FREEZE</a></div><div class="ttdeci">@ fhIGNORE_FREEZE</div><div class="ttdef"><b>Definition</b> <a href="View_8h_source.html#l00078">View.h:78</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a1cb5d5d6c3e75be924e1b9f540d17497"><div class="ttname"><a href="namespaceripple.html#a1cb5d5d6c3e75be924e1b9f540d17497">ripple::escrowCreatePreclaimHelper< MPTIssue ></a></div><div class="ttdeci">TER escrowCreatePreclaimHelper< MPTIssue >(PreclaimContext const &ctx, AccountID const &account, AccountID const &dest, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00282">Escrow.cpp:283</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a20d30277b9c78756b3d14493055a307c"><div class="ttname"><a href="namespaceripple.html#a20d30277b9c78756b3d14493055a307c">ripple::isXRP</a></div><div class="ttdeci">bool isXRP(AccountID const &c)</div><div class="ttdef"><b>Definition</b> <a href="AccountID_8h_source.html#l00090">AccountID.h:90</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a2bf72b4d8923d178f4cb5ed49cdc1e24"><div class="ttname"><a href="namespaceripple.html#a2bf72b4d8923d178f4cb5ed49cdc1e24">ripple::rippleUnlockEscrowMPT</a></div><div class="ttdeci">TER rippleUnlockEscrowMPT(ApplyView &view, AccountID const &sender, AccountID const &receiver, STAmount const &netAmount, STAmount const &grossAmount, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l03005">View.cpp:3005</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a34c4fc98d59a15e57df010ebd9d929c3"><div class="ttname"><a href="namespaceripple.html#a34c4fc98d59a15e57df010ebd9d929c3">ripple::escrowFinishPreclaimHelper</a></div><div class="ttdeci">static TER escrowFinishPreclaimHelper(PreclaimContext const &ctx, AccountID const &dest, STAmount const &amount)</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a3c48650a4989da7655d4bedcbf6acffe"><div class="ttname"><a href="namespaceripple.html#a3c48650a4989da7655d4bedcbf6acffe">ripple::canAdd</a></div><div class="ttdeci">bool canAdd(STAmount const &amt1, STAmount const &amt2)</div><div class="ttdoc">Safely checks if two STAmount values can be added without overflow, underflow, or precision loss.</div><div class="ttdef"><b>Definition</b> <a href="STAmount_8cpp_source.html#l00528">STAmount.cpp:528</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a400ee7721cfbb753223ff267d31e4ef6"><div class="ttname"><a href="namespaceripple.html#a400ee7721cfbb753223ff267d31e4ef6">ripple::escrowLockApplyHelper< Issue ></a></div><div class="ttdeci">TER escrowLockApplyHelper< Issue >(ApplyView &view, AccountID const &issuer, AccountID const &sender, STAmount const &amount, beast::Journal journal)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00407">Escrow.cpp:408</a></div></div>
|
||||
@@ -1641,7 +1647,7 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a3de81b62b486203f6b8e4f2cd0832ae1"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3de81b62b486203f6b8e4f2cd0832ae1">ripple::lsfDefaultRipple</a></div><div class="ttdeci">@ lsfDefaultRipple</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00135">LedgerFormats.h:134</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a9b5f9d939d21f8aca2dc20cada64b748"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a9b5f9d939d21f8aca2dc20cada64b748">ripple::lsfAllowTrustLineLocking</a></div><div class="ttdeci">@ lsfAllowTrustLineLocking</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00149">LedgerFormats.h:148</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5af697f2c85dc33c5831e82b69c6a4e7e9"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5af697f2c85dc33c5831e82b69c6a4e7e9">ripple::lsfDisallowXRP</a></div><div class="ttdeci">@ lsfDisallowXRP</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00130">LedgerFormats.h:130</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4ae20ca134a8a4c87c870d2db593a990"><div class="ttname"><a href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990">ripple::escrowCancelPreclaimHelper< MPTIssue ></a></div><div class="ttdeci">TER escrowCancelPreclaimHelper< MPTIssue >(PreclaimContext const &ctx, AccountID const &account, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01240">Escrow.cpp:1241</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4ae20ca134a8a4c87c870d2db593a990"><div class="ttname"><a href="namespaceripple.html#a4ae20ca134a8a4c87c870d2db593a990">ripple::escrowCancelPreclaimHelper< MPTIssue ></a></div><div class="ttdeci">TER escrowCancelPreclaimHelper< MPTIssue >(PreclaimContext const &ctx, AccountID const &account, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01245">Escrow.cpp:1246</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a4e070aef85986336795216a3e5336f8da41aee20744fc47f976626aa2ade7adcb"><div class="ttname"><a href="namespaceripple.html#a4e070aef85986336795216a3e5336f8da41aee20744fc47f976626aa2ade7adcb">ripple::AuthType::WeakAuth</a></div><div class="ttdeci">@ WeakAuth</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5871c84748a87aaae89702f066251635"><div class="ttname"><a href="namespaceripple.html#a5871c84748a87aaae89702f066251635">ripple::escrowLockApplyHelper</a></div><div class="ttdeci">static TER escrowLockApplyHelper(ApplyView &view, AccountID const &issuer, AccountID const &sender, STAmount const &amount, beast::Journal journal)</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2"><div class="ttname"><a href="namespaceripple.html#a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2">ripple::ahIGNORE_AUTH</a></div><div class="ttdeci">@ ahIGNORE_AUTH</div><div class="ttdef"><b>Definition</b> <a href="View_8h_source.html#l00081">View.h:81</a></div></div>
|
||||
@@ -1658,7 +1664,6 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="ttc" id="anamespaceripple_html_a79683ec651b1658886d9c9ce8434f972a1492bf6d7fc2ce461a9399ecbca58717"><div class="ttname"><a href="namespaceripple.html#a79683ec651b1658886d9c9ce8434f972a1492bf6d7fc2ce461a9399ecbca58717">ripple::HashRouterFlags::PRIVATE6</a></div><div class="ttdeci">@ PRIVATE6</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a79683ec651b1658886d9c9ce8434f972af2eabd5227bad5ab01c8e90c3bb8edfd"><div class="ttname"><a href="namespaceripple.html#a79683ec651b1658886d9c9ce8434f972af2eabd5227bad5ab01c8e90c3bb8edfd">ripple::HashRouterFlags::PRIVATE5</a></div><div class="ttdeci">@ PRIVATE5</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a823ab3aa40d17dc7ce24b02e156116ad"><div class="ttname"><a href="namespaceripple.html#a823ab3aa40d17dc7ce24b02e156116ad">ripple::escrowCreatePreclaimHelper< Issue ></a></div><div class="ttdeci">TER escrowCreatePreclaimHelper< Issue >(PreclaimContext const &ctx, AccountID const &account, AccountID const &dest, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00204">Escrow.cpp:205</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a83da4b11e236a23156ac525c94494dcf"><div class="ttname"><a href="namespaceripple.html#a83da4b11e236a23156ac525c94494dcf">ripple::rippleUnlockEscrowMPT</a></div><div class="ttdeci">TER rippleUnlockEscrowMPT(ApplyView &view, AccountID const &sender, AccountID const &receiver, STAmount const &amount, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l03005">View.cpp:3005</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a868a93d3fbb97e3ba20ba054df1db3ca"><div class="ttname"><a href="namespaceripple.html#a868a93d3fbb97e3ba20ba054df1db3ca">ripple::adjustOwnerCount</a></div><div class="ttdeci">static bool adjustOwnerCount(ApplyContext &ctx, int count)</div><div class="ttdef"><b>Definition</b> <a href="SetOracle_8cpp_source.html#l00186">SetOracle.cpp:186</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a8b257ff89d14ac75ce240946f32d3773"><div class="ttname"><a href="namespaceripple.html#a8b257ff89d14ac75ce240946f32d3773">ripple::preflight2</a></div><div class="ttdeci">NotTEC preflight2(PreflightContext const &ctx)</div><div class="ttdoc">Checks whether the signature appears valid.</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00160">Transactor.cpp:160</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a8bfde2a725fdf2ec6390e107c0324e0d"><div class="ttname"><a href="namespaceripple.html#a8bfde2a725fdf2ec6390e107c0324e0d">ripple::checkCondition</a></div><div class="ttdeci">static bool checkCondition(Slice f, Slice c)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00610">Escrow.cpp:610</a></div></div>
|
||||
@@ -1691,10 +1696,10 @@ $(document).ready(function() { init_codefold(0); });
|
||||
<div class="ttc" id="anamespaceripple_html_ab48d5d1c4e2695c12f705e9d85fa560d"><div class="ttname"><a href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">ripple::isTesSuccess</a></div><div class="ttdeci">bool isTesSuccess(TER x) noexcept</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00674">TER.h:674</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ab4bfbeb569e5ff4cfa483918a1476a99"><div class="ttname"><a href="namespaceripple.html#ab4bfbeb569e5ff4cfa483918a1476a99">ripple::escrowFinishPreclaimHelper< MPTIssue ></a></div><div class="ttdeci">TER escrowFinishPreclaimHelper< MPTIssue >(PreclaimContext const &ctx, AccountID const &dest, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00727">Escrow.cpp:728</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ab835ed69cc5b1185c028a348509e3e10"><div class="ttname"><a href="namespaceripple.html#ab835ed69cc5b1185c028a348509e3e10">ripple::escrowCreatePreflightHelper< Issue ></a></div><div class="ttdeci">NotTEC escrowCreatePreflightHelper< Issue >(PreflightContext const &ctx)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00093">Escrow.cpp:94</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ac3e90afb749bb1f01e06729c7c860ba3"><div class="ttname"><a href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">ripple::after</a></div><div class="ttdeci">bool after(NetClock::time_point now, std::uint32_t mark)</div><div class="ttdoc">Has the specified time passed?</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l03151">View.cpp:3151</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ac3e90afb749bb1f01e06729c7c860ba3"><div class="ttname"><a href="namespaceripple.html#ac3e90afb749bb1f01e06729c7c860ba3">ripple::after</a></div><div class="ttdeci">bool after(NetClock::time_point now, std::uint32_t mark)</div><div class="ttdoc">Has the specified time passed?</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l03179">View.cpp:3179</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ac8844b7ad1603892172e8e6d1044de00"><div class="ttname"><a href="namespaceripple.html#ac8844b7ad1603892172e8e6d1044de00">ripple::tfUniversalMask</a></div><div class="ttdeci">constexpr std::uint32_t tfUniversalMask</div><div class="ttdef"><b>Definition</b> <a href="TxFlags_8h_source.html#l00063">TxFlags.h:63</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_adbbbf76f04d55cd69f1740ed38330719"><div class="ttname"><a href="namespaceripple.html#adbbbf76f04d55cd69f1740ed38330719">ripple::rippleCredit</a></div><div class="ttdeci">TER rippleCredit(ApplyView &view, AccountID const &uSenderID, AccountID const &uReceiverID, STAmount const &saAmount, bool bCheckIssuer, beast::Journal j)</div><div class="ttdoc">Calls static rippleCreditIOU if saAmount represents Issue.</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02769">View.cpp:2769</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ae13e33177f05c7587bafdcbee50a8c0c"><div class="ttname"><a href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c">ripple::escrowCancelPreclaimHelper< Issue ></a></div><div class="ttdeci">TER escrowCancelPreclaimHelper< Issue >(PreclaimContext const &ctx, AccountID const &account, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01220">Escrow.cpp:1221</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ae13e33177f05c7587bafdcbee50a8c0c"><div class="ttname"><a href="namespaceripple.html#ae13e33177f05c7587bafdcbee50a8c0c">ripple::escrowCancelPreclaimHelper< Issue ></a></div><div class="ttdeci">TER escrowCancelPreclaimHelper< Issue >(PreclaimContext const &ctx, AccountID const &account, STAmount const &amount)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l01225">Escrow.cpp:1226</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aeab293110021d764098579dd8a48f62c"><div class="ttname"><a href="namespaceripple.html#aeab293110021d764098579dd8a48f62c">ripple::escrowLockApplyHelper< MPTIssue ></a></div><div class="ttdeci">TER escrowLockApplyHelper< MPTIssue >(ApplyView &view, AccountID const &issuer, AccountID const &sender, STAmount const &amount, beast::Journal journal)</div><div class="ttdef"><b>Definition</b> <a href="Escrow_8cpp_source.html#l00434">Escrow.cpp:435</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aefa7c3af669e80824c7b50f724e14771"><div class="ttname"><a href="namespaceripple.html#aefa7c3af669e80824c7b50f724e14771">ripple::escrowUnlockApplyHelper</a></div><div class="ttdeci">static TER escrowUnlockApplyHelper(ApplyView &view, Rate lockedRate, std::shared_ptr< SLE > const &sleDest, STAmount const &xrpBalance, STAmount const &amount, AccountID const &issuer, AccountID const &sender, AccountID const &receiver, bool createAsset, beast::Journal journal)</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_af1d7ae814974c52a0e9f43e893480680"><div class="ttname"><a href="namespaceripple.html#af1d7ae814974c52a0e9f43e893480680">ripple::isPseudoAccount</a></div><div class="ttdeci">bool isPseudoAccount(std::shared_ptr< SLE const > sleAcct)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l01139">View.cpp:1139</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user