mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-22 23:00:55 +00:00
Switch 'vault not found' to tecNO_ENTRY
This commit is contained in:
@@ -419,6 +419,49 @@ class Vault_test : public beast::unit_test::suite
|
||||
test(env, issuer, owner, depositor, asset, vault);
|
||||
};
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
PrettyAsset const& asset,
|
||||
Vault& vault) {
|
||||
testcase("nothing to set");
|
||||
auto tx = vault.set({.owner = owner, .id = keylet::skip().key});
|
||||
tx[sfAssetMaximum] = asset(0).number();
|
||||
env(tx, ter(tecNO_ENTRY));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
PrettyAsset const& asset,
|
||||
Vault& vault) {
|
||||
testcase("nothing to deposit to");
|
||||
auto tx = vault.deposit(
|
||||
{.depositor = depositor,
|
||||
.id = keylet::skip().key,
|
||||
.amount = asset(10)});
|
||||
env(tx, ter(tecNO_ENTRY));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
PrettyAsset const& asset,
|
||||
Vault& vault) {
|
||||
testcase("nothing to withdraw from");
|
||||
auto tx = vault.withdraw(
|
||||
{.depositor = depositor,
|
||||
.id = keylet::skip().key,
|
||||
.amount = asset(10)});
|
||||
env(tx, ter(tecNO_ENTRY));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
@@ -427,8 +470,8 @@ class Vault_test : public beast::unit_test::suite
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
testcase("nothing to delete");
|
||||
auto tx = vault.del({.owner = issuer, .id = keylet::skip().key});
|
||||
env(tx, ter(tecOBJECT_NOT_FOUND));
|
||||
auto tx = vault.del({.owner = owner, .id = keylet::skip().key});
|
||||
env(tx, ter(tecNO_ENTRY));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
@@ -552,6 +595,34 @@ class Vault_test : public beast::unit_test::suite
|
||||
tx[sfMPTokenMetadata] = std::string(2050, 'B');
|
||||
env(tx, ter(temMALFORMED));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
tx[sfFlags] = tfVaultPrivate;
|
||||
tx[sfDomainID] = to_string(base_uint<256>(0));
|
||||
testcase("invalid zero domain");
|
||||
env(tx, ter{temMALFORMED});
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
Asset const& asset,
|
||||
Vault& vault) {
|
||||
auto [tx, keylet] = vault.create({.owner = owner, .asset = asset});
|
||||
tx[sfFlags] = tfVaultPrivate;
|
||||
tx[sfDomainID] = to_string(base_uint<256>(42ul));
|
||||
testcase("non-existing domain");
|
||||
env(tx, ter{tecOBJECT_NOT_FOUND});
|
||||
});
|
||||
}
|
||||
|
||||
void
|
||||
@@ -742,6 +813,23 @@ class Vault_test : public beast::unit_test::suite
|
||||
test(env, issuer, owner, depositor, asset, vault, mptt);
|
||||
};
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
Account const& owner,
|
||||
Account const& depositor,
|
||||
PrettyAsset const& asset,
|
||||
Vault& vault,
|
||||
MPTTester& mptt) {
|
||||
testcase("nothing to clawback from");
|
||||
auto tx = vault.clawback(
|
||||
{.issuer = issuer,
|
||||
.id = keylet::skip().key,
|
||||
.holder = depositor,
|
||||
.amount = asset(10)});
|
||||
env(tx, ter(tecNO_ENTRY));
|
||||
});
|
||||
|
||||
testCase([this](
|
||||
Env& env,
|
||||
Account const& issuer,
|
||||
|
||||
@@ -71,7 +71,7 @@ VaultClawback::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const vault = ctx.view.read(keylet::vault(ctx.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tecNO_ENTRY;
|
||||
|
||||
auto account = ctx.tx[sfAccount];
|
||||
auto const issuer = ctx.view.read(keylet::account(account));
|
||||
@@ -117,7 +117,7 @@ VaultClawback::doApply()
|
||||
auto const& tx = ctx_.tx;
|
||||
auto const vault = view().peek(keylet::vault(tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tefINTERNAL; // Enforced in preclaim
|
||||
|
||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
||||
auto const sleIssuance = view().read(keylet::mptIssuance(mptIssuanceID));
|
||||
|
||||
@@ -102,7 +102,7 @@ VaultCreate::preclaim(PreclaimContext const& ctx)
|
||||
auto mptID = asset.get<MPTIssue>().getMptID();
|
||||
auto issuance = ctx.view.read(keylet::mptIssuance(mptID));
|
||||
if (!issuance)
|
||||
return tecNO_ENTRY;
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
if ((issuance->getFlags() & lsfMPTCanTransfer) == 0)
|
||||
return tecNO_AUTH;
|
||||
}
|
||||
@@ -116,7 +116,7 @@ VaultCreate::preclaim(PreclaimContext const& ctx)
|
||||
auto const sleDomain =
|
||||
ctx.view.read(keylet::permissionedDomain(*domain));
|
||||
if (!sleDomain)
|
||||
return tecNO_ENTRY;
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
}
|
||||
|
||||
return tesSUCCESS;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include <xrpl/protocol/Feature.h>
|
||||
#include <xrpl/protocol/STNumber.h>
|
||||
#include <xrpl/protocol/TER.h>
|
||||
#include <xrpl/protocol/TxFlags.h>
|
||||
|
||||
namespace ripple {
|
||||
@@ -50,7 +51,7 @@ VaultDelete::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const vault = ctx.view.read(keylet::vault(ctx.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tecNO_ENTRY;
|
||||
|
||||
if (vault->at(sfOwner) != ctx.tx[sfAccount])
|
||||
return tecNO_PERMISSION;
|
||||
@@ -66,7 +67,7 @@ VaultDelete::doApply()
|
||||
{
|
||||
auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tefINTERNAL;
|
||||
return tefINTERNAL; // Enforced in preclaim
|
||||
|
||||
// Destroy the asset holding.
|
||||
if (auto ter = removeEmptyHolding(
|
||||
|
||||
@@ -58,7 +58,7 @@ VaultDeposit::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const vault = ctx.view.read(keylet::vault(ctx.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tecNO_ENTRY;
|
||||
|
||||
auto const account = ctx.tx[sfAccount];
|
||||
auto const assets = ctx.tx[sfAmount];
|
||||
@@ -99,7 +99,7 @@ VaultDeposit::preclaim(PreclaimContext const& ctx)
|
||||
auto mptID = assets.get<MPTIssue>().getMptID();
|
||||
auto issuance = ctx.view.read(keylet::mptIssuance(mptID));
|
||||
if (!issuance)
|
||||
return tecNO_ENTRY;
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
if ((issuance->getFlags() & lsfMPTCanTransfer) == 0)
|
||||
return tecNO_AUTH;
|
||||
}
|
||||
@@ -121,7 +121,7 @@ VaultDeposit::doApply()
|
||||
{
|
||||
auto const vault = view().peek(keylet::vault(ctx_.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tefINTERNAL;
|
||||
return tefINTERNAL; // Enforced in preclaim
|
||||
|
||||
auto const assets = ctx_.tx[sfAmount];
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ VaultSet::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const vault = ctx.view.read(keylet::vault(ctx.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tecNO_ENTRY;
|
||||
|
||||
// Assert that submitter is the Owner.
|
||||
if (ctx.tx[sfAccount] != vault->at(sfOwner))
|
||||
@@ -120,9 +120,9 @@ VaultSet::doApply()
|
||||
auto const& tx = ctx_.tx;
|
||||
|
||||
// Update existing object.
|
||||
auto vault = view().peek({ltVAULT, tx[sfVaultID]});
|
||||
auto vault = view().peek(keylet::vault(tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tefINTERNAL; // Enforced in preclaim
|
||||
|
||||
auto const mptIssuanceID = (*vault)[sfMPTokenIssuanceID];
|
||||
auto const sleIssuance = view().peek(keylet::mptIssuance(mptIssuanceID));
|
||||
|
||||
@@ -63,7 +63,7 @@ VaultWithdraw::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const vault = ctx.view.read(keylet::vault(ctx.tx[sfVaultID]));
|
||||
if (!vault)
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
return tecNO_ENTRY;
|
||||
|
||||
if (ctx.tx.isFieldPresent(sfDestination))
|
||||
{
|
||||
@@ -95,7 +95,7 @@ VaultWithdraw::preclaim(PreclaimContext const& ctx)
|
||||
auto mptID = assets.get<MPTIssue>().getMptID();
|
||||
auto issuance = ctx.view.read(keylet::mptIssuance(mptID));
|
||||
if (!issuance)
|
||||
return tecNO_ENTRY;
|
||||
return tecOBJECT_NOT_FOUND;
|
||||
if ((issuance->getFlags() & lsfMPTCanTransfer) == 0)
|
||||
return tecNO_AUTH;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user