This commit is contained in:
bthomee
2025-09-18 08:15:26 -07:00
parent 566976e9d7
commit 099ba7da4d
500 changed files with 25758 additions and 25596 deletions

View File

@@ -74,7 +74,7 @@ $(document).ready(function() { init_codefold(0); });
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_a62226f9e3a6c7c5a3be455e2f87ae01.html">xrpld</a></li><li class="navelem"><a class="el" href="dir_c69db3203fa08a9ff994909ba6ee9783.html">app</a></li><li class="navelem"><a class="el" href="dir_2860c73e71f9ef894ba4acb1eeae5483.html">misc</a></li> </ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_0103a8ad82dcc2c51f5cde661b4b5cb7.html">xrpl</a></li><li class="navelem"><a class="el" href="dir_f732c880ba22363365bbd638a4cc259a.html">ledger</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
@@ -103,122 +103,126 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#ifndef RIPPLE_APP_MISC_CREDENTIALHELPERS_H_INCLUDED</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#define RIPPLE_APP_MISC_CREDENTIALHELPERS_H_INCLUDED</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;xrpld/ledger/ApplyView.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;xrpld/ledger/ReadView.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;xrpl/basics/Log.h&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &lt;xrpl/basics/base_uint.h&gt;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;xrpl/beast/utility/Journal.h&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &lt;xrpl/protocol/AccountID.h&gt;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &lt;xrpl/protocol/STArray.h&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;xrpl/protocol/STTx.h&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include &lt;xrpl/protocol/TER.h&gt;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">namespace </span>credentials {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">// These function will be used by the code that use DepositPreauth / Credentials</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">// (and any future preauthorization modes) as part of authorization (all the</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">// transfer funds transactions)</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">// Check if credential sfExpiration field has passed ledger&#39;s parentCloseTime</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keywordtype">bool</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ac66d9ac39e5253de1adf14362f72676e">checkExpired</a>(</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE const&gt;</a> <span class="keyword">const</span>&amp; sleCredential,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_typedef" href="classripple_1_1NetClock.html#a4c2428e178dca6689fa3fb4be0657107">NetClock::time_point</a> <span class="keyword">const</span>&amp; closed);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">// Return true if any expired credential was found in arr (and deleted)</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keywordtype">bool</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a6f387c64edd50e14ca81e7864859188a">removeExpired</a>(ApplyView&amp; view, STVector256 <span class="keyword">const</span>&amp; arr, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> <span class="keyword">const</span> j);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">// Actually remove a credentials object from the ledger</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a30ab74d67d54ae313c088d253735ffb9">deleteSLE</a>(</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> ApplyView&amp; view,</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE&gt;</a> <span class="keyword">const</span>&amp; sleCredential,</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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="comment">// Amendment and parameters checks for sfCredentialIDs field</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><a class="code hl_typedef" href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">NotTEC</a></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a1d592cacac7989c70022d454fc6267ab">checkFields</a>(STTx <span class="keyword">const</span>&amp; tx, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">// Accessing the ledger to check if provided credentials are valid. Do not use</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">// in doApply (only in preclaim) since it does not remove expired credentials.</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment">// If you call it in prelaim, you also must call verifyDepositPreauth in doApply</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ab0cd6a3f76fa9f09c5f1c2d6fffc11e0">valid</a>(</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> STTx <span class="keyword">const</span>&amp; tx,</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> ReadView <span class="keyword">const</span>&amp; view,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; src,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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><span class="comment">// Check if subject has any credential maching the given domain. If you call it</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">// in preclaim and it returns tecEXPIRED, you should call verifyValidDomain in</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment">// doApply. This will ensure that expired credentials are deleted.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a7ef47d80197276f3af24ad41a41493f1">validDomain</a>(ReadView <span class="keyword">const</span>&amp; view, <a class="code hl_typedef" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> domainID, <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; subject);</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="comment">// This function is only called when we about to return tecNO_PERMISSION</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment">// because all the checks for the DepositPreauth authorization failed.</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#abff42f3adfca49089b7b96d64582f229">authorizedDepositPreauth</a>(</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> ApplyView <span class="keyword">const</span>&amp; view,</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> STVector256 <span class="keyword">const</span>&amp; ctx,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; dst);</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="comment">// Sort credentials array, return empty set if there are duplicates</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/set.html">std::set&lt;std::pair&lt;AccountID, Slice&gt;</a>&gt;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ae65be8c497e1353bd10a43a73deb2ba8">makeSorted</a>(STArray <span class="keyword">const</span>&amp; credentials);</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="comment">// Check credentials array passed to DepositPreauth/PermissionedDomainSet</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment">// transactions</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><a class="code hl_typedef" href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">NotTEC</a></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ac04569bf71f636523ff8443c921be35f">checkArray</a>(STArray <span class="keyword">const</span>&amp; credentials, <span class="keywordtype">unsigned</span> maxSize, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span>} <span class="comment">// namespace credentials</span></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><span class="comment">// Check expired credentials and for credentials maching DomainID of the ledger</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">// object</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><a class="code hl_function" href="namespaceripple.html#ace07ad1d6a80473343ca26e55942008c">verifyValidDomain</a>(</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> ApplyView&amp; view,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; account,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_typedef" href="namespaceripple.html#a356c68147333a9a48a344718038576d9">uint256</a> domainID,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// Check expired credentials and for existing DepositPreauth ledger object</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><a class="code hl_typedef" href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">TER</a></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><a class="code hl_function" href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">verifyDepositPreauth</a>(</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> STTx <span class="keyword">const</span>&amp; tx,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> ApplyView&amp; view,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; src,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_typedef" href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">AccountID</a> <span class="keyword">const</span>&amp; dst,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE&gt;</a> <span class="keyword">const</span>&amp; sleDst,</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;xrpl/basics/Log.h&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;xrpl/basics/base_uint.h&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include &lt;xrpl/beast/utility/Journal.h&gt;</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &lt;xrpl/ledger/ApplyView.h&gt;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &lt;xrpl/ledger/ReadView.h&gt;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &lt;xrpl/protocol/AccountID.h&gt;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include &lt;xrpl/protocol/STArray.h&gt;</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#include &lt;xrpl/protocol/STTx.h&gt;</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#include &lt;xrpl/protocol/TER.h&gt;</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceripple.html">ripple</a> {</div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="}">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="namespaceripple_1_1credentials.html"> 34</a></span><span class="keyword">namespace </span>credentials {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">// These function will be used by the code that use DepositPreauth / Credentials</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">// (and any future preauthorization modes) as part of authorization (all the</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment">// transfer funds transactions)</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">// Check if credential sfExpiration field has passed ledger&#39;s parentCloseTime</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keywordtype">bool</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ac66d9ac39e5253de1adf14362f72676e">checkExpired</a>(</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE const&gt;</a> <span class="keyword">const</span>&amp; sleCredential,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/chrono/time_point.html">NetClock::time_point</a> <span class="keyword">const</span>&amp; closed);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">// Return true if any expired credential was found in arr (and deleted)</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keywordtype">bool</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a6f387c64edd50e14ca81e7864859188a">removeExpired</a>(<a class="code hl_class" href="classripple_1_1ApplyView.html">ApplyView</a>&amp; view, <a class="code hl_class" href="classripple_1_1STVector256.html">STVector256</a> <span class="keyword">const</span>&amp; arr, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> <span class="keyword">const</span> j);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment">// Actually remove a credentials object from the ledger</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a30ab74d67d54ae313c088d253735ffb9">deleteSLE</a>(</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_class" href="classripple_1_1ApplyView.html">ApplyView</a>&amp; view,</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE&gt;</a> <span class="keyword">const</span>&amp; sleCredential,</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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><span class="comment">// Amendment and parameters checks for sfCredentialIDs field</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><a class="code hl_class" href="classripple_1_1TERSubset.html">NotTEC</a></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a1d592cacac7989c70022d454fc6267ab">checkFields</a>(<a class="code hl_class" href="classripple_1_1STTx.html">STTx</a> <span class="keyword">const</span>&amp; tx, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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="comment">// Accessing the ledger to check if provided credentials are valid. Do not use</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment">// in doApply (only in preclaim) since it does not remove expired credentials.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment">// If you call it in prelaim, you also must call verifyDepositPreauth in doApply</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="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ab0cd6a3f76fa9f09c5f1c2d6fffc11e0">valid</a>(</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_class" href="classripple_1_1STTx.html">STTx</a> <span class="keyword">const</span>&amp; tx,</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_class" href="classripple_1_1ReadView.html">ReadView</a> <span class="keyword">const</span>&amp; view,</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; src,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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="comment">// Check if subject has any credential maching the given domain. If you call it</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment">// in preclaim and it returns tecEXPIRED, you should call verifyValidDomain in</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment">// doApply. This will ensure that expired credentials are deleted.</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#a7ef47d80197276f3af24ad41a41493f1">validDomain</a>(<a class="code hl_class" href="classripple_1_1ReadView.html">ReadView</a> <span class="keyword">const</span>&amp; view, <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> domainID, <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; subject);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">// This function is only called when we about to return tecNO_PERMISSION</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">// because all the checks for the DepositPreauth authorization failed.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#adb2823cc9810e5cfceaa3e4e6eda66bd">authorizedDepositPreauth</a>(</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_class" href="classripple_1_1ApplyView.html">ApplyView</a> <span class="keyword">const</span>&amp; view,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_class" href="classripple_1_1STVector256.html">STVector256</a> <span class="keyword">const</span>&amp; ctx,</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; dst);</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><span class="comment">// Sort credentials array, return empty set if there are duplicates</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/set.html">std::set&lt;std::pair&lt;AccountID, Slice&gt;</a>&gt;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ae65be8c497e1353bd10a43a73deb2ba8">makeSorted</a>(<a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>&amp; credentials);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment">// Check credentials array passed to DepositPreauth/PermissionedDomainSet</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment">// transactions</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><a class="code hl_class" href="classripple_1_1TERSubset.html">NotTEC</a></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><a class="code hl_function" href="namespaceripple_1_1credentials.html#ac04569bf71f636523ff8443c921be35f">checkArray</a>(<a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>&amp; credentials, <span class="keywordtype">unsigned</span> maxSize, <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span>} <span class="comment">// namespace credentials</span></div>
</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment">// Check expired credentials and for credentials maching DomainID of the ledger</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">// object</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><a class="code hl_function" href="namespaceripple.html#ace07ad1d6a80473343ca26e55942008c">verifyValidDomain</a>(</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_class" href="classripple_1_1ApplyView.html">ApplyView</a>&amp; view,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; account,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> domainID,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</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">// Check expired credentials and for existing DepositPreauth ledger object</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><a class="code hl_class" href="classripple_1_1TERSubset.html">TER</a></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><a class="code hl_function" href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">verifyDepositPreauth</a>(</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_class" href="classripple_1_1STTx.html">STTx</a> <span class="keyword">const</span>&amp; tx,</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <a class="code hl_class" href="classripple_1_1ApplyView.html">ApplyView</a>&amp; view,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; src,</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> <span class="keyword">const</span>&amp; dst,</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr&lt;SLE&gt;</a> <span class="keyword">const</span>&amp; sleDst,</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>} <span class="comment">// namespace ripple</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassbeast_1_1Journal_html"><div class="ttname"><a href="classbeast_1_1Journal.html">beast::Journal</a></div><div class="ttdoc">A generic endpoint for log messages.</div><div class="ttdef"><b>Definition</b> <a href="Journal_8h_source.html#l00059">Journal.h:60</a></div></div>
<div class="ttc" id="aclassripple_1_1NetClock_html_a4c2428e178dca6689fa3fb4be0657107"><div class="ttname"><a href="classripple_1_1NetClock.html#a4c2428e178dca6689fa3fb4be0657107">ripple::NetClock::time_point</a></div><div class="ttdeci">std::chrono::time_point&lt; NetClock &gt; time_point</div><div class="ttdef"><b>Definition</b> <a href="chrono_8h_source.html#l00069">chrono.h:69</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a1d592cacac7989c70022d454fc6267ab"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a1d592cacac7989c70022d454fc6267ab">ripple::credentials::checkFields</a></div><div class="ttdeci">NotTEC checkFields(STTx const &amp;tx, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00123">CredentialHelpers.cpp:123</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a30ab74d67d54ae313c088d253735ffb9"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a30ab74d67d54ae313c088d253735ffb9">ripple::credentials::deleteSLE</a></div><div class="ttdeci">TER deleteSLE(ApplyView &amp;view, std::shared_ptr&lt; SLE &gt; const &amp;sleCredential, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00068">CredentialHelpers.cpp:68</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a6f387c64edd50e14ca81e7864859188a"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a6f387c64edd50e14ca81e7864859188a">ripple::credentials::removeExpired</a></div><div class="ttdeci">bool removeExpired(ApplyView &amp;view, STVector256 const &amp;arr, beast::Journal const j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00043">CredentialHelpers.cpp:43</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a7ef47d80197276f3af24ad41a41493f1"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a7ef47d80197276f3af24ad41a41493f1">ripple::credentials::validDomain</a></div><div class="ttdeci">TER validDomain(ReadView const &amp;view, uint256 domainID, AccountID const &amp;subject)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00193">CredentialHelpers.cpp:193</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ab0cd6a3f76fa9f09c5f1c2d6fffc11e0"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ab0cd6a3f76fa9f09c5f1c2d6fffc11e0">ripple::credentials::valid</a></div><div class="ttdeci">TER valid(STTx const &amp;tx, ReadView const &amp;view, AccountID const &amp;src, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00153">CredentialHelpers.cpp:153</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_abff42f3adfca49089b7b96d64582f229"><div class="ttname"><a href="namespaceripple_1_1credentials.html#abff42f3adfca49089b7b96d64582f229">ripple::credentials::authorizedDepositPreauth</a></div><div class="ttdeci">TER authorizedDepositPreauth(ApplyView const &amp;view, STVector256 const &amp;credIDs, AccountID const &amp;dst)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00233">CredentialHelpers.cpp:233</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ac04569bf71f636523ff8443c921be35f"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ac04569bf71f636523ff8443c921be35f">ripple::credentials::checkArray</a></div><div class="ttdeci">NotTEC checkArray(STArray const &amp;credentials, unsigned maxSize, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00274">CredentialHelpers.cpp:274</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ac66d9ac39e5253de1adf14362f72676e"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ac66d9ac39e5253de1adf14362f72676e">ripple::credentials::checkExpired</a></div><div class="ttdeci">bool checkExpired(std::shared_ptr&lt; SLE const &gt; const &amp;sleCredential, NetClock::time_point const &amp;closed)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00032">CredentialHelpers.cpp:32</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ae65be8c497e1353bd10a43a73deb2ba8"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ae65be8c497e1353bd10a43a73deb2ba8">ripple::credentials::makeSorted</a></div><div class="ttdeci">std::set&lt; std::pair&lt; AccountID, Slice &gt; &gt; makeSorted(STArray const &amp;credentials)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00261">CredentialHelpers.cpp:261</a></div></div>
<div class="ttc" id="aclassripple_1_1ApplyView_html"><div class="ttname"><a href="classripple_1_1ApplyView.html">ripple::ApplyView</a></div><div class="ttdoc">Writeable view to a ledger, for applying a transaction.</div><div class="ttdef"><b>Definition</b> <a href="ApplyView_8h_source.html#l00142">ApplyView.h:143</a></div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html"><div class="ttname"><a href="classripple_1_1ReadView.html">ripple::ReadView</a></div><div class="ttdoc">A view into a ledger.</div><div class="ttdef"><b>Definition</b> <a href="ReadView_8h_source.html#l00050">ReadView.h:51</a></div></div>
<div class="ttc" id="aclassripple_1_1STArray_html"><div class="ttname"><a href="classripple_1_1STArray.html">ripple::STArray</a></div><div class="ttdef"><b>Definition</b> <a href="STArray_8h_source.html#l00028">STArray.h:29</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_1STVector256_html"><div class="ttname"><a href="classripple_1_1STVector256.html">ripple::STVector256</a></div><div class="ttdef"><b>Definition</b> <a href="STVector256_8h_source.html#l00030">STVector256.h:31</a></div></div>
<div class="ttc" id="aclassripple_1_1TERSubset_html"><div class="ttname"><a href="classripple_1_1TERSubset.html">ripple::TERSubset&lt; CanCvtToTER &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 160, detail::AccountIDTag &gt;</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a1d592cacac7989c70022d454fc6267ab"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a1d592cacac7989c70022d454fc6267ab">ripple::credentials::checkFields</a></div><div class="ttdeci">NotTEC checkFields(STTx const &amp;tx, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00122">CredentialHelpers.cpp:122</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a30ab74d67d54ae313c088d253735ffb9"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a30ab74d67d54ae313c088d253735ffb9">ripple::credentials::deleteSLE</a></div><div class="ttdeci">TER deleteSLE(ApplyView &amp;view, std::shared_ptr&lt; SLE &gt; const &amp;sleCredential, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00067">CredentialHelpers.cpp:67</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a6f387c64edd50e14ca81e7864859188a"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a6f387c64edd50e14ca81e7864859188a">ripple::credentials::removeExpired</a></div><div class="ttdeci">bool removeExpired(ApplyView &amp;view, STVector256 const &amp;arr, beast::Journal const j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00042">CredentialHelpers.cpp:42</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_a7ef47d80197276f3af24ad41a41493f1"><div class="ttname"><a href="namespaceripple_1_1credentials.html#a7ef47d80197276f3af24ad41a41493f1">ripple::credentials::validDomain</a></div><div class="ttdeci">TER validDomain(ReadView const &amp;view, uint256 domainID, AccountID const &amp;subject)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00192">CredentialHelpers.cpp:192</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ab0cd6a3f76fa9f09c5f1c2d6fffc11e0"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ab0cd6a3f76fa9f09c5f1c2d6fffc11e0">ripple::credentials::valid</a></div><div class="ttdeci">TER valid(STTx const &amp;tx, ReadView const &amp;view, AccountID const &amp;src, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00152">CredentialHelpers.cpp:152</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ac04569bf71f636523ff8443c921be35f"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ac04569bf71f636523ff8443c921be35f">ripple::credentials::checkArray</a></div><div class="ttdeci">NotTEC checkArray(STArray const &amp;credentials, unsigned maxSize, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00273">CredentialHelpers.cpp:273</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ac66d9ac39e5253de1adf14362f72676e"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ac66d9ac39e5253de1adf14362f72676e">ripple::credentials::checkExpired</a></div><div class="ttdeci">bool checkExpired(std::shared_ptr&lt; SLE const &gt; const &amp;sleCredential, NetClock::time_point const &amp;closed)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00031">CredentialHelpers.cpp:31</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_adb2823cc9810e5cfceaa3e4e6eda66bd"><div class="ttname"><a href="namespaceripple_1_1credentials.html#adb2823cc9810e5cfceaa3e4e6eda66bd">ripple::credentials::authorizedDepositPreauth</a></div><div class="ttdeci">TER authorizedDepositPreauth(ApplyView const &amp;view, STVector256 const &amp;ctx, AccountID const &amp;dst)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00232">CredentialHelpers.cpp:232</a></div></div>
<div class="ttc" id="anamespaceripple_1_1credentials_html_ae65be8c497e1353bd10a43a73deb2ba8"><div class="ttname"><a href="namespaceripple_1_1credentials.html#ae65be8c497e1353bd10a43a73deb2ba8">ripple::credentials::makeSorted</a></div><div class="ttdeci">std::set&lt; std::pair&lt; AccountID, Slice &gt; &gt; makeSorted(STArray const &amp;credentials)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00260">CredentialHelpers.cpp:260</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_a00ae0d729cb3e35b6bcac9a27ebb5284"><div class="ttname"><a href="namespaceripple.html#a00ae0d729cb3e35b6bcac9a27ebb5284">ripple::AccountID</a></div><div class="ttdeci">base_uint&lt; 160, detail::AccountIDTag &gt; AccountID</div><div class="ttdoc">A 160-bit unsigned that uniquely identifies an account.</div><div class="ttdef"><b>Definition</b> <a href="AccountID_8h_source.html#l00048">AccountID.h:48</a></div></div>
<div class="ttc" id="anamespaceripple_html_a356c68147333a9a48a344718038576d9"><div class="ttname"><a href="namespaceripple.html#a356c68147333a9a48a344718038576d9">ripple::uint256</a></div><div class="ttdeci">base_uint&lt; 256 &gt; uint256</div><div class="ttdef"><b>Definition</b> <a href="base__uint_8h_source.html#l00558">base_uint.h:558</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6768a5eb8529b59617dee871a98cfd44"><div class="ttname"><a href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">ripple::verifyDepositPreauth</a></div><div class="ttdeci">TER verifyDepositPreauth(STTx const &amp;tx, ApplyView &amp;view, AccountID const &amp;src, AccountID const &amp;dst, std::shared_ptr&lt; SLE &gt; const &amp;sleDst, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00358">CredentialHelpers.cpp:358</a></div></div>
<div class="ttc" id="anamespaceripple_html_ace07ad1d6a80473343ca26e55942008c"><div class="ttname"><a href="namespaceripple.html#ace07ad1d6a80473343ca26e55942008c">ripple::verifyValidDomain</a></div><div class="ttdeci">TER verifyValidDomain(ApplyView &amp;view, AccountID const &amp;account, uint256 domainID, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00320">CredentialHelpers.cpp:320</a></div></div>
<div class="ttc" id="anamespaceripple_html_adfb760bc3e4ccb79d5d4f6ecff2f1817"><div class="ttname"><a href="namespaceripple.html#adfb760bc3e4ccb79d5d4f6ecff2f1817">ripple::TER</a></div><div class="ttdeci">TERSubset&lt; CanCvtToTER &gt; TER</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00645">TER.h:645</a></div></div>
<div class="ttc" id="anamespaceripple_html_af99ba2263d2a1e29207c40a35fc9f6b3"><div class="ttname"><a href="namespaceripple.html#af99ba2263d2a1e29207c40a35fc9f6b3">ripple::NotTEC</a></div><div class="ttdeci">TERSubset&lt; CanCvtToNotTEC &gt; NotTEC</div><div class="ttdef"><b>Definition</b> <a href="TER_8h_source.html#l00605">TER.h:605</a></div></div>
<div class="ttc" id="anamespaceripple_html_a6768a5eb8529b59617dee871a98cfd44"><div class="ttname"><a href="namespaceripple.html#a6768a5eb8529b59617dee871a98cfd44">ripple::verifyDepositPreauth</a></div><div class="ttdeci">TER verifyDepositPreauth(STTx const &amp;tx, ApplyView &amp;view, AccountID const &amp;src, AccountID const &amp;dst, std::shared_ptr&lt; SLE &gt; const &amp;sleDst, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00357">CredentialHelpers.cpp:357</a></div></div>
<div class="ttc" id="anamespaceripple_html_ace07ad1d6a80473343ca26e55942008c"><div class="ttname"><a href="namespaceripple.html#ace07ad1d6a80473343ca26e55942008c">ripple::verifyValidDomain</a></div><div class="ttdeci">TER verifyValidDomain(ApplyView &amp;view, AccountID const &amp;account, uint256 domainID, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="CredentialHelpers_8cpp_source.html#l00319">CredentialHelpers.cpp:319</a></div></div>
<div class="ttc" id="aset_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/set.html">std::set</a></div></div>
<div class="ttc" id="ashared_ptr_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html">std::shared_ptr</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><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>