mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-07 10:47:05 +00:00
[WIP] fix some stuff, hit the limit before I could continue
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user