This commit is contained in:
ximinez
2025-09-29 14:34:39 -07:00
parent 024c56d15b
commit 1846538a80
354 changed files with 60408 additions and 30622 deletions

View File

@@ -137,62 +137,49 @@ $(document).ready(function() { init_codefold(0); });
<div class="foldopen" id="foldopen00052" data-start="{" data-end="}">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classripple_1_1SetRegularKey.html#aca2578a55b03831301f61b328be2aa18"> 52</a></span><a class="code hl_function" href="classripple_1_1SetRegularKey.html#aca2578a55b03831301f61b328be2aa18">SetRegularKey::preflight</a>(<a class="code hl_struct" href="structripple_1_1PreflightContext.html">PreflightContext</a> <span class="keyword">const</span>&amp; ctx)</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>{</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> ret = <a class="code hl_function" href="namespaceripple.html#a5dfb437ade69624474bbe4125ceb791a">preflight1</a>(ctx); !<a class="code hl_function" href="namespaceripple.html#ab48d5d1c4e2695c12f705e9d85fa560d">isTesSuccess</a>(ret))</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> uTxFlags = ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">getFlags</a>();</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span> (uTxFlags &amp; <a class="code hl_variable" href="namespaceripple.html#ac8844b7ad1603892172e8e6d1044de00">tfUniversalMask</a>)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> {</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> JLOG(ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#ae5e4a6c7a5f2acfe5a3c39a92cb86357">j</a>.<a class="code hl_function" href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">trace</a>()) &lt;&lt; <span class="stringliteral">&quot;Malformed transaction: Invalid flags set.&quot;</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46aa4754e0f122658747650b3b1c0a846a8">temINVALID_FLAG</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#ab27bfce9ca08a7330ff573e4e2d5fc68">rules</a>.<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixMasterKeyAsRegularKey) &amp;&amp;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfRegularKey) &amp;&amp;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfRegularKey) == ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfAccount)))</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> {</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a4217230b627e59cc2b5d856c7e99cfff">temBAD_REGKEY</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a8b257ff89d14ac75ce240946f32d3773">preflight2</a>(ctx);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>}</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">if</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#ab27bfce9ca08a7330ff573e4e2d5fc68">rules</a>.<a class="code hl_function" href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">enabled</a>(fixMasterKeyAsRegularKey) &amp;&amp;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfRegularKey) &amp;&amp;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> (ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfRegularKey) == ctx.<a class="code hl_variable" href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">tx</a>.<a class="code hl_function" href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">getAccountID</a>(sfAccount)))</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a4217230b627e59cc2b5d856c7e99cfff">temBAD_REGKEY</a>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="foldopen" id="foldopen00077" data-start="{" data-end="}">
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba"> 77</a></span><a class="code hl_function" href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba">SetRegularKey::doApply</a>()</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>{</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (!sle)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a5c4568739676c5335b8d63dc375f7920">minimumFee</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a9df58663845587d6095ee32908c99d6a">baseFee</a>, <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().fees(), <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().flags()))</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> sle-&gt;setFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</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>(sfRegularKey))</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> sle-&gt;setAccountID(sfRegularKey, <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>(sfRegularKey));</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Account has disabled master key and no multi-signer signer list.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (sle-&gt;isFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a74277ce2a45a0b253c18a4aa3c57b7c7">lsfDisableMaster</a>) &amp;&amp;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> !<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().peek(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ad5c2136f2d2d711114702944633d4fa8">keylet::signers</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>)))</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad2a823ed54b4d2c7bc8fef63f627ac59">tecNO_ALTERNATIVE_KEY</a>;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> sle-&gt;makeFieldAbsent(sfRegularKey);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="foldopen" id="foldopen00065" data-start="{" data-end="}">
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba"> 65</a></span><a class="code hl_function" href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba">SetRegularKey::doApply</a>()</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>{</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">auto</span> <span class="keyword">const</span> sle = <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#afa666aaa8eb0080d96f910f8a719291d">peek</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>));</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (!sle)</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#a75cb21d7f1df42f2fdc8efddb79b63f4ad035d214edc31c72362d7efbdaba234c">tefINTERNAL</a>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classripple_1_1Transactor.html#a5c4568739676c5335b8d63dc375f7920">minimumFee</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">app</a>, <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_variable" href="classripple_1_1ApplyContext.html#a9df58663845587d6095ee32908c99d6a">baseFee</a>, <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().fees(), <a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().flags()))</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> sle-&gt;setFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">lsfPasswordSpent</a>);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</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>(sfRegularKey))</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> sle-&gt;setAccountID(sfRegularKey, <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>(sfRegularKey));</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// Account has disabled master key and no multi-signer signer list.</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (sle-&gt;isFlag(<a class="code hl_enumvalue" href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a74277ce2a45a0b253c18a4aa3c57b7c7">lsfDisableMaster</a>) &amp;&amp;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> !<a class="code hl_function" href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">view</a>().peek(<a class="code hl_function" href="namespaceripple_1_1keylet.html#ad5c2136f2d2d711114702944633d4fa8">keylet::signers</a>(<a class="code hl_variable" href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">account_</a>)))</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad2a823ed54b4d2c7bc8fef63f627ac59">tecNO_ALTERNATIVE_KEY</a>;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> sle-&gt;makeFieldAbsent(sfRegularKey);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_variable" href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ctx_</a>.<a class="code hl_function" href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">view</a>().<a class="code hl_function" href="classripple_1_1ApplyView.html#a542437b9b59a623e755979acdc075af5">update</a>(sle);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">return</span> <a class="code hl_enumvalue" href="namespaceripple.html#aabc7f150d5082c73116a1cd5962b434da28c7d8b3ed759d363503a05fcd59f151">tesSUCCESS</a>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>}</div>
</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html_abbe082bd27ca0f1d1365af2824e4f85b"><div class="ttname"><a href="classbeast_1_1Journal.html#abbe082bd27ca0f1d1365af2824e4f85b">beast::Journal::trace</a></div><div class="ttdeci">Stream trace() const</div><div class="ttdoc">Severity stream access functions.</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00322">Journal.h:322</a></div></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a44c249b16b2cedb1224a96592407558d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a44c249b16b2cedb1224a96592407558d">ripple::ApplyContext::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition</b> <a href="ApplyContext_8h_source.html#l00078">ApplyContext.h:78</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyContext_html_a6ec1f10e560afe30ed435c3f7eea715d"><div class="ttname"><a href="classripple_1_1ApplyContext.html#a6ec1f10e560afe30ed435c3f7eea715d">ripple::ApplyContext::app</a></div><div class="ttdeci">Application &amp; app</div><div class="ttdef"><b>Definition</b> <a href="ApplyContext_8h_source.html#l00071">ApplyContext.h:71</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>
@@ -205,40 +192,32 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclassripple_1_1Rules_html_a1a8388a2b9588aa9446ece92a88e0dd2"><div class="ttname"><a href="classripple_1_1Rules.html#a1a8388a2b9588aa9446ece92a88e0dd2">ripple::Rules::enabled</a></div><div class="ttdeci">bool enabled(uint256 const &amp;feature) const</div><div class="ttdoc">Returns true if a feature is enabled.</div><div class="ttdef"><b>Definition</b> <a href="Rules_8cpp_source.html#l00130">Rules.cpp:130</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a0d2d874d34a1c3ed432cdb9fb1386b35"><div class="ttname"><a href="classripple_1_1STObject.html#a0d2d874d34a1c3ed432cdb9fb1386b35">ripple::STObject::getAccountID</a></div><div class="ttdeci">AccountID getAccountID(SField const &amp;field) const</div><div class="ttdef"><b>Definition</b> <a href="STObject_8cpp_source.html#l00657">STObject.cpp:657</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_aaf5d617701ac3afc4ad6a13862459692"><div class="ttname"><a href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">ripple::STObject::isFieldPresent</a></div><div class="ttdeci">bool isFieldPresent(SField const &amp;field) const</div><div class="ttdef"><b>Definition</b> <a href="STObject_8cpp_source.html#l00484">STObject.cpp:484</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_af5aa57043ec772da30341e3c3b823d7f"><div class="ttname"><a href="classripple_1_1STObject.html#af5aa57043ec772da30341e3c3b823d7f">ripple::STObject::getFlags</a></div><div class="ttdeci">std::uint32_t getFlags() const</div><div class="ttdef"><b>Definition</b> <a href="STObject_8cpp_source.html#l00537">STObject.cpp:537</a></div></div>
<div class="ttc" id="aclassripple_1_1STTx_html"><div class="ttname"><a href="classripple_1_1STTx.html">ripple::STTx</a></div><div class="ttdef"><b>Definition</b> <a href="STTx_8h_source.html#l00047">STTx.h:48</a></div></div>
<div class="ttc" id="aclassripple_1_1STTx_html_a85013803638c7bd4c8cfa952b5445d30"><div class="ttname"><a href="classripple_1_1STTx.html#a85013803638c7bd4c8cfa952b5445d30">ripple::STTx::getSigningPubKey</a></div><div class="ttdeci">Blob getSigningPubKey() const</div><div class="ttdef"><b>Definition</b> <a href="STTx_8h_source.html#l00213">STTx.h:213</a></div></div>
<div class="ttc" id="aclassripple_1_1SetRegularKey_html_a0094d5dbd069870b1d20c3318b76dda7"><div class="ttname"><a href="classripple_1_1SetRegularKey.html#a0094d5dbd069870b1d20c3318b76dda7">ripple::SetRegularKey::calculateBaseFee</a></div><div class="ttdeci">static XRPAmount calculateBaseFee(ReadView const &amp;view, STTx const &amp;tx)</div><div class="ttdef"><b>Definition</b> <a href="SetRegularKey_8cpp_source.html#l00029">SetRegularKey.cpp:29</a></div></div>
<div class="ttc" id="aclassripple_1_1SetRegularKey_html_aac252ecad43f5367e06c7bd33b9c7cba"><div class="ttname"><a href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba">ripple::SetRegularKey::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="SetRegularKey_8cpp_source.html#l00077">SetRegularKey.cpp:77</a></div></div>
<div class="ttc" id="aclassripple_1_1SetRegularKey_html_aac252ecad43f5367e06c7bd33b9c7cba"><div class="ttname"><a href="classripple_1_1SetRegularKey.html#aac252ecad43f5367e06c7bd33b9c7cba">ripple::SetRegularKey::doApply</a></div><div class="ttdeci">TER doApply() override</div><div class="ttdef"><b>Definition</b> <a href="SetRegularKey_8cpp_source.html#l00065">SetRegularKey.cpp:65</a></div></div>
<div class="ttc" id="aclassripple_1_1SetRegularKey_html_aca2578a55b03831301f61b328be2aa18"><div class="ttname"><a href="classripple_1_1SetRegularKey.html#aca2578a55b03831301f61b328be2aa18">ripple::SetRegularKey::preflight</a></div><div class="ttdeci">static NotTEC preflight(PreflightContext const &amp;ctx)</div><div class="ttdef"><b>Definition</b> <a href="SetRegularKey_8cpp_source.html#l00052">SetRegularKey.cpp:52</a></div></div>
<div class="ttc" id="aclassripple_1_1TERSubset_html"><div class="ttname"><a href="classripple_1_1TERSubset.html">ripple::TERSubset</a></div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00410">TER.h:411</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a428581db1f9eea2f41cf9e371a1e557d"><div class="ttname"><a href="classripple_1_1Transactor.html#a428581db1f9eea2f41cf9e371a1e557d">ripple::Transactor::calculateBaseFee</a></div><div class="ttdeci">static XRPAmount calculateBaseFee(ReadView const &amp;view, STTx const &amp;tx)</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00233">Transactor.cpp:233</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a5c4568739676c5335b8d63dc375f7920"><div class="ttname"><a href="classripple_1_1Transactor.html#a5c4568739676c5335b8d63dc375f7920">ripple::Transactor::minimumFee</a></div><div class="ttdeci">static XRPAmount minimumFee(Application &amp;app, XRPAmount baseFee, Fees const &amp;fees, ApplyFlags flags)</div><div class="ttdoc">Compute the minimum fee required to process a transaction with a given baseFee based on the current s...</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00251">Transactor.cpp:251</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a803c6fba463ed92ee24e4c056467f20a"><div class="ttname"><a href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">ripple::Transactor::account_</a></div><div class="ttdeci">AccountID const account_</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00145">Transactor.h:145</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a9acc4edc9b8f2a11a27fbcf5e93e2fe2"><div class="ttname"><a href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">ripple::Transactor::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00161">Transactor.h:161</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_aef4ef0a89b5595b2a688b89e4ecef833"><div class="ttname"><a href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ripple::Transactor::ctx_</a></div><div class="ttdeci">ApplyContext &amp; ctx_</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00141">Transactor.h:141</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a428581db1f9eea2f41cf9e371a1e557d"><div class="ttname"><a href="classripple_1_1Transactor.html#a428581db1f9eea2f41cf9e371a1e557d">ripple::Transactor::calculateBaseFee</a></div><div class="ttdeci">static XRPAmount calculateBaseFee(ReadView const &amp;view, STTx const &amp;tx)</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00293">Transactor.cpp:293</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a5c4568739676c5335b8d63dc375f7920"><div class="ttname"><a href="classripple_1_1Transactor.html#a5c4568739676c5335b8d63dc375f7920">ripple::Transactor::minimumFee</a></div><div class="ttdeci">static XRPAmount minimumFee(Application &amp;app, XRPAmount baseFee, Fees const &amp;fees, ApplyFlags flags)</div><div class="ttdoc">Compute the minimum fee required to process a transaction with a given baseFee based on the current s...</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8cpp_source.html#l00332">Transactor.cpp:332</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a803c6fba463ed92ee24e4c056467f20a"><div class="ttname"><a href="classripple_1_1Transactor.html#a803c6fba463ed92ee24e4c056467f20a">ripple::Transactor::account_</a></div><div class="ttdeci">AccountID const account_</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00147">Transactor.h:147</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_a9acc4edc9b8f2a11a27fbcf5e93e2fe2"><div class="ttname"><a href="classripple_1_1Transactor.html#a9acc4edc9b8f2a11a27fbcf5e93e2fe2">ripple::Transactor::view</a></div><div class="ttdeci">ApplyView &amp; view()</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00163">Transactor.h:163</a></div></div>
<div class="ttc" id="aclassripple_1_1Transactor_html_aef4ef0a89b5595b2a688b89e4ecef833"><div class="ttname"><a href="classripple_1_1Transactor.html#aef4ef0a89b5595b2a688b89e4ecef833">ripple::Transactor::ctx_</a></div><div class="ttdeci">ApplyContext &amp; ctx_</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00143">Transactor.h:143</a></div></div>
<div class="ttc" id="aclassripple_1_1XRPAmount_html"><div class="ttname"><a href="classripple_1_1XRPAmount.html">ripple::XRPAmount</a></div><div class="ttdef"><b>Definition</b> <a href="XRPAmount_8h_source.html#l00039">XRPAmount.h:43</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="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_ad5c2136f2d2d711114702944633d4fa8"><div class="ttname"><a href="namespaceripple_1_1keylet.html#ad5c2136f2d2d711114702944633d4fa8">ripple::keylet::signers</a></div><div class="ttdeci">Keylet signers(AccountID const &amp;account) noexcept</div><div class="ttdoc">A SignerList.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00330">Indexes.cpp:330</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_a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a3023711a4bd27dad27a57290b0df1087">ripple::lsfPasswordSpent</a></div><div class="ttdeci">@ lsfPasswordSpent</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00125">LedgerFormats.h:125</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4a9c7b33fef9015d6406302ef80b63c5a74277ce2a45a0b253c18a4aa3c57b7c7"><div class="ttname"><a href="namespaceripple.html#a4a9c7b33fef9015d6406302ef80b63c5a74277ce2a45a0b253c18a4aa3c57b7c7">ripple::lsfDisableMaster</a></div><div class="ttdeci">@ lsfDisableMaster</div><div class="ttdef"><b>Definition</b> <a href="LedgerFormats_8h_source.html#l00131">LedgerFormats.h:131</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_a614d8681c8dff84ac2257939751987c5"><div class="ttname"><a href="namespaceripple.html#a614d8681c8dff84ac2257939751987c5">ripple::calcAccountID</a></div><div class="ttdeci">AccountID calcAccountID(PublicKey const &amp;pk)</div><div class="ttdef"><b>Definition</b> <a href="AccountID_8cpp_source.html#l00168">AccountID.cpp:168</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_a798e187ba7443d8f951b810a12d50976"><div class="ttname"><a href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">ripple::publicKeyType</a></div><div class="ttdeci">std::optional&lt; KeyType &gt; publicKeyType(Slice const &amp;slice)</div><div class="ttdoc">Returns the type of public key.</div><div class="ttdef"><b>Definition</b> <a href="PublicKey_8cpp_source.html#l00224">PublicKey.cpp:224</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_a93f2333b362ee67694b78f55eadf7805"><div class="ttname"><a href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">ripple::makeSlice</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_same&lt; T, char &gt;::value||std::is_same&lt; T, unsigned char &gt;::value, Slice &gt; makeSlice(std::array&lt; T, N &gt; const &amp;a)</div><div class="ttdef"><b>Definition</b> <a href="Slice_8h_source.html#l00244">Slice.h:244</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa298e929e02f59c2b05a30ee8805b38cad2a823ed54b4d2c7bc8fef63f627ac59"><div class="ttname"><a href="namespaceripple.html#aa298e929e02f59c2b05a30ee8805b38cad2a823ed54b4d2c7bc8fef63f627ac59">ripple::tecNO_ALTERNATIVE_KEY</a></div><div class="ttdeci">@ tecNO_ALTERNATIVE_KEY</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00296">TER.h:296</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_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_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_afe21c8454670d46fb93751a5edffed46a4217230b627e59cc2b5d856c7e99cfff"><div class="ttname"><a href="namespaceripple.html#afe21c8454670d46fb93751a5edffed46a4217230b627e59cc2b5d856c7e99cfff">ripple::temBAD_REGKEY</a></div><div class="ttdeci">@ temBAD_REGKEY</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00098">TER.h:98</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="astructripple_1_1PreflightContext_html"><div class="ttname"><a href="structripple_1_1PreflightContext.html">ripple::PreflightContext</a></div><div class="ttdoc">State information when preflighting a tx.</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00034">Transactor.h:35</a></div></div>
<div class="ttc" id="astructripple_1_1PreflightContext_html_ab27bfce9ca08a7330ff573e4e2d5fc68"><div class="ttname"><a href="structripple_1_1PreflightContext.html#ab27bfce9ca08a7330ff573e4e2d5fc68">ripple::PreflightContext::rules</a></div><div class="ttdeci">Rules const rules</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00039">Transactor.h:39</a></div></div>
<div class="ttc" id="astructripple_1_1PreflightContext_html_ae5e4a6c7a5f2acfe5a3c39a92cb86357"><div class="ttname"><a href="structripple_1_1PreflightContext.html#ae5e4a6c7a5f2acfe5a3c39a92cb86357">ripple::PreflightContext::j</a></div><div class="ttdeci">beast::Journal const j</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00042">Transactor.h:42</a></div></div>
<div class="ttc" id="astructripple_1_1PreflightContext_html_af202c00e509cfbb1df4fe69f4d6d6560"><div class="ttname"><a href="structripple_1_1PreflightContext.html#af202c00e509cfbb1df4fe69f4d6d6560">ripple::PreflightContext::tx</a></div><div class="ttdeci">STTx const &amp; tx</div><div class="ttdef"><b>Definition</b> <a href="Transactor_8h_source.html#l00038">Transactor.h:38</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->