mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-04 01:06:48 +00:00
sfSponsorAccount -> sfSponsor/sfCounterpartySponsor
This commit is contained in:
@@ -450,30 +450,25 @@ std::shared_ptr<SLE const> const
|
||||
getTxReserveSponsor(ReadView const& view, STTx const& tx);
|
||||
|
||||
std::optional<AccountID>
|
||||
getLedgerEntryReserveSponsorAccountID(
|
||||
std::shared_ptr<SLE const> const& sle,
|
||||
SF_ACCOUNT const& field = sfSponsorAccount);
|
||||
getLedgerEntryReserveSponsorAccountID(std::shared_ptr<SLE const> const& sle, SF_ACCOUNT const& field = sfSponsor);
|
||||
|
||||
std::shared_ptr<SLE>
|
||||
getLedgerEntryReserveSponsor(
|
||||
ApplyView& view,
|
||||
std::shared_ptr<SLE> const& sle,
|
||||
SF_ACCOUNT const& field = sfSponsorAccount);
|
||||
getLedgerEntryReserveSponsor(ApplyView& view, std::shared_ptr<SLE> const& sle, SF_ACCOUNT const& field = sfSponsor);
|
||||
|
||||
std::shared_ptr<SLE const> const
|
||||
getLedgerEntryReserveSponsor(
|
||||
ReadView const& view,
|
||||
std::shared_ptr<SLE const> const& sle,
|
||||
SF_ACCOUNT const& field = sfSponsorAccount);
|
||||
SF_ACCOUNT const& field = sfSponsor);
|
||||
|
||||
void
|
||||
addSponsorToLedgerEntry(
|
||||
std::shared_ptr<SLE> const& sle,
|
||||
std::shared_ptr<SLE> const& sponsorSle,
|
||||
SF_ACCOUNT const& field = sfSponsorAccount);
|
||||
SF_ACCOUNT const& field = sfSponsor);
|
||||
|
||||
void
|
||||
removeSponsorFromLedgerEntry(std::shared_ptr<SLE> const& sle, SF_ACCOUNT const& field = sfSponsorAccount);
|
||||
removeSponsorFromLedgerEntry(std::shared_ptr<SLE> const& sle, SF_ACCOUNT const& field = sfSponsor);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -332,10 +332,10 @@ TYPED_SFIELD(sfIssuingChainDoor, ACCOUNT, 23)
|
||||
TYPED_SFIELD(sfSubject, ACCOUNT, 24)
|
||||
TYPED_SFIELD(sfBorrower, ACCOUNT, 25)
|
||||
TYPED_SFIELD(sfCounterparty, ACCOUNT, 26)
|
||||
TYPED_SFIELD(sfSponsorAccount, ACCOUNT, 27)
|
||||
TYPED_SFIELD(sfSponsor, ACCOUNT, 27)
|
||||
TYPED_SFIELD(sfHighSponsor, ACCOUNT, 28)
|
||||
TYPED_SFIELD(sfLowSponsor, ACCOUNT, 29)
|
||||
TYPED_SFIELD(sfSponsor, ACCOUNT, 30)
|
||||
TYPED_SFIELD(sfCounterpartySponsor, ACCOUNT, 30)
|
||||
TYPED_SFIELD(sfSponsee, ACCOUNT, 31)
|
||||
|
||||
// vector of 256-bit
|
||||
|
||||
@@ -1079,7 +1079,7 @@ TRANSACTION(ttSPONSORSHIP_SET, 86, SponsorshipSet,
|
||||
featureSponsor,
|
||||
noPriv,
|
||||
({
|
||||
{sfSponsorAccount, soeOPTIONAL},
|
||||
{sfCounterpartySponsor, soeOPTIONAL},
|
||||
{sfSponsee, soeOPTIONAL},
|
||||
{sfFeeAmount, soeOPTIONAL},
|
||||
{sfMaxFee, soeOPTIONAL},
|
||||
|
||||
@@ -580,7 +580,7 @@ xrpLiquid(ReadView const& view, AccountID const& id, std::int32_t ownerCountAdj,
|
||||
|
||||
std::size_t sponsoredOwnerCount = sle->getFieldU32(sfSponsoredOwnerCount);
|
||||
std::size_t sponsoringOwnerCount = sle->getFieldU32(sfSponsoringOwnerCount);
|
||||
bool isAccountSponsored = sle->isFieldPresent(sfSponsorAccount);
|
||||
bool isAccountSponsored = sle->isFieldPresent(sfSponsor);
|
||||
std::size_t sponsoringAccountCount = sle->getFieldU32(sfSponsoringAccountCount);
|
||||
|
||||
// Pseudo-accounts have no reserve requirement
|
||||
@@ -958,7 +958,7 @@ calculateReserve(std::shared_ptr<SLE const> const& sle, Fees const& fees)
|
||||
sle->getFieldU32(sfOwnerCount),
|
||||
sle->getFieldU32(sfSponsoredOwnerCount),
|
||||
sle->getFieldU32(sfSponsoringOwnerCount),
|
||||
sle->isFieldPresent(sfSponsorAccount),
|
||||
sle->isFieldPresent(sfSponsor),
|
||||
sle->getFieldU32(sfSponsoringAccountCount));
|
||||
}
|
||||
|
||||
@@ -1008,7 +1008,7 @@ checkInsufficientReserve(
|
||||
sponsorSle->getFieldU32(sfOwnerCount),
|
||||
sponsorSle->getFieldU32(sfSponsoredOwnerCount),
|
||||
sponsorSle->getFieldU32(sfSponsoringOwnerCount) + ownerCountDelta,
|
||||
sponsorSle->isFieldPresent(sfSponsorAccount),
|
||||
sponsorSle->isFieldPresent(sfSponsor),
|
||||
sponsorSle->getFieldU32(sfSponsoringAccountCount) + accountCountDelta)};
|
||||
|
||||
if (sponsorBalance < sponsorReserve)
|
||||
@@ -1031,7 +1031,7 @@ checkInsufficientReserve(
|
||||
accSle->getFieldU32(sfOwnerCount) + ownerCountDelta,
|
||||
accSle->getFieldU32(sfSponsoredOwnerCount),
|
||||
accSle->getFieldU32(sfSponsoringOwnerCount),
|
||||
accSle->isFieldPresent(sfSponsorAccount),
|
||||
accSle->isFieldPresent(sfSponsor),
|
||||
accSle->getFieldU32(sfSponsoringAccountCount) + accountCountDelta)};
|
||||
|
||||
if (accBalance < reserve)
|
||||
@@ -1102,7 +1102,7 @@ addSponsorToLedgerEntry(
|
||||
{
|
||||
XRPL_ASSERT(
|
||||
(sle->getType() == ltRIPPLE_STATE && (field == sfHighSponsor || field == sfLowSponsor)) ||
|
||||
(sle->getType() != ltRIPPLE_STATE && field == sfSponsorAccount),
|
||||
(sle->getType() != ltRIPPLE_STATE && field == sfSponsor),
|
||||
"addSponsorToLedgerEntry : Invalid field to the LedgerEntry");
|
||||
if (sponsorSle)
|
||||
sle->setAccountID(field, sponsorSle->getAccountID(sfAccount));
|
||||
@@ -1113,7 +1113,7 @@ removeSponsorFromLedgerEntry(std::shared_ptr<SLE> const& sle, SF_ACCOUNT const&
|
||||
{
|
||||
XRPL_ASSERT(
|
||||
(sle->getType() == ltRIPPLE_STATE && (field == sfHighSponsor || field == sfLowSponsor)) ||
|
||||
(sle->getType() != ltRIPPLE_STATE && field == sfSponsorAccount),
|
||||
(sle->getType() != ltRIPPLE_STATE && field == sfSponsor),
|
||||
"removeSponsorFromLedgerEntry : Invalid field to the LedgerEntry");
|
||||
if (sle->isFieldPresent(field))
|
||||
sle->makeFieldAbsent(field);
|
||||
|
||||
@@ -14,7 +14,7 @@ LedgerFormats::LedgerFormats()
|
||||
{sfLedgerIndex, soeOPTIONAL},
|
||||
{sfLedgerEntryType, soeREQUIRED},
|
||||
{sfFlags, soeREQUIRED},
|
||||
{sfSponsorAccount, soeOPTIONAL},
|
||||
{sfSponsor, soeOPTIONAL},
|
||||
};
|
||||
|
||||
#pragma push_macro("UNWRAP")
|
||||
|
||||
@@ -1429,7 +1429,7 @@ class Invariants_test : public beast::unit_test::suite
|
||||
},
|
||||
{
|
||||
"pseudo-account has a sponsorship field",
|
||||
[](SLE::pointer& sle) { sle->at(sfSponsorAccount) = Account("sponsor").id(); },
|
||||
[](SLE::pointer& sle) { sle->at(sfSponsor) = Account("sponsor").id(); },
|
||||
},
|
||||
});
|
||||
|
||||
@@ -3540,7 +3540,7 @@ class Invariants_test : public beast::unit_test::suite
|
||||
{
|
||||
auto const expect_message =
|
||||
"Invariant failed: Net delta of SponsoringAccountCount does "
|
||||
"not match net delta of sfSponsorAccount presence.";
|
||||
"not match net delta of sfSponsor presence.";
|
||||
|
||||
doInvariantCheck({{expect_message}}, [&](Account const& A1, Account const& A2, ApplyContext& ac) {
|
||||
auto const sle = ac.view().peek(keylet::account(A1.id()));
|
||||
@@ -3555,7 +3555,7 @@ class Invariants_test : public beast::unit_test::suite
|
||||
auto const sle = ac.view().peek(keylet::account(A1.id()));
|
||||
if (!sle)
|
||||
return false;
|
||||
sle->setAccountID(sfSponsorAccount, A2.id());
|
||||
sle->setAccountID(sfSponsor, A2.id());
|
||||
ac.view().update(sle);
|
||||
return true;
|
||||
});
|
||||
|
||||
@@ -118,11 +118,14 @@ public:
|
||||
|
||||
// invalid SponsorAccount / Sponsee
|
||||
// Account = Sponsor
|
||||
env(sponsor::set(alice, tfDeleteObject), sponsor::sponsorAcc(alice), ter(temMALFORMED));
|
||||
env(sponsor::set(alice, tfDeleteObject), sponsor::counterpartySponsor(alice), ter(temMALFORMED));
|
||||
// Account = Sponsee
|
||||
env(sponsor::set(alice, tfDeleteObject), sponsor::sponseeAcc(alice), ter(temMALFORMED));
|
||||
// Both Sponsor and Sponsee are specified
|
||||
env(sponsor::set(alice, 0), sponsor::sponsorAcc(sponsor), sponsor::sponseeAcc(alice), ter(temMALFORMED));
|
||||
env(sponsor::set(alice, 0),
|
||||
sponsor::counterpartySponsor(sponsor),
|
||||
sponsor::sponseeAcc(alice),
|
||||
ter(temMALFORMED));
|
||||
|
||||
// Invalid feeAmount
|
||||
for (auto amt : {XRP(-1), XRP(0), USD(1)})
|
||||
@@ -144,8 +147,8 @@ public:
|
||||
// TODO: test MaxFee with tfDeleteObject
|
||||
|
||||
// Invalid SponsorAccount with non-Delete operation
|
||||
env(sponsor::set_reserve(sponsor, 0, 100), sponsor::sponsorAcc(alice), ter(temMALFORMED));
|
||||
env(sponsor::set_fee(sponsor, 0, XRP(1), XRP(1)), sponsor::sponsorAcc(alice), ter(temMALFORMED));
|
||||
env(sponsor::set_reserve(sponsor, 0, 100), sponsor::counterpartySponsor(alice), ter(temMALFORMED));
|
||||
env(sponsor::set_fee(sponsor, 0, XRP(1), XRP(1)), sponsor::counterpartySponsor(alice), ter(temMALFORMED));
|
||||
|
||||
//
|
||||
// preclaim
|
||||
@@ -156,7 +159,7 @@ public:
|
||||
env.close();
|
||||
|
||||
// Invalid Sponsor
|
||||
env(sponsor::set(sponsor, tfDeleteObject), sponsor::sponsorAcc(noFunded), ter(tecNO_DST));
|
||||
env(sponsor::set(sponsor, tfDeleteObject), sponsor::counterpartySponsor(noFunded), ter(tecNO_DST));
|
||||
env.close();
|
||||
|
||||
// Invalid Delete operation (sponsorship not found)
|
||||
@@ -391,7 +394,7 @@ public:
|
||||
env.close();
|
||||
|
||||
// delete from sponsee
|
||||
env(sponsor::del(alice), sponsor::sponsorAcc(sponsor), ter(tesSUCCESS));
|
||||
env(sponsor::del(alice), sponsor::counterpartySponsor(sponsor), ter(tesSUCCESS));
|
||||
env.close();
|
||||
}
|
||||
|
||||
@@ -405,7 +408,7 @@ public:
|
||||
env(sponsor::set_fee(sponsor, 0, XRP(100)), sponsor::sponseeAcc(alice), ter(tesSUCCESS));
|
||||
env.close();
|
||||
|
||||
env(sponsor::del(alice), sponsor::sponsorAcc(sponsor), ter(tesSUCCESS));
|
||||
env(sponsor::del(alice), sponsor::counterpartySponsor(sponsor), ter(tesSUCCESS));
|
||||
env.close();
|
||||
}
|
||||
{
|
||||
@@ -418,7 +421,7 @@ public:
|
||||
env(sponsor::set_reserve(sponsor, 0, 100), sponsor::sponseeAcc(alice), ter(tesSUCCESS));
|
||||
env.close();
|
||||
|
||||
env(sponsor::del(alice), sponsor::sponsorAcc(sponsor), ter(tesSUCCESS));
|
||||
env(sponsor::del(alice), sponsor::counterpartySponsor(sponsor), ter(tesSUCCESS));
|
||||
env.close();
|
||||
}
|
||||
{
|
||||
@@ -426,7 +429,7 @@ public:
|
||||
env(sponsor::set_fee(sponsor, 0, XRP(100)), sponsor::sponseeAcc(alice), ter(tesSUCCESS));
|
||||
env.close();
|
||||
|
||||
env(sponsor::del(alice), sponsor::sponsorAcc(sponsor), ter(tesSUCCESS));
|
||||
env(sponsor::del(alice), sponsor::counterpartySponsor(sponsor), ter(tesSUCCESS));
|
||||
env.close();
|
||||
}
|
||||
{
|
||||
@@ -434,7 +437,7 @@ public:
|
||||
env(sponsor::set_reserve(sponsor, 0, 100), sponsor::sponseeAcc(alice), ter(tesSUCCESS));
|
||||
env.close();
|
||||
|
||||
env(sponsor::del(alice), sponsor::sponsorAcc(sponsor), ter(tesSUCCESS));
|
||||
env(sponsor::del(alice), sponsor::counterpartySponsor(sponsor), ter(tesSUCCESS));
|
||||
env.close();
|
||||
}
|
||||
}
|
||||
@@ -544,8 +547,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 1);
|
||||
auto const sle1 = env.le(keylet::account(alice));
|
||||
BEAST_EXPECT(sle1->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(sle1->getAccountID(sfSponsorAccount) == sponsor1.id());
|
||||
BEAST_EXPECT(sle1->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(sle1->getAccountID(sfSponsor) == sponsor1.id());
|
||||
|
||||
// transfer sponsor
|
||||
adjustAccountXRPBalance(env, sponsor2, accountReserve(env, 2) - drops(1));
|
||||
@@ -572,8 +575,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 1);
|
||||
BEAST_EXPECT(!env.le(keylet::account(sponsor1))->isFieldPresent(sfSponsoringAccountCount));
|
||||
auto const sle2 = env.le(keylet::account(alice));
|
||||
BEAST_EXPECT(sle2->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(sle2->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(sle2->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(sle2->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// sponsor 2 accounts
|
||||
adjustAccountXRPBalance(env, sponsor2, accountReserve(env, 3));
|
||||
@@ -601,7 +604,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 1);
|
||||
auto const sle3 = env.le(keylet::account(alice));
|
||||
BEAST_EXPECT(!sle3->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!sle3->isFieldPresent(sfSponsor));
|
||||
|
||||
env(sponsor::transfer(bob));
|
||||
env.close();
|
||||
@@ -617,7 +620,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0);
|
||||
BEAST_EXPECT(!env.le(keylet::account(sponsor2))->isFieldPresent(sfSponsoringAccountCount));
|
||||
auto const sle4 = env.le(keylet::account(bob));
|
||||
BEAST_EXPECT(!sle4->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!sle4->isFieldPresent(sfSponsor));
|
||||
|
||||
// not sponsored
|
||||
env(sponsor::transfer(bob), ter(tecNO_PERMISSION));
|
||||
@@ -680,8 +683,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0);
|
||||
auto const sle1 = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(sle1->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(sle1->getAccountID(sfSponsorAccount) == sponsor1.id());
|
||||
BEAST_EXPECT(sle1->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(sle1->getAccountID(sfSponsor) == sponsor1.id());
|
||||
|
||||
// transfer sponsor
|
||||
env(sponsor::transfer(alice, checkId),
|
||||
@@ -707,8 +710,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0);
|
||||
auto const sle2 = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(sle2->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(sle2->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(sle2->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(sle2->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// dissolve sponsor
|
||||
adjustAccountXRPBalance(env, alice, reserve(env, 1) - drops(1));
|
||||
@@ -745,7 +748,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0);
|
||||
BEAST_EXPECT(!env.le(keylet::account(sponsor2))->isFieldPresent(sfSponsoringOwnerCount));
|
||||
auto const sle3 = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(!sle3->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!sle3->isFieldPresent(sfSponsor));
|
||||
}
|
||||
{
|
||||
// sponsor object (pre-funded + no ltSponsorship entry)
|
||||
@@ -815,8 +818,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, alice) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0);
|
||||
auto checkSle = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(checkSle->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(checkSle->getAccountID(sfSponsorAccount) == sponsor1.id());
|
||||
BEAST_EXPECT(checkSle->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(checkSle->getAccountID(sfSponsor) == sponsor1.id());
|
||||
auto sponsor1Sle = env.le(keylet::sponsor(sponsor1, alice));
|
||||
BEAST_EXPECT(sponsor1Sle->getFieldU32(sfReserveCount) == 99);
|
||||
|
||||
@@ -837,8 +840,8 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor1) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0);
|
||||
checkSle = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(checkSle->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(checkSle->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(checkSle->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(checkSle->getAccountID(sfSponsor) == sponsor2.id());
|
||||
sponsor1Sle = env.le(keylet::sponsor(sponsor1, alice));
|
||||
BEAST_EXPECT(sponsor1Sle->getFieldU32(sfReserveCount) == 100); // paybacked
|
||||
auto sponsor2Sle = env.le(keylet::sponsor(sponsor2, alice));
|
||||
@@ -860,7 +863,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor2) == 0);
|
||||
BEAST_EXPECT(!env.le(keylet::account(sponsor2))->isFieldPresent(sfSponsoringOwnerCount));
|
||||
checkSle = env.le(keylet::unchecked(checkId));
|
||||
BEAST_EXPECT(!checkSle->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!checkSle->isFieldPresent(sfSponsor));
|
||||
sponsor2Sle = env.le(keylet::sponsor(sponsor2, alice));
|
||||
BEAST_EXPECT(sponsor2Sle->getFieldU32(sfReserveCount) == 100); // paybacked
|
||||
}
|
||||
@@ -1210,7 +1213,7 @@ public:
|
||||
env.close();
|
||||
|
||||
auto const bobSle = env.le(keylet::account(bob));
|
||||
BEAST_EXPECT(!bobSle->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!bobSle->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor) == 0);
|
||||
}
|
||||
@@ -1226,8 +1229,8 @@ public:
|
||||
env.close();
|
||||
|
||||
auto const charlieSle = env.le(keylet::account(charlie));
|
||||
BEAST_EXPECT(charlieSle->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(charlieSle->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(charlieSle->isFieldPresent(sfSponsor));
|
||||
BEAST_EXPECT(charlieSle->getAccountID(sfSponsor) == sponsor.id());
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, charlie) == 0);
|
||||
BEAST_EXPECT(sponsoringAccountCount(env, sponsor) == 1);
|
||||
}
|
||||
@@ -1469,7 +1472,7 @@ public:
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, alice) == 1); // LPToken
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, ammAccount) == 0);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1); // LPToken
|
||||
BEAST_EXPECT(!env.le(keylet::amm(USD.issue(), EUR.issue()))->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!env.le(keylet::amm(USD.issue(), EUR.issue()))->isFieldPresent(sfSponsor));
|
||||
});
|
||||
|
||||
auto const ammKeylet = keylet::amm(USD.issue(), EUR.issue());
|
||||
@@ -1712,7 +1715,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 1);
|
||||
|
||||
auto const keylet = keylet::check(alice, seq);
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor.id());
|
||||
|
||||
if (cosigning)
|
||||
{
|
||||
@@ -1738,7 +1741,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 1);
|
||||
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// CheckCancel
|
||||
env(check::cancel(alice, keylet.key));
|
||||
@@ -1801,7 +1804,7 @@ public:
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, bob) == 0);
|
||||
|
||||
auto const keylet = keylet::check(alice, seq2);
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor.id());
|
||||
|
||||
// CheckCash
|
||||
testEachSponsorship(
|
||||
@@ -1874,7 +1877,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor1) == 0);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 1);
|
||||
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// OfferCancel
|
||||
env(offer_cancel(alice, seq));
|
||||
@@ -2037,7 +2040,7 @@ public:
|
||||
});
|
||||
|
||||
auto const keylet = keylet::ticket(alice, ticketSeq);
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor.id());
|
||||
|
||||
// transfer sponsor
|
||||
if (cosigning)
|
||||
@@ -2061,7 +2064,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 249);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 1);
|
||||
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// use a Ticket
|
||||
env(noop(alice), ticket::use(ticketSeq));
|
||||
@@ -2188,7 +2191,7 @@ public:
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, issuer) == 0);
|
||||
BEAST_EXPECT(sponsoredOwnerCount(env, subject) == 0);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0);
|
||||
BEAST_EXPECT(!env.le(keylet::credential(subject, issuer, credTypeSlice))->isFieldPresent(sfSponsorAccount));
|
||||
BEAST_EXPECT(!env.le(keylet::credential(subject, issuer, credTypeSlice))->isFieldPresent(sfSponsor));
|
||||
|
||||
env(credentials::deleteCred(subject, subject, issuer, credType));
|
||||
env.close();
|
||||
@@ -2386,7 +2389,7 @@ public:
|
||||
escrow::condition(escrow::cb1),
|
||||
escrow::cancel_time(env.now() + 100s));
|
||||
});
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsor) == sponsor.id());
|
||||
|
||||
// transfer sponsor
|
||||
if (cosigning)
|
||||
@@ -2410,7 +2413,7 @@ public:
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor) == 0);
|
||||
BEAST_EXPECT(sponsoringOwnerCount(env, sponsor2) == 1);
|
||||
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsorAccount) == sponsor2.id());
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsor) == sponsor2.id());
|
||||
|
||||
// EscrowFinish
|
||||
env(escrow::finish(bob, alice, seq),
|
||||
@@ -2456,7 +2459,7 @@ public:
|
||||
escrow::cancel_time(env.now() + 100s));
|
||||
});
|
||||
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet::escrow(alice, seq))->getAccountID(sfSponsor) == sponsor.id());
|
||||
|
||||
// EscrowFinish
|
||||
testEachSponsorship(
|
||||
@@ -3623,7 +3626,7 @@ public:
|
||||
submit(std::get<0>(result));
|
||||
keylet = std::get<1>(result);
|
||||
});
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsorAccount) == sponsor.id());
|
||||
BEAST_EXPECT(env.le(keylet)->getAccountID(sfSponsor) == sponsor.id());
|
||||
}
|
||||
// VaultDeposit
|
||||
{
|
||||
|
||||
@@ -78,9 +78,9 @@ transfer(jtx::Account const& account, std::optional<uint256> const& index)
|
||||
}
|
||||
|
||||
void
|
||||
sponsorAcc::operator()(Env& env, JTx& jt) const
|
||||
counterpartySponsor::operator()(Env& env, JTx& jt) const
|
||||
{
|
||||
jt.jv[sfSponsorAccount.jsonName] = sponsor_.human();
|
||||
jt.jv[sfCounterpartySponsor.jsonName] = sponsor_.human();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -34,13 +34,13 @@ del(jtx::Account const& account);
|
||||
Json::Value
|
||||
transfer(jtx::Account const& account, std::optional<uint256> const& index = std::nullopt);
|
||||
|
||||
struct sponsorAcc
|
||||
struct counterpartySponsor
|
||||
{
|
||||
private:
|
||||
jtx::Account sponsor_;
|
||||
|
||||
public:
|
||||
sponsorAcc(jtx::Account const& account) : sponsor_(account)
|
||||
counterpartySponsor(jtx::Account const& account) : sponsor_(account)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -266,9 +266,9 @@ DeleteAccount::preclaim(PreclaimContext const& ctx)
|
||||
if (cp)
|
||||
return tecHAS_OBLIGATIONS;
|
||||
|
||||
if (sleAccount->isFieldPresent(sfSponsorAccount))
|
||||
if (sleAccount->isFieldPresent(sfSponsor))
|
||||
{
|
||||
if (dst != sleAccount->getAccountID(sfSponsorAccount))
|
||||
if (dst != sleAccount->getAccountID(sfSponsor))
|
||||
return tecNO_SPONSOR_PERMISSION;
|
||||
}
|
||||
if (sleAccount->isFieldPresent(sfSponsoringOwnerCount) || sleAccount->isFieldPresent(sfSponsoringAccountCount))
|
||||
@@ -400,9 +400,9 @@ DeleteAccount::doApply()
|
||||
(*src)[sfBalance] = (*src)[sfBalance] - mSourceBalance;
|
||||
ctx_.deliver(mSourceBalance);
|
||||
|
||||
if (src->isFieldPresent(sfSponsorAccount))
|
||||
if (src->isFieldPresent(sfSponsor))
|
||||
{
|
||||
auto const sponsorAcc = src->getAccountID(sfSponsorAccount);
|
||||
auto const sponsorAcc = src->getAccountID(sfSponsor);
|
||||
auto sponsorSle = view().peek(keylet::account(sponsorAcc));
|
||||
|
||||
if (!sponsorSle || !sponsorSle->isFieldPresent(sfSponsoringAccountCount))
|
||||
@@ -421,10 +421,10 @@ DeleteAccount::doApply()
|
||||
sponsorSle->setFieldU32(sfSponsoringAccountCount, sponsoringAccountCount - 1);
|
||||
view().update(sponsorSle);
|
||||
|
||||
// Following line might look redundant, but without it, sfSponsorAccount
|
||||
// Following line might look redundant, but without it, sfSponsor
|
||||
// would end up remaining in after-ltAccountRoot during the
|
||||
// InvariantCheck.
|
||||
(*src).makeFieldAbsent(sfSponsorAccount);
|
||||
(*src).makeFieldAbsent(sfSponsor);
|
||||
}
|
||||
|
||||
XRPL_ASSERT((*src)[sfBalance] == XRPAmount(0), "xrpl::DeleteAccount::doApply : source balance is zero");
|
||||
|
||||
@@ -1668,7 +1668,7 @@ ValidPseudoAccounts::visitEntry(
|
||||
errors_.emplace_back("pseudo-account has a regular key");
|
||||
}
|
||||
if (after->isFieldPresent(sfSponsoredOwnerCount) || after->isFieldPresent(sfSponsoringOwnerCount) ||
|
||||
after->isFieldPresent(sfSponsorAccount))
|
||||
after->isFieldPresent(sfSponsor))
|
||||
{
|
||||
errors_.emplace_back("pseudo-account has a sponsorship field");
|
||||
}
|
||||
@@ -3342,7 +3342,7 @@ SponsorshipAccountCountMatchesField::visitEntry(
|
||||
};
|
||||
|
||||
auto hasSponsorField = [](std::shared_ptr<SLE const> const& sle) -> bool {
|
||||
return sle && sle->getType() == ltACCOUNT_ROOT && sle->isFieldPresent(sfSponsorAccount);
|
||||
return sle && sle->getType() == ltACCOUNT_ROOT && sle->isFieldPresent(sfSponsor);
|
||||
};
|
||||
|
||||
std::int64_t const beforeCount = getSponsoringAccountCount(before);
|
||||
@@ -3365,7 +3365,7 @@ SponsorshipAccountCountMatchesField::finalize(
|
||||
if (deltaSponsoringAccountCount_ != deltaSponsorFieldPresence_)
|
||||
{
|
||||
JLOG(j.fatal()) << "Invariant failed: Net delta of SponsoringAccountCount does not "
|
||||
"match net delta of sfSponsorAccount presence.";
|
||||
"match net delta of sfSponsor presence.";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -423,7 +423,7 @@ public:
|
||||
* The following check is made for every transaction:
|
||||
* - The net delta of `sfSponsoringAccountCount` across all accounts equals
|
||||
* the net delta of the count of ltACCOUNT_ROOT entries having
|
||||
* `sfSponsorAccount` present (presence transitions only: add/remove).
|
||||
* `sfSponsor` present (presence transitions only: add/remove).
|
||||
*/
|
||||
class SponsorshipAccountCountMatchesField
|
||||
{
|
||||
|
||||
@@ -23,14 +23,14 @@ SponsorshipSet::preflight(PreflightContext const& ctx)
|
||||
return temINVALID_FLAG;
|
||||
|
||||
auto const account = ctx.tx.getAccountID(sfAccount);
|
||||
bool const hasSponsor = ctx.tx.isFieldPresent(sfSponsorAccount);
|
||||
bool const hasSponsor = ctx.tx.isFieldPresent(sfCounterpartySponsor);
|
||||
bool const hasSponsee = ctx.tx.isFieldPresent(sfSponsee);
|
||||
|
||||
// The transaction must specify either Sponsor or Sponsee, but not both.
|
||||
if (hasSponsor == hasSponsee)
|
||||
return temMALFORMED;
|
||||
|
||||
auto const sponsor = ctx.tx[~sfSponsorAccount].value_or(account);
|
||||
auto const sponsor = ctx.tx[~sfCounterpartySponsor].value_or(account);
|
||||
auto const sponsee = ctx.tx[~sfSponsee].value_or(account);
|
||||
|
||||
if (sponsor == sponsee)
|
||||
@@ -140,7 +140,7 @@ SponsorshipSet::checkPermission(ReadView const& view, STTx const& tx)
|
||||
TER
|
||||
SponsorshipSet::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
auto const sponsor = ctx.tx[~sfSponsorAccount].value_or(ctx.tx[sfAccount]);
|
||||
auto const sponsor = ctx.tx[~sfCounterpartySponsor].value_or(ctx.tx[sfAccount]);
|
||||
auto const sponsee = ctx.tx[~sfSponsee].value_or(ctx.tx[sfAccount]);
|
||||
|
||||
if (sponsee == sponsor)
|
||||
@@ -172,7 +172,7 @@ SponsorshipSet::preclaim(PreclaimContext const& ctx)
|
||||
TER
|
||||
SponsorshipSet::doApply()
|
||||
{
|
||||
auto const sponsorAcc = ctx_.tx[~sfSponsorAccount].value_or(account_);
|
||||
auto const sponsorAcc = ctx_.tx[~sfCounterpartySponsor].value_or(account_);
|
||||
auto const sponseeAcc = ctx_.tx[~sfSponsee].value_or(account_);
|
||||
|
||||
if (sponseeAcc == sponsorAcc)
|
||||
|
||||
@@ -149,7 +149,7 @@ getLedgerEntrySponsorField(T const& sle, AccountID const& owner)
|
||||
// LCOV_EXCL_STOP
|
||||
}
|
||||
default:
|
||||
return sfSponsorAccount;
|
||||
return sfSponsor;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -210,7 +210,7 @@ SponsorshipTransfer::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
if (newSponsor)
|
||||
{
|
||||
if (accSle->isFieldPresent(sfSponsorAccount))
|
||||
if (accSle->isFieldPresent(sfSponsor))
|
||||
{
|
||||
// check not same account
|
||||
if (newSponsor->getAccountID(sfAccount) == accSle->getAccountID(sfAccount))
|
||||
@@ -222,7 +222,7 @@ SponsorshipTransfer::preclaim(PreclaimContext const& ctx)
|
||||
{
|
||||
// dissolve sponsor
|
||||
// check account is sponsored
|
||||
if (!accSle->isFieldPresent(sfSponsorAccount))
|
||||
if (!accSle->isFieldPresent(sfSponsor))
|
||||
return tecNO_PERMISSION;
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ SponsorshipTransfer::doApply()
|
||||
else
|
||||
{
|
||||
// dissolve object sponsor
|
||||
auto const oldSponsor = objSle->getAccountID(sfSponsorAccount);
|
||||
auto const oldSponsor = objSle->getAccountID(sfSponsor);
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
if (!oldSponsorSle)
|
||||
return tefINTERNAL; // LCOV_EXCL_LINE
|
||||
@@ -366,7 +366,7 @@ SponsorshipTransfer::doApply()
|
||||
return ter;
|
||||
|
||||
// remove sponsor from object
|
||||
objSle->makeFieldAbsent(sfSponsorAccount);
|
||||
objSle->makeFieldAbsent(sfSponsor);
|
||||
view().update(objSle);
|
||||
}
|
||||
}
|
||||
@@ -383,21 +383,21 @@ SponsorshipTransfer::doApply()
|
||||
|
||||
view().update(newSponsorSle);
|
||||
// decrement old sponsoring count
|
||||
if (accSle->isFieldPresent(sfSponsorAccount))
|
||||
if (accSle->isFieldPresent(sfSponsor))
|
||||
{
|
||||
auto const oldSponsor = accSle->getAccountID(sfSponsorAccount);
|
||||
auto const oldSponsor = accSle->getAccountID(sfSponsor);
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
setSponsorFieldU32(oldSponsorSle, sfSponsoringAccountCount, -1);
|
||||
view().update(oldSponsorSle);
|
||||
}
|
||||
accSle->setAccountID(sfSponsorAccount, newSponsor);
|
||||
accSle->setAccountID(sfSponsor, newSponsor);
|
||||
view().update(accSle);
|
||||
}
|
||||
else
|
||||
{
|
||||
// dissolve account sponsor
|
||||
auto const oldSponsor = accSle->getAccountID(sfSponsorAccount);
|
||||
accSle->makeFieldAbsent(sfSponsorAccount);
|
||||
auto const oldSponsor = accSle->getAccountID(sfSponsor);
|
||||
accSle->makeFieldAbsent(sfSponsor);
|
||||
// decrement account sponsoring count
|
||||
auto const oldSponsorSle = view().peek(keylet::account(oldSponsor));
|
||||
setSponsorFieldU32(oldSponsorSle, sfSponsoringAccountCount, -1);
|
||||
|
||||
@@ -320,8 +320,8 @@ getAccountObjects(
|
||||
if (typeFilter.has_value() && !typeMatchesFilter(typeFilter.value(), sleNode->getType()))
|
||||
canAppend = false;
|
||||
|
||||
std::optional<AccountID> const sponsor = sleNode->isFieldPresent(sfSponsorAccount)
|
||||
? sleNode->getAccountID(sfSponsorAccount)
|
||||
std::optional<AccountID> const sponsor = sleNode->isFieldPresent(sfSponsor)
|
||||
? sleNode->getAccountID(sfSponsor)
|
||||
: std::optional<AccountID>(std::nullopt);
|
||||
|
||||
if (sponsored.has_value() && !sponsoredMatchesFilter(sponsored.value(), sponsor))
|
||||
|
||||
Reference in New Issue
Block a user