mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 02:55:50 +00:00
Move isPseudoAccount near createPseudoAccount
This commit is contained in:
@@ -501,6 +501,21 @@ createPseudoAccount(
|
|||||||
uint256 const& pseudoOwnerKey,
|
uint256 const& pseudoOwnerKey,
|
||||||
PseudoAccountOwnerType type);
|
PseudoAccountOwnerType type);
|
||||||
|
|
||||||
|
// Returns true iff sleAcct is a pseudo-account.
|
||||||
|
//
|
||||||
|
// Returns false if sleAcct is
|
||||||
|
// * NOT a pseudo-account OR
|
||||||
|
// * NOT a ltACCOUNT_ROOT OR
|
||||||
|
// * null pointer
|
||||||
|
[[nodiscard]] bool
|
||||||
|
isPseudoAccount(std::shared_ptr<SLE const> sleAcct);
|
||||||
|
|
||||||
|
[[nodiscard]] inline bool
|
||||||
|
isPseudoAccount(ReadView const& view, AccountID accountId)
|
||||||
|
{
|
||||||
|
return isPseudoAccount(view.read(keylet::account(accountId)));
|
||||||
|
}
|
||||||
|
|
||||||
[[nodiscard]] TER
|
[[nodiscard]] TER
|
||||||
addEmptyHolding(
|
addEmptyHolding(
|
||||||
ApplyView& view,
|
ApplyView& view,
|
||||||
@@ -799,21 +814,6 @@ sharesToAssetsWithdraw(
|
|||||||
std::shared_ptr<SLE const> const& issuance,
|
std::shared_ptr<SLE const> const& issuance,
|
||||||
STAmount const& shares);
|
STAmount const& shares);
|
||||||
|
|
||||||
// Returns true iff sleAcct is a pseudo-account.
|
|
||||||
//
|
|
||||||
// Returns false if sleAcct is
|
|
||||||
// * NOT a pseudo-account OR
|
|
||||||
// * NOT a ltACCOUNT_ROOT OR
|
|
||||||
// * null pointer
|
|
||||||
[[nodiscard]] bool
|
|
||||||
isPseudoAccount(std::shared_ptr<SLE const> sleAcct);
|
|
||||||
|
|
||||||
[[nodiscard]] inline bool
|
|
||||||
isPseudoAccount(ReadView const& view, AccountID accountId)
|
|
||||||
{
|
|
||||||
return isPseudoAccount(view.read(keylet::account(accountId)));
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1104,6 +1104,28 @@ createPseudoAccount(
|
|||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] bool
|
||||||
|
isPseudoAccount(std::shared_ptr<SLE const> sleAcct)
|
||||||
|
{
|
||||||
|
// Note, the list of the pseudo-account designator fields below MUST be
|
||||||
|
// maintained but it does NOT need to be amendment-gated, since a non-active
|
||||||
|
// amendment will not set any field, by definition. Specific properties of a
|
||||||
|
// pseudo-account are NOT checked here, that's what InvariantCheck is for.
|
||||||
|
static std::array<SField const*, 2> const fields = //
|
||||||
|
{
|
||||||
|
&sfAMMID, //
|
||||||
|
&sfVaultID, //
|
||||||
|
};
|
||||||
|
|
||||||
|
// Intentionally use defensive coding here because it's cheap and makes the
|
||||||
|
// semantics of true return value clean.
|
||||||
|
return sleAcct && sleAcct->getType() == ltACCOUNT_ROOT &&
|
||||||
|
std::count_if(
|
||||||
|
fields.begin(), fields.end(), [&sleAcct](SField const* sf) -> bool {
|
||||||
|
return sleAcct->isFieldPresent(*sf);
|
||||||
|
}) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
[[nodiscard]] TER
|
[[nodiscard]] TER
|
||||||
addEmptyHolding(
|
addEmptyHolding(
|
||||||
ApplyView& view,
|
ApplyView& view,
|
||||||
@@ -2576,26 +2598,4 @@ sharesToAssetsWithdraw(
|
|||||||
return assets;
|
return assets;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] bool
|
|
||||||
isPseudoAccount(std::shared_ptr<SLE const> sleAcct)
|
|
||||||
{
|
|
||||||
// Note, the list of the pseudo-account designator fields below MUST be
|
|
||||||
// maintained but it does NOT need to be amendment-gated, since a non-active
|
|
||||||
// amendment will not set any field, by definition. Specific properties of a
|
|
||||||
// pseudo-account are NOT checked here, that's what InvariantCheck is for.
|
|
||||||
static std::array<SField const*, 2> const fields = //
|
|
||||||
{
|
|
||||||
&sfAMMID, //
|
|
||||||
&sfVaultID, //
|
|
||||||
};
|
|
||||||
|
|
||||||
// Intentionally use defensive coding here because it's cheap and makes the
|
|
||||||
// semantics of true return value clean.
|
|
||||||
return sleAcct && sleAcct->getType() == ltACCOUNT_ROOT &&
|
|
||||||
std::count_if(
|
|
||||||
fields.begin(), fields.end(), [&sleAcct](SField const* sf) -> bool {
|
|
||||||
return sleAcct->isFieldPresent(*sf);
|
|
||||||
}) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ripple
|
} // namespace ripple
|
||||||
|
|||||||
Reference in New Issue
Block a user