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));
456 env.
fund(
XRP(10000), alice, becky);
500 env(deposit::auth(alice, becky));
523 env(deposit::auth(carol, becky));
542 env(deposit::unauth(alice, becky));
563 IOU const USD(gw[
"USD"]);
571 Env env(*
this, features);
572 env.
fund(
XRP(5000), alice, becky, gw);
575 env.
trust(USD(1000), alice);
576 env.
trust(USD(1000), becky);
579 env(
pay(gw, alice, USD(500)));
600 env(
pay(becky, becky, USD(10)),
613 Env env(*
this, features);
614 env.
fund(
XRP(5000), alice, becky, carol, gw);
617 env.
trust(USD(1000), alice);
618 env.
trust(USD(1000), becky);
619 env.
trust(USD(1000), carol);
622 env(
pay(gw, alice, USD(1000)));
626 env(
pay(alice, becky,
XRP(100)));
627 env(
pay(alice, becky, USD(100)));
641 env(deposit::auth(becky, carol));
650 env(deposit::auth(becky, alice));
654 env(
pay(alice, becky,
XRP(100)));
655 env(
pay(alice, becky, USD(100)));
669 env(deposit::unauth(becky, carol));
672 env(
pay(alice, becky,
XRP(100)));
673 env(
pay(alice, becky, USD(100)));
677 env(deposit::unauth(becky, alice));
689 env(
pay(alice, becky,
XRP(100)));
690 env(
pay(alice, becky, USD(100)));