19        using namespace test::jtx;
 
   20        Env env(*
this, features);
 
   23        Account alice{
"alice"};
 
   26        env.fund(XRP(1000), G1, alice, bob);
 
   29        env.trust(G1[
"USD"](100), bob);
 
   30        env.trust(G1[
"USD"](100), alice);
 
   33        env(pay(G1, bob, G1[
"USD"](10)));
 
   34        env(pay(G1, alice, G1[
"USD"](100)));
 
   37        env(offer(alice, XRP(500), G1[
"USD"](100)));
 
   41            auto lines = getAccountLines(env, bob);
 
   42            if (!BEAST_EXPECT(checkArraySize(lines[jss::lines], 1u)))
 
   44            BEAST_EXPECT(lines[jss::lines][0u][jss::account] == G1.human());
 
   45            BEAST_EXPECT(lines[jss::lines][0u][jss::limit] == 
"100");
 
   46            BEAST_EXPECT(lines[jss::lines][0u][jss::balance] == 
"10");
 
   50            auto lines = getAccountLines(env, alice);
 
   51            if (!BEAST_EXPECT(checkArraySize(lines[jss::lines], 1u)))
 
   53            BEAST_EXPECT(lines[jss::lines][0u][jss::account] == G1.human());
 
   54            BEAST_EXPECT(lines[jss::lines][0u][jss::limit] == 
"100");
 
   55            BEAST_EXPECT(lines[jss::lines][0u][jss::balance] == 
"100");
 
   61            env(pay(alice, bob, G1[
"USD"](1)));
 
   64            env(pay(bob, alice, G1[
"USD"](1)));
 
   72            auto affected = env.meta()->getJson(
 
   74            if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
 
   77                affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
 
   79                ff[sfLowLimit.fieldName] ==
 
   89            env(offer(bob, G1[
"USD"](5), XRP(25)));
 
   90            auto affected = env.meta()->getJson(
 
   92            if (!BEAST_EXPECT(checkArraySize(affected, 5u)))
 
   95                affected[3u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
 
   97                ff[sfHighLimit.fieldName] ==
 
  102            BEAST_EXPECT(ff[sfBalance.fieldName] == amt);
 
  111            env(pay(alice, bob, G1[
"USD"](1)));
 
  114            env(pay(bob, alice, G1[
"USD"](1)), ter(
tecPATH_DRY));
 
  120            auto lines = getAccountLines(env, G1);
 
  122            for (
auto const& it : lines[jss::lines])
 
  124                if (it[jss::account] == bob.human())
 
  130            if (!BEAST_EXPECT(bobLine))
 
  132            BEAST_EXPECT(bobLine[jss::freeze] == 
true);
 
  133            BEAST_EXPECT(bobLine[jss::balance] == 
"-16");
 
  138            auto lines = getAccountLines(env, bob);
 
  140            for (
auto const& it : lines[jss::lines])
 
  142                if (it[jss::account] == G1.human())
 
  148            if (!BEAST_EXPECT(g1Line))
 
  150            BEAST_EXPECT(g1Line[jss::freeze_peer] == 
true);
 
  151            BEAST_EXPECT(g1Line[jss::balance] == 
"16");
 
  158            auto affected = env.meta()->getJson(
 
  160            if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
 
  163                affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
 
  165                ff[sfLowLimit.fieldName] ==
 
  167            BEAST_EXPECT(!(ff[jss::Flags].asUInt() & 
lsfLowFreeze));
 
 
  365        using namespace test::jtx;
 
  366        Env env(*
this, features);
 
  374        env.fund(XRP(12000), G1);
 
  375        env.fund(XRP(1000), A1);
 
  376        env.fund(XRP(20000), A2, A3, A4);
 
  379        env.trust(G1[
"USD"](1200), A1);
 
  380        env.trust(G1[
"USD"](200), A2);
 
  381        env.trust(G1[
"BTC"](100), A3);
 
  382        env.trust(G1[
"BTC"](100), A4);
 
  385        env(pay(G1, A1, G1[
"USD"](1000)));
 
  386        env(pay(G1, A2, G1[
"USD"](100)));
 
  387        env(pay(G1, A3, G1[
"BTC"](100)));
 
  388        env(pay(G1, A4, G1[
"BTC"](100)));
 
  391        env(offer(G1, XRP(10000), G1[
"USD"](100)), txflags(
tfPassive));
 
  392        env(offer(G1, G1[
"USD"](100), XRP(10000)), txflags(
tfPassive));
 
  393        env(offer(A1, XRP(10000), G1[
"USD"](100)), txflags(
tfPassive));
 
  394        env(offer(A2, G1[
"USD"](100), XRP(10000)), txflags(
tfPassive));
 
  414            auto offers = env.rpc(
 
  417                "XRP")[jss::result][jss::offers];
 
  418            if (!BEAST_EXPECT(checkArraySize(offers, 2u)))
 
  421            for (
auto const& offer : offers)
 
  423                accounts.
insert(offer[jss::Account].asString());
 
  425            BEAST_EXPECT(accounts.
find(A2.human()) != 
std::end(accounts));
 
  426            BEAST_EXPECT(accounts.
find(G1.human()) != 
std::end(accounts));
 
  432                std::string(
"USD/") + G1.human())[jss::result][jss::offers];
 
  433            if (!BEAST_EXPECT(checkArraySize(offers, 2u)))
 
  436            for (
auto const& offer : offers)
 
  438                accounts.
insert(offer[jss::Account].asString());
 
  440            BEAST_EXPECT(accounts.
find(A1.human()) != 
std::end(accounts));
 
  441            BEAST_EXPECT(accounts.
find(G1.human()) != 
std::end(accounts));
 
  447            env(offer(A3, G1[
"BTC"](1), XRP(1)));
 
  450            env(offer(A4, XRP(1), G1[
"BTC"](1)));
 
  453            env(pay(G1, A2, G1[
"USD"](1)));
 
  456            env(pay(A2, G1, G1[
"USD"](1)));
 
  459            env(pay(A2, A1, G1[
"USD"](1)));
 
  462            env(pay(A1, A2, G1[
"USD"](1)));
 
  475            env(offer(A3, G1[
"BTC"](1), XRP(1)), ter(
tecFROZEN));
 
  478            env(offer(A4, XRP(1), G1[
"BTC"](1)), ter(
tecFROZEN));
 
  484            auto offers = getAccountOffers(env, G1)[jss::offers];
 
  485            if (!BEAST_EXPECT(checkArraySize(offers, 2u)))
 
  493                std::string(
"USD/") + G1.human())[jss::result][jss::offers];
 
  494            if (!BEAST_EXPECT(checkArraySize(offers, 2u)))
 
  500                "XRP")[jss::result][jss::offers];
 
  501            if (!BEAST_EXPECT(checkArraySize(offers, 2u)))
 
  508            env(pay(G1, A2, G1[
"USD"](1)));
 
  511            env(pay(A2, G1, G1[
"USD"](1)));
 
 
  636        testcase(
"Offers for Frozen Trust Lines");
 
  638        using namespace test::jtx;
 
  639        Env env(*
this, features);
 
  646        env.fund(XRP(1000), G1, A3, A4);
 
  647        env.fund(XRP(2000), A2);
 
  650        env.trust(G1[
"USD"](1000), A2);
 
  651        env.trust(G1[
"USD"](2000), A3);
 
  652        env.trust(G1[
"USD"](2000), A4);
 
  655        env(pay(G1, A3, G1[
"USD"](2000)));
 
  656        env(pay(G1, A4, G1[
"USD"](2000)));
 
  659        env(offer(A3, XRP(1000), G1[
"USD"](1000)), txflags(
tfPassive));
 
  664        env(pay(A2, G1, G1[
"USD"](1)), paths(G1[
"USD"]), sendmax(XRP(1)));
 
  668        auto offers = getAccountOffers(env, A3)[jss::offers];
 
  669        if (!BEAST_EXPECT(checkArraySize(offers, 1u)))
 
  672            offers[0u][jss::taker_gets] ==
 
  676        env(offer(A4, XRP(999), G1[
"USD"](999)));
 
  683        if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
 
  686            affected[1u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
 
  688            ff[sfHighLimit.fieldName] ==
 
  690        BEAST_EXPECT(!(ff[jss::Flags].asUInt() & 
lsfLowFreeze));
 
  695        offers = getAccountOffers(env, A3)[jss::offers];
 
  696        if (!BEAST_EXPECT(checkArraySize(offers, 1u)))
 
  700        env(pay(A2, G1, G1[
"USD"](1)), paths(G1[
"USD"]), sendmax(XRP(1)));
 
  704        offers = getAccountOffers(env, A3)[jss::offers];
 
  705        if (!BEAST_EXPECT(checkArraySize(offers, 0u)))
 
  713        if (!BEAST_EXPECT(checkArraySize(affected, 2u)))
 
  715        ff = affected[0u][sfModifiedNode.fieldName][sfFinalFields.fieldName];
 
  717            ff[sfLowLimit.fieldName] ==
 
  724        env(offer(A2, G1[
"USD"](999), XRP(999)));
 
  727        if (!BEAST_EXPECT(checkArraySize(affected, 8u)))
 
  729        auto created = affected[0u][sfCreatedNode.fieldName];
 
  731            created[sfNewFields.fieldName][jss::Account] == A2.human());
 
  735        offers = getAccountOffers(env, A4)[jss::offers];
 
  736        if (!BEAST_EXPECT(checkArraySize(offers, 0u)))
 
 
  743        testcase(
"Offers on frozen trust lines");
 
  745        using namespace test::jtx;
 
  746        Env env(*
this, features);
 
  752        auto const USD{G1[
"USD"]};
 
  754        env.fund(XRP(10000), G1, A1, A2, A3);
 
  757        auto const limit = USD(10000);
 
  758        env.trust(limit, A1, A2, A3);
 
  761        env(pay(G1, A1, USD(1000)));
 
  762        env(pay(G1, A2, USD(1000)));
 
  767        env(offer(A2, XRP(100), USD(50)), txflags(
tfPassive));
 
  771        env(offer(A3, USD(100), XRP(100)), txflags(
tfPassive));
 
  773        env.require(offers(A2, 1), offers(A3, 1));
 
  778        env.require(balance(A1, USD(1001)), balance(A2, USD(999)));
 
  783        env.require(balance(A1, USD(1000)), balance(A3, USD(1)));
 
  792            env(offer(A1, USD(1), XRP(0.5)), txflags(
tfPassive));
 
  794            env.require(balance(A1, USD(1000)), offers(A1, 1));
 
  796            env(offer_cancel(A1, env.seq(A1) - 1));
 
  797            env.require(offers(A1, 0));
 
  804                balance(A1, USD(1001)), balance(A2, USD(998)), offers(A1, 0));
 
  807            env(offer(A1, XRP(2), USD(1)),
 
  811            env.require(balance(A1, USD(1001)), offers(A1, 0));
 
  814            env(offer(A1, XRP(1), USD(1)),
 
  818            env.require(balance(A1, USD(1001)), offers(A1, 0));
 
  826        if (features[featureDeepFreeze])
 
  832            env(offer(A1, USD(1), XRP(0.5)),
 
  838            env(offer(A1, USD(1), XRP(2)),
 
  844            env(offer(A1, XRP(2), USD(1)),
 
  850            env(offer(A1, XRP(1), USD(1)),
 
  857            env.require(balance(A1, USD(1001)), offers(A1, 0));
 
  863            env.require(balance(A1, USD(1001)));
 
  864            env(offer(A1, XRP(1.9), USD(1)));
 
  865            env(offer(A1, USD(1), XRP(1.1)));
 
  867            env.require(balance(A1, USD(1001)), offers(A1, 2));
 
  873            env.require(balance(A1, USD(1001)), balance(A2, USD(998)));
 
  874            env(offer(A2, XRP(1.1), USD(1)), txflags(
tfFillOrKill));
 
  877                balance(A1, USD(1002)), balance(A2, USD(997)), offers(A1, 1));
 
  881                balance(A1, USD(1002)), balance(A3, USD(1)), offers(A1, 1));
 
  882            env(offer(A3, USD(1), XRP(1.9)),
 
  887                balance(A1, USD(1002)), balance(A3, USD(1)), offers(A1, 0));
 
  895        if (features[featureDeepFreeze])
 
  897            env.require(balance(A1, USD(1002)));
 
  898            env(offer(A1, XRP(1.9), USD(1)));
 
  899            env(offer(A1, USD(1), XRP(1.1)));
 
  901            env.require(balance(A1, USD(1002)), offers(A1, 2));
 
  907            env.require(balance(A1, USD(1002)), balance(A2, USD(997)));
 
  908            env(offer(A2, XRP(1.1), USD(1)),
 
  913                balance(A1, USD(1002)), balance(A2, USD(997)), offers(A1, 1));
 
  917                balance(A1, USD(1002)), balance(A3, USD(1)), offers(A1, 1));
 
  918            env(offer(A3, USD(1), XRP(1.9)),
 
  923                balance(A1, USD(1002)), balance(A3, USD(1)), offers(A1, 0));
 
  936            env(offer(A1, USD(1), XRP(0.5)), txflags(
tfPassive));
 
  938            env.require(balance(A1, USD(1002)), offers(A1, 1));
 
  940            env(offer_cancel(A1, env.seq(A1) - 1));
 
  941            env.require(offers(A1, 0));
 
  945            env(offer(A1, USD(1), XRP(2)),
 
  950                balance(A1, USD(1002)), balance(A2, USD(997)), offers(A1, 0));
 
  953            env(offer(A1, XRP(2), USD(1)), txflags(
tfPassive));
 
  955            env.require(balance(A1, USD(1002)), offers(A1, 1));
 
  957            env(offer_cancel(A1, env.seq(A1) - 1));
 
  958            env.require(offers(A1, 0));
 
  964            env.require(balance(A1, USD(1001)), offers(A1, 0));
 
  972        if (features[featureDeepFreeze])
 
  978            env(offer(A1, USD(1), XRP(0.5)),
 
  984            env(offer(A1, USD(1), XRP(2)),
 
  990            env(offer(A1, XRP(2), USD(1)),
 
  996            env(offer(A1, XRP(1), USD(1)),
 
 
 1009        testcase(
"Longer paths payment on frozen trust lines");
 
 1010        using namespace test::jtx;
 
 1013        Env env(*
this, features);
 
 1017        auto const USD{G1[
"USD"]};
 
 1019        env.fund(XRP(10000), G1, A1, A2);
 
 1022        auto const limit = USD(10000);
 
 1023        env.trust(limit, A1, A2);
 
 1026        env(pay(G1, A1, USD(1000)));
 
 1027        env(pay(G1, A2, USD(1000)));
 
 1030        env(offer(A2, XRP(100), USD(100)), txflags(
tfPassive));
 
 1039            env(pay(A1, G1, USD(10)),
 
 1047            env(pay(G1, A1, USD(10)),
 
 1059        if (features[featureDeepFreeze])
 
 1065            env(pay(A1, G1, USD(10)),
 
 1073            env(pay(G1, A1, USD(10)),
 
 1091            env(pay(A1, G1, USD(10)),
 
 1098            env(pay(G1, A1, USD(10)),
 
 1110        if (features[featureDeepFreeze])
 
 1116            env(pay(A1, G1, USD(10)),
 
 1124            env(pay(G1, A1, USD(10)),
 
 1136        env(offer_cancel(A1, env.seq(A1) - 1));
 
 1137        env.require(offers(A1, 0));
 
 1140        env(offer(A2, USD(100), XRP(100)), txflags(
tfPassive));
 
 1149            env(pay(A1, G1, XRP(10)),
 
 1156            env(pay(G1, A1, XRP(10)),
 
 1168        if (features[featureDeepFreeze])
 
 1174            env(pay(A1, G1, XRP(10)),
 
 1182            env(pay(G1, A1, XRP(10)),
 
 1200            env(pay(A1, G1, XRP(10)),
 
 1207            env(pay(G1, A1, XRP(10)),
 
 1219        if (features[featureDeepFreeze])
 
 1225            env(pay(A1, G1, XRP(10)),
 
 1233            env(pay(G1, A1, XRP(10)),
 
 1245        env(offer_cancel(A1, env.seq(A1) - 1));
 
 1246        env.require(offers(A1, 0));
 
 
 1253        testcase(
"Direct payments on frozen trust lines");
 
 1255        using namespace test::jtx;
 
 1256        Env env(*
this, features);
 
 1261        auto const USD{G1[
"USD"]};
 
 1263        env.fund(XRP(10000), G1, A1, A2);
 
 1266        auto const limit = USD(10000);
 
 1267        env.trust(limit, A1, A2);
 
 1270        env(pay(G1, A1, USD(1000)));
 
 1271        env(pay(G1, A2, USD(1000)));
 
 1276        env(pay(A1, G1, USD(1)));
 
 1277        env(pay(A2, G1, USD(1)));
 
 1281        env(pay(A1, A2, USD(1)));
 
 1282        env(pay(A2, A1, USD(1)));
 
 1290        env(pay(A1, G1, USD(1)));
 
 1291        env(pay(G1, A1, USD(1)));
 
 1298        env(pay(A2, A1, USD(1)));
 
 1301        if (features[featureDeepFreeze])
 
 1308            env(pay(A1, G1, USD(1)));
 
 1309            env(pay(G1, A1, USD(1)));
 
 1332        env(pay(A2, G1, USD(1)));
 
 1333        env(pay(G1, A2, USD(1)));
 
 1337        env(pay(A1, G1, USD(1)));
 
 1340        env(pay(A1, A2, USD(1)));
 
 1344        env(pay(G1, A1, USD(1)));
 
 1348        if (features[featureDeepFreeze])
 
 1355            env(pay(A2, G1, USD(1)));
 
 1356            env(pay(G1, A2, USD(1)));
 
 1360            env(pay(A1, G1, USD(1)));
 
 1364            env(pay(G1, A1, USD(1)));
 
 
 1375        testcase(
"Checks on frozen trust lines");
 
 1377        using namespace test::jtx;
 
 1378        Env env(*
this, features);
 
 1383        auto const USD{G1[
"USD"]};
 
 1385        env.fund(XRP(10000), G1, A1, A2);
 
 1388        auto const limit = USD(10000);
 
 1389        env.trust(limit, A1, A2);
 
 1392        env(pay(G1, A1, USD(1000)));
 
 1393        env(pay(G1, A2, USD(1000)));
 
 1399            env(check::create(G1, A1, USD(10)));
 
 1401            env(check::cash(A1, checkId, USD(10)));
 
 1407            env(check::create(G1, A2, USD(10)));
 
 1409            env(check::cash(A2, checkId, USD(10)));
 
 1415            env(check::create(A1, G1, USD(10)));
 
 1417            env(check::cash(G1, checkId, USD(10)));
 
 1423            env(check::create(A1, A2, USD(10)));
 
 1425            env(check::cash(A2, checkId, USD(10)));
 
 1431            env(check::create(A2, G1, USD(10)));
 
 1433            env(check::cash(G1, checkId, USD(10)));
 
 1439            env(check::create(A2, A1, USD(10)));
 
 1441            env(check::cash(A1, checkId, USD(10)));
 
 1454                env(check::create(G1, A1, USD(10)));
 
 1456                env(check::cash(A1, checkId, USD(10)), ter(
tecFROZEN));
 
 1463                env(check::create(A2, A1, USD(10)));
 
 1466                env(check::cash(A1, checkId, USD(10)), ter(
tecFROZEN));
 
 1472                env(check::create(A1, G1, USD(10)), ter(
tecFROZEN));
 
 1479                env(check::create(A1, A2, USD(10)), ter(
tecFROZEN));
 
 1489            env(check::create(A1, G1, USD(10)));
 
 1492            env(check::create(A1, A2, USD(10)));
 
 1516        if (features[featureDeepFreeze])
 
 1524                env(check::create(G1, A1, USD(10)));
 
 1527                env(check::cash(A1, checkId, USD(10)), ter(
tecFROZEN));
 
 1534                env(check::create(A2, A1, USD(10)));
 
 1537                env(check::cash(A1, checkId, USD(10)), ter(
tecFROZEN));
 
 1543                env(check::create(A1, G1, USD(10)), ter(
tecFROZEN));
 
 1550                env(check::create(A1, A2, USD(10)), ter(
tecFROZEN));
 
 1560            env(check::create(A1, G1, USD(10)));
 
 1563            env(check::create(A1, A2, USD(10)));
 
 1593                env(check::create(G1, A1, USD(10)), ter(
tecFROZEN));
 
 1599                env(check::create(A2, A1, USD(10)), ter(
tecFROZEN));
 
 1606                env(check::create(A1, G1, USD(10)));
 
 1608                env(check::cash(G1, checkId, USD(10)));
 
 1615                env(check::create(A1, A2, USD(10)));
 
 1617                env(check::cash(A2, checkId, USD(10)));
 
 1627        if (features[featureDeepFreeze])
 
 1634                env(check::create(G1, A1, USD(10)), ter(
tecFROZEN));
 
 1640                env(check::create(A2, A1, USD(10)), ter(
tecFROZEN));
 
 1647                env(check::create(A1, G1, USD(10)));
 
 1656                env(check::create(A1, A2, USD(10)));
 
 
 1670        testcase(
"AMM payments on frozen trust lines");
 
 1671        using namespace test::jtx;
 
 1674        Env env(*
this, features);
 
 1678        auto const USD{G1[
"USD"]};
 
 1680        env.fund(XRP(10000), G1, A1, A2);
 
 1683        env.trust(G1[
"USD"](10000), A1, A2);
 
 1686        env(pay(G1, A1, USD(1000)));
 
 1687        env(pay(G1, A2, USD(1000)));
 
 1690        AMM ammG1(env, G1, XRP(1'000), USD(1'000));
 
 1699            env(pay(A1, A2, USD(10)),
 
 1706            env(pay(A1, A2, XRP(10)),
 
 1714            env(pay(A2, A1, USD(10)),
 
 1721            env(pay(A2, A1, XRP(10)),
 
 1733        if (features[featureDeepFreeze])
 
 1739            env(pay(A1, A2, USD(10)),
 
 1746            env(pay(A1, A2, XRP(10)),
 
 1754            env(pay(A2, A1, USD(10)),
 
 1762            env(pay(A2, A1, XRP(10)),
 
 
 1776        testcase(
"NFT offers on frozen trust lines");
 
 1777        using namespace test::jtx;
 
 1779        Env env(*
this, features);
 
 1783        auto const USD{G1[
"USD"]};
 
 1785        env.fund(XRP(10000), G1, A1, A2);
 
 1788        auto const limit = USD(10000);
 
 1789        env.trust(limit, A1, A2);
 
 1792        env(pay(G1, A1, USD(1000)));
 
 1793        env(pay(G1, A2, USD(1000)));
 
 1803            env(token::acceptSellOffer(A1, sellOfferIndex));
 
 1811        if (features[featureDeepFreeze])
 
 1819            env(token::acceptSellOffer(A1, sellOfferIndex), ter(
tecFROZEN));
 
 1833            env(token::acceptSellOffer(A2, sellOfferIndex),
 
 1842        if (features[featureDeepFreeze])
 
 1849            env(token::acceptSellOffer(A2, sellOfferIndex),
 
 1858        if (features[featureDeepFreeze] &&
 
 1859            features[fixEnforceNFTokenTrustlineV2])
 
 1869            env(token::createOffer(A1, nftID, USD(10)), token::owner(A2));
 
 1872            env(token::acceptBuyOffer(A2, buyIdx), ter(
tecFROZEN));
 
 1878            env(token::acceptBuyOffer(A2, buyIdx));
 
 1889            env(token::acceptSellOffer(A1, sellOfferIndex));
 
 1897        if (features[featureDeepFreeze])
 
 1905            env(token::acceptSellOffer(A1, sellOfferIndex), ter(
tecFROZEN));
 
 1919            env(token::acceptSellOffer(A2, sellOfferIndex));
 
 1927        if (features[featureDeepFreeze])
 
 1934            env(token::acceptSellOffer(A2, sellOfferIndex),
 
 1943        if (features[featureDeepFreeze] &&
 
 1944            features[fixEnforceNFTokenTrustlineV2])
 
 1946            Account broker{
"broker"};
 
 1947            env.fund(XRP(10000), broker);
 
 1957            env(token::createOffer(A2, nftID, USD(10)), txflags(
tfSellNFToken));
 
 1960            env(token::createOffer(A1, nftID, USD(11)), token::owner(A2));
 
 1963            env(token::brokerOffers(broker, buyIdx, sellIdx),
 
 1964                token::brokerFee(USD(1)),
 
 1970        if (features[featureDeepFreeze] &&
 
 1971            features[fixEnforceNFTokenTrustlineV2])
 
 1973            Account minter{
"minter"};
 
 1974            env.fund(XRP(10000), minter);
 
 1976            env(trust(G1, minter[
"USD"](1000)));
 
 1981            env(token::mint(minter, 0),
 
 1988            env(token::createOffer(minter, nftID, drops(1)),
 
 1991            env(token::acceptSellOffer(A2, minterSellIdx));
 
 1995            env(token::createOffer(A2, nftID, USD(100)),
 
 2000            env(token::acceptSellOffer(A1, sellIdx), ter(
tecFROZEN));