Skip to content

Commit

Permalink
Comment fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
vvysokikh1 committed Jan 23, 2025
1 parent 7ba80fe commit 79a4da3
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 40 deletions.
91 changes: 52 additions & 39 deletions src/test/app/Freeze_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,17 @@ class Freeze_test : public beast::unit_test::suite
env.close();
}

// test: Holder clearing freeze flags has no effect. Each sides'
// flags are independent
env(trust(A1, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
{
auto const flags = getTrustlineFlags(env, 2u, 1u);
BEAST_EXPECT(flags & lsfLowFreeze);
BEAST_EXPECT(flags & lsfLowDeepFreeze);
BEAST_EXPECT(!(flags & (lsfHighFreeze | lsfHighDeepFreeze)));
env.close();
}

// test: Issuer can't clear normal freeze when line is deep frozen
env(trust(G1, A1["USD"](0), tfClearFreeze), ter(tecNO_PERMISSION));

Expand Down Expand Up @@ -760,7 +771,8 @@ class Freeze_test : public beast::unit_test::suite
env.fund(XRP(10000), G1, A1, A2, A3);
env.close();

env.trust(G1["USD"](10000), A1, A2, A3);
auto const limit = USD(10000);
env.trust(limit, A1, A2, A3);
env.close();

env(pay(G1, A1, USD(1000)));
Expand Down Expand Up @@ -924,12 +936,10 @@ class Freeze_test : public beast::unit_test::suite
// Testing aggressive and passive offer placing, trustline frozen by
// the holder
{
env(trust(A1, G1["USD"](0), tfSetFreeze));
env(trust(A1, limit, tfSetFreeze));
env.close();

// test: A1 can make passive buy offer
// TODO: I expected that it would not possible to create buy offer
// in this situation. Fix later.
env(offer(A1, USD(1), XRP(0.5)), txflags(tfPassive));
env.close();
env.require(balance(A1, USD(1002)), offers(A1, 1));
Expand Down Expand Up @@ -972,15 +982,15 @@ class Freeze_test : public beast::unit_test::suite
env.close();
env.require(balance(A1, USD(1001)), offers(A1, 0));

env(trust(A1, G1["USD"](0), tfClearFreeze));
env(trust(A1, limit, tfClearFreeze));
env.close();
}

// Testing aggressive and passive offer placing, trustline deep frozen
// by the holder
if (features[featureDeepFreeze])
{
env(trust(A1, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A1, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: A1 cannot create passive buy offer
Expand All @@ -999,7 +1009,7 @@ class Freeze_test : public beast::unit_test::suite
env(offer(A1, XRP(1), USD(1)), ter(tecUNFUNDED_OFFER));
env.close();

env(trust(A1, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A1, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}
}
Expand All @@ -1020,7 +1030,8 @@ class Freeze_test : public beast::unit_test::suite
env.fund(XRP(10000), G1, A1, A2);
env.close();

env.trust(G1["USD"](10000), A1, A2);
auto const limit = USD(10000);
env.trust(limit, A1, A2);
env.close();

env(pay(G1, A1, USD(1000)));
Expand Down Expand Up @@ -1084,7 +1095,7 @@ class Freeze_test : public beast::unit_test::suite
// Testing payments A1 <-> G1 using offer from A2 frozen by currency
// holder.
{
env(trust(A2, G1["USD"](0), tfSetFreeze));
env(trust(A2, limit, tfSetFreeze));
env.close();

// test: A1 can send USD using XRP through A2 offer
Expand All @@ -1101,15 +1112,15 @@ class Freeze_test : public beast::unit_test::suite
txflags(tfNoRippleDirect));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze));
env(trust(A2, limit, tfClearFreeze));
env.close();
}

// Testing payments A1 <-> G1 using offer from A2 deep frozen by
// currency holder.
if (features[featureDeepFreeze])
{
env(trust(A2, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A2, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: A1 cannot send USD using XRP through A2 offer
Expand All @@ -1128,7 +1139,7 @@ class Freeze_test : public beast::unit_test::suite
ter(tecPATH_PARTIAL));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A2, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}

Expand Down Expand Up @@ -1193,7 +1204,7 @@ class Freeze_test : public beast::unit_test::suite
// Testing payments A1 <-> G1 using offer from A2 frozen by currency
// holder.
{
env(trust(A2, G1["USD"](0), tfSetFreeze));
env(trust(A2, limit, tfSetFreeze));
env.close();

// test: A1 can send XRP using USD through A2 offer
Expand All @@ -1214,15 +1225,15 @@ class Freeze_test : public beast::unit_test::suite
txflags(tfNoRippleDirect));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze));
env(trust(A2, limit, tfClearFreeze));
env.close();
}

