Check for frozen assets in preclaim

This commit is contained in:
Bronek Kozicki
2025-02-04 13:55:42 +00:00
parent 6765c101a8
commit 1884ec5e60

View File

@@ -22,6 +22,7 @@
#include <xrpld/ledger/View.h>
#include <xrpl/protocol/Feature.h>
#include <xrpl/protocol/Indexes.h>
#include <xrpl/protocol/MPTIssue.h>
#include <xrpl/protocol/STNumber.h>
#include <xrpl/protocol/TER.h>
#include <xrpl/protocol/TxFlags.h>
@@ -79,6 +80,8 @@ TER
VaultCreate::preclaim(PreclaimContext const& ctx)
{
auto asset = ctx.tx[sfAsset];
auto account = ctx.tx[sfAccount];
if (asset.holds<MPTIssue>())
{
auto mptID = asset.get<MPTIssue>().getMptID();
@@ -91,6 +94,10 @@ VaultCreate::preclaim(PreclaimContext const& ctx)
return tecLOCKED;
}
// Cannot create Vault for an Asset frozen for the vault owner
if (isFrozen(ctx.view, account, asset))
return tecFROZEN;
if (auto const domain = ctx.tx[~sfDomainID])
{
auto const sleDomain =