mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-22 06:40:53 +00:00
Allow resetting AssetMaximum to zero
This commit is contained in:
@@ -139,7 +139,7 @@ class Vault_test : public beast::unit_test::suite
|
||||
{
|
||||
testcase(prefix + " set maximum higher than current amount");
|
||||
auto tx = vault.set({.owner = owner, .id = keylet.key});
|
||||
tx[sfAssetMaximum] = asset(200).number();
|
||||
tx[sfAssetMaximum] = asset(150).number();
|
||||
env(tx);
|
||||
}
|
||||
|
||||
@@ -162,10 +162,17 @@ class Vault_test : public beast::unit_test::suite
|
||||
auto tx = vault.deposit(
|
||||
{.depositor = depositor,
|
||||
.id = keylet.key,
|
||||
.amount = asset(200)});
|
||||
.amount = asset(100)});
|
||||
env(tx, ter(tecLIMIT_EXCEEDED));
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " reset maximum to zero i.e. not enforced");
|
||||
auto tx = vault.set({.owner = owner, .id = keylet.key});
|
||||
tx[sfAssetMaximum] = asset(0).number();
|
||||
env(tx);
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " fail to withdraw negative amount");
|
||||
auto tx = vault.withdraw(
|
||||
@@ -194,7 +201,7 @@ class Vault_test : public beast::unit_test::suite
|
||||
}
|
||||
|
||||
{
|
||||
testcase(prefix + " deposit up to maximum");
|
||||
testcase(prefix + " deposit some more");
|
||||
auto tx = vault.deposit(
|
||||
{.depositor = depositor,
|
||||
.id = keylet.key,
|
||||
|
||||
@@ -138,7 +138,8 @@ VaultSet::doApply()
|
||||
vault->at(sfData) = tx[sfData];
|
||||
if (tx.isFieldPresent(sfAssetMaximum))
|
||||
{
|
||||
if (tx[sfAssetMaximum] < *vault->at(sfAssetTotal))
|
||||
if (tx[sfAssetMaximum] != 0 &&
|
||||
tx[sfAssetMaximum] < *vault->at(sfAssetTotal))
|
||||
return tecLIMIT_EXCEEDED;
|
||||
vault->at(sfAssetMaximum) = tx[sfAssetMaximum];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user