-
-
-
-
-
-
-
-
1990 assert(features[featureCheckCashMakesTrustLine]);
-
-
-
-
1994 using namespace test::jtx;
-
-
1996 Env env{*
this, features};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2010 ownerCount(env, acct) == owners,
-
2011 "Owner count mismatch",
-
-
-
-
-
-
2017 operator Account
const()
const
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2034 AccountOwns alice{*
this, env,
"alice", 0};
-
2035 AccountOwns bob{*
this, env,
"bob", 0};
-
-
-
2038 env.fund(XRP(5000), noripple(alice, bob));
-
-
-
-
-
-
2044 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
-
-
-
2049 env.fund(XRP(5000), noripple(gw1));
-
-
-
2052 IOU
const CK8 = gw1[
"CK8"];
-
2053 gw1.verifyOwners(__LINE__);
-
-
2055 Account
const yui{
"yui"};
-
-
-
-
-
2060 env.fund(XRP(200), yui);
-
-
-
-
2064 env(check::create(gw1, yui, CK8(99)));
-
-
-
2067 env(check::cash(yui, chkId, CK8(99)),
-
-
-
2070 alice.verifyOwners(__LINE__);
-
-
-
-
2074 env(pay(env.master, yui, XRP(51)));
-
-
2076 env(check::cash(yui, chkId, CK8(99)));
-
-
-
2079 BEAST_EXPECT(ownerCount(env, yui) == 1);
-
-
-
-
2083 gw1.verifyOwners(__LINE__);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2098 auto cmpTrustLines = [
this, &env](
-
2099 Account
const& acct1,
-
2100 Account
const& acct2,
-
2101 IOU
const& offerIou,
-
2102 IOU
const& checkIou) {
-
2103 auto const offerLine =
-
-
2105 auto const checkLine =
-
-
2107 if (offerLine ==
nullptr || checkLine ==
nullptr)
-
-
2109 BEAST_EXPECT(offerLine ==
nullptr && checkLine ==
nullptr);
-
-
-
-
-
-
2115 BEAST_EXPECT(offerLine->at(sfFlags) == checkLine->at(sfFlags));
-
-
-
-
-
2120 [
this, offerLine, checkLine](
SF_AMOUNT const& sfield) {
-
2121 STAmount const offerAmount = offerLine->at(sfield);
-
2122 STAmount const checkAmount = checkLine->at(sfield);
+
+
1983 env.fund(XRP(5000), noripple(alice, bob));
+
+
+
+
+
+
1989 AccountOwns gw1{*
this, env,
"gw1", 0};
+
+
+
+
+
1994 env.fund(XRP(5000), noripple(gw1));
+
+
+
1997 IOU
const CK8 = gw1[
"CK8"];
+
1998 gw1.verifyOwners(__LINE__);
+
+
2000 Account
const yui{
"yui"};
+
+
+
+
+
2005 env.fund(XRP(200), yui);
+
+
+
+
2009 env(check::create(gw1, yui, CK8(99)));
+
+
+
2012 env(check::cash(yui, chkId, CK8(99)),
+
+
+
2015 alice.verifyOwners(__LINE__);
+
+
+
+
2019 env(pay(env.master, yui, XRP(51)));
+
+
2021 env(check::cash(yui, chkId, CK8(99)));
+
+
+
2024 BEAST_EXPECT(ownerCount(env, yui) == 1);
+
+
+
+
2028 gw1.verifyOwners(__LINE__);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
2043 auto cmpTrustLines = [
this, &env](
+
2044 Account
const& acct1,
+
2045 Account
const& acct2,
+
2046 IOU
const& offerIou,
+
2047 IOU
const& checkIou) {
+
2048 auto const offerLine =
+
+
2050 auto const checkLine =
+
+
2052 if (offerLine ==
nullptr || checkLine ==
nullptr)
+
+
2054 BEAST_EXPECT(offerLine ==
nullptr && checkLine ==
nullptr);
+
+
+
+
+
+
2060 BEAST_EXPECT(offerLine->at(sfFlags) == checkLine->at(sfFlags));
+
+
+
+
+
2065 [
this, offerLine, checkLine](
SF_AMOUNT const& sfield) {
+
2066 STAmount const offerAmount = offerLine->at(sfield);
+
2067 STAmount const checkAmount = checkLine->at(sfield);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
2084 cmpReqAmount(sfBalance);
+
2085 cmpReqAmount(sfLowLimit);
+
2086 cmpReqAmount(sfHighLimit);
+
+
+
+
+
2091 [
this, offerLine, checkLine](
auto const& sfield) {
+
+
+
2094 offerLine->isFieldPresent(sfield) ==
+
2095 checkLine->isFieldPresent(sfield)))
+
+
+
+
+
2100 if (!offerLine->isFieldPresent(sfield))
+
+
+
+
+
+
2106 offerLine->at(sfield) == checkLine->at(sfield));
+
+
2108 cmpOptField(sfLowNode);
+
2109 cmpOptField(sfLowQualityIn);
+
2110 cmpOptField(sfLowQualityOut);
+
+
2112 cmpOptField(sfHighNode);
+
2113 cmpOptField(sfHighQualityIn);
+
2114 cmpOptField(sfHighQualityOut);
+
+
+
+
+
+
+
+
2122 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2139 cmpReqAmount(sfBalance);
-
2140 cmpReqAmount(sfLowLimit);
-
2141 cmpReqAmount(sfHighLimit);
-
-
-
-
-
2146 [
this, offerLine, checkLine](
auto const& sfield) {
-
-
-
2149 offerLine->isFieldPresent(sfield) ==
-
2150 checkLine->isFieldPresent(sfield)))
-
-
-
-
-
2155 if (!offerLine->isFieldPresent(sfield))
-
+
2124 BEAST_EXPECT((*env.le(gw1))[sfFlags] == 0);
+
2125 BEAST_EXPECT((*env.le(alice))[sfFlags] == 0);
+
2126 BEAST_EXPECT((*env.le(bob))[sfFlags] == 0);
+
+
+
2129 IOU
const OF1 = gw1[
"OF1"];
+
2130 env(offer(gw1, XRP(98), OF1(98)));
+
+
+
2133 env.le(
keylet::line(gw1, alice, OF1.currency)) ==
nullptr);
+
2134 env(offer(alice, OF1(98), XRP(98)));
+
+
+
+
+
+
+
2141 gw1.verifyOwners(__LINE__);
+
+
+
2144 alice.verifyOwners(__LINE__);
+
+
+
2147 IOU
const CK1 = gw1[
"CK1"];
+
+
2149 env(check::create(gw1, alice, CK1(98)));
+
+
+
2152 env.le(
keylet::line(gw1, alice, CK1.currency)) ==
nullptr);
+
2153 env(check::cash(alice, chkId, CK1(98)));
+
+
+
-
-
-
-
2161 offerLine->at(sfield) == checkLine->at(sfield));
-
-
2163 cmpOptField(sfLowNode);
-
2164 cmpOptField(sfLowQualityIn);
-
2165 cmpOptField(sfLowQualityOut);
-
-
2167 cmpOptField(sfHighNode);
-
2168 cmpOptField(sfHighQualityIn);
-
2169 cmpOptField(sfHighQualityOut);
-
-
+
+
+
+
2161 gw1.verifyOwners(__LINE__);
+
+
+
2164 alice.verifyOwners(__LINE__);
+
+
2166 cmpTrustLines(gw1, alice, OF1, CK1);
+
+
+
+
+
-
-
-
-
+
+
+
+
2177 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
2179 BEAST_EXPECT((*env.le(gw1))[sfFlags] == 0);
-
2180 BEAST_EXPECT((*env.le(alice))[sfFlags] == 0);
-
2181 BEAST_EXPECT((*env.le(bob))[sfFlags] == 0);
-
-
-
2184 IOU
const OF1 = gw1[
"OF1"];
-
2185 env(offer(gw1, XRP(98), OF1(98)));
-
-
-
2188 env.le(
keylet::line(gw1, alice, OF1.currency)) ==
nullptr);
-
2189 env(offer(alice, OF1(98), XRP(98)));
-
-
-
-
-
-
-
2196 gw1.verifyOwners(__LINE__);
-
-
-
2199 alice.verifyOwners(__LINE__);
-
-
+
2178 IOU
const OF1 = gw1[
"OF1"];
+
2179 env(offer(alice, XRP(97), OF1(97)));
+
+
+
2182 env.le(
keylet::line(alice, bob, OF1.currency)) ==
nullptr);
+
2183 env(offer(bob, OF1(97), XRP(97)));
+
+
+
+
+
2188 env.require(balance(alice, OF1(1)));
+
2189 env.require(balance(bob, OF1(97)));
+
+
+
2192 gw1.verifyOwners(__LINE__);
+
2193 alice.verifyOwners(__LINE__);
+
2194 bob.verifyOwners(__LINE__);
+
+
+
+
+
+
+
2202 IOU
const CK1 = gw1[
"CK1"];
-
-
2204 env(check::create(gw1, alice, CK1(98)));
+
+
2204 env(check::create(alice, bob, CK1(97)));
-
2207 env.le(
keylet::line(gw1, alice, CK1.currency)) ==
nullptr);
-
2208 env(check::cash(alice, chkId, CK1(98)));
-
-
-
-
-
-
-
-
2216 gw1.verifyOwners(__LINE__);
-
-
-
2219 alice.verifyOwners(__LINE__);
-
-
2221 cmpTrustLines(gw1, alice, OF1, CK1);
-
-
-
-
-
-
-
-
-
-
-
2232 AccountOwns gw1{*
this, env,
"gw1", 0};
-
2233 IOU
const OF1 = gw1[
"OF1"];
-
2234 env(offer(alice, XRP(97), OF1(97)));
-
-
-
2237 env.le(
keylet::line(alice, bob, OF1.currency)) ==
nullptr);
-
2238 env(offer(bob, OF1(97), XRP(97)));
-
-
-
-
-
2243 env.require(balance(alice, OF1(1)));
-
2244 env.require(balance(bob, OF1(97)));
-
-
+
2207 env.le(
keylet::line(alice, bob, CK1.currency)) ==
nullptr);
+
2208 env(check::cash(bob, chkId, CK1(97)), ter(
terNO_RIPPLE));
+
+
+
+
2212 env.le(
keylet::line(gw1, bob, OF1.currency)) !=
nullptr);
+
+
2214 env.le(
keylet::line(gw1, bob, CK1.currency)) ==
nullptr);
+
+
+
2217 env(check::cancel(alice, chkId));
+
+
+
+
2221 gw1.verifyOwners(__LINE__);
+
2222 alice.verifyOwners(__LINE__);
+
2223 bob.verifyOwners(__LINE__);
+
+
+
+
+
+
+
2230 AccountOwns gw1{*
this, env,
"gw1", 0};
+
+
+
+
+
2235 IOU
const OF2 = gw1[
"OF2"];
+
2236 env(offer(gw1, XRP(96), OF2(96)));
+
+
+
2239 env.le(
keylet::line(gw1, alice, OF2.currency)) ==
nullptr);
+
2240 env(offer(alice, OF2(96), XRP(96)));
+
+
+
+
+
+
2247 gw1.verifyOwners(__LINE__);
-
2248 alice.verifyOwners(__LINE__);
-
2249 bob.verifyOwners(__LINE__);
-
-
-
-
-
-
-
-
2257 IOU
const CK1 = gw1[
"CK1"];
-
-
2259 env(check::create(alice, bob, CK1(97)));
-
-
-
2262 env.le(
keylet::line(alice, bob, CK1.currency)) ==
nullptr);
-
2263 env(check::cash(bob, chkId, CK1(97)), ter(
terNO_RIPPLE));
-
-
-
-
2267 env.le(
keylet::line(gw1, bob, OF1.currency)) !=
nullptr);
-
-
2269 env.le(
keylet::line(gw1, bob, CK1.currency)) ==
nullptr);
-
-
-
2272 env(check::cancel(alice, chkId));
-
-
-
-
2276 gw1.verifyOwners(__LINE__);
-
2277 alice.verifyOwners(__LINE__);
-
2278 bob.verifyOwners(__LINE__);
-
-
-
-
-
-
-
2285 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
-
-
-
2290 IOU
const OF2 = gw1[
"OF2"];
-
2291 env(offer(gw1, XRP(96), OF2(96)));
-
-
-
2294 env.le(
keylet::line(gw1, alice, OF2.currency)) ==
nullptr);
-
2295 env(offer(alice, OF2(96), XRP(96)));
-
-
-
-
-
-
-
2302 gw1.verifyOwners(__LINE__);
-
-
-
2305 alice.verifyOwners(__LINE__);
+
+
+
2250 alice.verifyOwners(__LINE__);
+
+
+
2253 IOU
const CK2 = gw1[
"CK2"];
+
+
2255 env(check::create(gw1, alice, CK2(96)));
+
+
+
2258 env.le(
keylet::line(gw1, alice, CK2.currency)) ==
nullptr);
+
2259 env(check::cash(alice, chkId, CK2(96)));
+
+
+
+
+
+
+
+
2267 gw1.verifyOwners(__LINE__);
+
+
+
2270 alice.verifyOwners(__LINE__);
+
+
2272 cmpTrustLines(gw1, alice, OF2, CK2);
+
+
+
+
+
+
+
+
2280 AccountOwns gw1{*
this, env,
"gw1", 0};
+
2281 IOU
const OF2 = gw1[
"OF2"];
+
2282 env(offer(alice, XRP(95), OF2(95)));
+
+
+
2285 env.le(
keylet::line(alice, bob, OF2.currency)) ==
nullptr);
+
2286 env(offer(bob, OF2(95), XRP(95)));
+
+
+
+
+
2291 gw1.verifyOwners(__LINE__);
+
2292 alice.verifyOwners(__LINE__);
+
2293 bob.verifyOwners(__LINE__);
+
+
+
2296 IOU
const CK2 = gw1[
"CK2"];
+
+
2298 env(check::create(alice, bob, CK2(95)));
+
+
+
2301 env.le(
keylet::line(alice, bob, CK2.currency)) ==
nullptr);
+
2302 env(check::cash(bob, chkId, CK2(95)));
+
+
+
-
-
2308 IOU
const CK2 = gw1[
"CK2"];
-
-
2310 env(check::create(gw1, alice, CK2(96)));
-
-
-
2313 env.le(
keylet::line(gw1, alice, CK2.currency)) ==
nullptr);
-
2314 env(check::cash(alice, chkId, CK2(96)));
-
-
-
-
-
-
-
-
2322 gw1.verifyOwners(__LINE__);
-
-
-
2325 alice.verifyOwners(__LINE__);
-
-
2327 cmpTrustLines(gw1, alice, OF2, CK2);
-
-
-
-
-
-
-
-
2335 AccountOwns gw1{*
this, env,
"gw1", 0};
-
2336 IOU
const OF2 = gw1[
"OF2"];
-
2337 env(offer(alice, XRP(95), OF2(95)));
-
-
-
2340 env.le(
keylet::line(alice, bob, OF2.currency)) ==
nullptr);
-
2341 env(offer(bob, OF2(95), XRP(95)));
-
-
-
-
-
2346 gw1.verifyOwners(__LINE__);
-
2347 alice.verifyOwners(__LINE__);
-
2348 bob.verifyOwners(__LINE__);
-
-
-
2351 IOU
const CK2 = gw1[
"CK2"];
-
-
2353 env(check::create(alice, bob, CK2(95)));
-
-
-
2356 env.le(
keylet::line(alice, bob, CK2.currency)) ==
nullptr);
-
2357 env(check::cash(bob, chkId, CK2(95)));
-
-
-
-
-
-
2363 gw1.verifyOwners(__LINE__);
-
2364 alice.verifyOwners(__LINE__);
-
2365 bob.verifyOwners(__LINE__);
+
+
2308 gw1.verifyOwners(__LINE__);
+
2309 alice.verifyOwners(__LINE__);
+
2310 bob.verifyOwners(__LINE__);
+
+
2312 cmpTrustLines(alice, bob, OF2, CK2);
+
+
+
+
+
+
+
+
+
+
+
2323 AccountOwns gw1{*
this, env,
"gw1", 0};
+
+
+
+
+
+
+
2330 IOU
const OF3 = gw1[
"OF3"];
+
2331 env(offer(gw1, XRP(94), OF3(94)));
+
+
+
2334 env.le(
keylet::line(gw1, alice, OF3.currency)) ==
nullptr);
+
2335 env(offer(alice, OF3(94), XRP(94)));
+
+
+
+
+
+
+
2342 gw1.verifyOwners(__LINE__);
+
+
+
2345 alice.verifyOwners(__LINE__);
+
+
+
2348 IOU
const CK3 = gw1[
"CK3"];
+
+
2350 env(check::create(gw1, alice, CK3(94)));
+
+
+
2353 env.le(
keylet::line(gw1, alice, CK3.currency)) ==
nullptr);
+
2354 env(check::cash(alice, chkId, CK3(94)));
+
+
+
+
+
+
+
+
2362 gw1.verifyOwners(__LINE__);
+
+
+
2365 alice.verifyOwners(__LINE__);
-
2367 cmpTrustLines(alice, bob, OF2, CK2);
+
2367 cmpTrustLines(gw1, alice, OF3, CK3);
-
-
-
-
-
-
-
-
-
-
2378 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
-
-
-
-
-
2385 IOU
const OF3 = gw1[
"OF3"];
-
2386 env(offer(gw1, XRP(94), OF3(94)));
-
-
-
2389 env.le(
keylet::line(gw1, alice, OF3.currency)) ==
nullptr);
-
2390 env(offer(alice, OF3(94), XRP(94)));
-
-
-
-
-
-
-
2397 gw1.verifyOwners(__LINE__);
-
-
-
2400 alice.verifyOwners(__LINE__);
+
+
+
+
+
+
+
2375 AccountOwns gw1{*
this, env,
"gw1", 0};
+
2376 IOU
const OF3 = gw1[
"OF3"];
+
2377 env(offer(alice, XRP(93), OF3(93)));
+
+
+
2380 env.le(
keylet::line(alice, bob, OF3.currency)) ==
nullptr);
+
2381 env(offer(bob, OF3(93), XRP(93)));
+
+
+
+
+
2386 gw1.verifyOwners(__LINE__);
+
2387 alice.verifyOwners(__LINE__);
+
2388 bob.verifyOwners(__LINE__);
+
+
+
2391 IOU
const CK3 = gw1[
"CK3"];
+
+
2393 env(check::create(alice, bob, CK3(93)));
+
+
+
2396 env.le(
keylet::line(alice, bob, CK3.currency)) ==
nullptr);
+
2397 env(check::cash(bob, chkId, CK3(93)));
+
+
+
-
-
2403 IOU
const CK3 = gw1[
"CK3"];
-
-
2405 env(check::create(gw1, alice, CK3(94)));
-
-
-
2408 env.le(
keylet::line(gw1, alice, CK3.currency)) ==
nullptr);
-
2409 env(check::cash(alice, chkId, CK3(94)));
-
-
-
-
-
-
-
-
2417 gw1.verifyOwners(__LINE__);
-
-
-
2420 alice.verifyOwners(__LINE__);
-
-
2422 cmpTrustLines(gw1, alice, OF3, CK3);
-
-
-
-
-
-
-
-
2430 AccountOwns gw1{*
this, env,
"gw1", 0};
-
2431 IOU
const OF3 = gw1[
"OF3"];
-
2432 env(offer(alice, XRP(93), OF3(93)));
-
-
-
2435 env.le(
keylet::line(alice, bob, OF3.currency)) ==
nullptr);
-
2436 env(offer(bob, OF3(93), XRP(93)));
-
-
-
-
-
2441 gw1.verifyOwners(__LINE__);
-
2442 alice.verifyOwners(__LINE__);
-
2443 bob.verifyOwners(__LINE__);
-
-
-
2446 IOU
const CK3 = gw1[
"CK3"];
-
-
2448 env(check::create(alice, bob, CK3(93)));
-
-
-
2451 env.le(
keylet::line(alice, bob, CK3.currency)) ==
nullptr);
-
2452 env(check::cash(bob, chkId, CK3(93)));
-
-
-
-
-
-
2458 gw1.verifyOwners(__LINE__);
-
2459 alice.verifyOwners(__LINE__);
-
2460 bob.verifyOwners(__LINE__);
-
-
2462 cmpTrustLines(alice, bob, OF3, CK3);
-
-
-
-
-
-
-
2469 AccountOwns gw1{*
this, env,
"gw1", 0};
-
-
-
-
-
2474 IOU
const OF4 = gw1[
"OF4"];
-
2475 env(offer(gw1, XRP(92), OF4(92)), ter(
tecFROZEN));
-
-
-
2478 env.le(
keylet::line(gw1, alice, OF4.currency)) ==
nullptr);
-
2479 env(offer(alice, OF4(92), XRP(92)), ter(
tecFROZEN));
-
-
-
-
2483 gw1.verifyOwners(__LINE__);
-
2484 alice.verifyOwners(__LINE__);
-
2485 bob.verifyOwners(__LINE__);
-
-
-
2488 IOU
const CK4 = gw1[
"CK4"];
-
-
2490 env(check::create(gw1, alice, CK4(92)), ter(
tecFROZEN));
-
-
-
2493 env.le(
keylet::line(gw1, alice, CK4.currency)) ==
nullptr);
-
2494 env(check::cash(alice, chkId, CK4(92)), ter(
tecNO_ENTRY));
-
+
+
2403 gw1.verifyOwners(__LINE__);
+
2404 alice.verifyOwners(__LINE__);
+
2405 bob.verifyOwners(__LINE__);
+
+
2407 cmpTrustLines(alice, bob, OF3, CK3);
+
+
+
+
+
+
+
2414 AccountOwns gw1{*
this, env,
"gw1", 0};
+
+
+
+
+
2419 IOU
const OF4 = gw1[
"OF4"];
+
2420 env(offer(gw1, XRP(92), OF4(92)), ter(
tecFROZEN));
+
+
+
2423 env.le(
keylet::line(gw1, alice, OF4.currency)) ==
nullptr);
+
2424 env(offer(alice, OF4(92), XRP(92)), ter(
tecFROZEN));
+
+
+
+
2428 gw1.verifyOwners(__LINE__);
+
2429 alice.verifyOwners(__LINE__);
+
2430 bob.verifyOwners(__LINE__);
+
+
+
2433 IOU
const CK4 = gw1[
"CK4"];
+
+
2435 env(check::create(gw1, alice, CK4(92)), ter(
tecFROZEN));
+
+
+
2438 env.le(
keylet::line(gw1, alice, CK4.currency)) ==
nullptr);
+
2439 env(check::cash(alice, chkId, CK4(92)), ter(
tecNO_ENTRY));
+
+
+
+
2443 gw1.verifyOwners(__LINE__);
+
2444 alice.verifyOwners(__LINE__);
+
2445 bob.verifyOwners(__LINE__);
+
+
+
+
+
2450 env.le(
keylet::line(gw1, alice, OF4.currency)) ==
nullptr);
+
+
2452 env.le(
keylet::line(gw1, alice, CK4.currency)) ==
nullptr);
+
+
+
+
+
+
+
+
2460 AccountOwns gw1{*
this, env,
"gw1", 0};
+
2461 IOU
const OF4 = gw1[
"OF4"];
+
2462 env(offer(alice, XRP(91), OF4(91)), ter(
tecFROZEN));
+
+
+
2465 env.le(
keylet::line(alice, bob, OF4.currency)) ==
nullptr);
+
2466 env(offer(bob, OF4(91), XRP(91)), ter(
tecFROZEN));
+
+
+
+
2470 gw1.verifyOwners(__LINE__);
+
2471 alice.verifyOwners(__LINE__);
+
2472 bob.verifyOwners(__LINE__);
+
+
+
2475 IOU
const CK4 = gw1[
"CK4"];
+
+
2477 env(check::create(alice, bob, CK4(91)), ter(
tecFROZEN));
+
+
+
2480 env.le(
keylet::line(alice, bob, CK4.currency)) ==
nullptr);
+
2481 env(check::cash(bob, chkId, CK4(91)), ter(
tecNO_ENTRY));
+
+
+
+
2485 gw1.verifyOwners(__LINE__);
+
2486 alice.verifyOwners(__LINE__);
+
2487 bob.verifyOwners(__LINE__);
+
+
+
+
+
2492 env.le(
keylet::line(gw1, bob, OF4.currency)) ==
nullptr);
+
+
2494 env.le(
keylet::line(gw1, bob, CK4.currency)) ==
nullptr);
+
-
-
2498 gw1.verifyOwners(__LINE__);
-
2499 alice.verifyOwners(__LINE__);
-
2500 bob.verifyOwners(__LINE__);
-
-
-
-
-
2505 env.le(
keylet::line(gw1, alice, OF4.currency)) ==
nullptr);
-
-
2507 env.le(
keylet::line(gw1, alice, CK4.currency)) ==
nullptr);
-
-
-
-
-
-
-
-
2515 AccountOwns gw1{*
this, env,
"gw1", 0};
-
2516 IOU
const OF4 = gw1[
"OF4"];
-
2517 env(offer(alice, XRP(91), OF4(91)), ter(
tecFROZEN));
-
-
-
2520 env.le(
keylet::line(alice, bob, OF4.currency)) ==
nullptr);
-
2521 env(offer(bob, OF4(91), XRP(91)), ter(
tecFROZEN));
-
-
-
-
2525 gw1.verifyOwners(__LINE__);
+
+
+
+
+
+
+
2503 AccountOwns gw2{*
this, env,
"gw2", 0};
+
2504 env.fund(XRP(5000), gw2);
+
+
+
+
+
+
+
+
+
2513 IOU
const OF5 = gw2[
"OF5"];
+
+
2515 env(offer(gw2, XRP(92), OF5(92)));
+
+
+
+
2519 env.le(
keylet::line(gw2, alice, OF5.currency)) ==
nullptr);
+
2520 env(offer(alice, OF5(92), XRP(92)), ter(
tecNO_LINE));
+
+
+
+
+
2525 gw2.verifyOwners(__LINE__);
2526 alice.verifyOwners(__LINE__);
2527 bob.verifyOwners(__LINE__);
-
-
2530 IOU
const CK4 = gw1[
"CK4"];
-
-
2532 env(check::create(alice, bob, CK4(91)), ter(
tecFROZEN));
-
-
-
2535 env.le(
keylet::line(alice, bob, CK4.currency)) ==
nullptr);
-
2536 env(check::cash(bob, chkId, CK4(91)), ter(
tecNO_ENTRY));
-
-
-
-
2540 gw1.verifyOwners(__LINE__);
-
2541 alice.verifyOwners(__LINE__);
-
2542 bob.verifyOwners(__LINE__);
-
-
-
-
-
2547 env.le(
keylet::line(gw1, bob, OF4.currency)) ==
nullptr);
-
-
2549 env.le(
keylet::line(gw1, bob, CK4.currency)) ==
nullptr);
-
+
+
2530 env(offer_cancel(gw2, gw2OfferSeq));
+
+
+
2533 gw2.verifyOwners(__LINE__);
+
+
+
2536 IOU
const CK5 = gw2[
"CK5"];
+
+
2538 env(check::create(gw2, alice, CK5(92)));
+
+
+
+
2542 env.le(
keylet::line(gw2, alice, CK5.currency)) ==
nullptr);
+
2543 env(check::cash(alice, chkId, CK5(92)), ter(
tecNO_AUTH));
+
+
+
+
+
2548 gw2.verifyOwners(__LINE__);
+
2549 alice.verifyOwners(__LINE__);
+
2550 bob.verifyOwners(__LINE__);
-
-
-
-
-
-
-
2558 AccountOwns gw2{*
this, env,
"gw2", 0};
-
2559 env.fund(XRP(5000), gw2);
-
-
-
-
-
-
-
-
-
2568 IOU
const OF5 = gw2[
"OF5"];
-
-
2570 env(offer(gw2, XRP(92), OF5(92)));
-
-
-
-
2574 env.le(
keylet::line(gw2, alice, OF5.currency)) ==
nullptr);
-
2575 env(offer(alice, OF5(92), XRP(92)), ter(
tecNO_LINE));
-
-
-
-
+
+
+
+
2555 env.le(
keylet::line(gw2, alice, OF5.currency)) ==
nullptr);
+
+
2557 env.le(
keylet::line(gw2, alice, CK5.currency)) ==
nullptr);
+
+
+
2560 env(check::cancel(gw2, chkId));
+
+
+
2563 gw2.verifyOwners(__LINE__);
+
+
+
+
+
+
+
+
2571 AccountOwns gw2{*
this, env,
"gw2", 0};
+
2572 IOU
const OF5 = gw2[
"OF5"];
+
+
+
2575 env(offer(bob, OF5(91), XRP(91)), ter(
tecNO_LINE));
+
+
2577 env.le(
keylet::line(gw2, bob, OF5.currency)) ==
nullptr);
+
+
2580 gw2.verifyOwners(__LINE__);
2581 alice.verifyOwners(__LINE__);
2582 bob.verifyOwners(__LINE__);
-
-
2585 env(offer_cancel(gw2, gw2OfferSeq));
-
-
-
2588 gw2.verifyOwners(__LINE__);
-
-
-
2591 IOU
const CK5 = gw2[
"CK5"];
-
-
2593 env(check::create(gw2, alice, CK5(92)));
-
-
-
-
2597 env.le(
keylet::line(gw2, alice, CK5.currency)) ==
nullptr);
-
2598 env(check::cash(alice, chkId, CK5(92)), ter(
tecNO_AUTH));
-
-
-
-
-
2603 gw2.verifyOwners(__LINE__);
-
2604 alice.verifyOwners(__LINE__);
-
2605 bob.verifyOwners(__LINE__);
-
-
-
-
-
2610 env.le(
keylet::line(gw2, alice, OF5.currency)) ==
nullptr);
-
-
2612 env.le(
keylet::line(gw2, alice, CK5.currency)) ==
nullptr);
-
-
-
2615 env(check::cancel(gw2, chkId));
-
-
-
2618 gw2.verifyOwners(__LINE__);
-
-
-
-
-
-
-
-
2626 AccountOwns gw2{*
this, env,
"gw2", 0};
-
2627 IOU
const OF5 = gw2[
"OF5"];
-
-
-
2630 env(offer(bob, OF5(91), XRP(91)), ter(
tecNO_LINE));
-
-
2632 env.le(
keylet::line(gw2, bob, OF5.currency)) ==
nullptr);
-
-
-
2635 gw2.verifyOwners(__LINE__);
-
2636 alice.verifyOwners(__LINE__);
-
2637 bob.verifyOwners(__LINE__);
-
-
-
2640 IOU
const CK5 = gw2[
"CK5"];
-
-
2642 env(check::create(alice, bob, CK5(91)));
-
-
-
2645 env.le(
keylet::line(alice, bob, CK5.currency)) ==
nullptr);
-
-
-
-
-
2650 env(check::cancel(alice, chkId));
-
-
-
-
2654 gw2.verifyOwners(__LINE__);
-
2655 alice.verifyOwners(__LINE__);
-
2656 bob.verifyOwners(__LINE__);
-
-
-
-
-
2661 env.le(
keylet::line(gw2, bob, OF5.currency)) ==
nullptr);
-
-
2663 env.le(
keylet::line(gw2, bob, CK5.currency)) ==
nullptr);
-
-
+
+
2585 IOU
const CK5 = gw2[
"CK5"];
+
+
2587 env(check::create(alice, bob, CK5(91)));
+
+
+
2590 env.le(
keylet::line(alice, bob, CK5.currency)) ==
nullptr);
+
+
+
+
+
2595 env(check::cancel(alice, chkId));
+
+
+
+
2599 gw2.verifyOwners(__LINE__);
+
2600 alice.verifyOwners(__LINE__);
+
2601 bob.verifyOwners(__LINE__);
+
+
+
+
+
2606 env.le(
keylet::line(gw2, bob, OF5.currency)) ==
nullptr);
+
+
2608 env.le(
keylet::line(gw2, bob, CK5.currency)) ==
nullptr);
+
+