mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-21 11:35:53 +00:00
deploy: 54da532ace
This commit is contained in:
@@ -1318,472 +1318,468 @@ $(function() {
|
||||
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  <span class="comment">// no amendments</span></div>
|
||||
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  env.fund(XRP(10000), <span class="stringliteral">"alice"</span>);</div>
|
||||
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  env.close();</div>
|
||||
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  env.fund(XRP(10000), <span class="stringliteral">"bob"</span>);</div>
|
||||
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  env.close();</div>
|
||||
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  env.fund(XRP(10000), <span class="stringliteral">"jim"</span>);</div>
|
||||
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  env.close();</div>
|
||||
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  env.fund(XRP(10000), <span class="stringliteral">"jill"</span>);</div>
|
||||
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  </div>
|
||||
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  <span class="comment">// closed ledger hashes are:</span></div>
|
||||
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  <span class="comment">// 1 - AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7</span></div>
|
||||
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  <span class="comment">// 2 - 8AEDBB96643962F1D40F01E25632ABB3C56C9F04B0231EE4B18248B90173D189</span></div>
|
||||
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  <span class="comment">// 3 - 7C3EEDB3124D92E49E75D81A8826A2E65A75FD71FC3FD6F36FEB803C5F1D812D</span></div>
|
||||
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  <span class="comment">// 4 - 9F9E6A4ECAA84A08FF94713FA41C3151177D6222EA47DD2F0020CA49913EE2E6</span></div>
|
||||
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="comment">// 5 - C516522DE274EB52CE69A3D22F66DD73A53E16597E06F7A86F66DF7DD4309173</span></div>
|
||||
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  <span class="comment">//</span></div>
|
||||
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  {</div>
|
||||
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="comment">// access via the legacy ledger field, keyword index values</span></div>
|
||||
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  jvParams[jss::ledger] = <span class="stringliteral">"closed"</span>;</div>
|
||||
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  </div>
|
||||
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  jvParams[jss::ledger] = <span class="stringliteral">"validated"</span>;</div>
|
||||
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  </div>
|
||||
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  jvParams[jss::ledger] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"6"</span>);</div>
|
||||
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  </div>
|
||||
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <span class="comment">// ask for a bad ledger keyword</span></div>
|
||||
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  jvParams[jss::ledger] = <span class="stringliteral">"invalid"</span>;</div>
|
||||
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerIndexMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  </div>
|
||||
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="comment">// numeric index</span></div>
|
||||
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  jvParams[jss::ledger] = 4;</div>
|
||||
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"4"</span>);</div>
|
||||
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  </div>
|
||||
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="comment">// numeric index - out of range</span></div>
|
||||
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  jvParams[jss::ledger] = 20;</div>
|
||||
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  }</div>
|
||||
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  </div>
|
||||
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  {</div>
|
||||
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <span class="comment">// access via the ledger_hash field</span></div>
|
||||
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>  <span class="stringliteral">"7C3EEDB3124D92E49E75D81A8826A2E6"</span></div>
|
||||
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  <span class="stringliteral">"5A75FD71FC3FD6F36FEB803C5F1D812D"</span>;</div>
|
||||
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"3"</span>);</div>
|
||||
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  </div>
|
||||
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="comment">// extra leading hex chars in hash will be ignored</span></div>
|
||||
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  <span class="stringliteral">"DEADBEEF"</span></div>
|
||||
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="stringliteral">"7C3EEDB3124D92E49E75D81A8826A2E6"</span></div>
|
||||
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="stringliteral">"5A75FD71FC3FD6F36FEB803C5F1D812D"</span>;</div>
|
||||
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  </div>
|
||||
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="comment">// request with non-string ledger_hash</span></div>
|
||||
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  jvParams[jss::ledger_hash] = 2;</div>
|
||||
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashNotString"</span>);</div>
|
||||
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  </div>
|
||||
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <span class="comment">// malformed (non hex) hash</span></div>
|
||||
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <span class="stringliteral">"ZZZZZZZZZZZD92E49E75D81A8826A2E6"</span></div>
|
||||
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  <span class="stringliteral">"5A75FD71FC3FD6F36FEB803C5F1D812D"</span>;</div>
|
||||
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  </div>
|
||||
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  <span class="comment">// properly formed, but just doesn't exist</span></div>
|
||||
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  <span class="stringliteral">"8C3EEDB3124D92E49E75D81A8826A2E6"</span></div>
|
||||
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  <span class="stringliteral">"5A75FD71FC3FD6F36FEB803C5F1D812D"</span>;</div>
|
||||
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div>
|
||||
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  </div>
|
||||
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  {</div>
|
||||
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  <span class="comment">// access via the ledger_index field, keyword index values</span></div>
|
||||
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"closed"</span>;</div>
|
||||
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_index));</div>
|
||||
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  </div>
|
||||
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"validated"</span>;</div>
|
||||
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  </div>
|
||||
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"6"</span>);</div>
|
||||
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_current_index));</div>
|
||||
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  </div>
|
||||
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <span class="comment">// ask for a bad ledger keyword</span></div>
|
||||
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"invalid"</span>;</div>
|
||||
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerIndexMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  </div>
|
||||
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <span class="comment">// numeric index</span></div>
|
||||
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> i : {1, 2, 3, 4, 5, 6})</div>
|
||||
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  {</div>
|
||||
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  jvParams[jss::ledger_index] = i;</div>
|
||||
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="keywordflow">if</span> (i < 6)</div>
|
||||
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  BEAST_EXPECT(</div>
|
||||
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  jrr[jss::ledger][jss::ledger_index] == <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(i));</div>
|
||||
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  }</div>
|
||||
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  </div>
|
||||
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="comment">// numeric index - out of range</span></div>
|
||||
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  jvParams[jss::ledger_index] = 7;</div>
|
||||
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  }</div>
|
||||
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  }</div>
|
||||
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  </div>
|
||||
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01450"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80"> 1450</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>()</div>
|
||||
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  {</div>
|
||||
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  testcase(<span class="stringliteral">"Ledger with queueing disabled"</span>);</div>
|
||||
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  Env env{*<span class="keyword">this</span>};</div>
|
||||
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  </div>
|
||||
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
|
||||
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  jv[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  jv[jss::queue] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  log << env.closed()->info().hash;</div>
|
||||
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  env.fund(XRP(10000), <span class="stringliteral">"bob"</span>);</div>
|
||||
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  env.close();</div>
|
||||
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  log << env.closed()->info().hash;</div>
|
||||
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  env.fund(XRP(10000), <span class="stringliteral">"jim"</span>);</div>
|
||||
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  env.close();</div>
|
||||
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  log << env.closed()->info().hash;</div>
|
||||
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  env.fund(XRP(10000), <span class="stringliteral">"jill"</span>);</div>
|
||||
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  </div>
|
||||
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  {</div>
|
||||
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  <span class="comment">// access via the legacy ledger field, keyword index values</span></div>
|
||||
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  jvParams[jss::ledger] = <span class="stringliteral">"closed"</span>;</div>
|
||||
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  </div>
|
||||
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  jvParams[jss::ledger] = <span class="stringliteral">"validated"</span>;</div>
|
||||
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  </div>
|
||||
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  jvParams[jss::ledger] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"6"</span>);</div>
|
||||
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  </div>
|
||||
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  <span class="comment">// ask for a bad ledger keyword</span></div>
|
||||
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  jvParams[jss::ledger] = <span class="stringliteral">"invalid"</span>;</div>
|
||||
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerIndexMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  </div>
|
||||
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  <span class="comment">// numeric index</span></div>
|
||||
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  jvParams[jss::ledger] = 4;</div>
|
||||
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"4"</span>);</div>
|
||||
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  </div>
|
||||
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  <span class="comment">// numeric index - out of range</span></div>
|
||||
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  jvParams[jss::ledger] = 20;</div>
|
||||
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  }</div>
|
||||
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  </div>
|
||||
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>  {</div>
|
||||
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  <span class="comment">// access via the ledger_hash field</span></div>
|
||||
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="stringliteral">"2E81FC6EC0DD943197E0C7E3FBE9AE30"</span></div>
|
||||
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <span class="stringliteral">"7F2775F2F7485BB37307984C3C0F2340"</span>;</div>
|
||||
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"3"</span>);</div>
|
||||
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  </div>
|
||||
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  <span class="comment">// extra leading hex chars in hash will be ignored</span></div>
|
||||
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  <span class="stringliteral">"DEADBEEF"</span></div>
|
||||
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  <span class="stringliteral">"2E81FC6EC0DD943197E0C7E3FBE9AE30"</span></div>
|
||||
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="stringliteral">"7F2775F2F7485BB37307984C3C0F2340"</span>;</div>
|
||||
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  </div>
|
||||
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  <span class="comment">// request with non-string ledger_hash</span></div>
|
||||
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  jvParams[jss::ledger_hash] = 2;</div>
|
||||
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashNotString"</span>);</div>
|
||||
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  </div>
|
||||
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <span class="comment">// malformed (non hex) hash</span></div>
|
||||
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  <span class="stringliteral">"2E81FC6EC0DD943197EGC7E3FBE9AE30"</span></div>
|
||||
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  <span class="stringliteral">"7F2775F2F7485BB37307984C3C0F2340"</span>;</div>
|
||||
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerHashMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  </div>
|
||||
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <span class="comment">// properly formed, but just doesn't exist</span></div>
|
||||
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  jvParams[jss::ledger_hash] =</div>
|
||||
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  <span class="stringliteral">"8C3EEDB3124D92E49E75D81A8826A2E6"</span></div>
|
||||
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  <span class="stringliteral">"5A75FD71FC3FD6F36FEB803C5F1D812D"</span>;</div>
|
||||
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  }</div>
|
||||
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  </div>
|
||||
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  {</div>
|
||||
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <span class="comment">// access via the ledger_index field, keyword index values</span></div>
|
||||
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"closed"</span>;</div>
|
||||
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  <span class="keyword">auto</span> jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_index));</div>
|
||||
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  </div>
|
||||
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"validated"</span>;</div>
|
||||
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"5"</span>);</div>
|
||||
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  </div>
|
||||
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  BEAST_EXPECT(jrr[jss::ledger][jss::ledger_index] == <span class="stringliteral">"6"</span>);</div>
|
||||
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_current_index));</div>
|
||||
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  </div>
|
||||
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  <span class="comment">// ask for a bad ledger keyword</span></div>
|
||||
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  jvParams[jss::ledger_index] = <span class="stringliteral">"invalid"</span>;</div>
|
||||
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"invalidParams"</span>);</div>
|
||||
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerIndexMalformed"</span>);</div>
|
||||
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  </div>
|
||||
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="comment">// numeric index</span></div>
|
||||
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> i : {1, 2, 3, 4, 5, 6})</div>
|
||||
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  {</div>
|
||||
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  jvParams[jss::ledger_index] = i;</div>
|
||||
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  BEAST_EXPECT(jrr.isMember(jss::ledger));</div>
|
||||
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <span class="keywordflow">if</span> (i < 6)</div>
|
||||
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  BEAST_EXPECT(jrr.isMember(jss::ledger_hash));</div>
|
||||
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  BEAST_EXPECT(</div>
|
||||
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  jrr[jss::ledger][jss::ledger_index] == <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string/to_string.html">std::to_string</a>(i));</div>
|
||||
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  }</div>
|
||||
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  </div>
|
||||
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="comment">// numeric index - out of range</span></div>
|
||||
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  jvParams[jss::ledger_index] = 7;</div>
|
||||
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  jrr = env.rpc(</div>
|
||||
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  <span class="stringliteral">"json"</span>,</div>
|
||||
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  <span class="stringliteral">"ledger"</span>,</div>
|
||||
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  boost::lexical_cast<std::string>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  BEAST_EXPECT(jrr[jss::error] == <span class="stringliteral">"lgrNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  BEAST_EXPECT(jrr[jss::error_message] == <span class="stringliteral">"ledgerNotFound"</span>);</div>
|
||||
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  }</div>
|
||||
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  }</div>
|
||||
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  </div>
|
||||
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01446"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80"> 1446</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>()</div>
|
||||
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  {</div>
|
||||
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  testcase(<span class="stringliteral">"Ledger with queueing disabled"</span>);</div>
|
||||
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  Env env{*<span class="keyword">this</span>};</div>
|
||||
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  </div>
|
||||
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
|
||||
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  jv[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  jv[jss::queue] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  </div>
|
||||
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <span class="keyword">auto</span> jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  BEAST_EXPECT(!jrr.isMember(jss::queue_data));</div>
|
||||
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  }</div>
|
||||
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  </div>
|
||||
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  <span class="keyword">auto</span> jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  BEAST_EXPECT(!jrr.isMember(jss::queue_data));</div>
|
||||
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  }</div>
|
||||
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  </div>
|
||||
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b"> 1466</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>()</div>
|
||||
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  {</div>
|
||||
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  testcase(<span class="stringliteral">"Ledger with Queued Transactions"</span>);</div>
|
||||
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  Env env{*<span class="keyword">this</span>, envconfig([](<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Config></a> cfg) {</div>
|
||||
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keyword">auto</span>& section = cfg->section(<span class="stringliteral">"transaction_queue"</span>);</div>
|
||||
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  section.set(<span class="stringliteral">"minimum_txn_in_ledger_standalone"</span>, <span class="stringliteral">"3"</span>);</div>
|
||||
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  section.set(<span class="stringliteral">"normal_consensus_increase_percent"</span>, <span class="stringliteral">"0"</span>);</div>
|
||||
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  <span class="keywordflow">return</span> cfg;</div>
|
||||
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  })};</div>
|
||||
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  </div>
|
||||
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
|
||||
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  jv[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  jv[jss::queue] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  </div>
|
||||
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  Account <span class="keyword">const</span> alice{<span class="stringliteral">"alice"</span>};</div>
|
||||
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  Account <span class="keyword">const</span> bob{<span class="stringliteral">"bob"</span>};</div>
|
||||
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  Account <span class="keyword">const</span> charlie{<span class="stringliteral">"charlie"</span>};</div>
|
||||
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  Account <span class="keyword">const</span> daria{<span class="stringliteral">"daria"</span>};</div>
|
||||
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  env.fund(XRP(10000), alice);</div>
|
||||
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  env.fund(XRP(10000), bob);</div>
|
||||
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  env.close();</div>
|
||||
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  env.fund(XRP(10000), charlie);</div>
|
||||
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  env.fund(XRP(10000), daria);</div>
|
||||
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  env.close();</div>
|
||||
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  </div>
|
||||
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <span class="keyword">auto</span> jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  BEAST_EXPECT(!jrr.isMember(jss::queue_data));</div>
|
||||
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  </div>
|
||||
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  <span class="comment">// Fill the open ledger</span></div>
|
||||
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  <span class="keywordflow">for</span> (;;)</div>
|
||||
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  {</div>
|
||||
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  <span class="keyword">auto</span> metrics = env.app().getTxQ().getMetrics(*env.current());</div>
|
||||
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  <span class="keywordflow">if</span> (metrics.openLedgerFeeLevel > metrics.minProcessingFeeLevel)</div>
|
||||
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  env(noop(alice));</div>
|
||||
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  }</div>
|
||||
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  </div>
|
||||
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  BEAST_EXPECT(env.current()->info().seq == 5);</div>
|
||||
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  <span class="comment">// Put some txs in the queue</span></div>
|
||||
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>  <span class="comment">// Alice</span></div>
|
||||
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>  <span class="keyword">auto</span> aliceSeq = env.seq(alice);</div>
|
||||
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  env(pay(alice, <span class="stringliteral">"george"</span>, XRP(1000)),</div>
|
||||
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  json(R<span class="stringliteral">"({"LastLedgerSequence":7})"),</span></div>
|
||||
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="stringliteral"> ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</span></div>
|
||||
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="stringliteral"> env(offer(alice, XRP(50000), alice[</span><span class="stringliteral">"USD"</span>](5000)),</div>
|
||||
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  seq(aliceSeq + 1),</div>
|
||||
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  env(noop(alice), seq(aliceSeq + 2), ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>  <span class="comment">// Bob</span></div>
|
||||
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  <span class="keyword">auto</span> batch = [&env](Account a) {</div>
|
||||
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>  <span class="keyword">auto</span> aSeq = env.seq(a);</div>
|
||||
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  <span class="comment">// Enough fee to get in front of alice in the queue</span></div>
|
||||
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 10; ++i)</div>
|
||||
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>  {</div>
|
||||
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  env(noop(a), fee(1000 + i), seq(aSeq + i), ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  }</div>
|
||||
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  };</div>
|
||||
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  batch(bob);</div>
|
||||
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  <span class="comment">// Charlie</span></div>
|
||||
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  batch(charlie);</div>
|
||||
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  <span class="comment">// Daria</span></div>
|
||||
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  batch(daria);</div>
|
||||
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  </div>
|
||||
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  BEAST_EXPECT(jrr[jss::queue_data].size() == 33);</div>
|
||||
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  </div>
|
||||
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  <span class="comment">// Close enough ledgers so that alice's first tx expires.</span></div>
|
||||
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  env.close();</div>
|
||||
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  env.close();</div>
|
||||
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  env.close();</div>
|
||||
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  BEAST_EXPECT(env.current()->info().seq == 8);</div>
|
||||
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  </div>
|
||||
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  BEAST_EXPECT(jrr[jss::queue_data].size() == 11);</div>
|
||||
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  </div>
|
||||
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  env.close();</div>
|
||||
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  </div>
|
||||
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> txid1;</div>
|
||||
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> txid2;</div>
|
||||
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  {</div>
|
||||
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 10);</div>
|
||||
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& tx = txj[jss::tx];</div>
|
||||
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  BEAST_EXPECT(tx[jss::Account] == alice.human());</div>
|
||||
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  BEAST_EXPECT(tx[jss::TransactionType] == jss::OfferCreate);</div>
|
||||
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  txid1 = tx[jss::hash].asString();</div>
|
||||
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  }</div>
|
||||
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01462"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b"> 1462</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>()</div>
|
||||
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  {</div>
|
||||
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  testcase(<span class="stringliteral">"Ledger with Queued Transactions"</span>);</div>
|
||||
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  Env env{*<span class="keyword">this</span>, envconfig([](<a class="codeRef" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html">std::unique_ptr<Config></a> cfg) {</div>
|
||||
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  <span class="keyword">auto</span>& section = cfg->section(<span class="stringliteral">"transaction_queue"</span>);</div>
|
||||
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  section.set(<span class="stringliteral">"minimum_txn_in_ledger_standalone"</span>, <span class="stringliteral">"3"</span>);</div>
|
||||
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  section.set(<span class="stringliteral">"normal_consensus_increase_percent"</span>, <span class="stringliteral">"0"</span>);</div>
|
||||
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  <span class="keywordflow">return</span> cfg;</div>
|
||||
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  })};</div>
|
||||
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  </div>
|
||||
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jv;</div>
|
||||
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  jv[jss::ledger_index] = <span class="stringliteral">"current"</span>;</div>
|
||||
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  jv[jss::queue] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  </div>
|
||||
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  Account <span class="keyword">const</span> alice{<span class="stringliteral">"alice"</span>};</div>
|
||||
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  Account <span class="keyword">const</span> bob{<span class="stringliteral">"bob"</span>};</div>
|
||||
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  Account <span class="keyword">const</span> charlie{<span class="stringliteral">"charlie"</span>};</div>
|
||||
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  Account <span class="keyword">const</span> daria{<span class="stringliteral">"daria"</span>};</div>
|
||||
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  env.fund(XRP(10000), alice);</div>
|
||||
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  env.fund(XRP(10000), bob);</div>
|
||||
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  env.close();</div>
|
||||
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  env.fund(XRP(10000), charlie);</div>
|
||||
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  env.fund(XRP(10000), daria);</div>
|
||||
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  env.close();</div>
|
||||
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  </div>
|
||||
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  <span class="keyword">auto</span> jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  BEAST_EXPECT(!jrr.isMember(jss::queue_data));</div>
|
||||
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  </div>
|
||||
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  <span class="comment">// Fill the open ledger</span></div>
|
||||
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <span class="keywordflow">for</span> (;;)</div>
|
||||
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>  {</div>
|
||||
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  <span class="keyword">auto</span> metrics = env.app().getTxQ().getMetrics(*env.current());</div>
|
||||
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  <span class="keywordflow">if</span> (metrics.openLedgerFeeLevel > metrics.minProcessingFeeLevel)</div>
|
||||
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  <span class="keywordflow">break</span>;</div>
|
||||
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  env(noop(alice));</div>
|
||||
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  }</div>
|
||||
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  </div>
|
||||
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>  BEAST_EXPECT(env.current()->info().seq == 5);</div>
|
||||
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  <span class="comment">// Put some txs in the queue</span></div>
|
||||
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>  <span class="comment">// Alice</span></div>
|
||||
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>  <span class="keyword">auto</span> aliceSeq = env.seq(alice);</div>
|
||||
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>  env(pay(alice, <span class="stringliteral">"george"</span>, XRP(1000)),</div>
|
||||
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>  json(R<span class="stringliteral">"({"LastLedgerSequence":7})"),</span></div>
|
||||
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span> <span class="stringliteral"> ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</span></div>
|
||||
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span> <span class="stringliteral"> env(offer(alice, XRP(50000), alice[</span><span class="stringliteral">"USD"</span>](5000)),</div>
|
||||
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>  seq(aliceSeq + 1),</div>
|
||||
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>  ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>  env(noop(alice), seq(aliceSeq + 2), ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>  <span class="comment">// Bob</span></div>
|
||||
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>  <span class="keyword">auto</span> batch = [&env](Account a) {</div>
|
||||
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>  <span class="keyword">auto</span> aSeq = env.seq(a);</div>
|
||||
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  <span class="comment">// Enough fee to get in front of alice in the queue</span></div>
|
||||
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 10; ++i)</div>
|
||||
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>  {</div>
|
||||
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>  env(noop(a), fee(1000 + i), seq(aSeq + i), ter(<a class="code" href="namespaceripple.html#adebe4d783be9c979e67fdbb2bc27162fac6476cc82d6799d4a026dfa2f430e06e">terQUEUED</a>));</div>
|
||||
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>  }</div>
|
||||
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>  };</div>
|
||||
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>  batch(bob);</div>
|
||||
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>  <span class="comment">// Charlie</span></div>
|
||||
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>  batch(charlie);</div>
|
||||
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>  <span class="comment">// Daria</span></div>
|
||||
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>  batch(daria);</div>
|
||||
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>  </div>
|
||||
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>  BEAST_EXPECT(jrr[jss::queue_data].size() == 33);</div>
|
||||
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>  </div>
|
||||
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>  <span class="comment">// Close enough ledgers so that alice's first tx expires.</span></div>
|
||||
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>  env.close();</div>
|
||||
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>  env.close();</div>
|
||||
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>  env.close();</div>
|
||||
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>  BEAST_EXPECT(env.current()->info().seq == 8);</div>
|
||||
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>  </div>
|
||||
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>  BEAST_EXPECT(jrr[jss::queue_data].size() == 11);</div>
|
||||
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>  </div>
|
||||
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>  env.close();</div>
|
||||
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>  </div>
|
||||
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> txid1;</div>
|
||||
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> txid2;</div>
|
||||
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>  {</div>
|
||||
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 10);</div>
|
||||
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& tx = txj[jss::tx];</div>
|
||||
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>  BEAST_EXPECT(tx[jss::Account] == alice.human());</div>
|
||||
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>  BEAST_EXPECT(tx[jss::TransactionType] == jss::OfferCreate);</div>
|
||||
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>  txid1 = tx[jss::hash].asString();</div>
|
||||
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>  }</div>
|
||||
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>  </div>
|
||||
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>  env.close();</div>
|
||||
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>  </div>
|
||||
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>  jv[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>  </div>
|
||||
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  env.close();</div>
|
||||
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  </div>
|
||||
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  jv[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  </div>
|
||||
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  {</div>
|
||||
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 9);</div>
|
||||
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  BEAST_EXPECT(txj[jss::tx] == txid1);</div>
|
||||
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  }</div>
|
||||
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  </div>
|
||||
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  env.close();</div>
|
||||
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  </div>
|
||||
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  jv[jss::binary] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  </div>
|
||||
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  {</div>
|
||||
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 8);</div>
|
||||
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  BEAST_EXPECT(txj[jss::tx].isMember(jss::tx_blob));</div>
|
||||
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  </div>
|
||||
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj2 = jrr[jss::queue_data][1u];</div>
|
||||
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  BEAST_EXPECT(txj2[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  BEAST_EXPECT(txj2[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  BEAST_EXPECT(txj2[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  BEAST_EXPECT(txj2[<span class="stringliteral">"retries_remaining"</span>] == 10);</div>
|
||||
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  BEAST_EXPECT(!txj2.isMember(<span class="stringliteral">"last_result"</span>));</div>
|
||||
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  BEAST_EXPECT(txj2.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  BEAST_EXPECT(txj2[jss::tx].isMember(jss::tx_blob));</div>
|
||||
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  }</div>
|
||||
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  </div>
|
||||
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != 9; ++i)</div>
|
||||
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  {</div>
|
||||
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  env.close();</div>
|
||||
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  }</div>
|
||||
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  </div>
|
||||
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  jv[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  jv[jss::binary] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  </div>
|
||||
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 1))</div>
|
||||
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  {</div>
|
||||
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 1);</div>
|
||||
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  BEAST_EXPECT(txj[jss::tx] != txid1);</div>
|
||||
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  txid2 = txj[jss::tx].asString();</div>
|
||||
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  }</div>
|
||||
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  </div>
|
||||
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  jv[jss::full] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  </div>
|
||||
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 1))</div>
|
||||
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  {</div>
|
||||
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 1);</div>
|
||||
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& tx = txj[jss::tx];</div>
|
||||
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  BEAST_EXPECT(tx[jss::Account] == alice.human());</div>
|
||||
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  BEAST_EXPECT(tx[jss::TransactionType] == jss::AccountSet);</div>
|
||||
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  BEAST_EXPECT(tx[jss::hash] == txid2);</div>
|
||||
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>  }</div>
|
||||
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  }</div>
|
||||
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  </div>
|
||||
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01648"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393"> 1648</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>()</div>
|
||||
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  {</div>
|
||||
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  testcase(<span class="stringliteral">"Ledger Request, Accounts Option"</span>);</div>
|
||||
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>  {</div>
|
||||
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 9);</div>
|
||||
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>  BEAST_EXPECT(txj[jss::tx] == txid1);</div>
|
||||
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>  }</div>
|
||||
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>  </div>
|
||||
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>  env.close();</div>
|
||||
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>  </div>
|
||||
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>  jv[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>  jv[jss::binary] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>  </div>
|
||||
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 2))</div>
|
||||
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>  {</div>
|
||||
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 8);</div>
|
||||
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>  BEAST_EXPECT(txj[jss::tx].isMember(jss::tx_blob));</div>
|
||||
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>  </div>
|
||||
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj2 = jrr[jss::queue_data][1u];</div>
|
||||
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>  BEAST_EXPECT(txj2[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>  BEAST_EXPECT(txj2[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>  BEAST_EXPECT(txj2[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>  BEAST_EXPECT(txj2[<span class="stringliteral">"retries_remaining"</span>] == 10);</div>
|
||||
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>  BEAST_EXPECT(!txj2.isMember(<span class="stringliteral">"last_result"</span>));</div>
|
||||
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>  BEAST_EXPECT(txj2.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>  BEAST_EXPECT(txj2[jss::tx].isMember(jss::tx_blob));</div>
|
||||
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>  }</div>
|
||||
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  </div>
|
||||
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i != 9; ++i)</div>
|
||||
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>  {</div>
|
||||
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>  env.close();</div>
|
||||
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>  }</div>
|
||||
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>  </div>
|
||||
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>  jv[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>  jv[jss::binary] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>  </div>
|
||||
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 1))</div>
|
||||
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>  {</div>
|
||||
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 1);</div>
|
||||
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>  BEAST_EXPECT(txj[jss::tx] != txid1);</div>
|
||||
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>  txid2 = txj[jss::tx].asString();</div>
|
||||
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>  }</div>
|
||||
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>  </div>
|
||||
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>  jv[jss::full] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  </div>
|
||||
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>  jrr = env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jv))[jss::result];</div>
|
||||
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>  <span class="keywordflow">if</span> (BEAST_EXPECT(jrr[jss::queue_data].size() == 1))</div>
|
||||
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>  {</div>
|
||||
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& txj = jrr[jss::queue_data][0u];</div>
|
||||
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>  BEAST_EXPECT(txj[jss::account] == alice.human());</div>
|
||||
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>  BEAST_EXPECT(txj[jss::fee_level] == <span class="stringliteral">"256"</span>);</div>
|
||||
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>  BEAST_EXPECT(txj[<span class="stringliteral">"preflight_result"</span>] == <span class="stringliteral">"tesSUCCESS"</span>);</div>
|
||||
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>  BEAST_EXPECT(txj[<span class="stringliteral">"retries_remaining"</span>] == 1);</div>
|
||||
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>  BEAST_EXPECT(txj[<span class="stringliteral">"last_result"</span>] == <span class="stringliteral">"terPRE_SEQ"</span>);</div>
|
||||
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>  BEAST_EXPECT(txj.isMember(jss::tx));</div>
|
||||
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>  <span class="keyword">auto</span> <span class="keyword">const</span>& tx = txj[jss::tx];</div>
|
||||
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>  BEAST_EXPECT(tx[jss::Account] == alice.human());</div>
|
||||
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>  BEAST_EXPECT(tx[jss::TransactionType] == jss::AccountSet);</div>
|
||||
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>  BEAST_EXPECT(tx[jss::hash] == txid2);</div>
|
||||
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>  }</div>
|
||||
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>  }</div>
|
||||
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>  </div>
|
||||
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01644"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393"> 1644</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>()</div>
|
||||
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>  {</div>
|
||||
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  testcase(<span class="stringliteral">"Ledger Request, Accounts Option"</span>);</div>
|
||||
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>  <span class="keyword">using namespace </span>test::jtx;</div>
|
||||
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>  </div>
|
||||
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>  Env env{*<span class="keyword">this</span>};</div>
|
||||
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>  </div>
|
||||
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>  env.close();</div>
|
||||
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>  </div>
|
||||
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  Env env{*<span class="keyword">this</span>};</div>
|
||||
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  </div>
|
||||
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  env.close();</div>
|
||||
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  </div>
|
||||
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> index;</div>
|
||||
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  {</div>
|
||||
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  jvParams[jss::ledger_index] = 3u;</div>
|
||||
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  jvParams[jss::accounts] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  jvParams[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  jvParams[jss::type] = <span class="stringliteral">"hashes"</span>;</div>
|
||||
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  <span class="keyword">auto</span> <span class="keyword">const</span> jrr =</div>
|
||||
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>  env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>  BEAST_EXPECT(jrr[jss::ledger].isMember(jss::accountState));</div>
|
||||
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].isArray());</div>
|
||||
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].size() == 1u);</div>
|
||||
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  BEAST_EXPECT(</div>
|
||||
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  jrr[jss::ledger][jss::accountState][0u][<span class="stringliteral">"LedgerEntryType"</span>] ==</div>
|
||||
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  jss::LedgerHashes);</div>
|
||||
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  index = jrr[jss::ledger][jss::accountState][0u][<span class="stringliteral">"index"</span>].asString();</div>
|
||||
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  }</div>
|
||||
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>  {</div>
|
||||
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>  jvParams[jss::ledger_index] = 3u;</div>
|
||||
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  jvParams[jss::accounts] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  jvParams[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  jvParams[jss::type] = <span class="stringliteral">"hashes"</span>;</div>
|
||||
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>  <span class="keyword">auto</span> <span class="keyword">const</span> jrr =</div>
|
||||
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  BEAST_EXPECT(jrr[jss::ledger].isMember(jss::accountState));</div>
|
||||
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].isArray());</div>
|
||||
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].size() == 1u);</div>
|
||||
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState][0u] == index);</div>
|
||||
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>  }</div>
|
||||
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>  }</div>
|
||||
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>  </div>
|
||||
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01691"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba"> 1691</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad2c48fcad36d8180f75bff57a657337e">testLedgerRequest</a>();</div>
|
||||
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2ba728b8f3a0ab1844f9beb8f1b6aa39">testBadInput</a>();</div>
|
||||
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a09363031f4fe1e6f8a5a72c447a9293a">testLedgerCurrent</a>();</div>
|
||||
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">testMissingLedgerEntryLedgerHash</a>();</div>
|
||||
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a668721745cd0bc9f73449afe68a318b1">testLedgerFull</a>();</div>
|
||||
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a3f2cca5d2a38ae42a24cd6cd1b4bab15">testLedgerFullNonAdmin</a>();</div>
|
||||
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ab028e86674cbb2cf6b0b530183c14c58">testLedgerAccounts</a>();</div>
|
||||
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad4e9d9909f936f4655bfeb05d347443e">testLedgerEntryAccountRoot</a>();</div>
|
||||
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a3673b70a465c8df505656b86121b2cf8">testLedgerEntryCheck</a>();</div>
|
||||
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a9c5e2c28a66046a8d02ad655956a8e59">testLedgerEntryDepositPreauth</a>();</div>
|
||||
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6d97a0d575938ede162ac7a202fa68b6">testLedgerEntryDirectory</a>();</div>
|
||||
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a77b33974a78b873836071ec83cacf7ac">testLedgerEntryEscrow</a>();</div>
|
||||
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a8d711c2c90c5aa06cc09e31a50903eb3">testLedgerEntryOffer</a>();</div>
|
||||
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aaa81a08ac938a3d3d6a769638da082c6">testLedgerEntryPayChan</a>();</div>
|
||||
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad424a93e08a6e57546221add310b123d">testLedgerEntryRippleState</a>();</div>
|
||||
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aed774f98182f3dcc294a9a16879600ef">testLedgerEntryTicket</a>();</div>
|
||||
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2faaa3dfea69216a1d3e585fb7fe114f">testLedgerEntryUnknownOption</a>();</div>
|
||||
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2f07bf50ea7cb38a59f1975ccd324eb5">testLookupLedger</a>();</div>
|
||||
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>();</div>
|
||||
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>();</div>
|
||||
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>();</div>
|
||||
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  }</div>
|
||||
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> };</div>
|
||||
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>  </div>
|
||||
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <a class="code" href="namespaceripple.html#a2701412a11b118c19256a4c901db2938">BEAST_DEFINE_TESTSUITE</a>(LedgerRPC, app, <a class="code" href="namespaceripple.html">ripple</a>);</div>
|
||||
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>  </div>
|
||||
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> } <span class="comment">// namespace ripple</span></div>
|
||||
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>  <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> index;</div>
|
||||
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>  {</div>
|
||||
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>  jvParams[jss::ledger_index] = 3u;</div>
|
||||
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>  jvParams[jss::accounts] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>  jvParams[jss::expand] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>  jvParams[jss::type] = <span class="stringliteral">"hashes"</span>;</div>
|
||||
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>  <span class="keyword">auto</span> <span class="keyword">const</span> jrr =</div>
|
||||
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>  env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>  BEAST_EXPECT(jrr[jss::ledger].isMember(jss::accountState));</div>
|
||||
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].isArray());</div>
|
||||
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].size() == 1u);</div>
|
||||
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>  BEAST_EXPECT(</div>
|
||||
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>  jrr[jss::ledger][jss::accountState][0u][<span class="stringliteral">"LedgerEntryType"</span>] ==</div>
|
||||
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>  jss::LedgerHashes);</div>
|
||||
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>  index = jrr[jss::ledger][jss::accountState][0u][<span class="stringliteral">"index"</span>].asString();</div>
|
||||
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  }</div>
|
||||
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>  {</div>
|
||||
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>  <a class="code" href="classJson_1_1Value.html">Json::Value</a> jvParams;</div>
|
||||
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>  jvParams[jss::ledger_index] = 3u;</div>
|
||||
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>  jvParams[jss::accounts] = <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>  jvParams[jss::expand] = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>  jvParams[jss::type] = <span class="stringliteral">"hashes"</span>;</div>
|
||||
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>  <span class="keyword">auto</span> <span class="keyword">const</span> jrr =</div>
|
||||
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>  env.rpc(<span class="stringliteral">"json"</span>, <span class="stringliteral">"ledger"</span>, <a class="code" href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">to_string</a>(jvParams))[jss::result];</div>
|
||||
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>  BEAST_EXPECT(jrr[jss::ledger].isMember(jss::accountState));</div>
|
||||
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].isArray());</div>
|
||||
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState].size() == 1u);</div>
|
||||
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>  BEAST_EXPECT(jrr[jss::ledger][jss::accountState][0u] == index);</div>
|
||||
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>  }</div>
|
||||
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>  }</div>
|
||||
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>  </div>
|
||||
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>  <span class="keywordtype">void</span></div>
|
||||
<div class="line"><a name="l01687"></a><span class="lineno"><a class="line" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba"> 1687</a></span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">run</a>()<span class="keyword"> override</span></div>
|
||||
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad2c48fcad36d8180f75bff57a657337e">testLedgerRequest</a>();</div>
|
||||
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2ba728b8f3a0ab1844f9beb8f1b6aa39">testBadInput</a>();</div>
|
||||
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a09363031f4fe1e6f8a5a72c447a9293a">testLedgerCurrent</a>();</div>
|
||||
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">testMissingLedgerEntryLedgerHash</a>();</div>
|
||||
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a668721745cd0bc9f73449afe68a318b1">testLedgerFull</a>();</div>
|
||||
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a3f2cca5d2a38ae42a24cd6cd1b4bab15">testLedgerFullNonAdmin</a>();</div>
|
||||
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ab028e86674cbb2cf6b0b530183c14c58">testLedgerAccounts</a>();</div>
|
||||
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad4e9d9909f936f4655bfeb05d347443e">testLedgerEntryAccountRoot</a>();</div>
|
||||
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a3673b70a465c8df505656b86121b2cf8">testLedgerEntryCheck</a>();</div>
|
||||
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a9c5e2c28a66046a8d02ad655956a8e59">testLedgerEntryDepositPreauth</a>();</div>
|
||||
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6d97a0d575938ede162ac7a202fa68b6">testLedgerEntryDirectory</a>();</div>
|
||||
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a77b33974a78b873836071ec83cacf7ac">testLedgerEntryEscrow</a>();</div>
|
||||
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a8d711c2c90c5aa06cc09e31a50903eb3">testLedgerEntryOffer</a>();</div>
|
||||
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aaa81a08ac938a3d3d6a769638da082c6">testLedgerEntryPayChan</a>();</div>
|
||||
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#ad424a93e08a6e57546221add310b123d">testLedgerEntryRippleState</a>();</div>
|
||||
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#aed774f98182f3dcc294a9a16879600ef">testLedgerEntryTicket</a>();</div>
|
||||
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2faaa3dfea69216a1d3e585fb7fe114f">testLedgerEntryUnknownOption</a>();</div>
|
||||
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a2f07bf50ea7cb38a59f1975ccd324eb5">testLookupLedger</a>();</div>
|
||||
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">testNoQueue</a>();</div>
|
||||
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">testQueue</a>();</div>
|
||||
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>  <a class="code" href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">testLedgerAccountsOption</a>();</div>
|
||||
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>  }</div>
|
||||
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span> };</div>
|
||||
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>  </div>
|
||||
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span> <a class="code" href="namespaceripple.html#a2701412a11b118c19256a4c901db2938">BEAST_DEFINE_TESTSUITE</a>(LedgerRPC, app, <a class="code" href="namespaceripple.html">ripple</a>);</div>
|
||||
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>  </div>
|
||||
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> } <span class="comment">// namespace ripple</span></div>
|
||||
</div><!-- fragment --></div><!-- contents -->
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ad424a93e08a6e57546221add310b123d"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ad424a93e08a6e57546221add310b123d">ripple::LedgerRPC_test::testLedgerEntryRippleState</a></div><div class="ttdeci">void testLedgerEntryRippleState()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00931">LedgerRPC_test.cpp:931</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a2faaa3dfea69216a1d3e585fb7fe114f"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a2faaa3dfea69216a1d3e585fb7fe114f">ripple::LedgerRPC_test::testLedgerEntryUnknownOption</a></div><div class="ttdeci">void testLedgerEntryUnknownOption()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01224">LedgerRPC_test.cpp:1224</a></div></div>
|
||||
@@ -1796,7 +1792,7 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceJson_html_a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4"><div class="ttname"><a href="namespaceJson.html#a7d654b75c16a57007925868e38212b4eadc8f264f36b55b063c78126b335415f4">Json::arrayValue</a></div><div class="ttdeci">@ arrayValue</div><div class="ttdoc">array value (ordered list)</div><div class="ttdef"><b>Definition:</b> <a href="json__value_8h_source.html#l00042">json_value.h:42</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a8d711c2c90c5aa06cc09e31a50903eb3"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a8d711c2c90c5aa06cc09e31a50903eb3">ripple::LedgerRPC_test::testLedgerEntryOffer</a></div><div class="ttdeci">void testLedgerEntryOffer()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00791">LedgerRPC_test.cpp:791</a></div></div>
|
||||
<div class="ttc" id="aduration_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/chrono/duration.html">std::chrono::duration</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a67daa130f5e87d9a4aa2c86653c2cc80"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">ripple::LedgerRPC_test::testNoQueue</a></div><div class="ttdeci">void testNoQueue()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01450">LedgerRPC_test.cpp:1450</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a67daa130f5e87d9a4aa2c86653c2cc80"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a67daa130f5e87d9a4aa2c86653c2cc80">ripple::LedgerRPC_test::testNoQueue</a></div><div class="ttdeci">void testNoQueue()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01446">LedgerRPC_test.cpp:1446</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a385ab11f319f7b8d477e2ccff9f19cbc"><div class="ttname"><a href="namespaceripple.html#a385ab11f319f7b8d477e2ccff9f19cbc">ripple::sfTicketSequence</a></div><div class="ttdeci">const SF_UINT32 sfTicketSequence</div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a96888695e8d79474e080c334f149e30a"><div class="ttname"><a href="namespaceripple.html#a96888695e8d79474e080c334f149e30a">ripple::to_string</a></div><div class="ttdeci">std::string to_string(ListDisposition disposition)</div><div class="ttdef"><b>Definition:</b> <a href="ValidatorList_8cpp_source.html#l00042">ValidatorList.cpp:42</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1SField_html_a45acf918dce2b1e3e40c6344a49f7b51"><div class="ttname"><a href="classripple_1_1SField.html#a45acf918dce2b1e3e40c6344a49f7b51">ripple::SField::jsonName</a></div><div class="ttdeci">const Json::StaticString jsonName</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00133">SField.h:133</a></div></div>
|
||||
@@ -1807,7 +1803,7 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_a5db6a436a1b570fd3fdfc1583c34883f"><div class="ttname"><a href="namespaceripple.html#a5db6a436a1b570fd3fdfc1583c34883f">ripple::sfIndexes</a></div><div class="ttdeci">const SF_VECTOR256 sfIndexes</div></div>
|
||||
<div class="ttc" id="astructripple_1_1Keylet_html_a482983062843a8682fcea76a309c73db"><div class="ttname"><a href="structripple_1_1Keylet.html#a482983062843a8682fcea76a309c73db">ripple::Keylet::key</a></div><div class="ttdeci">uint256 key</div><div class="ttdef"><b>Definition:</b> <a href="Keylet_8h_source.html#l00041">Keylet.h:41</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< 256 ></a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a6e4239bfa55f7978dec37a384ae6e393"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">ripple::LedgerRPC_test::testLedgerAccountsOption</a></div><div class="ttdeci">void testLedgerAccountsOption()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01648">LedgerRPC_test.cpp:1648</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a6e4239bfa55f7978dec37a384ae6e393"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a6e4239bfa55f7978dec37a384ae6e393">ripple::LedgerRPC_test::testLedgerAccountsOption</a></div><div class="ttdeci">void testLedgerAccountsOption()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01644">LedgerRPC_test.cpp:1644</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a3f2cca5d2a38ae42a24cd6cd1b4bab15"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a3f2cca5d2a38ae42a24cd6cd1b4bab15">ripple::LedgerRPC_test::testLedgerFullNonAdmin</a></div><div class="ttdeci">void testLedgerFullNonAdmin()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00245">LedgerRPC_test.cpp:245</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_aa1125568f116779d0ad145c06a607791"><div class="ttname"><a href="namespaceripple.html#aa1125568f116779d0ad145c06a607791">ripple::sfSettleDelay</a></div><div class="ttdeci">const SF_UINT32 sfSettleDelay</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a668721745cd0bc9f73449afe68a318b1"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a668721745cd0bc9f73449afe68a318b1">ripple::LedgerRPC_test::testLedgerFull</a></div><div class="ttdeci">void testLedgerFull()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00225">LedgerRPC_test.cpp:225</a></div></div>
|
||||
@@ -1818,7 +1814,7 @@ $(function() {
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_aeab9eeb6657fd427dcf7677e5bb7834c"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#aeab9eeb6657fd427dcf7677e5bb7834c">ripple::LedgerRPC_test::makeBadAddress</a></div><div class="ttdeci">std::string makeBadAddress(std::string good)</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00056">LedgerRPC_test.cpp:56</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a2ba728b8f3a0ab1844f9beb8f1b6aa39"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a2ba728b8f3a0ab1844f9beb8f1b6aa39">ripple::LedgerRPC_test::testBadInput</a></div><div class="ttdeci">void testBadInput()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00114">LedgerRPC_test.cpp:114</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8"><div class="ttname"><a href="namespaceripple.html#a169967ff418b80729654b6d45ade8711a334c4a4c42fdb79d7ebc3e73b517e6f8">ripple::JsonOptions::none</a></div><div class="ttdeci">@ none</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a73af9c92439943da5687c66bc759921b"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">ripple::LedgerRPC_test::testQueue</a></div><div class="ttdeci">void testQueue()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01466">LedgerRPC_test.cpp:1466</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a73af9c92439943da5687c66bc759921b"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a73af9c92439943da5687c66bc759921b">ripple::LedgerRPC_test::testQueue</a></div><div class="ttdeci">void testQueue()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01462">LedgerRPC_test.cpp:1462</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_ad4e9d9909f936f4655bfeb05d347443e"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#ad4e9d9909f936f4655bfeb05d347443e">ripple::LedgerRPC_test::testLedgerEntryAccountRoot</a></div><div class="ttdeci">void testLedgerEntryAccountRoot()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00284">LedgerRPC_test.cpp:284</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="aclassripple_1_1STAmount_html"><div class="ttname"><a href="classripple_1_1STAmount.html">ripple::STAmount</a></div><div class="ttdef"><b>Definition:</b> <a href="STAmount_8h_source.html#l00042">STAmount.h:42</a></div></div>
|
||||
@@ -1829,7 +1825,7 @@ $(function() {
|
||||
<div class="ttc" id="anamespaceripple_html_ab8cfecc4098614f8b9c6c0bc8d9723e7"><div class="ttname"><a href="namespaceripple.html#ab8cfecc4098614f8b9c6c0bc8d9723e7">ripple::sfAuthorize</a></div><div class="ttdeci">const SF_ACCOUNT sfAuthorize</div></div>
|
||||
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint32_t</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_a78b8a880e6176b96eea2351ce8b9db77"><div class="ttname"><a href="namespaceripple.html#a78b8a880e6176b96eea2351ce8b9db77">ripple::sfHighLimit</a></div><div class="ttdeci">const SF_AMOUNT sfHighLimit</div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_abbafb9158567841d3ce81a0ee5f954ba"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">ripple::LedgerRPC_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01691">LedgerRPC_test.cpp:1691</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_abbafb9158567841d3ce81a0ee5f954ba"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#abbafb9158567841d3ce81a0ee5f954ba">ripple::LedgerRPC_test::run</a></div><div class="ttdeci">void run() override</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l01687">LedgerRPC_test.cpp:1687</a></div></div>
|
||||
<div class="ttc" id="anamespaceripple_html_ac7449e3a832f265ac8970ed52b580399"><div class="ttname"><a href="namespaceripple.html#ac7449e3a832f265ac8970ed52b580399">ripple::tfUniversal</a></div><div class="ttdeci">const std::uint32_t tfUniversal</div><div class="ttdef"><b>Definition:</b> <a href="TxFlags_8h_source.html#l00049">TxFlags.h:49</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_a6d97a0d575938ede162ac7a202fa68b6"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#a6d97a0d575938ede162ac7a202fa68b6">ripple::LedgerRPC_test::testLedgerEntryDirectory</a></div><div class="ttdeci">void testLedgerEntryDirectory()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00551">LedgerRPC_test.cpp:551</a></div></div>
|
||||
<div class="ttc" id="aclassripple_1_1LedgerRPC__test_html_aac75adc3929f58999d91f21912e24e26"><div class="ttname"><a href="classripple_1_1LedgerRPC__test.html#aac75adc3929f58999d91f21912e24e26">ripple::LedgerRPC_test::testMissingLedgerEntryLedgerHash</a></div><div class="ttdeci">void testMissingLedgerEntryLedgerHash()</div><div class="ttdef"><b>Definition:</b> <a href="LedgerRPC__test_8cpp_source.html#l00206">LedgerRPC_test.cpp:206</a></div></div>
|
||||
|
||||
Reference in New Issue
Block a user