Skip to content

Commit 01cc089

Browse files
committed
Revert changes preventing deletion of a vault
1 parent ffb1959 commit 01cc089

File tree

3 files changed

+11
-42
lines changed

3 files changed

+11
-42
lines changed

src/test/app/Vault_test.cpp

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,9 +1248,9 @@ class Vault_test : public beast::unit_test::suite
12481248
env(tx);
12491249
env.close();
12501250

1251-
// Cannot delete vault with a global lock
1251+
// Can delete empty vault, even if global lock
12521252
tx = vault.del({.owner = owner, .id = keylet.key});
1253-
env(tx, ter{tecNO_PERMISSION});
1253+
env(tx);
12541254
});
12551255

12561256
testCase([this](
@@ -1361,10 +1361,9 @@ class Vault_test : public beast::unit_test::suite
13611361
.amount = asset(100)});
13621362
env(tx);
13631363

1364-
// Cannot delete an empty vault, because its shares are
1365-
// (transitively, by asset) locked.
1364+
// Can delete an empty vault even when asset is locked.
13661365
tx = vault.del({.owner = owner, .id = keylet.key});
1367-
env(tx, ter{tecNO_PERMISSION});
1366+
env(tx);
13681367
});
13691368

13701369
{
@@ -1802,12 +1801,6 @@ class Vault_test : public beast::unit_test::suite
18021801
env(tx1);
18031802
env.close();
18041803

1805-
// Cannot delete an empty vault, because its shares are
1806-
// (transitively, by asset) locked.
1807-
auto tx2 = vault.del({.owner = owner, .id = keylet.key});
1808-
env(tx2, ter{tecNO_PERMISSION});
1809-
env.close();
1810-
18111804
tx0[jss::Flags] = tfClearFreeze;
18121805
env(tx0);
18131806
env.close();
@@ -1928,10 +1921,9 @@ class Vault_test : public beast::unit_test::suite
19281921
env(tx3);
19291922
env.close();
19301923

1931-
// Cannot delete an empty vault, because its shares are
1932-
// (transitively, by asset) locked.
1924+
// Can delete an empty vault, even under asset is under global lock
19331925
auto tx4 = vault.del({.owner = owner, .id = keylet.key});
1934-
env(tx4, ter{tecNO_PERMISSION});
1926+
env(tx4);
19351927
env.close();
19361928
}
19371929
}

src/xrpld/app/tx/detail/MPTokenAuthorize.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,23 +73,19 @@ MPTokenAuthorize::preclaim(PreclaimContext const& ctx)
7373
if (!sleMpt)
7474
return tecOBJECT_NOT_FOUND;
7575

76-
auto const sleMptIssuance =
77-
ctx.view.read(keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID]));
7876
if ((*sleMpt)[sfMPTAmount] != 0)
7977
{
78+
auto const sleMptIssuance = ctx.view.read(
79+
keylet::mptIssuance(ctx.tx[sfMPTokenIssuanceID]));
8080
if (!sleMptIssuance)
8181
return tefINTERNAL;
8282

8383
return tecHAS_OBLIGATIONS;
8484
}
8585

86-
if (ctx.view.rules().enabled(featureSingleAssetVault))
87-
{
88-
if (sleMptIssuance && sleMptIssuance->isFlag(lsfMPTLocked))
89-
return tecNO_PERMISSION;
90-
else if (sleMpt->isFlag(lsfMPTLocked))
91-
return tecNO_PERMISSION;
92-
}
86+
if (ctx.view.rules().enabled(featureSingleAssetVault) &&
87+
sleMpt->isFlag(lsfMPTLocked))
88+
return tecNO_PERMISSION;
9389

9490
return tesSUCCESS;
9591
}

src/xrpld/ledger/detail/View.cpp

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,17 +1344,6 @@ removeEmptyHolding(
13441344
if (line->at(sfBalance)->iou() != beast::zero)
13451345
return tecHAS_OBLIGATIONS;
13461346

1347-
if (view.rules().enabled(featureSingleAssetVault))
1348-
{
1349-
// Check frozen flag, disallow delete if set
1350-
if (auto const issuer = view.read(keylet::account(issue.account));
1351-
issuer && issuer->isFlag(lsfGlobalFreeze))
1352-
return tecNO_PERMISSION;
1353-
if (line->isFlag(
1354-
(issue.account > accountID) ? lsfHighFreeze : lsfLowFreeze))
1355-
return tecNO_PERMISSION;
1356-
}
1357-
13581347
// Adjust the owner count(s)
13591348
if (line->isFlag(lsfLowReserve))
13601349
{
@@ -1405,14 +1394,6 @@ removeEmptyHolding(
14051394
return tecOBJECT_NOT_FOUND;
14061395
if (mptoken->at(sfMPTAmount) != 0)
14071396
return tecHAS_OBLIGATIONS;
1408-
if (view.rules().enabled(featureSingleAssetVault))
1409-
{
1410-
auto const sleIssuance = view.read(keylet::mptIssuance(mptID));
1411-
if (sleIssuance && sleIssuance->isFlag(lsfMPTLocked))
1412-
return tecNO_PERMISSION;
1413-
else if (mptoken->isFlag(lsfMPTLocked))
1414-
return tecNO_PERMISSION;
1415-
}
14161397

14171398
return MPTokenAuthorize::authorize(
14181399
view,

0 commit comments

Comments
 (0)