// Testing payments A1 <-> G1 using offer from A2 deep frozen by
// currency holder.
if (features[featureDeepFreeze])
{
env(trust(A2, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A2, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: A1 cannot send XRP using USD through A2 offer
Expand All @@ -1241,7 +1252,7 @@ class Freeze_test : public beast::unit_test::suite
ter(tecPATH_PARTIAL));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A2, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}

Expand All @@ -1267,7 +1278,8 @@ class Freeze_test : public beast::unit_test::suite
env.fund(XRP(10000), G1, A1, A2);
env.close();

env.trust(G1["USD"](1000), A1, A2);
auto const limit = USD(10000);
env.trust(limit, A1, A2);
env.close();

env(pay(G1, A1, USD(1000)));
Expand Down Expand Up @@ -1328,7 +1340,7 @@ class Freeze_test : public beast::unit_test::suite
env.close();

// A1 freezes trust line
env(trust(A1, G1["USD"](0), tfSetFreeze));
env(trust(A1, limit, tfSetFreeze));
env.close();

// Issuer and A2 must not be affected
Expand All @@ -1343,15 +1355,15 @@ class Freeze_test : public beast::unit_test::suite
env(pay(A1, A2, USD(1)));
env.close();

// Issuer cannot sent tokens to A1
env(pay(G1, A1, USD(1)), ter(tecPATH_DRY));
// Issuer can sent tokens to A1
env(pay(G1, A1, USD(1)));
// A2 cannot send tokens to A1
env(pay(A2, A1, USD(1)), ter(tecPATH_DRY));

if (features[featureDeepFreeze])
{
// A1 deep freezes trust line
env(trust(A1, G1["USD"](0), tfSetDeepFreeze));
env(trust(A1, limit, tfSetDeepFreeze));
env.close();

// Issuer and A2 must not be affected
Expand All @@ -1363,8 +1375,8 @@ class Freeze_test : public beast::unit_test::suite
env(pay(A1, G1, USD(1)));
env.close();

// Issuer cannot send tokens to A1
env(pay(G1, A1, USD(1)), ter(tecPATH_DRY));
// Issuer can send tokens to A1
env(pay(G1, A1, USD(1)));
// A2 cannot send tokens to A1
env(pay(A2, A1, USD(1)), ter(tecPATH_DRY));
// A1 cannot send tokens to A2
Expand All @@ -1388,7 +1400,8 @@ class Freeze_test : public beast::unit_test::suite
env.fund(XRP(10000), G1, A1, A2);
env.close();

env.trust(USD(1000), A1, A2);
auto const limit = USD(10000);
env.trust(limit, A1, A2);
env.close();

env(pay(G1, A1, USD(1000)));
Expand Down Expand Up @@ -1530,8 +1543,7 @@ class Freeze_test : public beast::unit_test::suite
uint256 const checkId{getCheckIndex(G1, env.seq(G1))};
env(check::create(G1, A1, USD(10)));
env.close();
// This might be a bug in current check implementation.
// Normal freeze should not prevent A1 balance from increasing.

env(check::cash(A1, checkId, USD(10)), ter(tecFROZEN));
env.close();
}
Expand Down Expand Up @@ -1596,7 +1608,7 @@ class Freeze_test : public beast::unit_test::suite
// Testing creation and cashing of checks on a trustline frozen by
// a currency holder
{
env(trust(A1, G1["USD"](0), tfSetFreeze));
env(trust(A1, limit, tfSetFreeze));
env.close();

// test: issuer writes check to A1.
Expand Down Expand Up @@ -1629,15 +1641,15 @@ class Freeze_test : public beast::unit_test::suite
env.close();
}

env(trust(A1, G1["USD"](0), tfClearFreeze));
env(trust(A1, limit, tfClearFreeze));
env.close();
}

