mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-04 17:27:00 +00:00
fix OwnerCount
This commit is contained in:
@@ -91,9 +91,10 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(alice, 0));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// CheckCancel
|
||||
auto const checkId = keylet::check(alice, seq).key;
|
||||
@@ -102,7 +103,7 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
|
||||
auto const seq2 = env.seq(alice);
|
||||
env(check::create(alice, bob, XRP(1)),
|
||||
@@ -110,6 +111,11 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_owners(alice, 0));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// CheckCash
|
||||
auto const checkId2 = keylet::check(alice, seq2).key;
|
||||
env(check::cash(bob, checkId2, XRP(1)));
|
||||
@@ -117,7 +123,7 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
|
||||
// printf(
|
||||
// "meta: %s\n",
|
||||
@@ -145,9 +151,10 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(alice, 0));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// OfferCancel
|
||||
env(offer_cancel(alice, seq));
|
||||
@@ -155,9 +162,10 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(alice, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
|
||||
// TODO: test Execution
|
||||
// TODO: test Offer Execution
|
||||
}
|
||||
|
||||
void
|
||||
@@ -178,17 +186,18 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 250));
|
||||
env.require(sponsored_owners(alice, 250));
|
||||
env.require(sponsoring_count(sponsor, 250));
|
||||
env.require(sponsoring_owners(alice, 0));
|
||||
env.require(sponsoring_owners(sponsor, 250));
|
||||
|
||||
// use a Ticket
|
||||
env(noop(alice), ticket::use(ticketSeq + 1));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 249));
|
||||
env.require(sponsored_owners(alice, 249));
|
||||
env.require(sponsoring_count(sponsor, 249));
|
||||
env.require(sponsoring_owners(sponsor, 249));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -210,9 +219,11 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(issuer, 0));
|
||||
env.require(owners(issuer, 1));
|
||||
env.require(owners(subject, 0));
|
||||
env.require(sponsored_owners(issuer, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsored_owners(subject, 0));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// CredentialsAccept
|
||||
env(credentials::accept(subject, issuer, "credType"),
|
||||
@@ -221,10 +232,10 @@ public:
|
||||
env.close();
|
||||
|
||||
env.require(owners(issuer, 0));
|
||||
env.require(owners(subject, 0));
|
||||
env.require(owners(subject, 1));
|
||||
env.require(sponsored_owners(issuer, 0));
|
||||
env.require(sponsored_owners(subject, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// CredentialsDelete
|
||||
env(credentials::deleteCred(subject, subject, issuer, "credType"));
|
||||
@@ -234,7 +245,7 @@ public:
|
||||
env.require(owners(subject, 0));
|
||||
env.require(sponsored_owners(issuer, 0));
|
||||
env.require(sponsored_owners(subject, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -255,9 +266,9 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// delete
|
||||
env(delegate::set(alice, bob, {}));
|
||||
@@ -265,7 +276,7 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -291,9 +302,9 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// DIDDelete
|
||||
env(did::del(alice));
|
||||
@@ -301,7 +312,7 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
}
|
||||
|
||||
void
|
||||
@@ -358,9 +369,9 @@ public:
|
||||
sponsor::sig(sponsor));
|
||||
env.close();
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(owners(alice, 1));
|
||||
env.require(sponsored_owners(alice, 1));
|
||||
env.require(sponsoring_count(sponsor, 1));
|
||||
env.require(sponsoring_owners(sponsor, 1));
|
||||
|
||||
// Delete
|
||||
env(signers(alice, none));
|
||||
@@ -368,7 +379,7 @@ public:
|
||||
|
||||
env.require(owners(alice, 0));
|
||||
env.require(sponsored_owners(alice, 0));
|
||||
env.require(sponsoring_count(sponsor, 0));
|
||||
env.require(sponsoring_owners(sponsor, 0));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -63,7 +63,7 @@ sponsored_owners::operator()(Env& env) const
|
||||
}
|
||||
|
||||
void
|
||||
sponsoring_count::operator()(Env& env) const
|
||||
sponsoring_owners::operator()(Env& env) const
|
||||
{
|
||||
env.test.expect(
|
||||
env.le(account_)->getFieldU32(sfSponsoringOwnerCount) == value_);
|
||||
|
||||
@@ -103,14 +103,14 @@ public:
|
||||
};
|
||||
|
||||
/** Match the number of items in the account's owner directory */
|
||||
class sponsoring_count
|
||||
class sponsoring_owners
|
||||
{
|
||||
private:
|
||||
Account account_;
|
||||
std::uint32_t value_;
|
||||
|
||||
public:
|
||||
sponsoring_count(Account const& account, std::uint32_t value)
|
||||
sponsoring_owners(Account const& account, std::uint32_t value)
|
||||
: account_(account), value_(value)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1089,6 +1089,7 @@ adjustOwnerCount(
|
||||
}
|
||||
{
|
||||
// modify account's SponsoredOwnerCount
|
||||
|
||||
std::uint32_t const current{
|
||||
accountSle->getFieldU32(sfSponsoredOwnerCount)};
|
||||
AccountID const id = (*accountSle)[sfAccount];
|
||||
@@ -1098,7 +1099,6 @@ adjustOwnerCount(
|
||||
accountSle->setFieldU32(sfSponsoredOwnerCount, adjusted);
|
||||
view.update(accountSle);
|
||||
}
|
||||
return;
|
||||
}
|
||||
std::uint32_t const current{accountSle->getFieldU32(sfOwnerCount)};
|
||||
AccountID const id = (*accountSle)[sfAccount];
|
||||
|
||||
Reference in New Issue
Block a user