From 238db87b7de424768d80ed2b8a978fb3fa9c1b7c Mon Sep 17 00:00:00 2001 From: Bronek Kozicki Date: Thu, 13 Mar 2025 16:10:14 +0000 Subject: [PATCH] Add check for lsfMPTCanClawback and lsfMPTCanLock --- src/xrpld/app/tx/detail/VaultClawback.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/xrpld/app/tx/detail/VaultClawback.cpp b/src/xrpld/app/tx/detail/VaultClawback.cpp index d3b7bdd052..e1f8cc98a2 100644 --- a/src/xrpld/app/tx/detail/VaultClawback.cpp +++ b/src/xrpld/app/tx/detail/VaultClawback.cpp @@ -18,10 +18,11 @@ //============================================================================== #include - #include + #include #include +#include #include #include #include @@ -88,9 +89,18 @@ VaultClawback::preclaim(PreclaimContext const& ctx) // If AllowTrustLineClawback is not set or NoFreeze is set, return no // permission - if (!(issuerFlags & lsfAllowTrustLineClawback) || - (issuerFlags & lsfNoFreeze)) - return tecNO_PERMISSION; + if (asset.holds()) + { + if (!(issuerFlags & lsfMPTCanClawback) || + !(issuerFlags & lsfMPTCanLock)) + return tecNO_PERMISSION; + } + else if (asset.holds()) + { + if (!(issuerFlags & lsfAllowTrustLineClawback) || + (issuerFlags & lsfNoFreeze)) + return tecNO_PERMISSION; + } return tesSUCCESS; }