20 #include <ripple/protocol/Feature.h> 
   31     return env.
current()->fees().accountReserve(count);
 
   92         IOU const USD = gw[
"USD"];
 
   96         env.
fund(
XRP(10000), alice, bob, carol, gw);
 
   97         env.
trust(USD(1000), alice, bob);
 
  100         env(
pay(gw, alice, USD(150)));
 
  101         env(offer(carol, USD(100), 
XRP(100)));
 
  105         env(
pay(alice, bob, USD(50)));
 
  113         auto failedIouPayments = [
this, &env, &alice, &bob, &USD]() {
 
  130             BEAST_EXPECT(bobXrpBalance == env.
balance(bob, 
XRP));
 
  131             BEAST_EXPECT(bobUsdBalance == env.
balance(bob, USD));
 
  139         env(
pay(bob, alice, USD(25)));
 
  145             env(
pay(bob, alice, bobPaysXRP), 
fee(bobPaysFee));
 
  151         BEAST_EXPECT(env.
balance(bob, USD) == USD(25));
 
  168         env(
pay(alice, bob, USD(50)));
 
  188         env.
fund(
XRP(10000), alice, bob);
 
  204             env(
pay(bob, alice, bobPaysXRP), 
fee(bobPaysFee));
 
  282         testcase(
"No Ripple");
 
  290         IOU const USD1(gw1[
"USD"]);
 
  291         IOU const USD2(gw2[
"USD"]);
 
  296                               bool withDepositAuth) {
 
  299             Env env(*
this, features);
 
  301             env.
fund(
XRP(10000), gw1, alice, bob);
 
  304             env.
trust(USD1(10), alice, bob);
 
  306             env(
pay(gw1, alice, USD1(10)));
 
  313             env(
pay(alice, bob, USD1(10)), 
path(gw1), 
ter(result));
 
  319                                  bool withDepositAuth) {
 
  322             Env env(*
this, features);
 
  324             env.
fund(
XRP(10000), gw1, gw2, alice);
 
  327             env(
pay(gw2, alice, USD2(10)));
 
  334             env(
pay(gw1, gw2, USD2(10)),
 
  341         for (
int i = 0; i < 8; ++i)
 
  343             auto const noRipplePrev = i & 0x1;
 
  344             auto const noRippleNext = i & 0x2;
 
  345             auto const withDepositAuth = i & 0x4;
 
  352             if (!withDepositAuth)
 
  365             if (!withDepositAuth)
 
  397             env.
fund(
XRP(10000), alice, becky);
 
  419             env.
fund(
XRP(10000), alice, becky);
 
  423             env(deposit::auth(alice, becky));
 
  429             env(deposit::unauth(alice, becky));
 
  438             env.
fund(
XRP(10000), alice, becky);
 
  441             env(ticket::create(alice, 2));
 
  450             env(deposit::auth(alice, becky), 
ticket::use(--aliceTicketSeq));
 
  455             BEAST_EXPECT(env.
seq(alice) == aliceSeq);
 
  459             env(deposit::unauth(alice, becky), 
ticket::use(--aliceTicketSeq));
 
  463             BEAST_EXPECT(env.
seq(alice) == aliceSeq);
 
  488         env.
fund(
XRP(10000), alice, becky);
 
  532         env(deposit::auth(alice, becky));
 
  555         env(deposit::auth(carol, becky));
 
  574         env(deposit::unauth(alice, becky));
 
  595         IOU const USD(gw[
"USD"]);
 
  603             Env env(*
this, features);
 
  604             env.
fund(
XRP(5000), alice, becky, gw);
 
  607             env.
trust(USD(1000), alice);
 
  608             env.
trust(USD(1000), becky);
 
  611             env(
pay(gw, alice, USD(500)));
 
  632             env(
pay(becky, becky, USD(10)),
 
  645             Env env(*
this, features);
 
  646             env.
fund(
XRP(5000), alice, becky, carol, gw);
 
  649             env.
trust(USD(1000), alice);
 
  650             env.
trust(USD(1000), becky);
 
  651             env.
trust(USD(1000), carol);
 
  654             env(
pay(gw, alice, USD(1000)));
 
  658             env(
pay(alice, becky, 
XRP(100)));
 
  659             env(
pay(alice, becky, USD(100)));
 
  673             env(deposit::auth(becky, carol));
 
  682             env(deposit::auth(becky, alice));
 
  686             env(
pay(alice, becky, 
XRP(100)));
 
  687             env(
pay(alice, becky, USD(100)));
 
  701             env(deposit::unauth(becky, carol));
 
  704             env(
pay(alice, becky, 
XRP(100)));
 
  705             env(
pay(alice, becky, USD(100)));
 
  709             env(deposit::unauth(becky, alice));
 
  721             env(
pay(alice, becky, 
XRP(100)));
 
  722             env(
pay(alice, becky, USD(100)));
 
  734         testPayment(supported);