mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-03 01:15:53 +00:00
deploy: dacecd24ba
This commit is contained in:
@@ -293,14 +293,14 @@ $(function() {
|
||||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><a class="code hl_class" href="classripple_1_1SeqProxy.html">SeqProxy</a></div>
|
||||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="classripple_1_1STTx.html#a42464c41715a5d90dfa3240118d62d9c"> 216</a></span><a class="code hl_function" href="classripple_1_1STTx.html#a42464c41715a5d90dfa3240118d62d9c">STTx::getSeqProxy</a>()<span class="keyword"> const</span></div>
|
||||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="keyword"></span>{</div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>{<a class="code hl_function" href="classripple_1_1STObject.html#a55d1b6946f96a770f3b2195eb5a5a943">getFieldU32</a>(sfSequence)};</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a> != 0)</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1SeqProxy.html#a31a7a3c8298a38aaeee20ae08bb51643">SeqProxy::sequence</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
|
||||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a> <span class="keyword">const</span> seq{<a class="code hl_function" href="classripple_1_1STObject.html#a55d1b6946f96a770f3b2195eb5a5a943">getFieldU32</a>(sfSequence)};</div>
|
||||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">if</span> (seq != 0)</div>
|
||||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1SeqProxy.html#a31a7a3c8298a38aaeee20ae08bb51643">SeqProxy::sequence</a>(seq);</div>
|
||||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
|
||||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional<std::uint32_t></a> <span class="keyword">const</span> ticketSeq{<a class="code hl_function" href="classripple_1_1STObject.html#a925f5ebaa5822892447cf161e5a2960e">operator[]</a>(~sfTicketSequence)};</div>
|
||||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <span class="keywordflow">if</span> (!ticketSeq)</div>
|
||||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// No TicketSequence specified. Return the Sequence, whatever it is.</span></div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1SeqProxy.html#a31a7a3c8298a38aaeee20ae08bb51643">SeqProxy::sequence</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1seq.html">seq</a>);</div>
|
||||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classripple_1_1SeqProxy.html#a31a7a3c8298a38aaeee20ae08bb51643">SeqProxy::sequence</a>(seq);</div>
|
||||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
|
||||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1SeqProxy.html">SeqProxy</a>{<a class="code hl_enumvalue" href="classripple_1_1SeqProxy.html#a5f784f2f26fb8ede1c7386011509beadab1fd5ef0f4ad79f202682b28d8803bbc">SeqProxy::ticket</a>, *ticketSeq};</div>
|
||||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span>}</div>
|
||||
@@ -316,9 +316,9 @@ $(function() {
|
||||
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>{</div>
|
||||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">auto</span> <span class="keyword">const</span> data = <a class="code hl_function" href="namespaceripple.html#ab991d1fb7d66c12c1c7e287aa0c8ea56">getSigningData</a>(*<span class="keyword">this</span>);</div>
|
||||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
|
||||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</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>(publicKey, secretKey, <a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(data));</div>
|
||||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">auto</span> <span class="keyword">const</span> sig = <a class="code hl_function" href="namespaceripple.html#a72ab42f87d2351b89ba8f47f5cfa70ba">ripple::sign</a>(publicKey, secretKey, <a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(data));</div>
|
||||
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <a class="code hl_function" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(sfTxnSignature, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>);</div>
|
||||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <a class="code hl_function" href="classripple_1_1STObject.html#af1235d307d6f464392a583d0dfaa3cc4">setFieldVL</a>(sfTxnSignature, sig);</div>
|
||||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <a class="code hl_variable" href="classripple_1_1STTx.html#aa83dd9862adb40e17ad7a5e91d247e89">tid_</a> = <a class="code hl_function" href="classripple_1_1STObject.html#a9296fefa5841548d32df3beb9ee84fc8">getHash</a>(<a class="code hl_enumvalue" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda9ff03a73c38a945848893498e0c617a4">HashPrefix::transactionID</a>);</div>
|
||||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span>}</div>
|
||||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
|
||||
@@ -358,13 +358,13 @@ $(function() {
|
||||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> JLOG(<a class="code hl_function" href="namespaceripple.html#a94e13759bd026c8ac305482e17f05adb">debugLog</a>().fatal()) << <span class="stringliteral">"not a batch transaction"</span>;</div>
|
||||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1Unexpected.html">Unexpected</a>(<span class="stringliteral">"Not a batch transaction."</span>);</div>
|
||||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> }</div>
|
||||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>& <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>{<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfBatchSigners)};</div>
|
||||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a> : <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>)</div>
|
||||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>& signers{<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfBatchSigners)};</div>
|
||||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& signer : signers)</div>
|
||||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> {</div>
|
||||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span>& signingPubKey = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getFieldVL(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span>& signingPubKey = signer.getFieldVL(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">auto</span> <span class="keyword">const</span> result = signingPubKey.<a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/container/vector/empty.html">empty</a>()</div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> ? <a class="code hl_function" href="classripple_1_1STTx.html#aa84dd5e5547e644c99f1c722b0df190b">checkBatchMultiSign</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>, requireCanonicalSig, rules)</div>
|
||||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> : <a class="code hl_function" href="classripple_1_1STTx.html#a5c5540960c0ea25024d72be0d247b593">checkBatchSingleSign</a>(<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>, requireCanonicalSig);</div>
|
||||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> ? <a class="code hl_function" href="classripple_1_1STTx.html#aa84dd5e5547e644c99f1c722b0df190b">checkBatchMultiSign</a>(signer, requireCanonicalSig, rules)</div>
|
||||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> : <a class="code hl_function" href="classripple_1_1STTx.html#a5c5540960c0ea25024d72be0d247b593">checkBatchSingleSign</a>(signer, requireCanonicalSig);</div>
|
||||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
|
||||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">if</span> (!result)</div>
|
||||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">return</span> result;</div>
|
||||
@@ -460,23 +460,23 @@ $(function() {
|
||||
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
|
||||
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="keyword">static</span> <a class="code hl_class" href="classripple_1_1Expected.html">Expected<void, std::string></a></div>
|
||||
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="namespaceripple.html#a8ca1ad40e2efe43b7683a55c1147a63e"> 384</a></span><a class="code hl_function" href="namespaceripple.html#a8ca1ad40e2efe43b7683a55c1147a63e">singleSignHelper</a>(</div>
|
||||
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> <span class="keyword">const</span>& <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>,</div>
|
||||
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> <a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> <span class="keyword">const</span>& signer,</div>
|
||||
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>& data,</div>
|
||||
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordtype">bool</span> <span class="keyword">const</span> <a class="code hl_enumvalue" href="namespaceripple.html#a286745fec5429abb3893001b4982522ba3e23eeda3fe3fb70d1e274eab59199d1">fullyCanonical</a>)</div>
|
||||
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span>{</div>
|
||||
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <span class="comment">// We don't allow both a non-empty sfSigningPubKey and an sfSigners.</span></div>
|
||||
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="comment">// That would allow the transaction to be signed two ways. So if both</span></div>
|
||||
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <span class="comment">// fields are present the signature is invalid.</span></div>
|
||||
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">if</span> (<a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.isFieldPresent(sfSigners))</div>
|
||||
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keywordflow">if</span> (signer.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfSigners))</div>
|
||||
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1Unexpected.html">Unexpected</a>(<span class="stringliteral">"Cannot both single- and multi-sign."</span>);</div>
|
||||
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
|
||||
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> <span class="keywordtype">bool</span> validSig = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> {</div>
|
||||
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">auto</span> <span class="keyword">const</span> spk = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getFieldVL(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">auto</span> <span class="keyword">const</span> spk = signer.<a class="code hl_function" href="classripple_1_1STObject.html#a09be758ae97b9e9e392aa2606cc0559f">getFieldVL</a>(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">publicKeyType</a>(<a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(spk)))</div>
|
||||
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> {</div>
|
||||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span> signature = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getFieldVL(sfTxnSignature);</div>
|
||||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span> signature = signer.<a class="code hl_function" href="classripple_1_1STObject.html#a09be758ae97b9e9e392aa2606cc0559f">getFieldVL</a>(sfTxnSignature);</div>
|
||||
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> validSig = <a class="code hl_function" href="namespaceripple.html#a3549cb4c3d81efe240ad20c147e48ac7">verify</a>(</div>
|
||||
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <a class="code hl_class" href="classripple_1_1PublicKey.html">PublicKey</a>(<a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(spk)),</div>
|
||||
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> data,</div>
|
||||
@@ -533,11 +533,11 @@ $(function() {
|
||||
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keywordflow">if</span> (signerObj.<a class="code hl_function" href="classripple_1_1STObject.html#aaf5d617701ac3afc4ad6a13862459692">isFieldPresent</a>(sfTxnSignature))</div>
|
||||
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1Unexpected.html">Unexpected</a>(<span class="stringliteral">"Cannot both single- and multi-sign."</span>);</div>
|
||||
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> </div>
|
||||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>& <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>{signerObj.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfSigners)};</div>
|
||||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <a class="code hl_class" href="classripple_1_1STArray.html">STArray</a> <span class="keyword">const</span>& signers{signerObj.<a class="code hl_function" href="classripple_1_1STObject.html#a0fced814291f20736a0b1b50716ffb48">getFieldArray</a>(sfSigners)};</div>
|
||||
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> </div>
|
||||
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> <span class="comment">// There are well known bounds that the number of signers must be within.</span></div>
|
||||
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>.<a class="code hl_function" href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">size</a>() < <a class="code hl_variable" href="classripple_1_1STTx.html#a74a3884ff1289c0c20cc4cd4c2d369d9">STTx::minMultiSigners</a> ||</div>
|
||||
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>.<a class="code hl_function" href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">size</a>() > <a class="code hl_function" href="classripple_1_1STTx.html#a8a0ece74e5a2cfde26cfd84c5fdcc752">STTx::maxMultiSigners</a>(&rules))</div>
|
||||
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="keywordflow">if</span> (signers.size() < <a class="code hl_variable" href="classripple_1_1STTx.html#a74a3884ff1289c0c20cc4cd4c2d369d9">STTx::minMultiSigners</a> ||</div>
|
||||
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> signers.size() > <a class="code hl_function" href="classripple_1_1STTx.html#a8a0ece74e5a2cfde26cfd84c5fdcc752">STTx::maxMultiSigners</a>(&rules))</div>
|
||||
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classripple_1_1Unexpected.html">Unexpected</a>(<span class="stringliteral">"Invalid Signers array size."</span>);</div>
|
||||
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> </div>
|
||||
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> <span class="comment">// We also use the sfAccount field inside the loop. Get it once.</span></div>
|
||||
@@ -546,9 +546,9 @@ $(function() {
|
||||
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="comment">// Signers must be in sorted order by AccountID.</span></div>
|
||||
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <a class="code hl_class" href="classripple_1_1base__uint.html">AccountID</a> lastAccountID(beast::zero);</div>
|
||||
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> </div>
|
||||
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a> : <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">signers</a>)</div>
|
||||
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& signer : signers)</div>
|
||||
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
|
||||
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keyword">auto</span> <span class="keyword">const</span> accountID = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getAccountID(sfAccount);</div>
|
||||
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keyword">auto</span> <span class="keyword">const</span> accountID = signer.getAccountID(sfAccount);</div>
|
||||
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> </div>
|
||||
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> <span class="comment">// The account owner may not multisign for themselves.</span></div>
|
||||
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">if</span> (accountID == txnAccountID)</div>
|
||||
@@ -569,10 +569,10 @@ $(function() {
|
||||
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordtype">bool</span> validSig = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keywordflow">try</span></div>
|
||||
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> {</div>
|
||||
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">auto</span> spk = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getFieldVL(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keyword">auto</span> spk = signer.getFieldVL(sfSigningPubKey);</div>
|
||||
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">publicKeyType</a>(<a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(spk)))</div>
|
||||
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> {</div>
|
||||
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span> signature = <a class="code hl_struct" href="structripple_1_1test_1_1jtx_1_1signer.html">signer</a>.getFieldVL(sfTxnSignature);</div>
|
||||
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/container/vector.html">Blob</a> <span class="keyword">const</span> signature = signer.getFieldVL(sfTxnSignature);</div>
|
||||
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> validSig = <a class="code hl_function" href="namespaceripple.html#a3549cb4c3d81efe240ad20c147e48ac7">verify</a>(</div>
|
||||
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <a class="code hl_class" href="classripple_1_1PublicKey.html">PublicKey</a>(<a class="code hl_function" href="namespaceripple.html#a93f2333b362ee67694b78f55eadf7805">makeSlice</a>(spk)),</div>
|
||||
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> makeMsg(accountID).slice(),</div>
|
||||
@@ -685,9 +685,9 @@ $(function() {
|
||||
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> }</div>
|
||||
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> </div>
|
||||
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1memo.html">memo</a> : memos)</div>
|
||||
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> <span class="keyword">const</span>& memo : memos)</div>
|
||||
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> {</div>
|
||||
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">auto</span> memoObj = <span class="keyword">dynamic_cast<</span><a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> const*<span class="keyword">></span>(&<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1memo.html">memo</a>);</div>
|
||||
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keyword">auto</span> memoObj = <span class="keyword">dynamic_cast<</span><a class="code hl_class" href="classripple_1_1STObject.html">STObject</a> const*<span class="keyword">></span>(&memo);</div>
|
||||
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
|
||||
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">if</span> (!memoObj || (memoObj->getFName() != sfMemo))</div>
|
||||
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> {</div>
|
||||
@@ -891,7 +891,6 @@ $(function() {
|
||||
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
|
||||
<div class="ttc" id="abasic_string_view_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string_view.html">std::string_view</a></div></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#l00149">json_value.h:150</a></div></div>
|
||||
<div class="ttc" id="aclassJson_1_1Value_html_a23c7027ca674f989f90564d63ef36c74"><div class="ttname"><a href="classJson_1_1Value.html#a23c7027ca674f989f90564d63ef36c74">Json::Value::size</a></div><div class="ttdeci">UInt size() const</div><div class="ttdoc">Number of values in array or object.</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8cpp_source.html#l00719">json_value.cpp:719</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Expected_html"><div class="ttname"><a href="classripple_1_1Expected.html">ripple::Expected</a></div><div class="ttdef"><b>Definition:</b> <a href="Expected_8h_source.html#l00130">Expected.h:132</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1KnownFormats_html_a02015efe39bd31cec110f748e50ec523"><div class="ttname"><a href="classripple_1_1KnownFormats.html#a02015efe39bd31cec110f748e50ec523">ripple::KnownFormats::findByType</a></div><div class="ttdeci">Item const * findByType(KeyType type) const</div><div class="ttdoc">Retrieve a format based on its type.</div><div class="ttdef"><b>Definition:</b> <a href="KnownFormats_8h_source.html#l00129">KnownFormats.h:129</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1MPTIssue_html"><div class="ttname"><a href="classripple_1_1MPTIssue.html">ripple::MPTIssue</a></div><div class="ttdef"><b>Definition:</b> <a href="MPTIssue_8h_source.html#l00032">MPTIssue.h:33</a></div></div>
|
||||
@@ -977,8 +976,6 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1TxFormats_html_a1db8e0fb64564b47c2c33ff763ccc8c3"><div class="ttname"><a href="classripple_1_1TxFormats.html#a1db8e0fb64564b47c2c33ff763ccc8c3">ripple::TxFormats::getInstance</a></div><div class="ttdeci">static TxFormats const & getInstance()</div><div class="ttdef"><b>Definition:</b> <a href="TxFormats_8cpp_source.html#l00070">TxFormats.cpp:70</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1Unexpected_html"><div class="ttname"><a href="classripple_1_1Unexpected.html">ripple::Unexpected</a></div><div class="ttdef"><b>Definition:</b> <a href="Expected_8h_source.html#l00081">Expected.h:82</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< 160, detail::AccountIDTag ></a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1memo_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1memo.html">ripple::test::jtx::memo</a></div><div class="ttdoc">Add a memo to a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="memo_8h_source.html#l00034">memo.h:35</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1sig_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1sig.html">ripple::test::jtx::sig</a></div><div class="ttdoc">Set the regular signature on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="sig_8h_source.html#l00034">sig.h:35</a></div></div>
|
||||
<div class="ttc" id="acstddef_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstddef.html">cstddef</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="aempty_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/empty.html">std::vector::empty</a></div><div class="ttdeci">T empty(T... args)</div></div>
|
||||
@@ -988,7 +985,6 @@ $(function() {
|
||||
<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="amemory_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/memory.html">memory</a></div></div>
|
||||
<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#l00047">json_value.h:46</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a2f130edacc0e266d31bd9d4fe4def16c"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a2f130edacc0e266d31bd9d4fe4def16c">ripple::test::jtx::signers</a></div><div class="ttdeci">Json::Value signers(Account const &account, std::uint32_t quorum, std::vector< signer > const &v)</div><div class="ttdef"><b>Definition:</b> <a href="multisign_8cpp_source.html#l00034">multisign.cpp:34</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#l00026">algorithm.h:26</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a08a13b62b18272366f788632359e8793"><div class="ttname"><a href="namespaceripple.html#a08a13b62b18272366f788632359e8793">ripple::toBase58</a></div><div class="ttdeci">std::string toBase58(AccountID const &v)</div><div class="ttdoc">Convert AccountID to base58 checked string.</div><div class="ttdef"><b>Definition:</b> <a href="AccountID_8cpp_source.html#l00114">AccountID.cpp:114</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a14a54f86104a277d3818fb03ddc0df6c"><div class="ttname"><a href="namespaceripple.html#a14a54f86104a277d3818fb03ddc0df6c">ripple::sterilize</a></div><div class="ttdeci">std::shared_ptr< STTx const > sterilize(STTx const &stx)</div><div class="ttdoc">Sterilize a transaction.</div><div class="ttdef"><b>Definition:</b> <a href="STTx_8cpp_source.html#l00805">STTx.cpp:805</a></div></div>
|
||||
@@ -1042,8 +1038,6 @@ $(function() {
|
||||
<div class="ttc" id="astructripple_1_1JsonOptions_html"><div class="ttname"><a href="structripple_1_1JsonOptions.html">ripple::JsonOptions</a></div><div class="ttdoc">Note, should be treated as flags that can be | and &.</div><div class="ttdef"><b>Definition:</b> <a href="STBase_8h_source.html#l00037">STBase.h:38</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1JsonOptions_html_ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33"><div class="ttname"><a href="structripple_1_1JsonOptions.html#ab85e43ec84df987200d3355c3ba89f0aa1917451e3686dfe8d5016670eb87ab33">ripple::JsonOptions::none</a></div><div class="ttdeci">@ none</div><div class="ttdef"><b>Definition:</b> <a href="STBase_8h_source.html#l00044">STBase.h:44</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1JsonOptions_html_ab85e43ec84df987200d3355c3ba89f0aa3ace7cc623d6c6f5783c87db5efea1bc"><div class="ttname"><a href="structripple_1_1JsonOptions.html#ab85e43ec84df987200d3355c3ba89f0aa3ace7cc623d6c6f5783c87db5efea1bc">ripple::JsonOptions::disable_API_prior_V2</a></div><div class="ttdeci">@ disable_API_prior_V2</div><div class="ttdef"><b>Definition:</b> <a href="STBase_8h_source.html#l00046">STBase.h:46</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1seq_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1seq.html">ripple::test::jtx::seq</a></div><div class="ttdoc">Set the sequence number on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="seq_8h_source.html#l00033">seq.h:34</a></div></div>
|
||||
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1signer_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1signer.html">ripple::test::jtx::signer</a></div><div class="ttdoc">A signer in a SignerList.</div><div class="ttdef"><b>Definition:</b> <a href="multisign_8h_source.html#l00038">multisign.h:39</a></div></div>
|
||||
<div class="ttc" id="ato_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a></div><div class="ttdeci">T to_string(T... args)</div></div>
|
||||
<div class="ttc" id="atype_traits_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/type_traits.html">type_traits</a></div></div>
|
||||
<div class="ttc" id="aunderlying_type_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/underlying_type.html">std::underlying_type_t</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user