mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-29 15:37:57 +00:00
Add check in preclaim and extra tests
This commit is contained in:
@@ -412,6 +412,9 @@ class MPToken_test : public beast::unit_test::suite
|
||||
// bob creates a mptoken
|
||||
mptAlice.authorize({.account = bob, .holderCount = 1});
|
||||
|
||||
mptAlice.authorize(
|
||||
{.account = bob, .holderCount = 1, .err = tecDUPLICATE});
|
||||
|
||||
// bob deletes his mptoken
|
||||
mptAlice.authorize(
|
||||
{.account = bob, .holderCount = 0, .flags = tfMPTUnauthorize});
|
||||
@@ -2303,15 +2306,21 @@ public:
|
||||
|
||||
// MPTokenIssuanceCreate
|
||||
testCreateValidation(all);
|
||||
testCreateValidation(all | featureSingleAssetVault);
|
||||
testCreateEnabled(all);
|
||||
testCreateEnabled(all | featureSingleAssetVault);
|
||||
|
||||
// MPTokenIssuanceDestroy
|
||||
testDestroyValidation(all);
|
||||
testDestroyValidation(all | featureSingleAssetVault);
|
||||
testDestroyEnabled(all);
|
||||
testDestroyEnabled(all | featureSingleAssetVault);
|
||||
|
||||
// MPTokenAuthorize
|
||||
testAuthorizeValidation(all);
|
||||
testAuthorizeValidation(all | featureSingleAssetVault);
|
||||
testAuthorizeEnabled(all);
|
||||
testAuthorizeEnabled(all | featureSingleAssetVault);
|
||||
|
||||
// MPTokenIssuanceSet
|
||||
testSetValidation(all);
|
||||
|
||||
@@ -83,6 +83,10 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx)
|
||||
return tecHAS_OBLIGATIONS;
|
||||
}
|
||||
|
||||
if (ctx.view.rules().enabled(featureSingleAssetVault) &&
|
||||
sleMpt->isFlag(lsfMPTLocked))
|
||||
return tecNO_PERMISSION;
|
||||
|
||||
return tesSUCCESS;
|
||||
}
|
||||
|
||||
@@ -165,7 +169,7 @@ MPTokenAuthorize::authorize(
|
||||
if ((*sleMpt)[sfMPTAmount] != 0)
|
||||
return tecHAS_OBLIGATIONS;
|
||||
if (view.rules().enabled(featureSingleAssetVault) &&
|
||||
(sleMpt->getFlags() & lsfMPTLocked))
|
||||
sleMpt->isFlag(lsfMPTLocked))
|
||||
return tecNO_PERMISSION;
|
||||
|
||||
if (!view.dirRemove(
|
||||
@@ -199,7 +203,7 @@ MPTokenAuthorize::authorize(
|
||||
return tecINSUFFICIENT_RESERVE;
|
||||
|
||||
if (sleMpt)
|
||||
return tecDUPLICATE;
|
||||
return tecDUPLICATE; // Also returned in preclaim
|
||||
sleMpt = std::make_shared<SLE>(mptokenKey);
|
||||
|
||||
if (auto ter = dirLink(view, args.accountID, sleMpt))
|
||||
|
||||
Reference in New Issue
Block a user