Skip to content

Commit c24e0e4

Browse files
committed
Clean ups
1 parent f5c86f0 commit c24e0e4

File tree

2 files changed

+47
-16
lines changed

2 files changed

+47
-16
lines changed

src/test/app/LoanBroker_test.cpp

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class LoanBroker_test : public beast::unit_test::suite
9696

9797
void
9898
lifecycle(
99+
const char* label,
99100
jtx::Env& env,
100101
jtx::Account const& alice,
101102
jtx::Account const& evan,
@@ -106,7 +107,15 @@ class LoanBroker_test : public beast::unit_test::suite
106107
std::function<void(SLE::const_ref)> checkChangedBroker)
107108
{
108109
auto const keylet = keylet::loanbroker(alice.id(), env.seq(alice));
109-
testcase("Lifecycle: " + to_string(vault.asset));
110+
{
111+
auto const& asset = vault.asset.raw();
112+
testcase << "Lifecycle: "
113+
<< (asset.native() ? "XRP "
114+
: asset.holds<Issue>() ? "IOU "
115+
: asset.holds<MPTIssue>() ? "MPT "
116+
: "Unknown ")
117+
<< label;
118+
}
110119

111120
using namespace jtx;
112121
using namespace loanBroker;
@@ -124,7 +133,8 @@ class LoanBroker_test : public beast::unit_test::suite
124133
env.close();
125134
if (auto broker = env.le(keylet); BEAST_EXPECT(broker))
126135
{
127-
log << to_string(broker->getJson()) << std::endl;
136+
// log << "Broker after create: " << to_string(broker->getJson())
137+
// << std::endl;
128138
BEAST_EXPECT(broker->at(sfVaultID) == vault.vaultID);
129139
BEAST_EXPECT(broker->at(sfAccount) != alice.id());
130140
BEAST_EXPECT(broker->at(sfOwner) == alice.id());
@@ -136,10 +146,18 @@ class LoanBroker_test : public beast::unit_test::suite
136146
if (checkBroker)
137147
checkBroker(broker);
138148

139-
// Load the pseudo-account
149+
// if (auto const vaultSLE = env.le(keylet::vault(vault.vaultID)))
150+
//{
151+
// log << "Vault: " << to_string(vaultSLE->getJson()) <<
152+
// std::endl;
153+
// }
154+
// Load the pseudo-account
140155
auto const pseudoKeylet = keylet::account(broker->at(sfAccount));
141156
if (auto const pseudo = env.le(pseudoKeylet); BEAST_EXPECT(pseudo))
142157
{
158+
// log << "Pseudo-account after create: "
159+
// << to_string(pseudo->getJson()) << std::endl
160+
// << std::endl;
143161
BEAST_EXPECT(
144162
pseudo->at(sfFlags) ==
145163
(lsfDisableMaster | lsfDefaultRipple | lsfDepositAuth));
@@ -201,6 +219,15 @@ class LoanBroker_test : public beast::unit_test::suite
201219
env(del(evan, keylet.key), ter(tecNO_PERMISSION));
202220
// TODO: test deletion with an active loan
203221
// delete the broker
222+
// log << "Broker before delete: " << to_string(broker->getJson())
223+
// << std::endl;
224+
// if (auto const pseudo = env.le(pseudoKeylet);
225+
// BEAST_EXPECT(pseudo))
226+
//{
227+
// log << "Pseudo-account before delete: "
228+
// << to_string(pseudo->getJson()) << std::endl
229+
// << std::endl;
230+
//}
204231
env(del(alice, keylet.key));
205232
env.close();
206233
{
@@ -215,7 +242,7 @@ class LoanBroker_test : public beast::unit_test::suite
215242
void
216243
testLifecycle()
217244
{
218-
testcase("Create and update");
245+
testcase("Lifecycle");
219246
using namespace jtx;
220247

221248
// Create 3 loan brokers: one for XRP, one for an IOU, and one for an
@@ -346,6 +373,7 @@ class LoanBroker_test : public beast::unit_test::suite
346373

347374
std::string testData;
348375
lifecycle(
376+
"default fields",
349377
env,
350378
alice,
351379
evan,
@@ -426,6 +454,7 @@ class LoanBroker_test : public beast::unit_test::suite
426454
});
427455

428456
lifecycle(
457+
"non-default fields",
429458
env,
430459
alice,
431460
evan,

src/xrpld/app/tx/detail/LoanBrokerDelete.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,28 +91,27 @@ TER
9191
LoanBrokerDelete::doApply()
9292
{
9393
auto const& tx = ctx_.tx;
94-
auto& view = ctx_.view();
9594

9695
auto const brokerID = tx[sfLoanBrokerID];
9796

9897
// Delete the loan broker
99-
auto broker = view.peek(keylet::loanbroker(brokerID));
98+
auto broker = view().peek(keylet::loanbroker(brokerID));
10099
auto const vaultID = broker->at(sfVaultID);
101-
auto const sleVault = view.read(keylet::vault(vaultID));
100+
auto const sleVault = view().read(keylet::vault(vaultID));
102101
auto const vaultPseudoID = sleVault->at(sfAccount);
103102
auto const vaultAsset = sleVault->at(sfAsset);
104103

105104
auto const brokerPseudoID = broker->at(sfAccount);
106105

107-
if (!view.dirRemove(
106+
if (!view().dirRemove(
108107
keylet::ownerDir(account_),
109108
broker->at(sfOwnerNode),
110109
broker->key(),
111110
false))
112111
{
113112
return tefBAD_LEDGER;
114113
}
115-
if (!view.dirRemove(
114+
if (!view().dirRemove(
116115
keylet::ownerDir(vaultPseudoID),
117116
broker->at(sfVaultNode),
118117
broker->key(),
@@ -125,7 +124,7 @@ LoanBrokerDelete::doApply()
125124
auto const coverAvailable =
126125
STAmount{vaultAsset, broker->at(sfCoverAvailable)};
127126
if (auto const ter = accountSend(
128-
view,
127+
view(),
129128
brokerPseudoID,
130129
account_,
131130
coverAvailable,
@@ -134,12 +133,15 @@ LoanBrokerDelete::doApply()
134133
return ter;
135134
}
136135

137-
auto brokerPseudoSLE = view.peek(keylet::account(brokerPseudoID));
136+
if (auto ter = removeEmptyHolding(view(), brokerPseudoID, vaultAsset, j_))
137+
return ter;
138+
139+
auto brokerPseudoSLE = view().peek(keylet::account(brokerPseudoID));
138140
if (!brokerPseudoSLE)
139141
return tefBAD_LEDGER;
140142

141-
// Making the payment should have deleted any obligations
142-
// associated with the broker or broker pseudo-account.
143+
// Making the payment and removing the empty holding should have deleted any
144+
// obligations associated with the broker or broker pseudo-account.
143145
if (*brokerPseudoSLE->at(sfBalance))
144146
{
145147
JLOG(j_.warn()) << "LoanBrokerDelete: Pseudo-account has a balance";
@@ -152,15 +154,15 @@ LoanBrokerDelete::doApply()
152154
return tecHAS_OBLIGATIONS;
153155
}
154156
if (auto const directory = keylet::ownerDir(brokerPseudoID);
155-
view.read(directory))
157+
view().read(directory))
156158
{
157159
JLOG(j_.warn()) << "LoanBrokerDelete: Pseudo-account has a directory";
158160
return tecHAS_OBLIGATIONS;
159161
}
160162

161-
view.erase(brokerPseudoSLE);
163+
view().erase(brokerPseudoSLE);
162164

163-
view.erase(broker);
165+
view().erase(broker);
164166

165167
return tesSUCCESS;
166168
}

0 commit comments

Comments
 (0)