This commit is contained in:
nbougalis
2020-12-05 06:17:37 +00:00
parent 27ba201b4c
commit ee2b4c457d
4211 changed files with 96026 additions and 94287 deletions

View File

@@ -114,186 +114,178 @@ $(function() {
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="classripple_1_1STValidation.html">STValidation</a> final : <span class="keyword">public</span> <a class="code" href="classripple_1_1STObject.html">STObject</a>, <span class="keyword">public</span> <a class="code" href="classripple_1_1CountedObject.html">CountedObject</a>&lt;STValidation&gt;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span> <span class="keyword">const</span>*</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a19a974169f3359103e8271f6643fb83b"> 47</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a19a974169f3359103e8271f6643fb83b">getCountedObjectName</a>()</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;STValidation&quot;</span>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> LookupNodeID&gt;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240"> 69</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240">STValidation</a>(</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classripple_1_1SerialIter.html">SerialIter</a>&amp; sit,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; LookupNodeID&amp;&amp; lookupNodeID,</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">bool</span> checkSignature)</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; : <a class="code" href="classripple_1_1STObject.html">STObject</a>(<a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>(), sit, <a class="code" href="namespaceripple.html#a3c1be384123ebf68549c14fe5721076a">sfValidation</a>)</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> spk = <a class="code" href="classripple_1_1STObject.html#a09be758ae97b9e9e392aa2606cc0559f">getFieldVL</a>(<a class="code" href="namespaceripple.html#aa836f10acc827f3cd5fb1fd0278e1618">sfSigningPubKey</a>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(spk)) != <a class="code" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; JLOG(<a class="code" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().error()) &lt;&lt; <span class="stringliteral">&quot;Invalid public key in validation: &quot;</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; &lt;&lt; <a class="code" href="classripple_1_1STObject.html#acc2ceb95cdb8fc8b2520aeceabf17553">getJson</a>(<a class="code" href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">JsonOptions::none</a>);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Invalid public key in validation&quot;</span>);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (checkSignature &amp;&amp; !<a class="code" href="classripple_1_1STValidation.html#a058150f5d8f8d71627c01e8d50b84c37">isValid</a>())</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; JLOG(<a class="code" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().error()) &lt;&lt; <span class="stringliteral">&quot;Invalid signature in validation: &quot;</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; &lt;&lt; <a class="code" href="classripple_1_1STObject.html#acc2ceb95cdb8fc8b2520aeceabf17553">getJson</a>(<a class="code" href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">JsonOptions::none</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Invalid signature in validation&quot;</span>);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a> = lookupNodeID(<a class="code" href="classripple_1_1PublicKey.html">PublicKey</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(spk)));</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; assert(<a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>.<a class="code" href="classripple_1_1base__uint.html#ad2bffc75e554b89befbb9388e07392c0">isNonZero</a>());</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> F&gt;</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa"> 104</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa">STValidation</a>(</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> signTime,</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classripple_1_1PublicKey.html">PublicKey</a> <span class="keyword">const</span>&amp; pk,</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classripple_1_1SecretKey.html">SecretKey</a> <span class="keyword">const</span>&amp; sk,</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a> <span class="keyword">const</span>&amp; nodeID,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; F&amp;&amp; f)</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; : <a class="code" href="classripple_1_1STObject.html">STObject</a>(<a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>(), <a class="code" href="namespaceripple.html#a3c1be384123ebf68549c14fe5721076a">sfValidation</a>)</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; , <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>(nodeID)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; , <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a>(signTime)</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// First, set our own public key:</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(pk) != <a class="code" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">LogicError</a>(</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="stringliteral">&quot;We can only use secp256k1 keys for signing validations&quot;</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> LookupNodeID&gt;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240"> 63</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240">STValidation</a>(</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classripple_1_1SerialIter.html">SerialIter</a>&amp; sit,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; LookupNodeID&amp;&amp; lookupNodeID,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> checkSignature)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; : <a class="code" href="classripple_1_1STObject.html">STObject</a>(<a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>(), sit, <a class="code" href="namespaceripple.html#a75e201e47a68c45fb0bb79ee330a1386">sfValidation</a>)</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> spk = <a class="code" href="classripple_1_1STObject.html#a09be758ae97b9e9e392aa2606cc0559f">getFieldVL</a>(<a class="code" href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">sfSigningPubKey</a>);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(spk)) != <a class="code" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; JLOG(<a class="code" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().error()) &lt;&lt; <span class="stringliteral">&quot;Invalid public key in validation: &quot;</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; &lt;&lt; <a class="code" href="classripple_1_1STObject.html#acc2ceb95cdb8fc8b2520aeceabf17553">getJson</a>(<a class="code" href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">JsonOptions::none</a>);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Invalid public key in validation&quot;</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (checkSignature &amp;&amp; !<a class="code" href="classripple_1_1STValidation.html#a058150f5d8f8d71627c01e8d50b84c37">isValid</a>())</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; JLOG(<a class="code" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().error()) &lt;&lt; <span class="stringliteral">&quot;Invalid signature in validation: &quot;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; &lt;&lt; <a class="code" href="classripple_1_1STObject.html#acc2ceb95cdb8fc8b2520aeceabf17553">getJson</a>(<a class="code" href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">JsonOptions::none</a>);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Invalid signature in validation&quot;</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a> = lookupNodeID(<a class="code" href="classripple_1_1PublicKey.html">PublicKey</a>(<a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(spk)));</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; assert(<a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>.<a class="code" href="classripple_1_1base__uint.html#ad2bffc75e554b89befbb9388e07392c0">isNonZero</a>());</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> F&gt;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa"> 98</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa">STValidation</a>(</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> signTime,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classripple_1_1PublicKey.html">PublicKey</a> <span class="keyword">const</span>&amp; pk,</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classripple_1_1SecretKey.html">SecretKey</a> <span class="keyword">const</span>&amp; sk,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a> <span class="keyword">const</span>&amp; nodeID,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; F&amp;&amp; f)</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; : <a class="code" href="classripple_1_1STObject.html">STObject</a>(<a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>(), <a class="code" href="namespaceripple.html#a75e201e47a68c45fb0bb79ee330a1386">sfValidation</a>)</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; , <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>(nodeID)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; , <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a>(signTime)</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// First, set our own public key:</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">publicKeyType</a>(pk) != <a class="code" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">LogicError</a>(</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="stringliteral">&quot;We can only use secp256k1 keys for signing validations&quot;</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(<a class="code" href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">sfSigningPubKey</a>, pk.<a class="code" href="classripple_1_1PublicKey.html#ae0bcc607176a440ec63a86bae5767036">slice</a>());</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classripple_1_1STObject.html#acd1aac04649d694a3524faf2ddebf843">setFieldU32</a>(<a class="code" href="namespaceripple.html#a1323d21bedd138bb1a2c17a5ac0ec500">sfSigningTime</a>, signTime.<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count());</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Perform additional initialization</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; f(*<span class="keyword">this</span>);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(<a class="code" href="namespaceripple.html#aa836f10acc827f3cd5fb1fd0278e1618">sfSigningPubKey</a>, pk.<a class="code" href="classripple_1_1PublicKey.html#ae0bcc607176a440ec63a86bae5767036">slice</a>());</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classripple_1_1STObject.html#acd1aac04649d694a3524faf2ddebf843">setFieldU32</a>(<a class="code" href="namespaceripple.html#a357593e0ac2e166dc489c75712f61fab">sfSigningTime</a>, signTime.<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch.html">time_since_epoch</a>().count());</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Perform additional initialization</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; f(*<span class="keyword">this</span>);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Finally, sign the validation and mark it as trusted:</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classripple_1_1STObject.html#a4fa764a09a6e972491891d939eb9d2f2">setFlag</a>(<a class="code" href="namespaceripple.html#abedda589258487931711c4efea516376">vfFullyCanonicalSig</a>);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(<a class="code" href="namespaceripple.html#a6925a9f817dd31a1903b95d285620277">sfSignature</a>, <a class="code" href="namespaceripple.html#a0429dc3d934c2cebe43fb8a723cf9eb3">signDigest</a>(pk, sk, <a class="code" href="classripple_1_1STValidation.html#ad564bbe1e66d71fbb6b3d90d23e85946">getSigningHash</a>()));</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">setTrusted</a>();</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// Check to ensure that all required fields are present.</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; e : <a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>())</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (e.style() == <a class="code" href="namespaceripple.html#ad905dc8b70717f4492bebb6b7e189042a515d1dfe6cbb412fbbcece5bb23a0763">soeREQUIRED</a> &amp;&amp; !<a class="code" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(e.sField()))</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">LogicError</a>(</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="stringliteral">&quot;Required field &#39;&quot;</span> + e.sField().getName() +</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="stringliteral">&quot;&#39; missing from validation.&quot;</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Finally, sign the validation and mark it as trusted:</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classripple_1_1STObject.html#a4fa764a09a6e972491891d939eb9d2f2">setFlag</a>(<a class="code" href="namespaceripple.html#abedda589258487931711c4efea516376">vfFullyCanonicalSig</a>);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(<a class="code" href="namespaceripple.html#a61932ff70203e248b70ca3b215667435">sfSignature</a>, <a class="code" href="namespaceripple.html#a0429dc3d934c2cebe43fb8a723cf9eb3">signDigest</a>(pk, sk, <a class="code" href="classripple_1_1STValidation.html#ad564bbe1e66d71fbb6b3d90d23e85946">getSigningHash</a>()));</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">setTrusted</a>();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Check to ensure that all required fields are present.</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>&amp; e : <a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>())</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (e.style() == <a class="code" href="namespaceripple.html#ad905dc8b70717f4492bebb6b7e189042a515d1dfe6cbb412fbbcece5bb23a0763">soeREQUIRED</a> &amp;&amp; !<a class="code" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(e.sField()))</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">LogicError</a>(</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="stringliteral">&quot;Required field &#39;&quot;</span> + e.sField().getName() +</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;&#39; missing from validation.&quot;</span>);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classripple_1_1STBase.html">STBase</a>*</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c"> 135</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c">copy</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> n, <span class="keywordtype">void</span>* buf)<span class="keyword"> const override</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STBase.html#a7fb3256be27a1c525eca36470f25e131">emplace</a>(n, buf, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="classripple_1_1STBase.html">STBase</a>*</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c"> 141</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c">copy</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> n, <span class="keywordtype">void</span>* buf)<span class="keyword"> const override</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d"> 141</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d">move</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> n, <span class="keywordtype">void</span>* buf)<span class="keyword"> override</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STBase.html#a7fb3256be27a1c525eca36470f25e131">emplace</a>(n, buf, *<span class="keyword">this</span>);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STBase.html#a7fb3256be27a1c525eca36470f25e131">emplace</a>(n, buf, std::move(*<span class="keyword">this</span>));</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classripple_1_1STBase.html">STBase</a>*</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d"> 147</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d">move</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a> n, <span class="keywordtype">void</span>* buf)<span class="keyword"> override</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STBase.html#a7fb3256be27a1c525eca36470f25e131">emplace</a>(n, buf, std::move(*<span class="keyword">this</span>));</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Hash of the validated ledger</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classripple_1_1STValidation.html#abdf587b8dd5331ad1517f4e1969a8662">getLedgerHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Hash of consensus transaction set used to generate ledger</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a23a7944d7d642c1c0ce8dc1817672d4b">getConsensusHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Hash of the validated ledger</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classripple_1_1STValidation.html#abdf587b8dd5331ad1517f4e1969a8662">getLedgerHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// Hash of consensus transaction set used to generate ledger</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a23a7944d7d642c1c0ce8dc1817672d4b">getConsensusHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aeeef4bccb0e2c4d98a84cb82e433ce90">getSignTime</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a5123731a2942f7680915823882df719e">getSeenTime</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aeeef4bccb0e2c4d98a84cb82e433ce90">getSignTime</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classripple_1_1PublicKey.html">PublicKey</a></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classripple_1_1STValidation.html#af528873401503ded5c84668238d02979">getSignerPublic</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a5123731a2942f7680915823882df719e">getSeenTime</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classripple_1_1PublicKey.html">PublicKey</a></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classripple_1_1STValidation.html#af528873401503ded5c84668238d02979">getSignerPublic</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34"> 164</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34">getNodeID</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a></div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34"> 170</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34">getNodeID</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a058150f5d8f8d71627c01e8d50b84c37">isValid</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3ffe94493433915949e23fc755160460">isFull</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a058150f5d8f8d71627c01e8d50b84c37">isValid</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3ffe94493433915949e23fc755160460">isFull</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5"> 176</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5">isTrusted</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a>;</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">bool</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5"> 182</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5">isTrusted</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad564bbe1e66d71fbb6b3d90d23e85946">getSigningHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classripple_1_1base__uint.html">uint256</a></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad564bbe1e66d71fbb6b3d90d23e85946">getSigningHash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e"> 185</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">setTrusted</a>()</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e"> 191</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">setTrusted</a>()</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14"> 191</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14">setUntrusted</a>()</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14"> 197</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14">setUntrusted</a>()</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2"> 197</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2">setSeen</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> s)</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a> = s;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">void</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2"> 203</a></span>&#160; <a class="code" href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2">setSeen</a>(<a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> s)</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a> = s;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3ce9844ef8dc996ccd4091bb74136e98">getSerialized</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad6a6e4556b9cae5cbe91026f20541136">getSignature</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a3ce9844ef8dc996ccd4091bb74136e98">getSerialized</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classripple_1_1STValidation.html#ad6a6e4556b9cae5cbe91026f20541136">getSignature</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">static</span> <a class="code" href="classripple_1_1SOTemplate.html">SOTemplate</a> <span class="keyword">const</span>&amp;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>();</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360"> 218</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a> <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b"> 219</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69"> 220</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a> = {};</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;};</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">static</span> <a class="code" href="classripple_1_1SOTemplate.html">SOTemplate</a> <span class="keyword">const</span>&amp;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">validationFormat</a>();</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360"> 212</a></span>&#160; <a class="code" href="classripple_1_1base__uint.html">NodeID</a> <a class="code" href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">nodeID_</a>;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b"> 213</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">mTrusted</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69"> 214</a></span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <a class="code" href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">seenTime_</a> = {};</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;};</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;} <span class="comment">// namespace ripple</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassripple_1_1STValidation_html_a058150f5d8f8d71627c01e8d50b84c37"><div class="ttname"><a href="classripple_1_1STValidation.html#a058150f5d8f8d71627c01e8d50b84c37">ripple::STValidation::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00087">STValidation.cpp:87</a></div></div>
<div class="ttc" id="anamespaceripple_html_aabe37451093c21757855542d68fba3ce"><div class="ttname"><a href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">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#l00240">Slice.h:240</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa219392b3da88cb0ed350962367cce4d"><div class="ttname"><a href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d">ripple::STValidation::move</a></div><div class="ttdeci">STBase * move(std::size_t n, void *buf) override</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00147">STValidation.h:147</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa219392b3da88cb0ed350962367cce4d"><div class="ttname"><a href="classripple_1_1STValidation.html#aa219392b3da88cb0ed350962367cce4d">ripple::STValidation::move</a></div><div class="ttdeci">STBase * move(std::size_t n, void *buf) override</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00141">STValidation.h:141</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a23a7944d7d642c1c0ce8dc1817672d4b"><div class="ttname"><a href="classripple_1_1STValidation.html#a23a7944d7d642c1c0ce8dc1817672d4b">ripple::STValidation::getConsensusHash</a></div><div class="ttdeci">uint256 getConsensusHash() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00069">STValidation.cpp:69</a></div></div>
<div class="ttc" id="aclassripple_1_1CountedObject_html"><div class="ttname"><a href="classripple_1_1CountedObject.html">ripple::CountedObject</a></div><div class="ttdoc">Tracks the number of instances of an object.</div><div class="ttdef"><b>Definition:</b> <a href="CountedObject_8h_source.html#l00110">CountedObject.h:110</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_ad2bffc75e554b89befbb9388e07392c0"><div class="ttname"><a href="classripple_1_1base__uint.html#ad2bffc75e554b89befbb9388e07392c0">ripple::base_uint::isNonZero</a></div><div class="ttdeci">bool isNonZero() const</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00480">base_uint.h:480</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a8d0cb9a491179064c8ba0eb6072c15d5"><div class="ttname"><a href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5">ripple::STValidation::isTrusted</a></div><div class="ttdeci">bool isTrusted() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00182">STValidation.h:182</a></div></div>
<div class="ttc" id="aclassripple_1_1CountedObject_html"><div class="ttname"><a href="classripple_1_1CountedObject.html">ripple::CountedObject</a></div><div class="ttdoc">Tracks the number of instances of an object.</div><div class="ttdef"><b>Definition:</b> <a href="CountedObject_8h_source.html#l00124">CountedObject.h:124</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_ad2bffc75e554b89befbb9388e07392c0"><div class="ttname"><a href="classripple_1_1base__uint.html#ad2bffc75e554b89befbb9388e07392c0">ripple::base_uint::isNonZero</a></div><div class="ttdeci">bool isNonZero() const</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00444">base_uint.h:444</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a8d0cb9a491179064c8ba0eb6072c15d5"><div class="ttname"><a href="classripple_1_1STValidation.html#a8d0cb9a491179064c8ba0eb6072c15d5">ripple::STValidation::isTrusted</a></div><div class="ttdeci">bool isTrusted() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00176">STValidation.h:176</a></div></div>
<div class="ttc" id="anamespaceripple_html_abe1502195233c7375f3465f17c7610e4"><div class="ttname"><a href="namespaceripple.html#abe1502195233c7375f3465f17c7610e4">ripple::publicKeyType</a></div><div class="ttdeci">boost::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#l00203">PublicKey.cpp:203</a></div></div>
<div class="ttc" id="afunctional_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/functional.html">functional</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a3ffe94493433915949e23fc755160460"><div class="ttname"><a href="classripple_1_1STValidation.html#a3ffe94493433915949e23fc755160460">ripple::STValidation::isFull</a></div><div class="ttdeci">bool isFull() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00114">STValidation.cpp:114</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a19a974169f3359103e8271f6643fb83b"><div class="ttname"><a href="classripple_1_1STValidation.html#a19a974169f3359103e8271f6643fb83b">ripple::STValidation::getCountedObjectName</a></div><div class="ttdeci">static char const * getCountedObjectName()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00047">STValidation.h:47</a></div></div>
<div class="ttc" id="anamespaceripple_html_aa836f10acc827f3cd5fb1fd0278e1618"><div class="ttname"><a href="namespaceripple.html#aa836f10acc827f3cd5fb1fd0278e1618">ripple::sfSigningPubKey</a></div><div class="ttdeci">const SF_Blob sfSigningPubKey(access, STI_VL, 3, &quot;SigningPubKey&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00460">SField.h:460</a></div></div>
<div class="ttc" id="avector_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt; unsigned char &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_ad695924d70d80024e856ff841c23906c"><div class="ttname"><a href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c">ripple::STValidation::copy</a></div><div class="ttdeci">STBase * copy(std::size_t n, void *buf) const override</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00141">STValidation.h:141</a></div></div>
<div class="ttc" id="anamespaceripple_html_a590913040d5c9a68f3bf1d4da20311ad"><div class="ttname"><a href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">ripple::sfSigningPubKey</a></div><div class="ttdeci">const SF_VL sfSigningPubKey</div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_ad695924d70d80024e856ff841c23906c"><div class="ttname"><a href="classripple_1_1STValidation.html#ad695924d70d80024e856ff841c23906c">ripple::STValidation::copy</a></div><div class="ttdeci">STBase * copy(std::size_t n, void *buf) const override</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00135">STValidation.h:135</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_abdf587b8dd5331ad1517f4e1969a8662"><div class="ttname"><a href="classripple_1_1STValidation.html#abdf587b8dd5331ad1517f4e1969a8662">ripple::STValidation::getLedgerHash</a></div><div class="ttdeci">uint256 getLedgerHash() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00063">STValidation.cpp:63</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a02433013ff252904f1d57e495873409b"><div class="ttname"><a href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">ripple::STValidation::mTrusted</a></div><div class="ttdeci">bool mTrusted</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00219">STValidation.h:219</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a02433013ff252904f1d57e495873409b"><div class="ttname"><a href="classripple_1_1STValidation.html#a02433013ff252904f1d57e495873409b">ripple::STValidation::mTrusted</a></div><div class="ttdeci">bool mTrusted</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00213">STValidation.h:213</a></div></div>
<div class="ttc" id="aclassripple_1_1PublicKey_html_ae0bcc607176a440ec63a86bae5767036"><div class="ttname"><a href="classripple_1_1PublicKey.html#ae0bcc607176a440ec63a86bae5767036">ripple::PublicKey::slice</a></div><div class="ttdeci">Slice slice() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00123">PublicKey.h:123</a></div></div>
<div class="ttc" id="anamespaceripple_html_ad905dc8b70717f4492bebb6b7e189042a515d1dfe6cbb412fbbcece5bb23a0763"><div class="ttname"><a href="namespaceripple.html#ad905dc8b70717f4492bebb6b7e189042a515d1dfe6cbb412fbbcece5bb23a0763">ripple::soeREQUIRED</a></div><div class="ttdeci">@ soeREQUIRED</div><div class="ttdef"><b>Definition:</b> <a href="SOTemplate_8h_source.html#l00034">SOTemplate.h:34</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_af1235d307d6f464392a583d0dfaa3cc4"><div class="ttname"><a href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">ripple::STObject::setFieldVL</a></div><div class="ttdeci">void setFieldVL(SField const &amp;field, Blob const &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00668">STObject.cpp:668</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a09be758ae97b9e9e392aa2606cc0559f"><div class="ttname"><a href="classripple_1_1STObject.html#a09be758ae97b9e9e392aa2606cc0559f">ripple::STObject::getFieldVL</a></div><div class="ttdeci">Blob getFieldVL(SField const &amp;field) const</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00568">STObject.cpp:568</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a8aa71319344367e6f6b04bf9ae320749"><div class="ttname"><a href="classripple_1_1STValidation.html#a8aa71319344367e6f6b04bf9ae320749">ripple::STValidation::validationFormat</a></div><div class="ttdeci">static SOTemplate const &amp; validationFormat()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00029">STValidation.cpp:29</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_ad6a6e4556b9cae5cbe91026f20541136"><div class="ttname"><a href="classripple_1_1STValidation.html#ad6a6e4556b9cae5cbe91026f20541136">ripple::STValidation::getSignature</a></div><div class="ttdeci">Blob getSignature() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00120">STValidation.cpp:120</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6925a9f817dd31a1903b95d285620277"><div class="ttname"><a href="namespaceripple.html#a6925a9f817dd31a1903b95d285620277">ripple::sfSignature</a></div><div class="ttdeci">const SF_Blob sfSignature(access, STI_VL, 6, &quot;Signature&quot;, SField::sMD_Default, SField::notSigning)</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00462">SField.h:462</a></div></div>
<div class="ttc" id="anamespaceripple_html_a94e13759bd026c8ac305482e17f05adb"><div class="ttname"><a href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">ripple::debugLog</a></div><div class="ttdeci">beast::Journal debugLog()</div><div class="ttdoc">Returns a debug journal.</div><div class="ttdef"><b>Definition:</b> <a href="Log_8cpp_source.html#l00452">Log.cpp:452</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html"><div class="ttname"><a href="classripple_1_1STValidation.html">ripple::STValidation</a></div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00043">STValidation.h:43</a></div></div>
<div class="ttc" id="anamespaceripple_html_abedda589258487931711c4efea516376"><div class="ttname"><a href="namespaceripple.html#abedda589258487931711c4efea516376">ripple::vfFullyCanonicalSig</a></div><div class="ttdeci">constexpr std::uint32_t vfFullyCanonicalSig</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00041">STValidation.h:41</a></div></div>
@@ -304,21 +296,19 @@ $(function() {
<div class="ttc" id="aclassripple_1_1PublicKey_html"><div class="ttname"><a href="classripple_1_1PublicKey.html">ripple::PublicKey</a></div><div class="ttdoc">A public key.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8h_source.html#l00059">PublicKey.h:59</a></div></div>
<div class="ttc" id="anamespaceripple_html_a0429dc3d934c2cebe43fb8a723cf9eb3"><div class="ttname"><a href="namespaceripple.html#a0429dc3d934c2cebe43fb8a723cf9eb3">ripple::signDigest</a></div><div class="ttdeci">Buffer signDigest(PublicKey const &amp;pk, SecretKey const &amp;sk, uint256 const &amp;digest)</div><div class="ttdoc">Generate a signature for a message digest.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00098">SecretKey.cpp:98</a></div></div>
<div class="ttc" id="anamespaceripple_html_a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8"><div class="ttname"><a href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">ripple::JsonOptions::none</a></div><div class="ttdeci">@ none</div></div>
<div class="ttc" id="anamespaceripple_html_a357593e0ac2e166dc489c75712f61fab"><div class="ttname"><a href="namespaceripple.html#a357593e0ac2e166dc489c75712f61fab">ripple::sfSigningTime</a></div><div class="ttdeci">const SF_U32 sfSigningTime(access, STI_UINT32, 9, &quot;SigningTime&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00361">SField.h:361</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_abf3bfd068b38141637950671d7d3c360"><div class="ttname"><a href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">ripple::STValidation::nodeID_</a></div><div class="ttdeci">NodeID nodeID_</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00218">STValidation.h:218</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_abf3bfd068b38141637950671d7d3c360"><div class="ttname"><a href="classripple_1_1STValidation.html#abf3bfd068b38141637950671d7d3c360">ripple::STValidation::nodeID_</a></div><div class="ttdeci">NodeID nodeID_</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00212">STValidation.h:212</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a3ce9844ef8dc996ccd4091bb74136e98"><div class="ttname"><a href="classripple_1_1STValidation.html#a3ce9844ef8dc996ccd4091bb74136e98">ripple::STValidation::getSerialized</a></div><div class="ttdeci">Blob getSerialized() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00126">STValidation.cpp:126</a></div></div>
<div class="ttc" id="atime_point_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/time_point.html">std::chrono::time_point</a></div></div>
<div class="ttc" id="acstdint_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstdint.html">cstdint</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a51b5760becdd7961df71e2add6e1a9f2"><div class="ttname"><a href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2">ripple::STValidation::setSeen</a></div><div class="ttdeci">void setSeen(NetClock::time_point s)</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00203">STValidation.h:203</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a51b5760becdd7961df71e2add6e1a9f2"><div class="ttname"><a href="classripple_1_1STValidation.html#a51b5760becdd7961df71e2add6e1a9f2">ripple::STValidation::setSeen</a></div><div class="ttdeci">void setSeen(NetClock::time_point s)</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00197">STValidation.h:197</a></div></div>
<div class="ttc" id="aclassripple_1_1SerialIter_html"><div class="ttname"><a href="classripple_1_1SerialIter.html">ripple::SerialIter</a></div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00308">Serializer.h:308</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_1SecretKey_html"><div class="ttname"><a href="classripple_1_1SecretKey.html">ripple::SecretKey</a></div><div class="ttdoc">A secret key.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8h_source.html#l00036">SecretKey.h:36</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3c1be384123ebf68549c14fe5721076a"><div class="ttname"><a href="namespaceripple.html#a3c1be384123ebf68549c14fe5721076a">ripple::sfValidation</a></div><div class="ttdeci">const SField sfValidation(access, STI_VALIDATION, 257, &quot;Validation&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00335">SField.h:335</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aeeef4bccb0e2c4d98a84cb82e433ce90"><div class="ttname"><a href="classripple_1_1STValidation.html#aeeef4bccb0e2c4d98a84cb82e433ce90">ripple::STValidation::getSignTime</a></div><div class="ttdeci">NetClock::time_point getSignTime() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00075">STValidation.cpp:75</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a89ee3dfc4a59ebcf1620fd6d138f9d34"><div class="ttname"><a href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34">ripple::STValidation::getNodeID</a></div><div class="ttdeci">NodeID getNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00170">STValidation.h:170</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a89ee3dfc4a59ebcf1620fd6d138f9d34"><div class="ttname"><a href="classripple_1_1STValidation.html#a89ee3dfc4a59ebcf1620fd6d138f9d34">ripple::STValidation::getNodeID</a></div><div class="ttdeci">NodeID getNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00164">STValidation.h:164</a></div></div>
<div class="ttc" id="amemory_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa15dc30f67e497a1f114fe465b049b69"><div class="ttname"><a href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">ripple::STValidation::seenTime_</a></div><div class="ttdeci">NetClock::time_point seenTime_</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00220">STValidation.h:220</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a153034dfe796ffd1b80a49a84bf79a14"><div class="ttname"><a href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14">ripple::STValidation::setUntrusted</a></div><div class="ttdeci">void setUntrusted()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00197">STValidation.h:197</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa15dc30f67e497a1f114fe465b049b69"><div class="ttname"><a href="classripple_1_1STValidation.html#aa15dc30f67e497a1f114fe465b049b69">ripple::STValidation::seenTime_</a></div><div class="ttdeci">NetClock::time_point seenTime_</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00214">STValidation.h:214</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a153034dfe796ffd1b80a49a84bf79a14"><div class="ttname"><a href="classripple_1_1STValidation.html#a153034dfe796ffd1b80a49a84bf79a14">ripple::STValidation::setUntrusted</a></div><div class="ttdeci">void setUntrusted()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00191">STValidation.h:191</a></div></div>
<div class="ttc" id="anamespaceripple_html_a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757"><div class="ttname"><a href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">ripple::KeyType::secp256k1</a></div><div class="ttdeci">@ secp256k1</div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a5123731a2942f7680915823882df719e"><div class="ttname"><a href="classripple_1_1STValidation.html#a5123731a2942f7680915823882df719e">ripple::STValidation::getSeenTime</a></div><div class="ttdeci">NetClock::time_point getSeenTime() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00081">STValidation.cpp:81</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html"><div class="ttname"><a href="classripple_1_1STObject.html">ripple::STObject</a></div><div class="ttdef"><b>Definition:</b> <a href="STObject_8h_source.html#l00051">STObject.h:51</a></div></div>
@@ -327,16 +317,19 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_aefd2f77338ce3c9a2fffc4f0b289b483"><div class="ttname"><a href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">ripple::LogicError</a></div><div class="ttdeci">void LogicError(std::string const &amp;how) noexcept</div><div class="ttdoc">Called when faulty logic causes a broken invariant.</div><div class="ttdef"><b>Definition:</b> <a href="contract_8cpp_source.html#l00048">contract.cpp:48</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#l00401">STObject.cpp:401</a></div></div>
<div class="ttc" id="acassert_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cassert.html">cassert</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa74bbce4c07518d33fc25b60f841e22e"><div class="ttname"><a href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">ripple::STValidation::setTrusted</a></div><div class="ttdeci">void setTrusted()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00191">STValidation.h:191</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_aa74bbce4c07518d33fc25b60f841e22e"><div class="ttname"><a href="classripple_1_1STValidation.html#aa74bbce4c07518d33fc25b60f841e22e">ripple::STValidation::setTrusted</a></div><div class="ttdeci">void setTrusted()</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00185">STValidation.h:185</a></div></div>
<div class="ttc" id="anamespaceripple_html_a61932ff70203e248b70ca3b215667435"><div class="ttname"><a href="namespaceripple.html#a61932ff70203e248b70ca3b215667435">ripple::sfSignature</a></div><div class="ttdeci">const SF_VL sfSignature</div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a4fa764a09a6e972491891d939eb9d2f2"><div class="ttname"><a href="classripple_1_1STObject.html#a4fa764a09a6e972491891d939eb9d2f2">ripple::STObject::setFlag</a></div><div class="ttdeci">bool setFlag(std::uint32_t)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00424">STObject.cpp:424</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_ad564bbe1e66d71fbb6b3d90d23e85946"><div class="ttname"><a href="classripple_1_1STValidation.html#ad564bbe1e66d71fbb6b3d90d23e85946">ripple::STValidation::getSigningHash</a></div><div class="ttdeci">uint256 getSigningHash() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00057">STValidation.cpp:57</a></div></div>
<div class="ttc" id="anamespaceripple_html_a75e201e47a68c45fb0bb79ee330a1386"><div class="ttname"><a href="namespaceripple.html#a75e201e47a68c45fb0bb79ee330a1386">ripple::sfValidation</a></div><div class="ttdeci">const SField sfValidation</div></div>
<div class="ttc" id="asize_t_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/size_t.html">std::size_t</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_af528873401503ded5c84668238d02979"><div class="ttname"><a href="classripple_1_1STValidation.html#af528873401503ded5c84668238d02979">ripple::STValidation::getSignerPublic</a></div><div class="ttdeci">PublicKey getSignerPublic() const</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8cpp_source.html#l00108">STValidation.cpp:108</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac8808889ac69393dbfc99e57187e8de8"><div class="ttname"><a href="namespaceripple.html#ac8808889ac69393dbfc99e57187e8de8">ripple::vfFullValidation</a></div><div class="ttdeci">constexpr std::uint32_t vfFullValidation</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00038">STValidation.h:38</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a3c378199969a1776d68565d0083355fa"><div class="ttname"><a href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa">ripple::STValidation::STValidation</a></div><div class="ttdeci">STValidation(NetClock::time_point signTime, PublicKey const &amp;pk, SecretKey const &amp;sk, NodeID const &amp;nodeID, F &amp;&amp;f)</div><div class="ttdoc">Construct, sign and trust a new STValidation issued by this node.</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00104">STValidation.h:104</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a3c378199969a1776d68565d0083355fa"><div class="ttname"><a href="classripple_1_1STValidation.html#a3c378199969a1776d68565d0083355fa">ripple::STValidation::STValidation</a></div><div class="ttdeci">STValidation(NetClock::time_point signTime, PublicKey const &amp;pk, SecretKey const &amp;sk, NodeID const &amp;nodeID, F &amp;&amp;f)</div><div class="ttdoc">Construct, sign and trust a new STValidation issued by this node.</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00098">STValidation.h:98</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_acc2ceb95cdb8fc8b2520aeceabf17553"><div class="ttname"><a href="classripple_1_1STObject.html#acc2ceb95cdb8fc8b2520aeceabf17553">ripple::STObject::getJson</a></div><div class="ttdeci">virtual Json::Value getJson(JsonOptions options) const override</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00698">STObject.cpp:698</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_acd1aac04649d694a3524faf2ddebf843"><div class="ttname"><a href="classripple_1_1STObject.html#acd1aac04649d694a3524faf2ddebf843">ripple::STObject::setFieldU32</a></div><div class="ttdeci">void setFieldU32(SField const &amp;field, std::uint32_t)</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00632">STObject.cpp:632</a></div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a2c47685a67b798f6aafb2e4f14faf240"><div class="ttname"><a href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240">ripple::STValidation::STValidation</a></div><div class="ttdeci">STValidation(SerialIter &amp;sit, LookupNodeID &amp;&amp;lookupNodeID, bool checkSignature)</div><div class="ttdoc">Construct a STValidation from a peer.</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00069">STValidation.h:69</a></div></div>
<div class="ttc" id="anamespaceripple_html_a1323d21bedd138bb1a2c17a5ac0ec500"><div class="ttname"><a href="namespaceripple.html#a1323d21bedd138bb1a2c17a5ac0ec500">ripple::sfSigningTime</a></div><div class="ttdeci">const SF_UINT32 sfSigningTime</div></div>
<div class="ttc" id="aclassripple_1_1STValidation_html_a2c47685a67b798f6aafb2e4f14faf240"><div class="ttname"><a href="classripple_1_1STValidation.html#a2c47685a67b798f6aafb2e4f14faf240">ripple::STValidation::STValidation</a></div><div class="ttdeci">STValidation(SerialIter &amp;sit, LookupNodeID &amp;&amp;lookupNodeID, bool checkSignature)</div><div class="ttdoc">Construct a STValidation from a peer.</div><div class="ttdef"><b>Definition:</b> <a href="STValidation_8h_source.html#l00063">STValidation.h:63</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">