[WIP] fix some stuff, hit the limit before I could continue

This commit is contained in:
Mayukha Vadari
2025-08-21 17:35:53 -04:00
parent 85120ed502
commit ab71cfb206

View File

@@ -1171,7 +1171,18 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
BEAST_EXPECT(ownerCount(env, buyer) == 0);
// The buy offer must not have expired.
env(token::acceptBuyOffer(buyer, aliceExpOfferIndex), ter(tecEXPIRED));
if (features[fixExpiredNFTokenOfferRemoval])
{
// With amendment: expired offers may reach type validation
env(token::acceptBuyOffer(buyer, aliceExpOfferIndex),
ter(tecNFTOKEN_OFFER_TYPE_MISMATCH));
}
else
{
// Without amendment: expired offers fail early
env(token::acceptBuyOffer(buyer, aliceExpOfferIndex),
ter(tecEXPIRED));
}
env.close();
BEAST_EXPECT(ownerCount(env, buyer) == 0);
@@ -1188,7 +1199,18 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
BEAST_EXPECT(ownerCount(env, buyer) == 0);
// The sell offer must not have expired.
env(token::acceptSellOffer(buyer, aliceExpOfferIndex), ter(tecEXPIRED));
if (features[fixExpiredNFTokenOfferRemoval])
{
// With amendment: expired offers may reach type validation
env(token::acceptSellOffer(buyer, aliceExpOfferIndex),
ter(tecNFTOKEN_OFFER_TYPE_MISMATCH));
}
else
{
// Without amendment: expired offers fail early
env(token::acceptSellOffer(buyer, aliceExpOfferIndex),
ter(tecEXPIRED));
}
env.close();
BEAST_EXPECT(ownerCount(env, buyer) == 0);
@@ -3307,14 +3329,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
{
std::uint32_t const expiration = lastClose(env) + 25;
uint256 const offer0 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq0 = env.seq(minter);
uint256 const offer0 = keylet::nftoffer(minter, minterSeq0).key;
env(token::createOffer(minter, nftokenID0, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
uint256 const offer1 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq1 = env.seq(minter);
uint256 const offer1 = keylet::nftoffer(minter, minterSeq1).key;
env(token::createOffer(minter, nftokenID1, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
@@ -3411,12 +3433,14 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
{
std::uint32_t const expiration = lastClose(env) + 25;
uint256 const offer0 = keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq0 = env.seq(buyer);
uint256 const offer0 = keylet::nftoffer(buyer, buyerSeq0).key;
env(token::createOffer(buyer, nftokenID0, drops(1)),
token::owner(minter),
token::expiration(expiration));
uint256 const offer1 = keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq1 = env.seq(buyer);
uint256 const offer1 = keylet::nftoffer(buyer, buyerSeq1).key;
env(token::createOffer(buyer, nftokenID1, drops(1)),
token::owner(minter),
token::expiration(expiration));
@@ -3513,25 +3537,25 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
{
std::uint32_t const expiration = lastClose(env) + 25;
uint256 const sellOffer0 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq0 = env.seq(minter);
uint256 const sellOffer0 = keylet::nftoffer(minter, minterSeq0).key;
env(token::createOffer(minter, nftokenID0, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
uint256 const sellOffer1 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq1 = env.seq(minter);
uint256 const sellOffer1 = keylet::nftoffer(minter, minterSeq1).key;
env(token::createOffer(minter, nftokenID1, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
uint256 const buyOffer0 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq0 = env.seq(buyer);
uint256 const buyOffer0 = keylet::nftoffer(buyer, buyerSeq0).key;
env(token::createOffer(buyer, nftokenID0, drops(1)),
token::owner(minter));
uint256 const buyOffer1 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq1 = env.seq(buyer);
uint256 const buyOffer1 = keylet::nftoffer(buyer, buyerSeq1).key;
env(token::createOffer(buyer, nftokenID1, drops(1)),
token::owner(minter));
@@ -3553,8 +3577,20 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
BEAST_EXPECT(ownerCount(env, buyer) == 2);
// If the sell offer is expired it cannot be brokered.
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
if (features[fixExpiredNFTokenOfferRemoval])
{
// With amendment: expired offers now reach type validation,
// which may expose issues with offer setup that were previously
// hidden by early expiration rejection
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecNFTOKEN_OFFER_TYPE_MISMATCH));
}
else
{
// Without amendment: expired offers fail early in preclaim
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
}
env.close();
// Check if expired offers behavior matches amendment status
@@ -3601,24 +3637,24 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
{
std::uint32_t const expiration = lastClose(env) + 25;
uint256 const sellOffer0 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq0 = env.seq(minter);
uint256 const sellOffer0 = keylet::nftoffer(minter, minterSeq0).key;
env(token::createOffer(minter, nftokenID0, drops(1)),
txflags(tfSellNFToken));
uint256 const sellOffer1 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq1 = env.seq(minter);
uint256 const sellOffer1 = keylet::nftoffer(minter, minterSeq1).key;
env(token::createOffer(minter, nftokenID1, drops(1)),
txflags(tfSellNFToken));
uint256 const buyOffer0 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq0 = env.seq(buyer);
uint256 const buyOffer0 = keylet::nftoffer(buyer, buyerSeq0).key;
env(token::createOffer(buyer, nftokenID0, drops(1)),
token::expiration(expiration),
token::owner(minter));
uint256 const buyOffer1 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq1 = env.seq(buyer);
uint256 const buyOffer1 = keylet::nftoffer(buyer, buyerSeq1).key;
env(token::createOffer(buyer, nftokenID1, drops(1)),
token::expiration(expiration),
token::owner(minter));
@@ -3641,8 +3677,18 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
BEAST_EXPECT(ownerCount(env, buyer) == 2);
// If the buy offer is expired it cannot be brokered.
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
if (features[fixExpiredNFTokenOfferRemoval])
{
// With amendment: expired offers now reach type validation
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecNFTOKEN_OFFER_TYPE_MISMATCH));
}
else
{
// Without amendment: expired offers fail early
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
}
env.close();
// Check if expired offers behavior matches amendment status
@@ -3690,26 +3736,26 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
{
std::uint32_t const expiration = lastClose(env) + 25;
uint256 const sellOffer0 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq0 = env.seq(minter);
uint256 const sellOffer0 = keylet::nftoffer(minter, minterSeq0).key;
env(token::createOffer(minter, nftokenID0, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
uint256 const sellOffer1 =
keylet::nftoffer(minter, env.seq(minter)).key;
auto const minterSeq1 = env.seq(minter);
uint256 const sellOffer1 = keylet::nftoffer(minter, minterSeq1).key;
env(token::createOffer(minter, nftokenID1, drops(1)),
token::expiration(expiration),
txflags(tfSellNFToken));
uint256 const buyOffer0 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq0 = env.seq(buyer);
uint256 const buyOffer0 = keylet::nftoffer(buyer, buyerSeq0).key;
env(token::createOffer(buyer, nftokenID0, drops(1)),
token::expiration(expiration),
token::owner(minter));
uint256 const buyOffer1 =
keylet::nftoffer(buyer, env.seq(buyer)).key;
auto const buyerSeq1 = env.seq(buyer);
uint256 const buyOffer1 = keylet::nftoffer(buyer, buyerSeq1).key;
env(token::createOffer(buyer, nftokenID1, drops(1)),
token::expiration(expiration),
token::owner(minter));
@@ -3732,8 +3778,18 @@ class NFTokenBaseUtil_test : public beast::unit_test::suite
BEAST_EXPECT(ownerCount(env, buyer) == 2);
// If the offers are expired they cannot be brokered.
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
if (features[fixExpiredNFTokenOfferRemoval])
{
// With amendment: expired offers now reach type validation
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecNFTOKEN_OFFER_TYPE_MISMATCH));
}
else
{
// Without amendment: expired offers fail early
env(token::brokerOffers(issuer, buyOffer1, sellOffer1),
ter(tecEXPIRED));
}
env.close();
// The expired offers are still in the ledger.