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);