20 #include <ripple/protocol/Feature.h>
30 return env.
current()->fees().accountReserve (count);
89 IOU const USD = gw[
"USD"];
93 env.
fund (
XRP (10000), alice, bob, carol, gw);
94 env.
trust (USD (1000), alice, bob);
97 env (
pay (gw, alice, USD (150)));
98 env (
offer (carol, USD(100),
XRP(100)));
102 env (
pay (alice, bob, USD (50)));
110 auto failedIouPayments = [
this, &env, &alice, &bob, &USD] ()
127 BEAST_EXPECT (bobXrpBalance == env.
balance (bob,
XRP));
128 BEAST_EXPECT (bobUsdBalance == env.
balance (bob, USD));
136 env (
pay (bob, alice, USD(25)));
143 env (
pay (bob, alice, bobPaysXRP),
fee (bobPaysFee));
149 BEAST_EXPECT (env.
balance (bob, USD) == USD(25));
166 env (
pay (alice, bob, USD (50)));
177 testcase (
"Pay XRP");
185 env.
fund (
XRP (10000), alice, bob);
202 env (
pay (bob, alice, bobPaysXRP),
fee (bobPaysFee));
280 testcase (
"No Ripple");
288 IOU const USD1 (gw1[
"USD"]);
289 IOU const USD2 (gw2[
"USD"]);
294 bool withDepositAuth)
298 Env env(*
this, features);
300 env.
fund(
XRP(10000), gw1, alice, bob);
303 env.
trust(USD1 (10), alice, bob);
305 env(
pay(gw1, alice, USD1(10)));
310 TER const result = (noRippleNext && noRipplePrev)
313 env (
pay (alice, bob, USD1(10)),
path (gw1),
ter (result));
319 bool withDepositAuth)
323 Env env(*
this, features);
325 env.
fund(
XRP(10000), gw1, gw2, alice);
328 env(
pay(gw2, alice, USD2(10)));
333 TER const result = (noRippleNext && noRipplePrev)
336 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)
395 env.
fund (
XRP (10000), alice, becky);
417 env.
fund (
XRP (10000), alice, becky);
421 env (deposit::auth (alice, becky));
427 env (deposit::unauth (alice, becky));
436 testcase (
"Invalid");
453 env.
fund (
XRP (10000), alice, becky);
461 env (deposit::auth (alice, becky),
498 env (deposit::auth (alice, becky));
519 env (
pay (alice, carol,
drops (11)));
521 env (deposit::auth (carol, becky));
540 env (deposit::unauth (alice, becky));
554 testcase (
"Payment");
560 IOU const USD (gw[
"USD"]);
568 Env env (*
this, features);
569 env.
fund (
XRP (5000), alice, becky, gw);
572 env.
trust (USD (1000), alice);
573 env.
trust (USD (1000), becky);
576 env (
pay (gw, alice, USD (500)));
585 env (
pay (becky, becky, USD (10)),
598 env (
pay (becky, becky, USD (10)),
609 Env env (*
this, features);
610 env.
fund (
XRP (5000), alice, becky, carol, gw);
613 env.
trust (USD (1000), alice);
614 env.
trust (USD (1000), becky);
615 env.
trust (USD (1000), carol);
618 env (
pay (gw, alice, USD (1000)));
622 env (
pay (alice, becky,
XRP (100)));
623 env (
pay (alice, becky, USD (100)));
637 env (deposit::auth (becky, carol));
646 env (deposit::auth (becky, alice));
650 env (
pay (alice, becky,
XRP (100)));
651 env (
pay (alice, becky, USD (100)));
665 env (deposit::unauth (becky, carol));
668 env (
pay (alice, becky,
XRP (100)));
669 env (
pay (alice, becky, USD (100)));
673 env (deposit::unauth (becky, alice));
685 env (
pay (alice, becky,
XRP (100)));
686 env (
pay (alice, becky, USD (100)));