mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-25 21:45:52 +00:00
Minor cleanup
This commit is contained in:
@@ -78,21 +78,19 @@ deleteSLE(
|
|||||||
AccountID const& account, SField const& node, bool isOwner) -> TER {
|
AccountID const& account, SField const& node, bool isOwner) -> TER {
|
||||||
auto const sleAccount = view.peek(keylet::account(account));
|
auto const sleAccount = view.peek(keylet::account(account));
|
||||||
if (!sleAccount)
|
if (!sleAccount)
|
||||||
{
|
{ // LCOV_EXCL_START
|
||||||
JLOG(j.fatal()) // LCOV_EXCL_LINE
|
JLOG(j.fatal()) << "Internal error: can't retrieve Owner account.";
|
||||||
<< "Internal error: can't retrieve Owner account."; // LCOV_EXCL_LINE
|
return tecINTERNAL;
|
||||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
} // LCOV_EXCL_STOP
|
||||||
}
|
|
||||||
|
|
||||||
// Remove object from owner directory
|
// Remove object from owner directory
|
||||||
std::uint64_t const page = sleCredential->getFieldU64(node);
|
std::uint64_t const page = sleCredential->getFieldU64(node);
|
||||||
if (!view.dirRemove(
|
if (!view.dirRemove(
|
||||||
keylet::ownerDir(account), page, sleCredential->key(), false))
|
keylet::ownerDir(account), page, sleCredential->key(), false))
|
||||||
{
|
{ // LCOV_EXCL_START
|
||||||
JLOG(j.fatal()) // LCOV_EXCL_LINE
|
JLOG(j.fatal()) << "Unable to delete Credential from owner.";
|
||||||
<< "Unable to delete Credential from owner."; // LCOV_EXCL_LINE
|
return tefBAD_LEDGER;
|
||||||
return tefBAD_LEDGER; // LCOV_EXCL_LINE
|
} // LCOV_EXCL_STOP
|
||||||
}
|
|
||||||
|
|
||||||
if (isOwner)
|
if (isOwner)
|
||||||
adjustOwnerCount(view, sleAccount, -1, j);
|
adjustOwnerCount(view, sleAccount, -1, j);
|
||||||
|
|||||||
@@ -797,8 +797,7 @@ canTransfer(
|
|||||||
ReadView const& view,
|
ReadView const& view,
|
||||||
MPTIssue const& mptIssue,
|
MPTIssue const& mptIssue,
|
||||||
AccountID const& from,
|
AccountID const& from,
|
||||||
AccountID const& to,
|
AccountID const& to);
|
||||||
int depth = 0);
|
|
||||||
|
|
||||||
/** Deleter function prototype. Returns the status of the entry deletion
|
/** Deleter function prototype. Returns the status of the entry deletion
|
||||||
* (if should not be skipped) and if the entry should be skipped. The status
|
* (if should not be skipped) and if the entry should be skipped. The status
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ bool
|
|||||||
isGlobalFrozen(ReadView const& view, MPTIssue const& mptIssue)
|
isGlobalFrozen(ReadView const& view, MPTIssue const& mptIssue)
|
||||||
{
|
{
|
||||||
if (auto const sle = view.read(keylet::mptIssuance(mptIssue.getMptID())))
|
if (auto const sle = view.read(keylet::mptIssuance(mptIssue.getMptID())))
|
||||||
return sle->getFlags() & lsfMPTLocked;
|
return sle->isFlag(lsfMPTLocked);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -240,7 +240,7 @@ isIndividualFrozen(
|
|||||||
{
|
{
|
||||||
if (auto const sle =
|
if (auto const sle =
|
||||||
view.read(keylet::mptoken(mptIssue.getMptID(), account)))
|
view.read(keylet::mptoken(mptIssue.getMptID(), account)))
|
||||||
return sle->getFlags() & lsfMPTLocked;
|
return sle->isFlag(lsfMPTLocked);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,38 +306,32 @@ isVaultPseudoAccountFrozen(
|
|||||||
if (!view.rules().enabled(featureSingleAssetVault))
|
if (!view.rules().enabled(featureSingleAssetVault))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (depth >= maxAssetCheckDepth)
|
||||||
|
return true; // LCOV_EXCL_LINE
|
||||||
|
|
||||||
auto const mptIssuance =
|
auto const mptIssuance =
|
||||||
view.read(keylet::mptIssuance(mptShare.getMptID()));
|
view.read(keylet::mptIssuance(mptShare.getMptID()));
|
||||||
if (mptIssuance == nullptr)
|
if (mptIssuance == nullptr)
|
||||||
{
|
return false; // zero MPToken won't block deletion of MPTokenIssuance
|
||||||
UNREACHABLE( // LCOV_EXCL_LINE
|
|
||||||
"ripple::isVaultPseudoAccountFrozen : null MPTokenIssuance"); // LCOV_EXCL_LINE
|
|
||||||
return false; // LCOV_EXCL_LINE
|
|
||||||
}
|
|
||||||
|
|
||||||
auto const issuer = mptIssuance->getAccountID(sfIssuer);
|
auto const issuer = mptIssuance->getAccountID(sfIssuer);
|
||||||
auto const mptIssuer = view.read(keylet::account(issuer));
|
auto const mptIssuer = view.read(keylet::account(issuer));
|
||||||
if (mptIssuer == nullptr)
|
if (mptIssuer == nullptr)
|
||||||
{
|
{ // LCOV_EXCL_START
|
||||||
UNREACHABLE( // LCOV_EXCL_LINE
|
UNREACHABLE("ripple::isVaultPseudoAccountFrozen : null MPToken issuer");
|
||||||
"ripple::isVaultPseudoAccountFrozen : null MPToken issuer"); // LCOV_EXCL_LINE
|
return false;
|
||||||
return false; // LCOV_EXCL_LINE
|
} // LCOV_EXCL_STOP
|
||||||
}
|
|
||||||
|
|
||||||
if (!mptIssuer->isFieldPresent(sfVaultID))
|
if (!mptIssuer->isFieldPresent(sfVaultID))
|
||||||
return false; // not a Vault pseudo-account, common case
|
return false; // not a Vault pseudo-account, common case
|
||||||
|
|
||||||
if (depth >= maxAssetCheckDepth)
|
|
||||||
return true; // LCOV_EXCL_LINE
|
|
||||||
|
|
||||||
auto const vault =
|
auto const vault =
|
||||||
view.read(keylet::vault(mptIssuer->getFieldH256(sfVaultID)));
|
view.read(keylet::vault(mptIssuer->getFieldH256(sfVaultID)));
|
||||||
if (vault == nullptr)
|
if (vault == nullptr)
|
||||||
{
|
{ // LCOV_EXCL_START
|
||||||
UNREACHABLE( // LCOV_EXCL_LINE
|
UNREACHABLE("ripple::isVaultPseudoAccountFrozen : null vault");
|
||||||
"ripple::isVaultPseudoAccountFrozen : null vault"); // LCOV_EXCL_LINE
|
return false;
|
||||||
return false; // LCOV_EXCL_LINE
|
} // LCOV_EXCL_STOP
|
||||||
}
|
|
||||||
|
|
||||||
return isAnyFrozen(view, issuer, account, vault->at(sfAsset), depth + 1);
|
return isAnyFrozen(view, issuer, account, vault->at(sfAsset), depth + 1);
|
||||||
}
|
}
|
||||||
@@ -2299,6 +2293,9 @@ requireAuth(
|
|||||||
|
|
||||||
if (view.rules().enabled(featureSingleAssetVault))
|
if (view.rules().enabled(featureSingleAssetVault))
|
||||||
{
|
{
|
||||||
|
if (depth >= maxAssetCheckDepth)
|
||||||
|
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||||
|
|
||||||
// requireAuth is recursive if the issuer is a vault pseudo-account
|
// requireAuth is recursive if the issuer is a vault pseudo-account
|
||||||
auto const sleIssuer = view.read(keylet::account(mptIssuer));
|
auto const sleIssuer = view.read(keylet::account(mptIssuer));
|
||||||
if (!sleIssuer)
|
if (!sleIssuer)
|
||||||
@@ -2311,9 +2308,6 @@ requireAuth(
|
|||||||
if (!sleVault)
|
if (!sleVault)
|
||||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||||
|
|
||||||
if (depth >= maxAssetCheckDepth)
|
|
||||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
|
||||||
|
|
||||||
auto const asset = sleVault->at(sfAsset);
|
auto const asset = sleVault->at(sfAsset);
|
||||||
if (auto const err = std::visit(
|
if (auto const err = std::visit(
|
||||||
[&]<ValidIssueType TIss>(TIss const& issue) {
|
[&]<ValidIssueType TIss>(TIss const& issue) {
|
||||||
@@ -2449,18 +2443,18 @@ enforceMPTokenAuthorization(
|
|||||||
return tesSUCCESS;
|
return tesSUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE( // LCOV_EXCL_LINE
|
// LCOV_EXCL_START
|
||||||
"ripple::enforceMPTokenAuthorization : condition list is incomplete"); // LCOV_EXCL_LINE
|
UNREACHABLE(
|
||||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
"ripple::enforceMPTokenAuthorization : condition list is incomplete");
|
||||||
}
|
return tefINTERNAL;
|
||||||
|
} // LCOV_EXCL_STOP
|
||||||
|
|
||||||
TER
|
TER
|
||||||
canTransfer(
|
canTransfer(
|
||||||
ReadView const& view,
|
ReadView const& view,
|
||||||
MPTIssue const& mptIssue,
|
MPTIssue const& mptIssue,
|
||||||
AccountID const& from,
|
AccountID const& from,
|
||||||
AccountID const& to,
|
AccountID const& to)
|
||||||
int depth)
|
|
||||||
{
|
{
|
||||||
auto const mptID = keylet::mptIssuance(mptIssue.getMptID());
|
auto const mptID = keylet::mptIssuance(mptIssue.getMptID());
|
||||||
auto const sleIssuance = view.read(mptID);
|
auto const sleIssuance = view.read(mptID);
|
||||||
|
|||||||
Reference in New Issue
Block a user