// Testing creation and cashing of checks on a trustline deep frozen by
// a currency holder
if (features[featureDeepFreeze])
{
env(trust(A1, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A1, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: issuer writes check to A1.
Expand Down Expand Up @@ -1670,7 +1682,7 @@ class Freeze_test : public beast::unit_test::suite
env.close();
}

env(trust(A1, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A1, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}
}
Expand Down Expand Up @@ -1796,7 +1808,8 @@ class Freeze_test : public beast::unit_test::suite
env.fund(XRP(10000), G1, A1, A2);
env.close();

env.trust(G1["USD"](10000), A1, A2);
auto const limit = USD(10000);
env.trust(limit, A1, A2);
env.close();

env(pay(G1, A1, USD(1000)));
Expand Down Expand Up @@ -1867,15 +1880,15 @@ class Freeze_test : public beast::unit_test::suite
// Testing A2 nft offer sell when A2 frozen by currency holder
{
auto const sellOfferIndex = createNFTSellOffer(env, A2, USD(10));
env(trust(A2, G1["USD"](0), tfSetFreeze));
env(trust(A2, limit, tfSetFreeze));
env.close();

// test: this should actually fail since the currency holder doesn't
// want to receive this currency.
env(token::acceptSellOffer(A1, sellOfferIndex));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze));
env(trust(A2, limit, tfClearFreeze));
env.close();
}

Expand All @@ -1884,44 +1897,44 @@ class Freeze_test : public beast::unit_test::suite
{
auto const sellOfferIndex = createNFTSellOffer(env, A2, USD(10));

env(trust(A2, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A2, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: A2 cannot receive USD for his NFT
env(token::acceptSellOffer(A1, sellOfferIndex), ter(tecFROZEN));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A2, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}

// Testing A1 nft offer sell when A2 frozen by currency holder
{
auto const sellOfferIndex = createNFTSellOffer(env, A1, USD(10));
env(trust(A2, G1["USD"](0), tfSetFreeze));
env(trust(A2, limit, tfSetFreeze));
env.close();

// test: A2 cannot send USD for NFT
env(token::acceptSellOffer(A2, sellOfferIndex));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze));
env(trust(A2, limit, tfClearFreeze));
env.close();
}

// // Testing A1 nft offer sell when A2 deep frozen by currency holder
if (features[featureDeepFreeze])
{
auto const sellOfferIndex = createNFTSellOffer(env, A1, USD(10));
env(trust(A2, G1["USD"](0), tfSetFreeze | tfSetDeepFreeze));
env(trust(A2, limit, tfSetFreeze | tfSetDeepFreeze));
env.close();

// test: A2 cannot send USD for NFT
env(token::acceptSellOffer(A2, sellOfferIndex),
ter(tecINSUFFICIENT_FUNDS));
env.close();

env(trust(A2, G1["USD"](0), tfClearFreeze | tfClearDeepFreeze));
env(trust(A2, limit, tfClearFreeze | tfClearDeepFreeze));
env.close();
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/xrpld/app/tx/detail/NFTokenAcceptOffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ NFTokenAcceptOffer::preclaim(PreclaimContext const& ctx)
ctx.flags,
(*so)[sfOwner],
ctx.j,
Issue(needed.getCurrency(), needed.getIssuer()));
needed.asset().get<Issue>());
if (result != tesSUCCESS)
return result;
}
Expand Down

0 comments on commit 79a4da3

Please sign in to comment.