test AccountDelete for sponsorship

This commit is contained in:
tequ
2025-09-15 19:09:57 +09:00
parent 110b222579
commit 20bce64946
5 changed files with 34 additions and 7 deletions

View File

@@ -581,6 +581,7 @@ JSS(source_amount); // in: PathRequest, RipplePathFind
JSS(source_currencies); // in: PathRequest, RipplePathFind
JSS(source_tag); // out: AccountChannels
JSS(sponsee); // in: LedgerEntry
JSS(sponsor); // in: LedgerEntry
JSS(stand_alone); // out: NetworkOPs
JSS(standard_deviation); // out: get_aggregate_price
JSS(start); // in: TxHistory

View File

@@ -1153,6 +1153,13 @@ public:
auto const requiredFee = drops(env.current()->fees().increment);
env(acctdelete(alice, bob), fee(requiredFee), ter(tesSUCCESS));
env.close();
BEAST_EXPECT(!env.le(keylet));
auto const jv = sponsor::ledgerEntry(env, sponsor, alice);
BEAST_EXPECT(
jv.isObject() && jv.isMember(jss::result) &&
jv[jss::result].isMember(jss::error) &&
jv[jss::result][jss::error] == "entryNotFound");
}
{
@@ -1229,7 +1236,7 @@ public:
testSponsorReserve();
testDisallowIncoming();
// testAccountDelete();
testAccountDelete();
}
};

View File

@@ -193,6 +193,19 @@ msig::operator()(Env& env, JTx& jt) const
};
}
Json::Value
ledgerEntry(
jtx::Env& env,
jtx::Account const& sponsor,
jtx::Account const& sponsee)
{
Json::Value jvParams;
jvParams[jss::ledger_index] = jss::validated;
jvParams[jss::sponsorship][jss::sponsor] = sponsor.human();
jvParams[jss::sponsorship][jss::sponsee] = sponsee.human();
return env.rpc("json", "ledger_entry", to_string(jvParams));
}
} // namespace sponsor
} // namespace jtx
} // namespace test

View File

@@ -118,6 +118,12 @@ public:
operator()(jtx::Env&, jtx::JTx& jtx) const;
};
Json::Value
ledgerEntry(
jtx::Env& env,
jtx::Account const& sponsor,
jtx::Account const& sponsee);
} // namespace sponsor
} // namespace jtx
} // namespace test

View File

@@ -637,17 +637,17 @@ parseSponsorship(Json::Value const& params, Json::StaticString const fieldName)
return parseObjectID(params, fieldName);
}
auto const id = LedgerEntryHelpers::requiredAccountID(
params, jss::owner, "malformedOwner");
if (!id)
return Unexpected(id.error());
auto const sponsor = LedgerEntryHelpers::requiredAccountID(
params, jss::sponsor, "malformedSponsor");
if (!sponsor)
return Unexpected(sponsor.error());
auto const sponsee = LedgerEntryHelpers::requiredAccountID(
params, jss::sponsee, "malformedAddress");
params, jss::sponsee, "malformedSponsee");
if (!sponsee)
return Unexpected(sponsee.error());
return keylet::sponsor(*id, *sponsee).key;
return keylet::sponsor(*sponsor, *sponsee).key;
}
static Expected<uint256, Json::Value>