This commit is contained in:
bthomee
2025-10-30 12:43:05 -07:00
parent ee27f15137
commit 327156df68
655 changed files with 24318 additions and 22848 deletions

View File

@@ -130,80 +130,88 @@ $(document).ready(function() { init_codefold(0); });
<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="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97"> 47</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">sign</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span>&amp; account)</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#abae1db0ba3c2846aede94e2879fc6a29"> 47</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#abae1db0ba3c2846aede94e2879fc6a29">sign</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span>&amp; account, <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; sigObject)</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> jv[jss::SigningPubKey] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(account.pk().slice());</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> sigObject[jss::SigningPubKey] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(account.pk().slice());</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_class" href="classripple_1_1Serializer.html">Serializer</a> ss;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> ss.<a class="code hl_function" href="classripple_1_1Serializer.html#a2aeeb12b01b18876187455f7009f5352">add32</a>(<a class="code hl_enumvalue" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda2e941487d3c2b2204488c5cf3a9d7a28">HashPrefix::txSign</a>);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">parse</a>(jv).<a class="code hl_function" href="classripple_1_1STObject.html#aed86729110266412f315d9ac5914c814">addWithoutSigningFields</a>(ss);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> = <a class="code hl_function" href="namespaceripple.html#a72ab42f87d2351b89ba8f47f5cfa70ba">ripple::sign</a>(account.pk(), account.sk(), ss.<a class="code hl_function" href="classripple_1_1Serializer.html#a394c3299f6cfcebdaa4bc98ec0c602d6">slice</a>());</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> jv[jss::TxnSignature] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.data(), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size()});</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> sigObject[jss::TxnSignature] = <a class="code hl_function" href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">strHex</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>{<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.data(), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size()});</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>}</div>
</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="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7"> 58</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">fill_fee</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <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="l00058" name="l00058"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97"> 58</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#abae1db0ba3c2846aede94e2879fc6a29">sign</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1Account.html">Account</a> <span class="keyword">const</span>&amp; account)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (jv.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::Fee))</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> jv[jss::Fee] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(view.<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_variable" href="structripple_1_1Fees.html#a64c9587f977c872e926a58401d7d8224">base</a>);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>}</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#abae1db0ba3c2846aede94e2879fc6a29">sign</a>(jv, account, jv);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00066" data-start="{" data-end="}">
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d"> 66</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">fill_seq</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <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="l00067" name="l00067"></a><span class="lineno"> 67</span>{</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (jv.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::Sequence))</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = parseBase58&lt;AccountID&gt;(jv[jss::Account].asString());</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (!account)</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> Throw&lt;parse_error&gt;(<span class="stringliteral">&quot;unexpected invalid Account&quot;</span>);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">auto</span> <span class="keyword">const</span> ar = view.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(*account));</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (!ar)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> Throw&lt;parse_error&gt;(<span class="stringliteral">&quot;unexpected missing account root&quot;</span>);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> jv[jss::Sequence] = ar-&gt;getFieldU32(sfSequence);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="}">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7"> 64</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">fill_fee</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <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="l00065" name="l00065"></a><span class="lineno"> 65</span>{</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (jv.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::Fee))</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> jv[jss::Fee] = <a class="code hl_function" href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">to_string</a>(view.<a class="code hl_function" href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">fees</a>().<a class="code hl_variable" href="structripple_1_1Fees.html#a64c9587f977c872e926a58401d7d8224">base</a>);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>}</div>
</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="foldopen" id="foldopen00080" data-start="{" data-end="}">
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13"> 80</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13">cmdToJSONRPC</a>(</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::string&gt;</a> <span class="keyword">const</span>&amp; args,</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j,</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> apiVersion)</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> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> jv = <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>(<a class="code hl_enumvalue" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">auto</span> <span class="keyword">const</span> paramsObj = <a class="code hl_function" href="namespaceripple.html#ab4682f4bd2ebab9ae978712b0e2ea894">rpcCmdToJson</a>(args, jv, apiVersion, j);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// Re-use jv to return our formatted result.</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> jv.<a class="code hl_function" href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">clear</a>();</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Allow parser to rewrite method.</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> jv[jss::method] = paramsObj.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::method)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> ? paramsObj[jss::method].asString()</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> : args[0];</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">// If paramsObj is not empty, put it in a [params] array.</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span> (paramsObj.begin() != paramsObj.end())</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">auto</span>&amp; paramsArray = <a class="code hl_function" href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a>(jv, jss::params);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> paramsArray.append(paramsObj);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> }</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::jsonrpc))</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> jv[jss::jsonrpc] = paramsObj[jss::jsonrpc];</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::ripplerpc))</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> jv[jss::ripplerpc] = paramsObj[jss::ripplerpc];</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::id))</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> jv[jss::id] = paramsObj[jss::id];</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> jv;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>}</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="keywordtype">void</span></div>
<div class="foldopen" id="foldopen00072" data-start="{" data-end="}">
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d"> 72</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">fill_seq</a>(<a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>&amp; jv, <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="l00073" name="l00073"></a><span class="lineno"> 73</span>{</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (jv.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::Sequence))</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">auto</span> <span class="keyword">const</span> account = parseBase58&lt;AccountID&gt;(jv[jss::Account].asString());</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span> (!account)</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> Throw&lt;parse_error&gt;(<span class="stringliteral">&quot;unexpected invalid Account&quot;</span>);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">auto</span> <span class="keyword">const</span> ar = view.<a class="code hl_function" href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">read</a>(<a class="code hl_function" href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">keylet::account</a>(*account));</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (!ar)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> Throw&lt;parse_error&gt;(<span class="stringliteral">&quot;unexpected missing account root&quot;</span>);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> jv[jss::Sequence] = ar-&gt;getFieldU32(sfSequence);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div>
</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>} <span class="comment">// namespace jtx</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>} <span class="comment">// namespace ripple</span></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><a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a></div>
<div class="foldopen" id="foldopen00086" data-start="{" data-end="}">
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13"> 86</a></span><a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13">cmdToJSONRPC</a>(</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/vector.html">std::vector&lt;std::string&gt;</a> <span class="keyword">const</span>&amp; args,</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classbeast_1_1Journal.html">beast::Journal</a> j,</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> apiVersion)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>{</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a> jv = <a class="code hl_class" href="classJson_1_1Value.html">Json::Value</a>(<a class="code hl_enumvalue" href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a>);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">auto</span> <span class="keyword">const</span> paramsObj = <a class="code hl_function" href="namespaceripple.html#ab4682f4bd2ebab9ae978712b0e2ea894">rpcCmdToJson</a>(args, jv, apiVersion, 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">// Re-use jv to return our formatted result.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> jv.<a class="code hl_function" href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">clear</a>();</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Allow parser to rewrite method.</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> jv[jss::method] = paramsObj.<a class="code hl_function" href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">isMember</a>(jss::method)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> ? paramsObj[jss::method].asString()</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> : args[0];</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// If paramsObj is not empty, put it in a [params] array.</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">if</span> (paramsObj.begin() != paramsObj.end())</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="keyword">auto</span>&amp; paramsArray = <a class="code hl_function" href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a>(jv, jss::params);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> paramsArray.append(paramsObj);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::jsonrpc))</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> jv[jss::jsonrpc] = paramsObj[jss::jsonrpc];</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::ripplerpc))</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> jv[jss::ripplerpc] = paramsObj[jss::ripplerpc];</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">if</span> (paramsObj.isMember(jss::id))</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> jv[jss::id] = paramsObj[jss::id];</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> jv;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span>}</div>
</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="comment">// namespace jtx</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>} <span class="comment">// namespace test</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span>} <span class="comment">// namespace ripple</span></div>
<div class="ttc" id="aclassJson_1_1Value_html"><div class="ttname"><a href="classJson_1_1Value.html">Json::Value</a></div><div class="ttdoc">Represents a JSON value.</div><div class="ttdef"><b>Definition</b> <a href="json__value_8h_source.html#l00148">json_value.h:149</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html_a501a4d67e6c875255c2ecc03ccd2019b"><div class="ttname"><a href="classJson_1_1Value.html#a501a4d67e6c875255c2ecc03ccd2019b">Json::Value::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Remove all object members and array elements.</div><div class="ttdef"><b>Definition</b> <a href="json__value_8cpp_source.html#l00793">json_value.cpp:793</a></div></div>
<div class="ttc" id="aclassJson_1_1Value_html_abfa90c81f6aee7877bd5fb4c8445994f"><div class="ttname"><a href="classJson_1_1Value.html#abfa90c81f6aee7877bd5fb4c8445994f">Json::Value::isMember</a></div><div class="ttdeci">bool isMember(char const *key) const</div><div class="ttdoc">Return true if the object has a member named key.</div><div class="ttdef"><b>Definition</b> <a href="json__value_8cpp_source.html#l00989">json_value.cpp:989</a></div></div>
@@ -211,7 +219,7 @@ $(document).ready(function() { init_codefold(0); });
<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_1ReadView_html_a0583a050ea7799ba331f6222a905f304"><div class="ttname"><a href="classripple_1_1ReadView.html#a0583a050ea7799ba331f6222a905f304">ripple::ReadView::read</a></div><div class="ttdeci">virtual std::shared_ptr&lt; SLE const &gt; read(Keylet const &amp;k) const =0</div><div class="ttdoc">Return the state item associated with a key.</div></div>
<div class="ttc" id="aclassripple_1_1ReadView_html_a9944284a00f671a4a9d9e00f9b28b258"><div class="ttname"><a href="classripple_1_1ReadView.html#a9944284a00f671a4a9d9e00f9b28b258">ripple::ReadView::fees</a></div><div class="ttdeci">virtual Fees const &amp; fees() const =0</div><div class="ttdoc">Returns the fees for the base ledger.</div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_aed86729110266412f315d9ac5914c814"><div class="ttname"><a href="classripple_1_1STObject.html#aed86729110266412f315d9ac5914c814">ripple::STObject::addWithoutSigningFields</a></div><div class="ttdeci">void addWithoutSigningFields(Serializer &amp;s) const</div><div class="ttdef"><b>Definition</b> <a href="STObject_8h_source.html#l00958">STObject.h:958</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_aed86729110266412f315d9ac5914c814"><div class="ttname"><a href="classripple_1_1STObject.html#aed86729110266412f315d9ac5914c814">ripple::STObject::addWithoutSigningFields</a></div><div class="ttdeci">void addWithoutSigningFields(Serializer &amp;s) const</div><div class="ttdef"><b>Definition</b> <a href="STObject_8h_source.html#l00963">STObject.h:963</a></div></div>
<div class="ttc" id="aclassripple_1_1STParsedJSONObject_html"><div class="ttname"><a href="classripple_1_1STParsedJSONObject.html">ripple::STParsedJSONObject</a></div><div class="ttdoc">Holds the serialized result of parsing an input JSON object.</div><div class="ttdef"><b>Definition</b> <a href="STParsedJSON_8h_source.html#l00032">STParsedJSON.h:33</a></div></div>
<div class="ttc" id="aclassripple_1_1STParsedJSONObject_html_a5684522fa6918e6256d910053cd58c47"><div class="ttname"><a href="classripple_1_1STParsedJSONObject.html#a5684522fa6918e6256d910053cd58c47">ripple::STParsedJSONObject::object</a></div><div class="ttdeci">std::optional&lt; STObject &gt; object</div><div class="ttdoc">The STObject if the parse was successful.</div><div class="ttdef"><b>Definition</b> <a href="STParsedJSON_8h_source.html#l00051">STParsedJSON.h:51</a></div></div>
<div class="ttc" id="aclassripple_1_1STParsedJSONObject_html_a75ae1e4c096f722a17614c58d8b284a4"><div class="ttname"><a href="classripple_1_1STParsedJSONObject.html#a75ae1e4c096f722a17614c58d8b284a4">ripple::STParsedJSONObject::error</a></div><div class="ttdeci">Json::Value error</div><div class="ttdoc">On failure, an appropriate set of error values.</div><div class="ttdef"><b>Definition</b> <a href="STParsedJSON_8h_source.html#l00054">STParsedJSON.h:54</a></div></div>
@@ -224,16 +232,16 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="anamespaceJson_html_a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6"><div class="ttname"><a href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eae8386dcfc36d1ae897745f7b4f77a1f6">Json::objectValue</a></div><div class="ttdeci">@ objectValue</div><div class="ttdoc">object value (collection of name/value pairs).</div><div class="ttdef"><b>Definition</b> <a href="json__value_8h_source.html#l00046">json_value.h:45</a></div></div>
<div class="ttc" id="anamespaceJson_html_a844d3d2c97ae1bafd1faa5a1f408514b"><div class="ttname"><a href="namespaceJson.html#a844d3d2c97ae1bafd1faa5a1f408514b">Json::setArray</a></div><div class="ttdeci">Json::Value &amp; setArray(Json::Value &amp;, Json::StaticString const &amp;key)</div><div class="ttdoc">Add a new subarray at a named key in a Json object.</div><div class="ttdef"><b>Definition</b> <a href="Object_8h_source.html#l00415">Object.h:415</a></div></div>
<div class="ttc" id="anamespaceripple_1_1keylet_html_aa756e0f59b26042ed00a4d0ba6e96951"><div class="ttname"><a href="namespaceripple_1_1keylet.html#aa756e0f59b26042ed00a4d0ba6e96951">ripple::keylet::account</a></div><div class="ttdeci">Keylet account(AccountID const &amp;id) noexcept</div><div class="ttdoc">AccountID root.</div><div class="ttdef"><b>Definition</b> <a href="Indexes_8cpp_source.html#l00184">Indexes.cpp:184</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a3372cf5dcb5746304f6adfff517e746d"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">ripple::test::jtx::fill_seq</a></div><div class="ttdeci">void fill_seq(Json::Value &amp;jv, ReadView const &amp;view)</div><div class="ttdoc">Set the sequence number automatically.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00066">utility.cpp:66</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_adc60f69b0b87ebebf13420f40738ff97"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#adc60f69b0b87ebebf13420f40738ff97">ripple::test::jtx::sign</a></div><div class="ttdeci">void sign(Json::Value &amp;jv, Account const &amp;account)</div><div class="ttdoc">Sign automatically.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00047">utility.cpp:47</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_add41de1aa8ce5c426fd1ee4ac547dc13"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13">ripple::test::jtx::cmdToJSONRPC</a></div><div class="ttdeci">Json::Value cmdToJSONRPC(std::vector&lt; std::string &gt; const &amp;args, beast::Journal j, unsigned int apiVersion)</div><div class="ttdoc">Given a rippled unit test rpc command, return the corresponding JSON.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00080">utility.cpp:80</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a3372cf5dcb5746304f6adfff517e746d"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a3372cf5dcb5746304f6adfff517e746d">ripple::test::jtx::fill_seq</a></div><div class="ttdeci">void fill_seq(Json::Value &amp;jv, ReadView const &amp;view)</div><div class="ttdoc">Set the sequence number automatically.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00072">utility.cpp:72</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_abae1db0ba3c2846aede94e2879fc6a29"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#abae1db0ba3c2846aede94e2879fc6a29">ripple::test::jtx::sign</a></div><div class="ttdeci">void sign(Json::Value &amp;jv, Account const &amp;account, Json::Value &amp;sigObject)</div><div class="ttdoc">Sign automatically into a specific Json field of the jv object.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00047">utility.cpp:47</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_add41de1aa8ce5c426fd1ee4ac547dc13"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#add41de1aa8ce5c426fd1ee4ac547dc13">ripple::test::jtx::cmdToJSONRPC</a></div><div class="ttdeci">Json::Value cmdToJSONRPC(std::vector&lt; std::string &gt; const &amp;args, beast::Journal j, unsigned int apiVersion)</div><div class="ttdoc">Given a rippled unit test rpc command, return the corresponding JSON.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00086">utility.cpp:86</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_adebaab462b6c8ddf35410fb001d96256"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#adebaab462b6c8ddf35410fb001d96256">ripple::test::jtx::parse</a></div><div class="ttdeci">STObject parse(Json::Value const &amp;jv)</div><div class="ttdoc">Convert JSON to STObject.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00038">utility.cpp:38</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_af0d253b2a457f718afb2f60a08de91f7"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">ripple::test::jtx::fill_fee</a></div><div class="ttdeci">void fill_fee(Json::Value &amp;jv, ReadView const &amp;view)</div><div class="ttdoc">Set the fee automatically.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00058">utility.cpp:58</a></div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_af0d253b2a457f718afb2f60a08de91f7"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#af0d253b2a457f718afb2f60a08de91f7">ripple::test::jtx::fill_fee</a></div><div class="ttdeci">void fill_fee(Json::Value &amp;jv, ReadView const &amp;view)</div><div class="ttdoc">Set the fee automatically.</div><div class="ttdef"><b>Definition</b> <a href="utility_8cpp_source.html#l00064">utility.cpp:64</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_a23f02900cac703bddf91fff471cb9d65"><div class="ttname"><a href="namespaceripple.html#a23f02900cac703bddf91fff471cb9d65">ripple::rpcErrorString</a></div><div class="ttdeci">std::string rpcErrorString(Json::Value const &amp;jv)</div><div class="ttdoc">Returns a single string with the contents of an RPC error.</div><div class="ttdef"><b>Definition</b> <a href="ErrorCodes_8cpp_source.html#l00223">ErrorCodes.cpp:223</a></div></div>
<div class="ttc" id="anamespaceripple_html_a72ab42f87d2351b89ba8f47f5cfa70ba"><div class="ttname"><a href="namespaceripple.html#a72ab42f87d2351b89ba8f47f5cfa70ba">ripple::sign</a></div><div class="ttdeci">Buffer sign(PublicKey const &amp;pk, SecretKey const &amp;sk, Slice const &amp;message)</div><div class="ttdoc">Generate a signature for a message.</div><div class="ttdef"><b>Definition</b> <a href="SecretKey_8cpp_source.html#l00256">SecretKey.cpp:256</a></div></div>
<div class="ttc" id="anamespaceripple_html_a86e358ce3f06ff049af13c2342791cf8"><div class="ttname"><a href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">ripple::strHex</a></div><div class="ttdeci">std::string strHex(FwdIt begin, FwdIt end)</div><div class="ttdef"><b>Definition</b> <a href="strHex_8h_source.html#l00030">strHex.h:30</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab4682f4bd2ebab9ae978712b0e2ea894"><div class="ttname"><a href="namespaceripple.html#ab4682f4bd2ebab9ae978712b0e2ea894">ripple::rpcCmdToJson</a></div><div class="ttdeci">Json::Value rpcCmdToJson(std::vector&lt; std::string &gt; const &amp;args, Json::Value &amp;retParams, unsigned int apiVersion, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="RPCCall_8cpp_source.html#l01439">RPCCall.cpp:1439</a></div></div>
<div class="ttc" id="anamespaceripple_html_ab4682f4bd2ebab9ae978712b0e2ea894"><div class="ttname"><a href="namespaceripple.html#ab4682f4bd2ebab9ae978712b0e2ea894">ripple::rpcCmdToJson</a></div><div class="ttdeci">Json::Value rpcCmdToJson(std::vector&lt; std::string &gt; const &amp;args, Json::Value &amp;retParams, unsigned int apiVersion, beast::Journal j)</div><div class="ttdef"><b>Definition</b> <a href="RPCCall_8cpp_source.html#l01451">RPCCall.cpp:1451</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac124fe6744b7fe887dec949b56b16d50"><div class="ttname"><a href="namespaceripple.html#ac124fe6744b7fe887dec949b56b16d50">ripple::to_string</a></div><div class="ttdeci">std::string to_string(base_uint&lt; Bits, Tag &gt; const &amp;a)</div><div class="ttdef"><b>Definition</b> <a href="base__uint_8h_source.html#l00630">base_uint.h:630</a></div></div>
<div class="ttc" id="anamespaceripple_html_ad5143ceada01141772ae4aab984f94bda2e941487d3c2b2204488c5cf3a9d7a28"><div class="ttname"><a href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda2e941487d3c2b2204488c5cf3a9d7a28">ripple::HashPrefix::txSign</a></div><div class="ttdeci">@ txSign</div><div class="ttdoc">inner transaction to sign</div></div>
<div class="ttc" id="astructripple_1_1Fees_html_a64c9587f977c872e926a58401d7d8224"><div class="ttname"><a href="structripple_1_1Fees.html#a64c9587f977c872e926a58401d7d8224">ripple::Fees::base</a></div><div class="ttdeci">XRPAmount base</div><div class="ttdef"><b>Definition</b> <a href="protocol_2Fees_8h_source.html#l00034">protocol/Fees.h:34</a></div></div>