mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-04 09:16:47 +00:00
Rename [sponsor|sponsee]Acc,[sponsor|sponsee]Account to [sponsor|sponsee]AccountID for clarity
This commit is contained in:
@@ -1226,12 +1226,12 @@ adjustOwnerCount(
|
||||
if (sponsorSle)
|
||||
{
|
||||
auto const account = accountSle->getAccountID(sfAccount);
|
||||
auto const sponsorAcc = (sponsorSle)->getAccountID(sfAccount);
|
||||
auto const sponsorAccountID = (sponsorSle)->getAccountID(sfAccount);
|
||||
{
|
||||
// modify sponsor's SponsoringOwnerCount
|
||||
std::uint32_t const current{(sponsorSle)->getFieldU32(sfSponsoringOwnerCount)};
|
||||
std::uint32_t const adjusted = confineOwnerCount(current, amount, sponsorAcc, j);
|
||||
view.adjustOwnerCountHook(sponsorAcc, current, adjusted);
|
||||
std::uint32_t const adjusted = confineOwnerCount(current, amount, sponsorAccountID, j);
|
||||
view.adjustOwnerCountHook(sponsorAccountID, current, adjusted);
|
||||
if (adjusted == 0)
|
||||
(sponsorSle)->makeFieldAbsent(sfSponsoringOwnerCount);
|
||||
else
|
||||
@@ -1250,7 +1250,7 @@ adjustOwnerCount(
|
||||
view.update(accountSle);
|
||||
}
|
||||
|
||||
auto sponsorObjSle = view.peek(keylet::sponsor(sponsorAcc, account));
|
||||
auto sponsorObjSle = view.peek(keylet::sponsor(sponsorAccountID, account));
|
||||
|
||||
if (sponsorObjSle)
|
||||
{
|
||||
@@ -1261,7 +1261,7 @@ adjustOwnerCount(
|
||||
// Reserve count moves opposite to amount: +amount => consume reserve (-), -amount =>
|
||||
// payback (+)
|
||||
std::uint32_t const adjusted =
|
||||
confineOwnerCount(currentReserveCount, -amount, sponsorAcc, j);
|
||||
confineOwnerCount(currentReserveCount, -amount, sponsorAccountID, j);
|
||||
if (adjusted == 0)
|
||||
sponsorObjSle->makeFieldAbsent(sfReserveCount);
|
||||
else
|
||||
@@ -1588,11 +1588,12 @@ doWithdraw(
|
||||
// LCOV_EXCL_STOP
|
||||
}
|
||||
|
||||
auto const sponsorAcc = getTxReserveSponsorAccountID(tx);
|
||||
auto const sponsorAccountID = getTxReserveSponsorAccountID(tx);
|
||||
|
||||
// Move the funds directly from the broker's pseudo-account to the
|
||||
// dstAcct
|
||||
return accountSend(view, sourceAcct, dstAcct, amount, j, sponsorAcc, WaiveTransferFee::Yes);
|
||||
return accountSend(
|
||||
view, sourceAcct, dstAcct, amount, j, sponsorAccountID, WaiveTransferFee::Yes);
|
||||
}
|
||||
|
||||
[[nodiscard]] TER
|
||||
@@ -2128,7 +2129,7 @@ rippleCreditIOU(
|
||||
AccountID const& uReceiverID,
|
||||
STAmount const& saAmount,
|
||||
bool bCheckIssuer,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
beast::Journal j)
|
||||
{
|
||||
AccountID const& issuer = saAmount.getIssuer();
|
||||
@@ -2263,7 +2264,7 @@ rippleCreditIOU(
|
||||
saReceiverLimit,
|
||||
0,
|
||||
0,
|
||||
sponsorAccount,
|
||||
sponsorAccountID,
|
||||
j);
|
||||
}
|
||||
|
||||
@@ -2278,7 +2279,7 @@ rippleSendIOU(
|
||||
STAmount const& saAmount,
|
||||
STAmount& saActual,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
auto const& issuer = saAmount.getIssuer();
|
||||
@@ -2292,7 +2293,7 @@ rippleSendIOU(
|
||||
{
|
||||
// Direct send: redeeming IOUs and/or sending own IOUs.
|
||||
auto const ter =
|
||||
rippleCreditIOU(view, uSenderID, uReceiverID, saAmount, false, sponsorAccount, j);
|
||||
rippleCreditIOU(view, uSenderID, uReceiverID, saAmount, false, sponsorAccountID, j);
|
||||
if (ter != tesSUCCESS)
|
||||
return ter;
|
||||
saActual = saAmount;
|
||||
@@ -2310,10 +2311,10 @@ rippleSendIOU(
|
||||
<< to_string(uReceiverID) << " : deliver=" << saAmount.getFullText()
|
||||
<< " cost=" << saActual.getFullText();
|
||||
|
||||
TER terResult = rippleCreditIOU(view, issuer, uReceiverID, saAmount, true, sponsorAccount, j);
|
||||
TER terResult = rippleCreditIOU(view, issuer, uReceiverID, saAmount, true, sponsorAccountID, j);
|
||||
|
||||
if (tesSUCCESS == terResult)
|
||||
terResult = rippleCreditIOU(view, uSenderID, issuer, saActual, true, sponsorAccount, j);
|
||||
terResult = rippleCreditIOU(view, uSenderID, issuer, saActual, true, sponsorAccountID, j);
|
||||
|
||||
return terResult;
|
||||
}
|
||||
@@ -2329,7 +2330,7 @@ rippleSendMultiIOU(
|
||||
MultiplePaymentDestinations const& receivers,
|
||||
STAmount& actual,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
auto const& issuer = issue.getIssuer();
|
||||
@@ -2358,7 +2359,7 @@ rippleSendMultiIOU(
|
||||
{
|
||||
// Direct send: redeeming IOUs and/or sending own IOUs.
|
||||
if (auto const ter =
|
||||
rippleCreditIOU(view, senderID, receiverID, amount, false, sponsorAccount, j))
|
||||
rippleCreditIOU(view, senderID, receiverID, amount, false, sponsorAccountID, j))
|
||||
return ter;
|
||||
actual += amount;
|
||||
// Do not add amount to takeFromSender, because rippleCreditIOU took
|
||||
@@ -2382,14 +2383,14 @@ rippleSendMultiIOU(
|
||||
<< " cost=" << actual.getFullText();
|
||||
|
||||
if (TER const terResult =
|
||||
rippleCreditIOU(view, issuer, receiverID, amount, true, sponsorAccount, j))
|
||||
rippleCreditIOU(view, issuer, receiverID, amount, true, sponsorAccountID, j))
|
||||
return terResult;
|
||||
}
|
||||
|
||||
if (senderID != issuer && takeFromSender)
|
||||
{
|
||||
if (TER const terResult =
|
||||
rippleCreditIOU(view, senderID, issuer, takeFromSender, true, sponsorAccount, j))
|
||||
rippleCreditIOU(view, senderID, issuer, takeFromSender, true, sponsorAccountID, j))
|
||||
return terResult;
|
||||
}
|
||||
|
||||
@@ -2403,7 +2404,7 @@ accountSendIOU(
|
||||
AccountID const& uReceiverID,
|
||||
STAmount const& saAmount,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
if (view.rules().enabled(fixAMMv1_1))
|
||||
@@ -2436,7 +2437,7 @@ accountSendIOU(
|
||||
<< to_string(uReceiverID) << " : " << saAmount.getFullText();
|
||||
|
||||
return rippleSendIOU(
|
||||
view, uSenderID, uReceiverID, saAmount, saActual, j, sponsorAccount, waiveFee);
|
||||
view, uSenderID, uReceiverID, saAmount, saActual, j, sponsorAccountID, waiveFee);
|
||||
}
|
||||
|
||||
/* XRP send which does not check reserve and can do pure adjustment.
|
||||
@@ -2524,7 +2525,7 @@ accountSendMultiIOU(
|
||||
Issue const& issue,
|
||||
MultiplePaymentDestinations const& receivers,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
XRPL_ASSERT_PARTS(
|
||||
@@ -2537,7 +2538,7 @@ accountSendMultiIOU(
|
||||
<< receivers.size() << " IOUs";
|
||||
|
||||
return rippleSendMultiIOU(
|
||||
view, senderID, issue, receivers, actual, j, sponsorAccount, waiveFee);
|
||||
view, senderID, issue, receivers, actual, j, sponsorAccountID, waiveFee);
|
||||
}
|
||||
|
||||
/* XRP send which does not check reserve and can do pure adjustment.
|
||||
@@ -2900,14 +2901,14 @@ accountSend(
|
||||
AccountID const& uReceiverID,
|
||||
STAmount const& saAmount,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAcc,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
return std::visit(
|
||||
[&]<ValidIssueType TIss>(TIss const& issue) {
|
||||
if constexpr (std::is_same_v<TIss, Issue>)
|
||||
return accountSendIOU(
|
||||
view, uSenderID, uReceiverID, saAmount, j, sponsorAcc, waiveFee);
|
||||
view, uSenderID, uReceiverID, saAmount, j, sponsorAccountID, waiveFee);
|
||||
else
|
||||
return accountSendMPT(view, uSenderID, uReceiverID, saAmount, j, waiveFee);
|
||||
},
|
||||
@@ -2921,7 +2922,7 @@ accountSendMulti(
|
||||
Asset const& asset,
|
||||
MultiplePaymentDestinations const& receivers,
|
||||
beast::Journal j,
|
||||
std::optional<AccountID> const& sponsorAccount,
|
||||
std::optional<AccountID> const& sponsorAccountID,
|
||||
WaiveTransferFee waiveFee)
|
||||
{
|
||||
XRPL_ASSERT_PARTS(
|
||||
@@ -2930,7 +2931,7 @@ accountSendMulti(
|
||||
[&]<ValidIssueType TIss>(TIss const& issue) {
|
||||
if constexpr (std::is_same_v<TIss, Issue>)
|
||||
return accountSendMultiIOU(
|
||||
view, senderID, issue, receivers, j, sponsorAccount, waiveFee);
|
||||
view, senderID, issue, receivers, j, sponsorAccountID, waiveFee);
|
||||
else
|
||||
return accountSendMultiMPT(view, senderID, issue, receivers, j, waiveFee);
|
||||
},
|
||||
|
||||
@@ -775,9 +775,10 @@ Transactor::checkSign(
|
||||
if (!sigObject.isFieldPresent(sfSponsor))
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const sponsorAcc = sigObject.getAccountID(sfSponsor);
|
||||
auto const sponsorAccountID = sigObject.getAccountID(sfSponsor);
|
||||
auto const sponsorSignature = sigObject.getFieldObject(sfSponsorSignature);
|
||||
if (auto const ret = checkSign(view, flags, std::nullopt, sponsorAcc, sponsorSignature, j);
|
||||
if (auto const ret =
|
||||
checkSign(view, flags, std::nullopt, sponsorAccountID, sponsorSignature, j);
|
||||
!isTesSuccess(ret))
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@ SponsorshipSet::preflight(PreflightContext const& ctx)
|
||||
if (hasSponsor == hasSponsee)
|
||||
return temMALFORMED;
|
||||
|
||||
auto const sponsor = ctx.tx[~sfCounterpartySponsor].value_or(account);
|
||||
auto const sponsee = ctx.tx[~sfSponsee].value_or(account);
|
||||
auto const sponsorAccountID = ctx.tx[~sfCounterpartySponsor].value_or(account);
|
||||
auto const sponseeAccountID = ctx.tx[~sfSponsee].value_or(account);
|
||||
|
||||
if (sponsor == sponsee)
|
||||
if (sponsorAccountID == sponseeAccountID)
|
||||
return temMALFORMED;
|
||||
|
||||
if (flags & tfDeleteObject)
|
||||
@@ -56,7 +56,7 @@ SponsorshipSet::preflight(PreflightContext const& ctx)
|
||||
{
|
||||
// although both Sponsor and Sponsee can delete,
|
||||
// only the Sponsor can create or update sponsorship.
|
||||
if (account != sponsor)
|
||||
if (account != sponsorAccountID)
|
||||
return temMALFORMED;
|
||||
|
||||
// Check FeeAmount and MaxFee
|
||||
@@ -136,24 +136,24 @@ SponsorshipSet::checkPermission(ReadView const& view, STTx const& tx)
|
||||
TER
|
||||
SponsorshipSet::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const sponsor = ctx.tx[~sfCounterpartySponsor].value_or(ctx.tx[sfAccount]);
|
||||
auto const sponsee = ctx.tx[~sfSponsee].value_or(ctx.tx[sfAccount]);
|
||||
auto const sponsorAccountID = ctx.tx[~sfCounterpartySponsor].value_or(ctx.tx[sfAccount]);
|
||||
auto const sponseeAccountID = ctx.tx[~sfSponsee].value_or(ctx.tx[sfAccount]);
|
||||
|
||||
if (sponsee == sponsor)
|
||||
if (sponseeAccountID == sponsorAccountID)
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
// check Sponsor
|
||||
auto const sponsorAccSle = ctx.view.read(keylet::account(sponsor));
|
||||
auto const sponsorAccSle = ctx.view.read(keylet::account(sponsorAccountID));
|
||||
if (!sponsorAccSle)
|
||||
return tecNO_DST;
|
||||
|
||||
// check Sponsee
|
||||
auto const sponseeSle = ctx.view.read(keylet::account(sponsee));
|
||||
auto const sponseeSle = ctx.view.read(keylet::account(sponseeAccountID));
|
||||
if (!sponseeSle)
|
||||
return tecNO_DST;
|
||||
|
||||
// check if object exists
|
||||
auto const sponsorObjSle = ctx.view.read(keylet::sponsor(sponsor, sponsee));
|
||||
auto const sponsorObjSle = ctx.view.read(keylet::sponsor(sponsorAccountID, sponseeAccountID));
|
||||
|
||||
if (ctx.tx.isFlag(tfDeleteObject) && !sponsorObjSle)
|
||||
return tecNO_ENTRY;
|
||||
@@ -168,20 +168,20 @@ SponsorshipSet::preclaim(PreclaimContext const& ctx)
|
||||
TER
|
||||
SponsorshipSet::doApply()
|
||||
{
|
||||
auto const sponsorAcc = ctx_.tx[~sfCounterpartySponsor].value_or(account_);
|
||||
auto const sponseeAcc = ctx_.tx[~sfSponsee].value_or(account_);
|
||||
auto const sponsorAccountID = ctx_.tx[~sfCounterpartySponsor].value_or(account_);
|
||||
auto const sponseeAccountID = ctx_.tx[~sfSponsee].value_or(account_);
|
||||
|
||||
if (sponseeAcc == sponsorAcc)
|
||||
if (sponseeAccountID == sponsorAccountID)
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const sponsorAccSle = ctx_.view().peek(keylet::account(sponsorAcc));
|
||||
auto const sponsorAccSle = ctx_.view().peek(keylet::account(sponsorAccountID));
|
||||
if (!sponsorAccSle)
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
if (!ctx_.view().exists(keylet::account(sponseeAcc)))
|
||||
if (!ctx_.view().exists(keylet::account(sponseeAccountID)))
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const sponsorKeylet = keylet::sponsor(sponsorAcc, sponseeAcc);
|
||||
auto const sponsorKeylet = keylet::sponsor(sponsorAccountID, sponseeAccountID);
|
||||
auto const sponsorObjSle = ctx_.view().peek(sponsorKeylet);
|
||||
|
||||
if (ctx_.tx.isFlag(tfDeleteObject))
|
||||
@@ -194,12 +194,12 @@ SponsorshipSet::doApply()
|
||||
adjustOwnerCount(ctx_.view(), sponsorAccSle, sponsor, -1, ctx_.journal);
|
||||
|
||||
ctx_.view().dirRemove(
|
||||
keylet::ownerDir(sponsorAcc),
|
||||
keylet::ownerDir(sponsorAccountID),
|
||||
(*sponsorObjSle)[sfOwnerNode],
|
||||
sponsorObjSle->key(),
|
||||
false);
|
||||
ctx_.view().dirRemove(
|
||||
keylet::ownerDir(sponseeAcc),
|
||||
keylet::ownerDir(sponseeAccountID),
|
||||
(*sponsorObjSle)[sfSponseeNode],
|
||||
sponsorObjSle->key(),
|
||||
false);
|
||||
@@ -235,8 +235,8 @@ SponsorshipSet::doApply()
|
||||
!isTesSuccess(ret))
|
||||
return tecUNFUNDED;
|
||||
|
||||
(*newSle)[sfOwner] = sponsorAcc;
|
||||
(*newSle)[sfSponsee] = sponseeAcc;
|
||||
(*newSle)[sfOwner] = sponsorAccountID;
|
||||
(*newSle)[sfSponsee] = sponseeAccountID;
|
||||
if (feeAmount && *feeAmount > XRPAmount(0))
|
||||
{
|
||||
(*sponsorAccSle)[sfBalance] -= *feeAmount;
|
||||
@@ -257,11 +257,11 @@ SponsorshipSet::doApply()
|
||||
(*newSle)[sfFlags] = flags;
|
||||
|
||||
auto const sponsorPage = view().dirInsert(
|
||||
keylet::ownerDir(sponsorAcc), sponsorKeylet, describeOwnerDir(sponsorAcc));
|
||||
keylet::ownerDir(sponsorAccountID), sponsorKeylet, describeOwnerDir(sponsorAccountID));
|
||||
(*newSle)[sfOwnerNode] = *sponsorPage;
|
||||
|
||||
auto const sponseePage = view().dirInsert(
|
||||
keylet::ownerDir(sponseeAcc), sponsorKeylet, describeOwnerDir(sponseeAcc));
|
||||
keylet::ownerDir(sponseeAccountID), sponsorKeylet, describeOwnerDir(sponseeAccountID));
|
||||
(*newSle)[sfSponseeNode] = *sponseePage;
|
||||
|
||||
auto viewJ = ctx_.registry.journal("View");
|
||||
@@ -335,11 +335,11 @@ SponsorshipSet::deleteSponsorship(
|
||||
std::shared_ptr<SLE> const& sle,
|
||||
beast::Journal j)
|
||||
{
|
||||
auto const sponsor = sle->getAccountID(sfOwner);
|
||||
auto const sponsee = sle->getAccountID(sfSponsee);
|
||||
auto const sponsorAccountID = sle->getAccountID(sfOwner);
|
||||
auto const sponseeAccountID = sle->getAccountID(sfSponsee);
|
||||
|
||||
// adjust balance
|
||||
auto const sponsorAccSle = view.peek(keylet::account(sponsor));
|
||||
auto const sponsorAccSle = view.peek(keylet::account(sponsorAccountID));
|
||||
if (!sponsorAccSle)
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
@@ -355,9 +355,9 @@ SponsorshipSet::deleteSponsorship(
|
||||
view.update(sponsorAccSle);
|
||||
|
||||
// delete sponsor node
|
||||
view.dirRemove(keylet::ownerDir(sponsor), (*sle)[sfOwnerNode], sle->key(), false);
|
||||
view.dirRemove(keylet::ownerDir(sponsorAccountID), (*sle)[sfOwnerNode], sle->key(), false);
|
||||
// delete sponsee node
|
||||
view.dirRemove(keylet::ownerDir(sponsee), (*sle)[sfSponseeNode], sle->key(), false);
|
||||
view.dirRemove(keylet::ownerDir(sponseeAccountID), (*sle)[sfSponseeNode], sle->key(), false);
|
||||
|
||||
view.erase(sle);
|
||||
|
||||
|
||||
@@ -226,8 +226,8 @@ SponsorshipTransfer::preclaim(PreclaimContext const& ctx)
|
||||
|
||||
auto const account = ctx.tx[sfAccount];
|
||||
|
||||
auto const sponsee = ctx.tx[~sfSponsee].value_or(account);
|
||||
auto const sponseeSle = ctx.view.read(keylet::account(sponsee));
|
||||
auto const sponseeAccountID = ctx.tx[~sfSponsee].value_or(account);
|
||||
auto const sponseeSle = ctx.view.read(keylet::account(sponseeAccountID));
|
||||
if (!sponseeSle)
|
||||
return tecINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
@@ -239,8 +239,8 @@ SponsorshipTransfer::preclaim(PreclaimContext const& ctx)
|
||||
|
||||
auto const ownerCountDelta = getLedgerEntryOwnerCount(sle);
|
||||
|
||||
auto const owner = getLedgerEntryOwner(ctx.view, sle, sponsee);
|
||||
if (!owner || owner != sponsee)
|
||||
auto const owner = getLedgerEntryOwner(ctx.view, sle, sponseeAccountID);
|
||||
if (!owner || owner != sponseeAccountID)
|
||||
return tecNO_PERMISSION;
|
||||
|
||||
auto const& sponsorField = getLedgerEntrySponsorField(sle, *owner);
|
||||
@@ -371,8 +371,8 @@ SponsorshipTransfer::doApply()
|
||||
auto const flags = tx.getFlags();
|
||||
bool const isObjectSponsor = index != std::nullopt;
|
||||
|
||||
auto const sponsee = tx[~sfSponsee].value_or(account_);
|
||||
auto const sponseeSle = view().peek(keylet::account(sponsee));
|
||||
auto const sponseeAccountID = tx[~sfSponsee].value_or(account_);
|
||||
auto const sponseeSle = view().peek(keylet::account(sponseeAccountID));
|
||||
if (!sponseeSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
@@ -393,96 +393,99 @@ SponsorshipTransfer::doApply()
|
||||
if (!objSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const owner = getLedgerEntryOwner(view(), objSle, account_);
|
||||
if (!owner)
|
||||
auto const ownerAccountID = getLedgerEntryOwner(view(), objSle, account_);
|
||||
if (!ownerAccountID)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const ownerSle = view().peek(keylet::account(*owner));
|
||||
auto const ownerSle = view().peek(keylet::account(*ownerAccountID));
|
||||
if (!ownerSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
auto const ownerCountDelta = getLedgerEntryOwnerCount(objSle);
|
||||
|
||||
auto const& sponsorField = getLedgerEntrySponsorField(objSle, *owner);
|
||||
auto const& sponsorField = getLedgerEntrySponsorField(objSle, *ownerAccountID);
|
||||
|
||||
if (flags & tfSponsorshipCreate)
|
||||
{
|
||||
auto const newSponsor = tx.getAccountID(sfSponsor);
|
||||
XRPL_ASSERT(!!newSponsor, "New sponsor is required when creating sponsorship");
|
||||
auto const newSponsorAccountID = tx.getAccountID(sfSponsor);
|
||||
XRPL_ASSERT(!!newSponsorAccountID, "New sponsor is required when creating sponsorship");
|
||||
|
||||
// update owner's sponsored count
|
||||
setSponsorFieldU32(ownerSle, sfSponsoredOwnerCount, ownerCountDelta);
|
||||
view().update(ownerSle);
|
||||
|
||||
// increment new sponsor's sponsoring count
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsor));
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsorAccountID));
|
||||
if (!newSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
setSponsorFieldU32(newSponsorSle, sfSponsoringOwnerCount, ownerCountDelta);
|
||||
view().update(newSponsorSle);
|
||||
|
||||
// set new sponsor to object
|
||||
objSle->setAccountID(sponsorField, newSponsor);
|
||||
objSle->setAccountID(sponsorField, newSponsorAccountID);
|
||||
view().update(objSle);
|
||||
|
||||
if (!hasSignature)
|
||||
{
|
||||
// use ReserveCount for pre-funded sponsoring
|
||||
if (auto const ter =
|
||||
adjustReserveCount(view(), account_, newSponsor, -ownerCountDelta);
|
||||
adjustReserveCount(view(), account_, newSponsorAccountID, -ownerCountDelta);
|
||||
!isTesSuccess(ter))
|
||||
return ter;
|
||||
}
|
||||
}
|
||||
else if (flags & tfSponsorshipReassign)
|
||||
{
|
||||
auto const newSponsor = tx.getAccountID(sfSponsor);
|
||||
XRPL_ASSERT(!!newSponsor, "New sponsor is required when reassigning sponsorship");
|
||||
auto const newSponsorAccountID = tx.getAccountID(sfSponsor);
|
||||
XRPL_ASSERT(
|
||||
!!newSponsorAccountID, "New sponsor is required when reassigning sponsorship");
|
||||
|
||||
auto const oldSponsor = objSle->getAccountID(sponsorField);
|
||||
XRPL_ASSERT(!!oldSponsor, "Old sponsor is required when reassigning sponsorship");
|
||||
auto const oldSponsorAccountID = objSle->getAccountID(sponsorField);
|
||||
XRPL_ASSERT(
|
||||
!!oldSponsorAccountID, "Old sponsor is required when reassigning sponsorship");
|
||||
|
||||
// decrement old sponsor's sponsoring count
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsorAccountID));
|
||||
if (!oldSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
setSponsorFieldU32(oldSponsorSle, sfSponsoringOwnerCount, -ownerCountDelta);
|
||||
view().update(oldSponsorSle);
|
||||
|
||||
// increment new sponsor's sponsoring count
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsor));
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsorAccountID));
|
||||
if (!newSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
setSponsorFieldU32(newSponsorSle, sfSponsoringOwnerCount, ownerCountDelta);
|
||||
view().update(newSponsorSle);
|
||||
|
||||
// set new sponsor to object
|
||||
objSle->setAccountID(sponsorField, newSponsor);
|
||||
objSle->setAccountID(sponsorField, newSponsorAccountID);
|
||||
view().update(objSle);
|
||||
|
||||
if (!hasSignature)
|
||||
{
|
||||
// use ReserveCount for pre-funded sponsoring
|
||||
if (auto const ter =
|
||||
adjustReserveCount(view(), account_, newSponsor, -ownerCountDelta);
|
||||
adjustReserveCount(view(), account_, newSponsorAccountID, -ownerCountDelta);
|
||||
!isTesSuccess(ter))
|
||||
return ter;
|
||||
}
|
||||
|
||||
// payback the reserve count if ltSponsorship exists
|
||||
if (auto const sponsorSle = view().exists(keylet::sponsor(oldSponsor, account_));
|
||||
if (auto const sponsorSle =
|
||||
view().exists(keylet::sponsor(oldSponsorAccountID, account_));
|
||||
sponsorSle)
|
||||
if (auto const ter =
|
||||
adjustReserveCount(view(), account_, oldSponsor, ownerCountDelta);
|
||||
adjustReserveCount(view(), account_, oldSponsorAccountID, ownerCountDelta);
|
||||
!isTesSuccess(ter))
|
||||
return ter;
|
||||
}
|
||||
else if (flags & tfSponsorshipEnd)
|
||||
{
|
||||
auto const oldSponsor = objSle->getAccountID(sponsorField);
|
||||
XRPL_ASSERT(!!oldSponsor, "Old sponsor is required when ending sponsorship");
|
||||
auto const oldSponsorAccountID = objSle->getAccountID(sponsorField);
|
||||
XRPL_ASSERT(!!oldSponsorAccountID, "Old sponsor is required when ending sponsorship");
|
||||
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsorAccountID));
|
||||
if (!oldSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
@@ -495,10 +498,11 @@ SponsorshipTransfer::doApply()
|
||||
view().update(oldSponsorSle);
|
||||
|
||||
// payback the reserve count if ltSponsorship exists
|
||||
if (auto const sponsorSle = view().exists(keylet::sponsor(oldSponsor, account_));
|
||||
if (auto const sponsorSle =
|
||||
view().exists(keylet::sponsor(oldSponsorAccountID, account_));
|
||||
sponsorSle)
|
||||
if (auto const ter =
|
||||
adjustReserveCount(view(), account_, oldSponsor, ownerCountDelta);
|
||||
adjustReserveCount(view(), account_, oldSponsorAccountID, ownerCountDelta);
|
||||
!isTesSuccess(ter))
|
||||
return ter;
|
||||
|
||||
@@ -513,23 +517,23 @@ SponsorshipTransfer::doApply()
|
||||
{
|
||||
// create account sponsor
|
||||
// increment new sponsoring count
|
||||
auto const newSponsor = tx.getAccountID(sfSponsor);
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsor));
|
||||
auto const newSponsorAccountID = tx.getAccountID(sfSponsor);
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsorAccountID));
|
||||
if (!newSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
setSponsorFieldU32(newSponsorSle, sfSponsoringAccountCount, 1);
|
||||
view().update(newSponsorSle);
|
||||
|
||||
// set new sponsor to account
|
||||
sponseeSle->setAccountID(sfSponsor, newSponsor);
|
||||
sponseeSle->setAccountID(sfSponsor, newSponsorAccountID);
|
||||
view().update(sponseeSle);
|
||||
}
|
||||
else if (flags & tfSponsorshipReassign)
|
||||
{
|
||||
// reassign account sponsor
|
||||
// increment new sponsoring count
|
||||
auto const newSponsor = tx.getAccountID(sfSponsor);
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsor));
|
||||
auto const newSponsorAccountID = tx.getAccountID(sfSponsor);
|
||||
auto const newSponsorSle = view().peek(keylet::account(newSponsorAccountID));
|
||||
setSponsorFieldU32(newSponsorSle, sfSponsoringAccountCount, 1);
|
||||
view().update(newSponsorSle);
|
||||
|
||||
@@ -542,18 +546,18 @@ SponsorshipTransfer::doApply()
|
||||
view().update(oldSponsorSle);
|
||||
|
||||
// set new sponsor to account
|
||||
sponseeSle->setAccountID(sfSponsor, newSponsor);
|
||||
sponseeSle->setAccountID(sfSponsor, newSponsorAccountID);
|
||||
view().update(sponseeSle);
|
||||
}
|
||||
else if (flags & tfSponsorshipEnd)
|
||||
{
|
||||
// dissolve account sponsor
|
||||
auto const oldSponsor = sponseeSle->getAccountID(sfSponsor);
|
||||
auto const oldSponsorAccountID = sponseeSle->getAccountID(sfSponsor);
|
||||
sponseeSle->makeFieldAbsent(sfSponsor);
|
||||
view().update(sponseeSle);
|
||||
|
||||
// decrement account sponsoring count
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsorAccountID));
|
||||
if (!oldSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
setSponsorFieldU32(oldSponsorSle, sfSponsoringAccountCount, -1);
|
||||
|
||||
@@ -407,8 +407,8 @@ DeleteAccount::doApply()
|
||||
|
||||
if (src->isFieldPresent(sfSponsor))
|
||||
{
|
||||
auto const sponsorAcc = src->getAccountID(sfSponsor);
|
||||
auto sponsorSle = view().peek(keylet::account(sponsorAcc));
|
||||
auto const sponsorAccountID = src->getAccountID(sfSponsor);
|
||||
auto sponsorSle = view().peek(keylet::account(sponsorAccountID));
|
||||
|
||||
if (!sponsorSle || !sponsorSle->isFieldPresent(sfSponsoringAccountCount))
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
|
||||
@@ -309,10 +309,10 @@ CashCheck::doApply()
|
||||
|
||||
auto const sleDst = psb.peek(keylet::account(account_));
|
||||
|
||||
auto const sponsorAcc = getTxReserveSponsorAccountID(ctx_.tx);
|
||||
auto const sponsorAccountID = getTxReserveSponsorAccountID(ctx_.tx);
|
||||
std::shared_ptr<SLE> sponsorSle = {};
|
||||
if (sponsorAcc)
|
||||
sponsorSle = psb.peek(keylet::account(*sponsorAcc));
|
||||
if (sponsorAccountID)
|
||||
sponsorSle = psb.peek(keylet::account(*sponsorAccountID));
|
||||
|
||||
// Can the account cover the trust line's reserve?
|
||||
if (auto const ret = checkInsufficientReserve(
|
||||
@@ -345,7 +345,7 @@ CashCheck::doApply()
|
||||
Issue(currency, account_), // limit of zero
|
||||
0, // quality in
|
||||
0, // quality out
|
||||
sponsorAcc, // sponsor
|
||||
sponsorAccountID, // sponsor
|
||||
viewJ); // journal
|
||||
!isTesSuccess(ter))
|
||||
{
|
||||
|
||||
@@ -55,10 +55,10 @@ escrowUnlockApplyHelper<Issue>(
|
||||
if (!view.exists(trustLineKey) && createAsset && !receiverIssuer)
|
||||
{
|
||||
// Can the account cover the trust line's reserve?
|
||||
auto const sponsorAcc = getTxReserveSponsorAccountID(tx);
|
||||
auto const sponsorAccountID = getTxReserveSponsorAccountID(tx);
|
||||
std::shared_ptr<SLE> sponsorSle = {};
|
||||
if (sponsorAcc)
|
||||
sponsorSle = view.peek(keylet::account(*sponsorAcc));
|
||||
if (sponsorAccountID)
|
||||
sponsorSle = view.peek(keylet::account(*sponsorAccountID));
|
||||
if (auto const ret = checkInsufficientReserve(view, tx, sleDest, xrpBalance, sponsorSle, 1);
|
||||
!isTesSuccess(ret))
|
||||
{
|
||||
@@ -88,7 +88,7 @@ escrowUnlockApplyHelper<Issue>(
|
||||
Issue(currency, receiver), // limit of zero
|
||||
0, // quality in
|
||||
0, // quality out
|
||||
sponsorAcc, // sponsor
|
||||
sponsorAccountID, // sponsor
|
||||
journal); // journal
|
||||
!isTesSuccess(ter))
|
||||
{
|
||||
|
||||
@@ -755,17 +755,17 @@ parseSponsorship(
|
||||
return parseObjectID(params, fieldName);
|
||||
}
|
||||
|
||||
auto const sponsor =
|
||||
auto const sponsorAccountID =
|
||||
LedgerEntryHelpers::requiredAccountID(params, jss::sponsor, "malformedSponsor");
|
||||
if (!sponsor)
|
||||
return Unexpected(sponsor.error());
|
||||
if (!sponsorAccountID)
|
||||
return Unexpected(sponsorAccountID.error());
|
||||
|
||||
auto const sponsee =
|
||||
auto const sponseeAccountID =
|
||||
LedgerEntryHelpers::requiredAccountID(params, jss::sponsee, "malformedSponsee");
|
||||
if (!sponsee)
|
||||
return Unexpected(sponsee.error());
|
||||
if (!sponseeAccountID)
|
||||
return Unexpected(sponseeAccountID.error());
|
||||
|
||||
return keylet::sponsor(*sponsor, *sponsee).key;
|
||||
return keylet::sponsor(*sponsorAccountID, *sponseeAccountID).key;
|
||||
}
|
||||
|
||||
static Expected<uint256, Json::Value>
|
||||
|
||||
Reference in New Issue
Block a user