60        using namespace test::jtx;
 
   65        size_t const numAccounts = 20;
 
   66        boost::container::static_vector<Account, numAccounts> accounts;
 
   67        for (
size_t i = 0; i < numAccounts; ++i)
 
   70            auto const& acct = accounts.back();
 
   71            env.fund(XRP(10000), acct);
 
   75                auto const& prev = accounts[i - 1];
 
   76                env.trust(acct[
"USD"](1000), prev);
 
   77                env(pay(acct, prev, acct[
"USD"](5)));
 
   79            env(offer(acct, XRP(100), acct[
"USD"](1)));
 
   85            params[jss::start] = 0;
 
   87                env.client().invoke(
"tx_history", params)[jss::result];
 
   89                    result[jss::txs].isArray() && result[jss::txs].size() > 0))
 
   93            bool const txFound = [&] {
 
   95                for (
auto tx : result[jss::txs])
 
  104            BEAST_EXPECT(txFound);
 
  107        unsigned int start = 0;
 
  108        unsigned int total = 0;
 
  114            params[jss::start] = start;
 
  116                env.client().invoke(
"tx_history", params)[jss::result];
 
  118                    result[jss::txs].isArray() && result[jss::txs].size() > 0))
 
  120            total += result[jss::txs].
size();
 
  122            for (
auto const& t : result[jss::txs])
 
  124                typeCounts[t[sfTransactionType.fieldName].asString()]++;
 
  127        BEAST_EXPECT(total == 117);
 
  128        BEAST_EXPECT(typeCounts[jss::AccountSet.c_str()] == 20);
 
  129        BEAST_EXPECT(typeCounts[jss::TrustSet.c_str()] == 19);
 
  130        BEAST_EXPECT(typeCounts[jss::Payment.c_str()] == 58);
 
  131        BEAST_EXPECT(typeCounts[jss::OfferCreate.c_str()] == 20);
 
  136            params[jss::start] = 10000;  
 
  138                env.client().invoke(
"tx_history", params)[jss::result];
 
  139            BEAST_EXPECT(result[jss::status] == 
"success");
 
  140            BEAST_EXPECT(result[jss::index] == 10000);