feat: Gate vault deposit-block on featureLendingProtocolV1_2

This commit is contained in:
Vito committed 2026-09-09 13:54:36 +02:00
1 parent dd1d52a41c
commit 6532e5fb14
5 files changed
+14 -14

No files matched your search

+1 -1
View File
@@ -15,7 +15,7 @@
// Add new amendments to the top of this list.
// Keep it sorted in reverse chronological order.
XRPL_FEATURE(LendingProtocolV1_2, Supported::No, VoteBehavior::DefaultNo)
XRPL_FEATURE(LendingProtocolV1_2, Supported::Yes, VoteBehavior::DefaultNo)
XRPL_FIX (Cleanup3_5_0, Supported::Yes, VoteBehavior::DefaultNo)
XRPL_FEATURE(ConfidentialMPTKeyRotation, Supported::No, VoteBehavior::DefaultNo)
XRPL_FIX (Cleanup3_4_0, Supported::Yes, VoteBehavior::DefaultNo)
@@ -55,7 +55,7 @@ VaultCreate::checkExtraFeatures(PreflightContext const& ctx)
std::uint32_t
VaultCreate::getFlagsMask(PreflightContext const& ctx)
{
if (ctx.rules.enabled(featureLendingProtocolV1_1))
if (ctx.rules.enabled(featureLendingProtocolV1_2))
return tfVaultCreateMask;
return tfVaultCreateMask | tfVaultOwnerCanBlockDeposit;
@@ -256,7 +256,7 @@ VaultCreate::doApply()
if (tx.isFlag(tfVaultPrivate))
vault->setFlag(lsfVaultPrivate);
if (view().rules().enabled(featureLendingProtocolV1_1) &&
if (view().rules().enabled(featureLendingProtocolV1_2) &&
tx.isFlag(tfVaultOwnerCanBlockDeposit))
vault->setFlag(lsfVaultOwnerCanBlockDeposit);
@@ -158,7 +158,7 @@ VaultDeposit::preclaim(PreclaimContext const& ctx)
// LCOV_EXCL_STOP
}
if (ctx.view.rules().enabled(featureLendingProtocolV1_1))
if (ctx.view.rules().enabled(featureLendingProtocolV1_2))
{
// Perform these checks early to avoid unnecessary processing
@@ -29,7 +29,7 @@ VaultSet::checkExtraFeatures(PreflightContext const& ctx)
std::uint32_t
VaultSet::getFlagsMask(PreflightContext const& ctx)
{
if (ctx.rules.enabled(featureLendingProtocolV1_1))
if (ctx.rules.enabled(featureLendingProtocolV1_2))
return tfVaultSetMask;
// Add tfVaultDepositBlock and tfVaultDepositUnblock flags to indicate they are disabled
@@ -142,7 +142,7 @@ VaultSet::preclaim(PreclaimContext const& ctx)
}
}
if (ctx.view.rules().enabled(featureLendingProtocolV1_1))
if (ctx.view.rules().enabled(featureLendingProtocolV1_2))
{
// The Vault is not configured to support deposit blocking
if (!vault->isFlag(lsfVaultOwnerCanBlockDeposit) &&
@@ -222,7 +222,7 @@ VaultSet::doApply()
view().update(sleIssuance);
}
if (view().rules().enabled(featureLendingProtocolV1_1))
if (view().rules().enabled(featureLendingProtocolV1_2))
{
if (tx.isFlag(tfVaultDepositBlock))
vault->setFlag(lsfVaultDepositBlocked);
+7 -7
View File
@@ -166,11 +166,11 @@ private:
env(tx, Ter{temINVALID_FLAG});
{
env.disableFeature(featureLendingProtocolV1_1);
env.disableFeature(featureLendingProtocolV1_2);
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
tx[sfFlags] = tfVaultOwnerCanBlockDeposit;
env(tx, Ter(temINVALID_FLAG));
env.enableFeature(featureLendingProtocolV1_1);
env.enableFeature(featureLendingProtocolV1_2);
}
{
@@ -479,18 +479,18 @@ private:
testCase(
[&](Env& env, Account const&, Account const& owner, Asset const& asset, Vault& vault) {
testcase("set flags fail without featureLendingProtocolV1_1");
testcase("set flags fail without featureLendingProtocolV1_2");
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
{
env.disableFeature(featureLendingProtocolV1_1);
env.disableFeature(featureLendingProtocolV1_2);
env(vault.set({.owner = owner, .id = keylet.key, .flags = tfVaultDepositBlock}),
Ter(temINVALID_FLAG));
env(vault.set(
{.owner = owner, .id = keylet.key, .flags = tfVaultDepositUnblock}),
Ter(temINVALID_FLAG));
env.enableFeature(featureLendingProtocolV1_1);
env.enableFeature(featureLendingProtocolV1_2);
}
});
@@ -1245,7 +1245,7 @@ private:
{
testcase(prefix + "block/unblock fails when amendment is disabled");
env.disableFeature(featureLendingProtocolV1_1);
env.disableFeature(featureLendingProtocolV1_2);
auto const [tx, keylet] = vault.create(
{.owner = owner, .asset = asset, .flags = tfVaultOwnerCanBlockDeposit});
env(tx, Ter(temINVALID_FLAG));
@@ -1254,7 +1254,7 @@ private:
blockVault(temINVALID_FLAG, keylet);
unblockVault(temINVALID_FLAG, keylet);
env.enableFeature(featureLendingProtocolV1_1);
env.enableFeature(featureLendingProtocolV1_2);
}
{