mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-29 15:37:57 +00:00
Make empty VaultID a temMALFORMED
This commit is contained in:
@@ -101,6 +101,15 @@ class Vault_test : public beast::unit_test::suite
|
||||
env(tx, ter(temBAD_AMOUNT));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " fail to deposit to zero vaultID");
|
||||
auto tx = vault.deposit(
|
||||
{.depositor = depositor,
|
||||
.id = beast::zero,
|
||||
.amount = asset(10)});
|
||||
env(tx, ter(temMALFORMED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " deposit non-zero amount");
|
||||
auto tx = vault.deposit(
|
||||
@@ -147,6 +156,13 @@ class Vault_test : public beast::unit_test::suite
|
||||
env(tx, ter(tecLIMIT_EXCEEDED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " fail to set zero vault");
|
||||
auto tx = vault.set({.owner = owner, .id = beast::zero});
|
||||
tx[sfAssetMaximum] = asset(150).number();
|
||||
env(tx, ter(temMALFORMED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " set maximum higher than current amount");
|
||||
auto tx = vault.set({.owner = owner, .id = keylet.key});
|
||||
@@ -253,6 +269,17 @@ class Vault_test : public beast::unit_test::suite
|
||||
env(tx, code);
|
||||
}
|
||||
|
||||
if (!asset.raw().native())
|
||||
{
|
||||
testcase(prefix + " fail to clawback zero vault");
|
||||
auto tx = vault.clawback(
|
||||
{.issuer = issuer,
|
||||
.id = beast::zero,
|
||||
.holder = depositor,
|
||||
.amount = asset(10)});
|
||||
env(tx, ter(temMALFORMED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " clawback all");
|
||||
auto code = asset.raw().native() ? ter(tecNO_PERMISSION)
|
||||
@@ -272,6 +299,15 @@ class Vault_test : public beast::unit_test::suite
|
||||
env(tx);
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " fail to withdraw zero vault");
|
||||
auto tx = vault.withdraw(
|
||||
{.depositor = depositor,
|
||||
.id = beast::zero,
|
||||
.amount = asset(100)});
|
||||
env(tx, ter(temMALFORMED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " withdraw non-zero assets");
|
||||
auto tx = vault.withdraw(
|
||||
@@ -287,6 +323,12 @@ class Vault_test : public beast::unit_test::suite
|
||||
env(tx, ter(tecNO_PERMISSION));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " fail to delete zero vault");
|
||||
auto tx = vault.del({.owner = owner, .id = beast::zero});
|
||||
env(tx, ter(temMALFORMED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " delete empty vault");
|
||||
auto tx = vault.del({.owner = owner, .id = keylet.key});
|
||||
|
||||
@@ -42,6 +42,9 @@ VaultClawback::preflight(PreflightContext const& ctx)
|
||||
if (ctx.tx.getFlags() & tfUniversalMask)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
if (ctx.tx[sfVaultID] == beast::zero)
|
||||
return temMALFORMED;
|
||||
|
||||
AccountID const issuer = ctx.tx[sfAccount];
|
||||
AccountID const holder = ctx.tx[sfHolder];
|
||||
|
||||
|
||||
@@ -39,6 +39,9 @@ VaultDelete::preflight(PreflightContext const& ctx)
|
||||
if (ctx.tx.getFlags() & tfUniversalMask)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
if (ctx.tx[sfVaultID] == beast::zero)
|
||||
return temMALFORMED;
|
||||
|
||||
return preflight2(ctx);
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ VaultDeposit::preflight(PreflightContext const& ctx)
|
||||
if (ctx.tx.getFlags() & tfUniversalMask)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
if (ctx.tx[sfVaultID] == beast::zero)
|
||||
return temMALFORMED;
|
||||
|
||||
if (ctx.tx[sfAmount] <= beast::zero)
|
||||
return temBAD_AMOUNT;
|
||||
|
||||
|
||||
@@ -43,6 +43,9 @@ VaultSet::preflight(PreflightContext const& ctx)
|
||||
if (auto const ter = preflight1(ctx))
|
||||
return ter;
|
||||
|
||||
if (ctx.tx[sfVaultID] == beast::zero)
|
||||
return temMALFORMED;
|
||||
|
||||
if (ctx.tx.getFlags() & tfUniversalMask)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
|
||||
@@ -42,6 +42,9 @@ VaultWithdraw::preflight(PreflightContext const& ctx)
|
||||
if (ctx.tx.getFlags() & tfUniversalMask)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
if (ctx.tx[sfVaultID] == beast::zero)
|
||||
return temMALFORMED;
|
||||
|
||||
if (ctx.tx[sfAmount] <= beast::zero)
|
||||
return temBAD_AMOUNT;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user