This commit is contained in:
Bronek
2025-09-04 01:57:28 -07:00
parent b8b68c1378
commit 0e329f6fe6
230 changed files with 13002 additions and 10989 deletions

View File

@@ -265,7 +265,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span> (!vault)</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">auto</span> <span class="keyword">const</span> mptIssuanceID = (*vault)[sfShareMPTID];</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">auto</span> <span class="keyword">const</span> mptIssuanceID = *((*vault)[sfShareMPTID]);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">auto</span> <span class="keyword">const</span> sleIssuance = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#a7e12ae09e428d8a07cf82d04e62b7608">keylet::mptIssuance</a>(mptIssuanceID));</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">if</span> (!sleIssuance)</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> {</div>
@@ -280,92 +280,173 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// to deposit into it, and this means you are also indefinitely authorized</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// to withdraw from it.</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">auto</span> amount = <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>[sfAmount];</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">auto</span> <span class="keyword">const</span> asset = vault-&gt;at(sfAsset);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">auto</span> <span class="keyword">const</span> share = <a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a>(mptIssuanceID);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> shares, assets;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">if</span> (amount.asset() == asset)</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> {</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// Fixed assets, variable shares.</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> assets = amount;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> shares = <a class="code hl_function" href="namespaceripple.html#ac527f4be8f38f42794ec9a8981c71f25">assetsToSharesWithdraw</a>(vault, sleIssuance, assets);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> }</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (amount.asset() == share)</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// Fixed shares, variable assets.</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> shares = amount;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> assets = <a class="code hl_function" href="namespaceripple.html#a2538e2190b6fa5b9b2f10e74f64c905c">sharesToAssetsWithdraw</a>(vault, sleIssuance, shares);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> }</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">accountHolds</a>(</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>,</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> share,</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_enumvalue" href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd">FreezeHandling::fhZERO_IF_FROZEN</a>,</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_enumvalue" href="namespaceripple.html#a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2">AuthHandling::ahIGNORE_AUTH</a>,</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>) &lt; shares)</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: account doesn&#39;t hold enough shares&quot;</span>;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a>;</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> }</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// The vault must have enough assets on hand. The vault may hold assets that</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// it has already pledged. That is why we look at AssetAvailable instead of</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// the pseudo-account balance.</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keywordflow">if</span> (*vault-&gt;at(sfAssetsAvailable) &lt; assets)</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</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#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: vault doesn&#39;t hold enough assets&quot;</span>;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a>;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">auto</span> <span class="keyword">const</span> amount = <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>[sfAmount];</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <a class="code hl_class" href="classripple_1_1Asset.html">Asset</a> <span class="keyword">const</span> vaultAsset = vault-&gt;at(sfAsset);</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_class" href="classripple_1_1MPTIssue.html">MPTIssue</a> <span class="keyword">const</span> share{mptIssuanceID};</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> sharesRedeemed = {share};</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <a class="code hl_class" href="classripple_1_1STAmount.html">STAmount</a> assetsWithdrawn;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">try</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> {</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">if</span> (amount.asset() == vaultAsset)</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// Fixed assets, variable shares.</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">auto</span> <span class="keyword">const</span> maybeShares =</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <a class="code hl_function" href="namespaceripple.html#a5509de8022f2d9dddf3a87f524e3503b">assetsToSharesWithdraw</a>(vault, sleIssuance, amount);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">if</span> (!maybeShares)</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</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="l00210" name="l00210"></a><span class="lineno"> 210</span> sharesRedeemed = *maybeShares;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">if</span> (sharesRedeemed == beast::zero)</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa5864b5c8b3bcced7aed0b3a794cb14e">tecPRECISION_LOSS</a>;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">auto</span> <span class="keyword">const</span> maybeAssets =</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <a class="code hl_function" href="namespaceripple.html#a7db8820410ffa3288079a33bc00109ac">sharesToAssetsWithdraw</a>(vault, sleIssuance, sharesRedeemed);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">if</span> (!maybeAssets)</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</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="l00219" name="l00219"></a><span class="lineno"> 219</span> assetsWithdrawn = *maybeAssets;</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (amount.asset() == share)</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> {</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="comment">// Fixed shares, variable assets.</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> sharesRedeemed = amount;</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">auto</span> <span class="keyword">const</span> maybeAssets =</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <a class="code hl_function" href="namespaceripple.html#a7db8820410ffa3288079a33bc00109ac">sharesToAssetsWithdraw</a>(vault, sleIssuance, sharesRedeemed);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">if</span> (!maybeAssets)</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</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="l00229" name="l00229"></a><span class="lineno"> 229</span> assetsWithdrawn = *maybeAssets;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> }</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>; <span class="comment">// LCOV_EXCL_LINE</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> }</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> vault-&gt;at(sfAssetsTotal) -= assets;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> vault-&gt;at(sfAssetsAvailable) -= assets;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(vault);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; vaultAccount = vault-&gt;at(sfAccount);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// Transfer shares from depositor to vault.</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> ter = <a class="code hl_function" href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, vaultAccount, shares, <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>, <a class="code hl_enumvalue" href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">WaiveTransferFee::Yes</a>))</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">auto</span> <span class="keyword">const</span> dstAcct = [&amp;]() -&gt; <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfDestination))</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfDestination);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }();</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="comment">// Transfer assets from vault to depositor or destination account.</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> ter = <a class="code hl_function" href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), vaultAccount, dstAcct, assets, <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>, <a class="code hl_enumvalue" href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">WaiveTransferFee::Yes</a>))</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="comment">// Sanity check</span></div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">accountHolds</a>(</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> vaultAccount,</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> assets.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>(),</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <a class="code hl_enumvalue" href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90">FreezeHandling::fhIGNORE_FREEZE</a>,</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <a class="code hl_enumvalue" href="namespaceripple.html#a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2">AuthHandling::ahIGNORE_AUTH</a>,</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>) &lt; beast::zero)</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// LCOV_EXCL_START</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</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#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: negative balance of vault assets.&quot;</span>;</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// LCOV_EXCL_STOP</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span>}</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">catch</span> (<a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/error/overflow_error.html">std::overflow_error</a> <span class="keyword">const</span>&amp;)</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// It&#39;s easy to hit this exception from Number with large enough Scale</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// so we avoid spamming the log and only use debug here.</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</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#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) <span class="comment">//</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: overflow error with&quot;</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> &lt;&lt; <span class="stringliteral">&quot; scale=&quot;</span> &lt;&lt; (int)vault-&gt;at(sfScale).value() <span class="comment">//</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> &lt;&lt; <span class="stringliteral">&quot;, assetsTotal=&quot;</span> &lt;&lt; vault-&gt;at(sfAssetsTotal).value()</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> &lt;&lt; <span class="stringliteral">&quot;, sharesTotal=&quot;</span> &lt;&lt; sleIssuance-&gt;at(sfOutstandingAmount)</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> &lt;&lt; <span class="stringliteral">&quot;, amount=&quot;</span> &lt;&lt; amount.value();</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">tecPATH_DRY</a>;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> }</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">accountHolds</a>(</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>,</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> share,</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <a class="code hl_enumvalue" href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd">FreezeHandling::fhZERO_IF_FROZEN</a>,</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_enumvalue" href="namespaceripple.html#a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2">AuthHandling::ahIGNORE_AUTH</a>,</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>) &lt; sharesRedeemed)</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> {</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: account doesn&#39;t hold enough shares&quot;</span>;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a>;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> }</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">auto</span> assetsAvailable = vault-&gt;at(sfAssetsAvailable);</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">auto</span> assetsTotal = vault-&gt;at(sfAssetsTotal);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> [[maybe_unused]] <span class="keyword">auto</span> <span class="keyword">const</span> lossUnrealized = vault-&gt;at(sfLossUnrealized);</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> XRPL_ASSERT(</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> lossUnrealized &lt;= (assetsTotal - assetsAvailable),</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="stringliteral">&quot;ripple::VaultWithdraw::doApply : loss and assets do balance&quot;</span>);</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// The vault must have enough assets on hand. The vault may hold assets</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// that it has already pledged. That is why we look at AssetAvailable</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// instead of the pseudo-account balance.</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span> (*assetsAvailable &lt; assetsWithdrawn)</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> {</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</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#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: vault doesn&#39;t hold enough assets&quot;</span>;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">tecINSUFFICIENT_FUNDS</a>;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> }</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> </div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> assetsTotal -= assetsWithdrawn;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> assetsAvailable -= assetsWithdrawn;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(vault);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">auto</span> <span class="keyword">const</span>&amp; vaultAccount = vault-&gt;at(sfAccount);</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// Transfer shares from depositor to vault.</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</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#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>,</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> vaultAccount,</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> sharesRedeemed,</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>,</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <a class="code hl_enumvalue" href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">WaiveTransferFee::Yes</a>);</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ter))</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="comment">// Try to remove MPToken for shares, if the account balance is zero. Vault</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// pseudo-account will never set lsfMPTAuthorized, so we ignore flags.</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="comment">// Keep MPToken if holder is the vault owner.</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a> != vault-&gt;at(sfOwner))</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> {</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</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#ae60d504a4aa68cf5721b25a2106221ed">removeEmptyHolding</a>(</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>, sharesRedeemed.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>(), <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>);</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ter))</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> {</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> JLOG(<a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) <span class="comment">//</span></div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: removed empty MPToken for vault shares&quot;</span></div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> &lt;&lt; <span class="stringliteral">&quot; MPTID=&quot;</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(mptIssuanceID) <span class="comment">//</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> &lt;&lt; <span class="stringliteral">&quot; account=&quot;</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#a08a13b62b18272366f788632359e8793">toBase58</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>);</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ter != <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">tecHAS_OBLIGATIONS</a>)</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> {</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// LCOV_EXCL_START</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</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#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) <span class="comment">//</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: failed to remove MPToken for vault shares&quot;</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> &lt;&lt; <span class="stringliteral">&quot; MPTID=&quot;</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(mptIssuanceID) <span class="comment">//</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> &lt;&lt; <span class="stringliteral">&quot; account=&quot;</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#a08a13b62b18272366f788632359e8793">toBase58</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>) <span class="comment">//</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> &lt;&lt; <span class="stringliteral">&quot; with result: &quot;</span> &lt;&lt; <a class="code hl_function" href="namespaceripple.html#a875ae996b37ed036597d70628ae053e3">transToken</a>(ter);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// LCOV_EXCL_STOP</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> }</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="comment">// else quietly ignore, account balance is not zero</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> }</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keyword">auto</span> <span class="keyword">const</span> dstAcct = [&amp;]() -&gt; <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> {</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfDestination))</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfDestination);</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>;</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> }();</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// Transfer assets from vault to depositor or destination account.</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</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#af2e2ee9b2b3499ff23ebbc249e188764">accountSend</a>(</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> vaultAccount,</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> dstAcct,</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> assetsWithdrawn,</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>,</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <a class="code hl_enumvalue" href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">WaiveTransferFee::Yes</a>);</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ter))</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="keywordflow">return</span> ter;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// Sanity check</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">accountHolds</a>(</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>(),</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> vaultAccount,</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> assetsWithdrawn.<a class="code hl_function" href="classripple_1_1STAmount.html#a47d741e2043946647600882e7d8fe111">asset</a>(),</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <a class="code hl_enumvalue" href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a91e3c4f8089025c7ecf66dd62b822d90">FreezeHandling::fhIGNORE_FREEZE</a>,</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <a class="code hl_enumvalue" href="namespaceripple.html#a5b188f8f22827b2e24b506ef852ffd69aa484bc6f8679c4ff282784792c4892b2">AuthHandling::ahIGNORE_AUTH</a>,</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#ab84d1ef5275a1c6c63176c11d72d6235">j_</a>) &lt; beast::zero)</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> {</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="comment">// LCOV_EXCL_START</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</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#a49b0713e65bb8e2c51b76fbf16252afe">error</a>()) &lt;&lt; <span class="stringliteral">&quot;VaultWithdraw: negative balance of vault assets.&quot;</span>;</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// LCOV_EXCL_STOP</span></div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span>}</div>
</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_a49b0713e65bb8e2c51b76fbf16252afe"><div class="ttname"><a href="classbeast_1_1Journal.html#a49b0713e65bb8e2c51b76fbf16252afe">beast::Journal::error</a></div><div class="ttdeci">Stream error() const</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00346">Journal.h:346</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>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a8c8757b3b1f88baef47b31ed4e9682d0"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a8c8757b3b1f88baef47b31ed4e9682d0">ripple::ApplyContext::tx</a></div><div class="ttdeci">STTx const &amp; tx</div><div class="ttdef"><b>Definition</b> <a href="ApplyContext_8h_source.html#l00072">ApplyContext.h:72</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyView_html_a542437b9b59a623e755979acdc075af5"><div class="ttname"><a href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">ripple::ApplyView::update</a></div><div class="ttdeci">virtual void update(std::shared_ptr&lt; SLE &gt; const &amp;sle)=0</div><div class="ttdoc">Indicate changes to a peeked SLE.</div></div>
<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&lt; SLE &gt; peek(Keylet const &amp;k)=0</div><div class="ttdoc">Prepare to modify the SLE associated with key.</div></div>
<div class="ttc" id="aclassripple_1_1Asset_html"><div class="ttname"><a href="classripple_1_1Asset.html">ripple::Asset</a></div><div class="ttdef"><b>Definition</b> <a href="Asset_8h_source.html#l00047">Asset.h:48</a></div></div>
<div class="ttc" id="aclassripple_1_1Issue_html"><div class="ttname"><a href="classripple_1_1Issue.html">ripple::Issue</a></div><div class="ttdoc">A currency issued by an account.</div><div class="ttdef"><b>Definition</b> <a href="Issue_8h_source.html#l00032">Issue.h:33</a></div></div>
<div class="ttc" id="aclassripple_1_1MPTIssue_html"><div class="ttname"><a href="classripple_1_1MPTIssue.html">ripple::MPTIssue</a></div><div class="ttdef"><b>Definition</b> <a href="MPTIssue_8h_source.html#l00032">MPTIssue.h:33</a></div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_a0583a050ea7799ba331f6222a905f304"><div class="ttname"><a href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
@@ -390,42 +471,51 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="anamespaceripple_1_1keylet_html_aa756e0f59b26042ed00a4d0ba6e96951"><div class="ttname"><a href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">ripple::keylet::account</a></div><div class="ttdeci">Keylet account(AccountID const &amp;id) noexcept</div><div class="ttdoc">AccountID root.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00184">Indexes.cpp:184</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_af007cd3970facb09bf54b78026e9d206"><div class="ttname"><a href="namespaceripple_1_1keylet.html#af007cd3970facb09bf54b78026e9d206">ripple::keylet::depositPreauth</a></div><div class="ttdeci">Keylet depositPreauth(AccountID const &amp;owner, AccountID const &amp;preauthorized) noexcept</div><div class="ttdoc">A DepositPreauth.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00342">Indexes.cpp:342</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition</b> <a href="algorithm_8h_source.html#l00025">algorithm.h:25</a></div></div>
<div class="ttc" id="anamespaceripple_html_a08a13b62b18272366f788632359e8793"><div class="ttname"><a href="namespaceripple.html#a08a13b62b18272366f788632359e8793">ripple::toBase58</a></div><div class="ttdeci">std::string toBase58(AccountID const &amp;v)</div><div class="ttdoc">Convert AccountID to base58 checked string.</div><div class="ttdef"><b>Definition</b> <a href="AccountID_8cpp_source.html#l00114">AccountID.cpp:114</a></div></div>
<div class="ttc" id="anamespaceripple_html_a13dda1015b76a3c1dfddf1ccd3360ae8"><div class="ttname"><a href="namespaceripple.html#a13dda1015b76a3c1dfddf1ccd3360ae8">ripple::checkFrozen</a></div><div class="ttdeci">TER checkFrozen(ReadView const &amp;view, AccountID const &amp;account, Issue const &amp;issue)</div><div class="ttdef"><b>Definition</b> <a href="View_8h_source.html#l00179">View.h:179</a></div></div>
<div class="ttc" id="anamespaceripple_html_a16b466cc38b73c15e032e268db4c4de7"><div class="ttname"><a href="namespaceripple.html#a16b466cc38b73c15e032e268db4c4de7">ripple::requireAuth</a></div><div class="ttdeci">TER requireAuth(ReadView const &amp;view, Issue const &amp;issue, AccountID const &amp;account, AuthType authType)</div><div class="ttdoc">Check if the account lacks required authorization.</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02404">View.cpp:2404</a></div></div>
<div class="ttc" id="anamespaceripple_html_a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd"><div class="ttname"><a href="namespaceripple.html#a17a9a9b903b66e49f5413d82ce79f085a852cabbbe21a9b4d63aff777eceab2fd">ripple::fhZERO_IF_FROZEN</a></div><div class="ttdeci">@ fhZERO_IF_FROZEN</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_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_a2538e2190b6fa5b9b2f10e74f64c905c"><div class="ttname"><a href="namespaceripple.html#a2538e2190b6fa5b9b2f10e74f64c905c">ripple::sharesToAssetsWithdraw</a></div><div class="ttdeci">STAmount sharesToAssetsWithdraw(std::shared_ptr&lt; SLE const &gt; const &amp;vault, std::shared_ptr&lt; SLE const &gt; const &amp;issuance, STAmount const &amp;shares)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02834">View.cpp:2834</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a17ad00a34e73590b1c0d5f453eeba72f"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a17ad00a34e73590b1c0d5f453eeba72f">ripple::lsfMPTCanTransfer</a></div><div class="ttdeci">@ lsfMPTCanTransfer</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00188">LedgerFormats.h:188</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a2243e81f83c4191286c8c46bdd86d6f3"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a2243e81f83c4191286c8c46bdd86d6f3">ripple::lsfRequireDestTag</a></div><div class="ttdeci">@ lsfRequireDestTag</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00127">LedgerFormats.h:126</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a873a48eb9d8f66315874a318df664f05">ripple::lsfDepositAuth</a></div><div class="ttdeci">@ lsfDepositAuth</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00136">LedgerFormats.h:136</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4e070aef85986336795216a3e5336f8d"><div class="ttname"><a href="namespaceripple.html#a4e070aef85986336795216a3e5336f8d">ripple::AuthType</a></div><div class="ttdeci">AuthType</div><div class="ttdef"><b>Definition</b> <a href="View_8h_source.html#l00770">View.h:770</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4e070aef85986336795216a3e5336f8da0cc0a0507cf3d31e5089f420a4cf8b4b"><div class="ttname"><a href="namespaceripple.html#a4e070aef85986336795216a3e5336f8da0cc0a0507cf3d31e5089f420a4cf8b4b">ripple::AuthType::Legacy</a></div><div class="ttdeci">@ Legacy</div></div>
<div class="ttc" id="anamespaceripple_html_a4e070aef85986336795216a3e5336f8da7559328fba92acce7308a39180e16441"><div class="ttname"><a href="namespaceripple.html#a4e070aef85986336795216a3e5336f8da7559328fba92acce7308a39180e16441">ripple::AuthType::StrongAuth</a></div><div class="ttdeci">@ StrongAuth</div></div>
<div class="ttc" id="anamespaceripple_html_a5509de8022f2d9dddf3a87f524e3503b"><div class="ttname"><a href="namespaceripple.html#a5509de8022f2d9dddf3a87f524e3503b">ripple::assetsToSharesWithdraw</a></div><div class="ttdeci">std::optional&lt; STAmount &gt; assetsToSharesWithdraw(std::shared_ptr&lt; SLE const &gt; const &amp;vault, std::shared_ptr&lt; SLE const &gt; const &amp;issuance, STAmount const &amp;assets, TruncateShares truncate)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02854">View.cpp:2854</a></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>
<div class="ttc" id="anamespaceripple_html_a5dfb437ade69624474bbe4125ceb791a"><div class="ttname"><a href="namespaceripple.html#a5dfb437ade69624474bbe4125ceb791a">ripple::preflight1</a></div><div class="ttdeci">NotTEC preflight1(PreflightContext const &amp;ctx)</div><div class="ttdoc">Performs early sanity checks on the account and fee fields.</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00091">Transactor.cpp:91</a></div></div>
<div class="ttc" id="anamespaceripple_html_a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c"><div class="ttname"><a href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">ripple::tefINTERNAL</a></div><div class="ttdeci">@ tefINTERNAL</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00173">TER.h:173</a></div></div>
<div class="ttc" id="anamespaceripple_html_a7db8820410ffa3288079a33bc00109ac"><div class="ttname"><a href="namespaceripple.html#a7db8820410ffa3288079a33bc00109ac">ripple::sharesToAssetsWithdraw</a></div><div class="ttdeci">std::optional&lt; STAmount &gt; sharesToAssetsWithdraw(std::shared_ptr&lt; SLE const &gt; const &amp;vault, std::shared_ptr&lt; SLE const &gt; const &amp;issuance, STAmount const &amp;shares)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02883">View.cpp:2883</a></div></div>
<div class="ttc" id="anamespaceripple_html_a875ae996b37ed036597d70628ae053e3"><div class="ttname"><a href="namespaceripple.html#a875ae996b37ed036597d70628ae053e3">ripple::transToken</a></div><div class="ttdeci">std::string transToken(TER code)</div><div class="ttdef"><b>Definition</b> <a href="TER_8cpp_source.html#l00264">TER.cpp:264</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 &amp;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_a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435"><div class="ttname"><a href="namespaceripple.html#a9d22f4d38ac33f4258a0205f8e11d27ea93cba07454f06a4a960172bbd6e2a435">ripple::WaiveTransferFee::Yes</a></div><div class="ttdeci">@ Yes</div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca02ea20c787300a40fe375ba3d6405258"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca02ea20c787300a40fe375ba3d6405258">ripple::tecNO_ENTRY</a></div><div class="ttdeci">@ tecNO_ENTRY</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00306">TER.h:306</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca1207baad8c378dc23cd2fa4c4276844d">ripple::tecNO_DST</a></div><div class="ttdeci">@ tecNO_DST</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00290">TER.h:290</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca2f3fdd22dc22973eca4c97cb3f9e65fc"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca2f3fdd22dc22973eca4c97cb3f9e65fc">ripple::tecOBJECT_NOT_FOUND</a></div><div class="ttdeci">@ tecOBJECT_NOT_FOUND</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00326">TER.h:326</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca89957bfc4da8257ff0b1c914c10a41ec">ripple::tecINSUFFICIENT_FUNDS</a></div><div class="ttdeci">@ tecINSUFFICIENT_FUNDS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00325">TER.h:325</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca93e4e159f8759ea0948423c699e7cf77">ripple::tecINTERNAL</a></div><div class="ttdeci">@ tecINTERNAL</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00310">TER.h:310</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca9af7057961bc54674f4a6c2dd8ed6ab9">ripple::tecNO_PERMISSION</a></div><div class="ttdeci">@ tecNO_PERMISSION</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00305">TER.h:305</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa3ac7c997274040539a497cadc280b22">ripple::tecDST_TAG_NEEDED</a></div><div class="ttdeci">@ tecDST_TAG_NEEDED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00309">TER.h:309</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa5864b5c8b3bcced7aed0b3a794cb14e"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa5864b5c8b3bcced7aed0b3a794cb14e">ripple::tecPRECISION_LOSS</a></div><div class="ttdeci">@ tecPRECISION_LOSS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00363">TER.h:363</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caa7460a5fac26c1d8abef55b8c1129150">ripple::tecHAS_OBLIGATIONS</a></div><div class="ttdeci">@ tecHAS_OBLIGATIONS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00317">TER.h:317</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cab5238219b3a4edf1d92efb0c7d16c124"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cab5238219b3a4edf1d92efb0c7d16c124">ripple::tecWRONG_ASSET</a></div><div class="ttdeci">@ tecWRONG_ASSET</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00360">TER.h:360</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad7c0f4891446922b7248ed12f2207a57">ripple::tecPATH_DRY</a></div><div class="ttdeci">@ tecPATH_DRY</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00294">TER.h:294</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38caf5820ac855eaa9dfcd635cd411019a31"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38caf5820ac855eaa9dfcd635cd411019a31">ripple::tecNO_AUTH</a></div><div class="ttdeci">@ tecNO_AUTH</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00300">TER.h:300</a></div></div>
<div class="ttc" id="anamespaceripple_html_aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151"><div class="ttname"><a href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">ripple::tesSUCCESS</a></div><div class="ttdeci">@ tesSUCCESS</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00245">TER.h:244</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab001e43f50e612727b1ce5985a2770d6"><div class="ttname"><a href="namespaceripple.html#ab001e43f50e612727b1ce5985a2770d6">ripple::accountHolds</a></div><div class="ttdeci">STAmount accountHolds(ReadView const &amp;view, AccountID const &amp;account, Currency const &amp;currency, AccountID const &amp;issuer, FreezeHandling zeroIfFrozen, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l00385">View.cpp:385</a></div></div>
<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_ac527f4be8f38f42794ec9a8981c71f25"><div class="ttname"><a href="namespaceripple.html#ac527f4be8f38f42794ec9a8981c71f25">ripple::assetsToSharesWithdraw</a></div><div class="ttdeci">STAmount assetsToSharesWithdraw(std::shared_ptr&lt; SLE const &gt; const &amp;vault, std::shared_ptr&lt; SLE const &gt; const &amp;issuance, STAmount const &amp;assets)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02815">View.cpp:2815</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac124fe6744b7fe887dec949b56b16d50"><div class="ttname"><a href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">ripple::to_string</a></div><div class="ttdeci">std::string to_string(base_uint&lt; Bits, Tag &gt; const &amp;a)</div><div class="ttdef"><b>Definition</b> <a href="base__uint_8h_source.html#l00630">base_uint.h:630</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_acadc50b4060eb3f589c30efaf67322e8"><div class="ttname"><a href="namespaceripple.html#acadc50b4060eb3f589c30efaf67322e8">ripple::vaultStrategyFirstComeFirstServe</a></div><div class="ttdeci">std::uint8_t constexpr vaultStrategyFirstComeFirstServe</div><div class="ttdoc">Vault withdrawal policies.</div><div class="ttdef"><b>Definition</b> <a href="Protocol_8h_source.html#l00123">Protocol.h:123</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae60d504a4aa68cf5721b25a2106221ed"><div class="ttname"><a href="namespaceripple.html#ae60d504a4aa68cf5721b25a2106221ed">ripple::removeEmptyHolding</a></div><div class="ttdeci">TER removeEmptyHolding(ApplyView &amp;view, AccountID const &amp;accountID, Issue const &amp;issue, beast::Journal journal)</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l01448">View.cpp:1448</a></div></div>
<div class="ttc" id="anamespaceripple_html_af2e2ee9b2b3499ff23ebbc249e188764"><div class="ttname"><a href="namespaceripple.html#af2e2ee9b2b3499ff23ebbc249e188764">ripple::accountSend</a></div><div class="ttdeci">TER accountSend(ApplyView &amp;view, AccountID const &amp;uSenderID, AccountID const &amp;uReceiverID, STAmount const &amp;saAmount, beast::Journal j, WaiveTransferFee waiveFee)</div><div class="ttdoc">Calls static accountSendIOU if saAmount represents Issue.</div><div class="ttdef"><b>Definition</b> <a href="View_8cpp_source.html#l02114">View.cpp:2114</a></div></div>
<div class="ttc" id="anamespaceripple_html_af99ba2263d2a1e29207c40a35fc9f6b3"><div class="ttname"><a href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">ripple::NotTEC</a></div><div class="ttdeci">TERSubset&lt; CanCvtToNotTEC &gt; NotTEC</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00605">TER.h:605</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a07dedb576e47ed9570e5acc5b4b1d3ea">ripple::temBAD_AMOUNT</a></div><div class="ttdeci">@ temBAD_AMOUNT</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00089">TER.h:89</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a6c750a245b6efb84fdc4ab34dc010328">ripple::temMALFORMED</a></div><div class="ttdeci">@ temMALFORMED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00087">TER.h:87</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">ripple::temINVALID_FLAG</a></div><div class="ttdeci">@ temINVALID_FLAG</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00111">TER.h:111</a></div></div>
<div class="ttc" id="anamespaceripple_html_afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46ac3482079467d517ea82aa9c8fa693d21">ripple::temDISABLED</a></div><div class="ttdeci">@ temDISABLED</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00114">TER.h:114</a></div></div>
<div class="ttc" id="aoverflow_error_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/overflow_error.html">std::overflow_error</a></div></div>
<div class="ttc" id="astructripple_1_1PreclaimContext_html"><div class="ttname"><a href="structripple_1_1PreclaimContext.html">ripple::PreclaimContext</a></div><div class="ttdoc">State information when determining if a tx is likely to claim a fee.</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00078">Transactor.h:79</a></div></div>
<div class="ttc" id="astructripple_1_1PreclaimContext_html_a05d5cf6207c1127c25dcd7c3f763b9c5"><div class="ttname"><a href="structripple_1_1PreclaimContext.html#a05d5cf6207c1127c25dcd7c3f763b9c5">ripple::PreclaimContext::view</a></div><div class="ttdeci">ReadView const &amp; view</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00082">Transactor.h:82</a></div></div>
<div class="ttc" id="astructripple_1_1PreclaimContext_html_a8e1240b39791cf309b9caaffe8e5d306"><div class="ttname"><a href="structripple_1_1PreclaimContext.html#a8e1240b39791cf309b9caaffe8e5d306">ripple::PreclaimContext::tx</a></div><div class="ttdeci">STTx const &amp; tx</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00085">Transactor.h:85</a></div></div>