mirror of
https://github.com/XRPLF/rippled.git
synced 2026-10-26 05:27:18 +00:00
feat: Gate vault deposit-block on featureLendingProtocolV1_2
This commit is contained in:
5 files changed
+14
-14
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user