This commit is contained in:
manojsdoshi
2022-10-17 14:40:04 +00:00
parent 38a7cd20fe
commit 9bfdc71592
2970 changed files with 51106 additions and 72945 deletions

View File

@@ -1178,120 +1178,126 @@ $(function() {
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">if</span> (bImmediateOrCancel)</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; {</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;Immediate or cancel: offer canceled&quot;</span>;</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; }</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; </div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> sleCreator = sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#afe88196d7aec85f2af00d7cd0b1a28c3">peek</a>(<a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">if</span> (!sleCreator)</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>, <span class="keyword">false</span>};</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; </div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; {</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <a class="code" href="classripple_1_1XRPAmount.html">XRPAmount</a> reserve =</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#a08bb2668a3260801e8f7d85b4242eb6c">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(sleCreator-&gt;getFieldU32(<a class="code" href="namespaceripple.html#aee6c41ec9be20b8705502ae9290ef2b0">sfOwnerCount</a>) + 1);</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> &lt; reserve)</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; {</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="comment">// If we are here, the signing account had an insufficient reserve</span></div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="comment">// *prior* to our processing. If something actually crossed, then</span></div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="comment">// we allow this; otherwise, we just claim a fee.</span></div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">if</span> (!crossed)</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; result = <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca30792765079d182f869612fc3b96ef8c">tecINSUF_RESERVE_OFFER</a>;</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; </div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">if</span> (result != <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; {</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#a875ae996b37ed036597d70628ae053e3">transToken</a>(result);</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; }</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; </div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">return</span> {result, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; }</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; }</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; </div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="comment">// We need to place the remainder of the offer into its order book.</span></div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> offer_index = <a class="code" href="namespaceripple_1_1keylet.html#a5d33427228ab1869c37fcf11132865f6">keylet::offer</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>, offerSequence);</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; </div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="comment">// Add offer to owner&#39;s directory.</span></div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> ownerNode = sb.<a class="code" href="classripple_1_1ApplyView.html#ade751364c7a9580032ef5988a953a6ee">dirInsert</a>(</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <a class="code" href="namespaceripple_1_1keylet.html#aa9b2ba2df3c3da4cecd1c07cccf7c7f9">keylet::ownerDir</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>), offer_index, <a class="code" href="namespaceripple.html#a5b498122d9b8c1acbeb9fe459faac22b">describeOwnerDir</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; </div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">if</span> (!ownerNode)</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; {</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>())</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; &lt;&lt; <span class="stringliteral">&quot;final result: failed to add offer to owner&#39;s directory&quot;</span>;</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; }</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; </div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="comment">// Update owner count.</span></div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <a class="code" href="namespaceripple.html#a7e31af9d90dac8c9e4272bf597d83fb4">adjustOwnerCount</a>(sb, sleCreator, 1, viewJ);</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; </div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;adding to book: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saTakerPays.issue())</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; &lt;&lt; <span class="stringliteral">&quot; : &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saTakerGets.issue());</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">if</span> (!crossed &amp;&amp; sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#af16244cf2efd903b4575a0b85c94d159">rules</a>().<a class="code" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(<a class="code" href="namespaceripple.html#a5518468ab72c2261a1c2a62c3056b43f">featureImmediateOfferKilled</a>))</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="comment">// If the ImmediateOfferKilled amendment is enabled, any</span></div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="comment">// ImmediateOrCancel offer that transfers absolutely no funds</span></div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="comment">// returns tecKILLED rather than tesSUCCESS. Motivation for the</span></div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="comment">// change is here: https://github.com/ripple/rippled/issues/4115</span></div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca82773cd87fbf942a9cb626416218f52b">tecKILLED</a>, <span class="keyword">false</span>};</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; </div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> sleCreator = sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#afe88196d7aec85f2af00d7cd0b1a28c3">peek</a>(<a class="code" href="namespaceripple_1_1keylet.html#a50c370db96b4fdcdd202d9c2c38afce9">keylet::account</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">if</span> (!sleCreator)</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>, <span class="keyword">false</span>};</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; </div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; {</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="classripple_1_1XRPAmount.html">XRPAmount</a> reserve =</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#a08bb2668a3260801e8f7d85b4242eb6c">fees</a>().<a class="code" href="structripple_1_1Fees.html#acb07843d0d0e3ccacd7cf51d5296fe40">accountReserve</a>(sleCreator-&gt;getFieldU32(<a class="code" href="namespaceripple.html#aee6c41ec9be20b8705502ae9290ef2b0">sfOwnerCount</a>) + 1);</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; </div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classripple_1_1Transactor.html#abb2f6f5d7fd8c663c5df76b6fcba2c49">mPriorBalance</a> &lt; reserve)</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; {</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="comment">// If we are here, the signing account had an insufficient reserve</span></div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="comment">// *prior* to our processing. If something actually crossed, then</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="comment">// we allow this; otherwise, we just claim a fee.</span></div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">if</span> (!crossed)</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; result = <a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca30792765079d182f869612fc3b96ef8c">tecINSUF_RESERVE_OFFER</a>;</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">if</span> (result != <a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>)</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; {</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#a875ae996b37ed036597d70628ae053e3">transToken</a>(result);</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; </div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">return</span> {result, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; </div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="comment">// We need to place the remainder of the offer into its order book.</span></div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> offer_index = <a class="code" href="namespaceripple_1_1keylet.html#a5d33427228ab1869c37fcf11132865f6">keylet::offer</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>, offerSequence);</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; </div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="comment">// Add offer to owner&#39;s directory.</span></div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> ownerNode = sb.<a class="code" href="classripple_1_1ApplyView.html#ade751364c7a9580032ef5988a953a6ee">dirInsert</a>(</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <a class="code" href="namespaceripple_1_1keylet.html#aa9b2ba2df3c3da4cecd1c07cccf7c7f9">keylet::ownerDir</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>), offer_index, <a class="code" href="namespaceripple.html#a5b498122d9b8c1acbeb9fe459faac22b">describeOwnerDir</a>(<a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>));</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; </div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">if</span> (!ownerNode)</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; {</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>())</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; &lt;&lt; <span class="stringliteral">&quot;final result: failed to add offer to owner&#39;s directory&quot;</span>;</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; }</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; </div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <a class="code" href="classripple_1_1Book.html">Book</a> <span class="keyword">const</span> book{saTakerPays.issue(), saTakerGets.issue()};</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; </div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="comment">// Add offer to order book, using the original rate</span></div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="comment">// before any crossing occured.</span></div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keyword">auto</span> dir = <a class="code" href="namespaceripple_1_1keylet.html#a521be311ed98c7c94eeff3441e6bf85f">keylet::quality</a>(<a class="code" href="namespaceripple_1_1keylet.html#ab236c97c4473567c7b98a54032092acf">keylet::book</a>(book), uRate);</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <span class="keywordtype">bool</span> <span class="keyword">const</span> bookExisted = <span class="keyword">static_cast&lt;</span><span class="keywordtype">bool</span><span class="keyword">&gt;</span>(sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#afe88196d7aec85f2af00d7cd0b1a28c3">peek</a>(dir));</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> bookNode = sb.<a class="code" href="classripple_1_1ApplyView.html#a0576b441e682b2a0b8355a0496758d16">dirAppend</a>(dir, offer_index, [&amp;](<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">SLE::ref</a> sle) {</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a097acc5de54a52bef625b88a67858c68">sfTakerPaysCurrency</a>, saTakerPays.issue().currency);</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#aac7eca19c373f8ce4e43e87e6e1e8104">sfTakerPaysIssuer</a>, saTakerPays.issue().account);</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a60ce77edb13fa9ba8f05339d7740a9d0">sfTakerGetsCurrency</a>, saTakerGets.issue().currency);</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a8bda70d08379b7b85d3fde06dcafcfc8">sfTakerGetsIssuer</a>, saTakerGets.issue().account);</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; sle-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a322de89d19b6bc34ff5c0431dec685a3">sfExchangeRate</a>, uRate);</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; });</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; </div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordflow">if</span> (!bookNode)</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; {</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: failed to add offer to book&quot;</span>;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; }</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="comment">// Update owner count.</span></div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <a class="code" href="namespaceripple.html#a7e31af9d90dac8c9e4272bf597d83fb4">adjustOwnerCount</a>(sb, sleCreator, 1, viewJ);</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; </div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;adding to book: &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saTakerPays.issue())</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; &lt;&lt; <span class="stringliteral">&quot; : &quot;</span> &lt;&lt; <a class="code" href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">to_string</a>(saTakerGets.issue());</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; </div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <a class="code" href="classripple_1_1Book.html">Book</a> <span class="keyword">const</span> book{saTakerPays.issue(), saTakerGets.issue()};</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; </div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="comment">// Add offer to order book, using the original rate</span></div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="comment">// before any crossing occured.</span></div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keyword">auto</span> dir = <a class="code" href="namespaceripple_1_1keylet.html#a521be311ed98c7c94eeff3441e6bf85f">keylet::quality</a>(<a class="code" href="namespaceripple_1_1keylet.html#ab236c97c4473567c7b98a54032092acf">keylet::book</a>(book), uRate);</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordtype">bool</span> <span class="keyword">const</span> bookExisted = <span class="keyword">static_cast&lt;</span><span class="keywordtype">bool</span><span class="keyword">&gt;</span>(sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#afe88196d7aec85f2af00d7cd0b1a28c3">peek</a>(dir));</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> bookNode = sb.<a class="code" href="classripple_1_1ApplyView.html#a0576b441e682b2a0b8355a0496758d16">dirAppend</a>(dir, offer_index, [&amp;](<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">SLE::ref</a> sle) {</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a097acc5de54a52bef625b88a67858c68">sfTakerPaysCurrency</a>, saTakerPays.issue().currency);</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#aac7eca19c373f8ce4e43e87e6e1e8104">sfTakerPaysIssuer</a>, saTakerPays.issue().account);</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a60ce77edb13fa9ba8f05339d7740a9d0">sfTakerGetsCurrency</a>, saTakerGets.issue().currency);</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; sle-&gt;setFieldH160(<a class="code" href="namespaceripple.html#a8bda70d08379b7b85d3fde06dcafcfc8">sfTakerGetsIssuer</a>, saTakerGets.issue().account);</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; sle-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a322de89d19b6bc34ff5c0431dec685a3">sfExchangeRate</a>, uRate);</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; });</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; </div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keyword">auto</span> sleOffer = std::make_shared&lt;SLE&gt;(offer_index);</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; sleOffer-&gt;setAccountID(<a class="code" href="namespaceripple.html#a5bab99595719d22579e10d21cf048eb0">sfAccount</a>, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>);</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; sleOffer-&gt;setFieldU32(<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>, offerSequence);</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; sleOffer-&gt;setFieldH256(<a class="code" href="namespaceripple.html#af6d46687cd6c7c02a3cf5765e72f175f">sfBookDirectory</a>, dir.key);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; sleOffer-&gt;setFieldAmount(<a class="code" href="namespaceripple.html#a1bd06b8a74779afd739e715cbdbacddd">sfTakerPays</a>, saTakerPays);</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; sleOffer-&gt;setFieldAmount(<a class="code" href="namespaceripple.html#a991c39f1a35b252660a3b33bd880eef5">sfTakerGets</a>, saTakerGets);</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; sleOffer-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a7038e25fafd9239c031a42b0f285ddf4">sfOwnerNode</a>, *ownerNode);</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; sleOffer-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a4ea34a30825650f4ec8c00d39622a9f0">sfBookNode</a>, *bookNode);</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">if</span> (expiration)</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; sleOffer-&gt;setFieldU32(<a class="code" href="namespaceripple.html#ae3182ff3db5f7f67e4fe8bcd69316727">sfExpiration</a>, *expiration);</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">if</span> (bPassive)</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; sleOffer-&gt;setFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5af5bb4ed279c86f7c4ddfe0b2ed89af00">lsfPassive</a>);</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keywordflow">if</span> (bSell)</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; sleOffer-&gt;setFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5ab4f5e24467c127ce07228288a7b54760">lsfSell</a>);</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#a669490ced7bb2cab3a6cc704bc7286df">insert</a>(sleOffer);</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; </div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">if</span> (!bookExisted)</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code" href="classripple_1_1Application.html#ac885cb8bec6f3b9b8bdd5f2a44d07fed">getOrderBookDB</a>().<a class="code" href="classripple_1_1OrderBookDB.html#a0faba63ac03924d89a07b2dd69bcd206">addOrderBook</a>(book);</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; </div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: success&quot;</span>;</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; </div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;}</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; </div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<a class="code" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a name="l01204"></a><span class="lineno"><a class="line" href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f"> 1204</a></span>&#160;<a class="code" href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f">CreateOffer::doApply</a>()</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;{</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="comment">// This is the ledger view that we work against. Transactions are applied</span></div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="comment">// as we go on processing transactions.</span></div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <a class="code" href="classripple_1_1Sandbox.html">Sandbox</a> sb(&amp;<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77320121a8dc95fb701fe4fa477c1b3d">view</a>());</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; </div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">// This is a ledger with just the fees paid and any unfunded or expired</span></div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="comment">// offers we encounter removed. It&#39;s used when handling Fill-or-Kill offers,</span></div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// if the order isn&#39;t going to be placed, to avoid wasting the work we did.</span></div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <a class="code" href="classripple_1_1Sandbox.html">Sandbox</a> sbCancel(&amp;<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77320121a8dc95fb701fe4fa477c1b3d">view</a>());</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; </div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> result = <a class="code" href="classripple_1_1CreateOffer.html#af1e3edb1dcc853bf59a5c63f366f29e9">applyGuts</a>(sb, sbCancel);</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keywordflow">if</span> (result.second)</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; sb.<a class="code" href="classripple_1_1Sandbox.html#af027065a92ed80c4b54b08d7974c06ce">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; sbCancel.<a class="code" href="classripple_1_1Sandbox.html#af027065a92ed80c4b54b08d7974c06ce">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">return</span> result.first;</div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;}</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; </div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keywordflow">if</span> (!bookNode)</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; {</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: failed to add offer to book&quot;</span>;</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38ca4f19fdbc12c26412215f3477f70d5feb">tecDIR_FULL</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; </div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keyword">auto</span> sleOffer = std::make_shared&lt;SLE&gt;(offer_index);</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; sleOffer-&gt;setAccountID(<a class="code" href="namespaceripple.html#a5bab99595719d22579e10d21cf048eb0">sfAccount</a>, <a class="code" href="classripple_1_1Transactor.html#a558a1d4288c859eb5875154a86435220">account_</a>);</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; sleOffer-&gt;setFieldU32(<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>, offerSequence);</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; sleOffer-&gt;setFieldH256(<a class="code" href="namespaceripple.html#af6d46687cd6c7c02a3cf5765e72f175f">sfBookDirectory</a>, dir.key);</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; sleOffer-&gt;setFieldAmount(<a class="code" href="namespaceripple.html#a1bd06b8a74779afd739e715cbdbacddd">sfTakerPays</a>, saTakerPays);</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; sleOffer-&gt;setFieldAmount(<a class="code" href="namespaceripple.html#a991c39f1a35b252660a3b33bd880eef5">sfTakerGets</a>, saTakerGets);</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; sleOffer-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a7038e25fafd9239c031a42b0f285ddf4">sfOwnerNode</a>, *ownerNode);</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; sleOffer-&gt;setFieldU64(<a class="code" href="namespaceripple.html#a4ea34a30825650f4ec8c00d39622a9f0">sfBookNode</a>, *bookNode);</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">if</span> (expiration)</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; sleOffer-&gt;setFieldU32(<a class="code" href="namespaceripple.html#ae3182ff3db5f7f67e4fe8bcd69316727">sfExpiration</a>, *expiration);</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">if</span> (bPassive)</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; sleOffer-&gt;setFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5af5bb4ed279c86f7c4ddfe0b2ed89af00">lsfPassive</a>);</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">if</span> (bSell)</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; sleOffer-&gt;setFlag(<a class="code" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5ab4f5e24467c127ce07228288a7b54760">lsfSell</a>);</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; sb.<a class="code" href="classripple_1_1detail_1_1ApplyViewBase.html#a669490ced7bb2cab3a6cc704bc7286df">insert</a>(sleOffer);</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; </div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">if</span> (!bookExisted)</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>.<a class="code" href="classripple_1_1Application.html#ac885cb8bec6f3b9b8bdd5f2a44d07fed">getOrderBookDB</a>().<a class="code" href="classripple_1_1OrderBookDB.html#a0faba63ac03924d89a07b2dd69bcd206">addOrderBook</a>(book);</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; </div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; JLOG(<a class="code" href="classripple_1_1Transactor.html#aafdaa4e246ee6879df9cbbf2482dcc7d">j_</a>.<a class="code" href="classbeast_1_1Journal.html#a556228cb60bcf405c225d3f64b7b01ae">debug</a>()) &lt;&lt; <span class="stringliteral">&quot;final result: success&quot;</span>;</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; </div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keywordflow">return</span> {<a class="code" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>, <span class="keyword">true</span>};</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;}</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; </div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<a class="code" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a name="l01210"></a><span class="lineno"><a class="line" href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f"> 1210</a></span>&#160;<a class="code" href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f">CreateOffer::doApply</a>()</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;{</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// This is the ledger view that we work against. Transactions are applied</span></div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="comment">// as we go on processing transactions.</span></div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <a class="code" href="classripple_1_1Sandbox.html">Sandbox</a> sb(&amp;<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77320121a8dc95fb701fe4fa477c1b3d">view</a>());</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; </div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// This is a ledger with just the fees paid and any unfunded or expired</span></div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="comment">// offers we encounter removed. It&#39;s used when handling Fill-or-Kill offers,</span></div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// if the order isn&#39;t going to be placed, to avoid wasting the work we did.</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <a class="code" href="classripple_1_1Sandbox.html">Sandbox</a> sbCancel(&amp;<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77320121a8dc95fb701fe4fa477c1b3d">view</a>());</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; </div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> result = <a class="code" href="classripple_1_1CreateOffer.html#af1e3edb1dcc853bf59a5c63f366f29e9">applyGuts</a>(sb, sbCancel);</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">if</span> (result.second)</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; sb.<a class="code" href="classripple_1_1Sandbox.html#af027065a92ed80c4b54b08d7974c06ce">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; sbCancel.<a class="code" href="classripple_1_1Sandbox.html#af027065a92ed80c4b54b08d7974c06ce">apply</a>(<a class="code" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code" href="classripple_1_1ApplyContext.html#a77dc079164717b62995593c7633a5160">rawView</a>());</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="keywordflow">return</span> result.first;</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;}</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; </div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;} <span class="comment">// namespace ripple</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="anamespaceripple_html_a0d78fe5b5eff36774b5be525cbcc3972"><div class="ttname"><a href="namespaceripple.html#a0d78fe5b5eff36774b5be525cbcc3972">ripple::badCurrency</a></div><div class="ttdeci">Currency const &amp; badCurrency()</div><div class="ttdoc">We deliberately disallow the currency that looks like &quot;XRP&quot; because too many people were using it ins...</div><div class="ttdef"><b>Definition:</b> <a href="UintTypes_8cpp_source.html#l00135">UintTypes.cpp:135</a></div></div>
<div class="ttc" id="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#l00339">Journal.h:339</a></div></div>
@@ -1426,7 +1432,7 @@ $(function() {
<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#l00084">TER.h:84</a></div></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#l00058">Journal.h:58</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div>
<div class="ttc" id="aclassripple_1_1CreateOffer_html_ae8670d9db3224f61491379bfeaf6719f"><div class="ttname"><a href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f">ripple::CreateOffer::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdoc">Precondition: fee collection is likely.</div><div class="ttdef"><b>Definition:</b> <a href="CreateOffer_8cpp_source.html#l01204">CreateOffer.cpp:1204</a></div></div>
<div class="ttc" id="aclassripple_1_1CreateOffer_html_ae8670d9db3224f61491379bfeaf6719f"><div class="ttname"><a href="classripple_1_1CreateOffer.html#ae8670d9db3224f61491379bfeaf6719f">ripple::CreateOffer::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdoc">Precondition: fee collection is likely.</div><div class="ttdef"><b>Definition:</b> <a href="CreateOffer_8cpp_source.html#l01210">CreateOffer.cpp:1210</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_ab236c97c4473567c7b98a54032092acf"><div class="ttname"><a href="namespaceripple_1_1keylet.html#ab236c97c4473567c7b98a54032092acf">ripple::keylet::book</a></div><div class="ttdeci">static const book_t book</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8h_source.html#l00101">Indexes.h:101</a></div></div>
<div class="ttc" id="anamespaceripple_html_a322de89d19b6bc34ff5c0431dec685a3"><div class="ttname"><a href="namespaceripple.html#a322de89d19b6bc34ff5c0431dec685a3">ripple::sfExchangeRate</a></div><div class="ttdeci">const SF_UINT64 sfExchangeRate</div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_ad7913ec52c58534ee1601ab21956123f"><div class="ttname"><a href="namespaceripple_1_1keylet.html#ad7913ec52c58534ee1601ab21956123f">ripple::keylet::line</a></div><div class="ttdeci">Keylet line(AccountID const &amp;id0, AccountID const &amp;id1, Currency const &amp;currency) noexcept</div><div class="ttdoc">The index of a trust line for a given currency.</div><div class="ttdef"><b>Definition:</b> <a href="Indexes_8cpp_source.html#l00193">Indexes.cpp:193</a></div></div>
@@ -1454,6 +1460,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="RCLCensorshipDetector_8h_source.html#l00029">RCLCensorshipDetector.h:29</a></div></div>
<div class="ttc" id="anamespaceripple_html_ad3bc01fc1c4e0e3191802ff3192c5493"><div class="ttname"><a href="namespaceripple.html#ad3bc01fc1c4e0e3191802ff3192c5493">ripple::tfSell</a></div><div class="ttdeci">constexpr std::uint32_t tfSell</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00087">TxFlags.h:87</a></div></div>
<div class="ttc" id="aclassripple_1_1Application_html_a2897c28a5b5040e80e66f676d201d03f"><div class="ttname"><a href="classripple_1_1Application.html#a2897c28a5b5040e80e66f676d201d03f">ripple::Application::journal</a></div><div class="ttdeci">virtual beast::Journal journal(std::string const &amp;name)=0</div></div>
<div class="ttc" id="anamespaceripple_html_a5518468ab72c2261a1c2a62c3056b43f"><div class="ttname"><a href="namespaceripple.html#a5518468ab72c2261a1c2a62c3056b43f">ripple::featureImmediateOfferKilled</a></div><div class="ttdeci">const uint256 featureImmediateOfferKilled</div></div>
<div class="ttc" id="aclassripple_1_1CreateOffer_html_afc2195ef822328ebf39ba971e80e2157"><div class="ttname"><a href="classripple_1_1CreateOffer.html#afc2195ef822328ebf39ba971e80e2157">ripple::CreateOffer::cross</a></div><div class="ttdeci">std::pair&lt; TER, Amounts &gt; cross(Sandbox &amp;sb, Sandbox &amp;sbCancel, Amounts const &amp;takerAmount)</div><div class="ttdef"><b>Definition:</b> <a href="CreateOffer_8cpp_source.html#l00856">CreateOffer.cpp:856</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a1ac5d16d7b21e8af9cc94d7af39a85d5"><div class="ttname"><a href="classripple_1_1Transactor.html#a1ac5d16d7b21e8af9cc94d7af39a85d5">ripple::Transactor::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition:</b> <a href="Transactor_8h_source.html#l00107">Transactor.h:107</a></div></div>
<div class="ttc" id="aclassripple_1_1CreateOffer_html_a6e57f75da3977173e97749daeeed45ef"><div class="ttname"><a href="classripple_1_1CreateOffer.html#a6e57f75da3977173e97749daeeed45ef">ripple::CreateOffer::reachedOfferCrossingLimit</a></div><div class="ttdeci">bool reachedOfferCrossingLimit(Taker const &amp;taker) const</div><div class="ttdef"><b>Definition:</b> <a href="CreateOffer_8cpp_source.html#l00311">CreateOffer.cpp:311</a></div></div>