diff --git a/Change_8cpp_source.html b/Change_8cpp_source.html index ed66f3e43b..1159d4c88a 100644 --- a/Change_8cpp_source.html +++ b/Change_8cpp_source.html @@ -238,363 +238,276 @@ $(document).ready(function() { init_codefold(0); });
148}
149
-
150void
+
150TER
-
151Change::activateTrustLinesToSelfFix()
+
151Change::applyAmendment()
152{
-
153 JLOG(j_.warn()) << "fixTrustLinesToSelf amendment activation code starting";
+
153 uint256 amendment(ctx_.tx.getFieldH256(sfAmendment));
154
-
155 auto removeTrustLineToSelf = [this](Sandbox& sb, uint256 id) {
-
156 auto tl = sb.peek(keylet::child(id));
-
157
-
158 if (tl == nullptr)
-
159 {
-
160 JLOG(j_.warn()) << id << ": Unable to locate trustline";
-
161 return true;
-
162 }
-
163
-
164 if (tl->getType() != ltRIPPLE_STATE)
-
165 {
-
166 JLOG(j_.warn()) << id << ": Unexpected type "
-
167 << static_cast<std::uint16_t>(tl->getType());
-
168 return true;
-
169 }
+
155 auto const k = keylet::amendments();
+
156
+
157 SLE::pointer amendmentObject = view().peek(k);
+
158
+
159 if (!amendmentObject)
+
160 {
+
161 amendmentObject = std::make_shared<SLE>(k);
+
162 view().insert(amendmentObject);
+
163 }
+
164
+
165 STVector256 amendments = amendmentObject->getFieldV256(sfAmendments);
+
166
+
167 if (std::find(amendments.begin(), amendments.end(), amendment) !=
+
168 amendments.end())
+
169 return tefALREADY;
170
-
171 auto const& lo = tl->getFieldAmount(sfLowLimit);
-
172 auto const& hi = tl->getFieldAmount(sfHighLimit);
-
173
-
174 if (lo != hi)
-
175 {
-
176 JLOG(j_.warn()) << id << ": Trustline doesn't meet requirements";
-
177 return true;
-
178 }
-
179
-
180 if (auto const page = tl->getFieldU64(sfLowNode); !sb.dirRemove(
-
181 keylet::ownerDir(lo.getIssuer()), page, tl->key(), false))
-
182 {
-
183 JLOG(j_.error()) << id << ": failed to remove low entry from "
-
184 << toBase58(lo.getIssuer()) << ":" << page
-
185 << " owner directory";
-
186 return false;
-
187 }
-
188
-
189 if (auto const page = tl->getFieldU64(sfHighNode); !sb.dirRemove(
-
190 keylet::ownerDir(hi.getIssuer()), page, tl->key(), false))
-
191 {
-
192 JLOG(j_.error()) << id << ": failed to remove high entry from "
-
193 << toBase58(hi.getIssuer()) << ":" << page
-
194 << " owner directory";
-
195 return false;
-
196 }
-
197
-
198 if (tl->getFlags() & lsfLowReserve)
-
199 adjustOwnerCount(
-
200 sb, sb.peek(keylet::account(lo.getIssuer())), -1, j_);
+
171 auto flags = ctx_.tx.getFlags();
+
172
+
173 bool const gotMajority = (flags & tfGotMajority) != 0;
+
174 bool const lostMajority = (flags & tfLostMajority) != 0;
+
175
+
176 if (gotMajority && lostMajority)
+
177 return temINVALID_FLAG;
+
178
+
179 STArray newMajorities(sfMajorities);
+
180
+
181 bool found = false;
+
182 if (amendmentObject->isFieldPresent(sfMajorities))
+
183 {
+
184 STArray const& oldMajorities =
+
185 amendmentObject->getFieldArray(sfMajorities);
+
186 for (auto const& majority : oldMajorities)
+
187 {
+
188 if (majority.getFieldH256(sfAmendment) == amendment)
+
189 {
+
190 if (gotMajority)
+
191 return tefALREADY;
+
192 found = true;
+
193 }
+
194 else
+
195 {
+
196 // pass through
+
197 newMajorities.push_back(majority);
+
198 }
+
199 }
+
200 }
201
-
202 if (tl->getFlags() & lsfHighReserve)
-
203 adjustOwnerCount(
-
204 sb, sb.peek(keylet::account(hi.getIssuer())), -1, j_);
-
205
-
206 sb.erase(tl);
-
207
-
208 JLOG(j_.warn()) << "Successfully deleted trustline " << id;
-
209
-
210 return true;
-
211 };
-
212
-
213 using namespace std::literals;
-
214
-
215 Sandbox sb(&view());
-
216
-
217 if (removeTrustLineToSelf(
-
218 sb,
-
219 uint256{
-
220 "2F8F21EFCAFD7ACFB07D5BB04F0D2E18587820C7611305BB674A64EAB0FA71E1"sv}) &&
-
221 removeTrustLineToSelf(
-
222 sb,
-
223 uint256{
-
224 "326035D5C0560A9DA8636545DD5A1B0DFCFF63E68D491B5522B767BB00564B1A"sv}))
-
225 {
-
226 JLOG(j_.warn()) << "fixTrustLinesToSelf amendment activation code "
-
227 "executed successfully";
-
228 sb.apply(ctx_.rawView());
-
229 }
-
230}
-
-
231
-
232TER
-
-
233Change::applyAmendment()
-
234{
-
235 uint256 amendment(ctx_.tx.getFieldH256(sfAmendment));
-
236
-
237 auto const k = keylet::amendments();
-
238
-
239 SLE::pointer amendmentObject = view().peek(k);
+
202 if (!found && lostMajority)
+
203 return tefALREADY;
+
204
+
205 if (gotMajority)
+
206 {
+
207 // This amendment now has a majority
+
208 newMajorities.push_back(STObject::makeInnerObject(sfMajority));
+
209 auto& entry = newMajorities.back();
+
210 entry[sfAmendment] = amendment;
+
211 entry[sfCloseTime] =
+
212 view().parentCloseTime().time_since_epoch().count();
+
213
+
214 if (!ctx_.app.getAmendmentTable().isSupported(amendment))
+
215 {
+
216 JLOG(j_.warn()) << "Unsupported amendment " << amendment
+
217 << " received a majority.";
+
218 }
+
219 }
+
220 else if (!lostMajority)
+
221 {
+
222 // No flags, enable amendment
+
223 amendments.push_back(amendment);
+
224 amendmentObject->setFieldV256(sfAmendments, amendments);
+
225
+
226 ctx_.app.getAmendmentTable().enable(amendment);
+
227
+
228 if (!ctx_.app.getAmendmentTable().isSupported(amendment))
+
229 {
+
230 JLOG(j_.error()) << "Unsupported amendment " << amendment
+
231 << " activated: server blocked.";
+
232 ctx_.app.getOPs().setAmendmentBlocked();
+
233 }
+
234 }
+
235
+
236 if (newMajorities.empty())
+
237 amendmentObject->makeFieldAbsent(sfMajorities);
+
238 else
+
239 amendmentObject->setFieldArray(sfMajorities, newMajorities);
240
-
241 if (!amendmentObject)
-
242 {
-
243 amendmentObject = std::make_shared<SLE>(k);
-
244 view().insert(amendmentObject);
-
245 }
-
246
-
247 STVector256 amendments = amendmentObject->getFieldV256(sfAmendments);
-
248
-
249 if (std::find(amendments.begin(), amendments.end(), amendment) !=
-
250 amendments.end())
-
251 return tefALREADY;
+
241 view().update(amendmentObject);
+
242
+
243 return tesSUCCESS;
+
244}
+
+
245
+
246TER
+
+
247Change::applyFee()
+
248{
+
249 auto const k = keylet::fees();
+
250
+
251 SLE::pointer feeObject = view().peek(k);
252
-
253 auto flags = ctx_.tx.getFlags();
-
254
-
255 bool const gotMajority = (flags & tfGotMajority) != 0;
-
256 bool const lostMajority = (flags & tfLostMajority) != 0;
-
257
-
258 if (gotMajority && lostMajority)
-
259 return temINVALID_FLAG;
-
260
-
261 STArray newMajorities(sfMajorities);
-
262
-
263 bool found = false;
-
264 if (amendmentObject->isFieldPresent(sfMajorities))
-
265 {
-
266 STArray const& oldMajorities =
-
267 amendmentObject->getFieldArray(sfMajorities);
-
268 for (auto const& majority : oldMajorities)
-
269 {
-
270 if (majority.getFieldH256(sfAmendment) == amendment)
-
271 {
-
272 if (gotMajority)
-
273 return tefALREADY;
-
274 found = true;
-
275 }
-
276 else
-
277 {
-
278 // pass through
-
279 newMajorities.push_back(majority);
-
280 }
-
281 }
-
282 }
-
283
-
284 if (!found && lostMajority)
-
285 return tefALREADY;
-
286
-
287 if (gotMajority)
-
288 {
-
289 // This amendment now has a majority
-
290 newMajorities.push_back(STObject::makeInnerObject(sfMajority));
-
291 auto& entry = newMajorities.back();
-
292 entry[sfAmendment] = amendment;
-
293 entry[sfCloseTime] =
-
294 view().parentCloseTime().time_since_epoch().count();
+
253 if (!feeObject)
+
254 {
+
255 feeObject = std::make_shared<SLE>(k);
+
256 view().insert(feeObject);
+
257 }
+
258 auto set = [](SLE::pointer& feeObject, STTx const& tx, auto const& field) {
+
259 feeObject->at(field) = tx[field];
+
260 };
+
261 if (view().rules().enabled(featureXRPFees))
+
262 {
+
263 set(feeObject, ctx_.tx, sfBaseFeeDrops);
+
264 set(feeObject, ctx_.tx, sfReserveBaseDrops);
+
265 set(feeObject, ctx_.tx, sfReserveIncrementDrops);
+
266 // Ensure the old fields are removed
+
267 feeObject->makeFieldAbsent(sfBaseFee);
+
268 feeObject->makeFieldAbsent(sfReferenceFeeUnits);
+
269 feeObject->makeFieldAbsent(sfReserveBase);
+
270 feeObject->makeFieldAbsent(sfReserveIncrement);
+
271 }
+
272 else
+
273 {
+
274 set(feeObject, ctx_.tx, sfBaseFee);
+
275 set(feeObject, ctx_.tx, sfReferenceFeeUnits);
+
276 set(feeObject, ctx_.tx, sfReserveBase);
+
277 set(feeObject, ctx_.tx, sfReserveIncrement);
+
278 }
+
279
+
280 view().update(feeObject);
+
281
+
282 JLOG(j_.warn()) << "Fees have been changed";
+
283 return tesSUCCESS;
+
284}
+
+
285
+
286TER
+
+
287Change::applyUNLModify()
+
288{
+
289 if (!isFlagLedger(view().seq()))
+
290 {
+
291 JLOG(j_.warn()) << "N-UNL: applyUNLModify, not a flag ledger, seq="
+
292 << view().seq();
+
293 return tefFAILURE;
+
294 }
295
-
296 if (!ctx_.app.getAmendmentTable().isSupported(amendment))
-
297 {
-
298 JLOG(j_.warn()) << "Unsupported amendment " << amendment
-
299 << " received a majority.";
-
300 }
-
301 }
-
302 else if (!lostMajority)
-
303 {
-
304 // No flags, enable amendment
-
305 amendments.push_back(amendment);
-
306 amendmentObject->setFieldV256(sfAmendments, amendments);
-
307
-
308 if (amendment == fixTrustLinesToSelf)
-
309 activateTrustLinesToSelfFix();
-
310
-
311 ctx_.app.getAmendmentTable().enable(amendment);
+
296 if (!ctx_.tx.isFieldPresent(sfUNLModifyDisabling) ||
+
297 ctx_.tx.getFieldU8(sfUNLModifyDisabling) > 1 ||
+
298 !ctx_.tx.isFieldPresent(sfLedgerSequence) ||
+
299 !ctx_.tx.isFieldPresent(sfUNLModifyValidator))
+
300 {
+
301 JLOG(j_.warn()) << "N-UNL: applyUNLModify, wrong Tx format.";
+
302 return tefFAILURE;
+
303 }
+
304
+
305 bool const disabling = ctx_.tx.getFieldU8(sfUNLModifyDisabling);
+
306 auto const seq = ctx_.tx.getFieldU32(sfLedgerSequence);
+
307 if (seq != view().seq())
+
308 {
+
309 JLOG(j_.warn()) << "N-UNL: applyUNLModify, wrong ledger seq=" << seq;
+
310 return tefFAILURE;
+
311 }
312
-
313 if (!ctx_.app.getAmendmentTable().isSupported(amendment))
-
314 {
-
315 JLOG(j_.error()) << "Unsupported amendment " << amendment
-
316 << " activated: server blocked.";
-
317 ctx_.app.getOPs().setAmendmentBlocked();
-
318 }
-
319 }
-
320
-
321 if (newMajorities.empty())
-
322 amendmentObject->makeFieldAbsent(sfMajorities);
-
323 else
-
324 amendmentObject->setFieldArray(sfMajorities, newMajorities);
-
325
-
326 view().update(amendmentObject);
-
327
-
328 return tesSUCCESS;
-
329}
-
-
330
-
331TER
-
-
332Change::applyFee()
-
333{
-
334 auto const k = keylet::fees();
-
335
-
336 SLE::pointer feeObject = view().peek(k);
-
337
-
338 if (!feeObject)
-
339 {
-
340 feeObject = std::make_shared<SLE>(k);
-
341 view().insert(feeObject);
-
342 }
-
343 auto set = [](SLE::pointer& feeObject, STTx const& tx, auto const& field) {
-
344 feeObject->at(field) = tx[field];
-
345 };
-
346 if (view().rules().enabled(featureXRPFees))
-
347 {
-
348 set(feeObject, ctx_.tx, sfBaseFeeDrops);
-
349 set(feeObject, ctx_.tx, sfReserveBaseDrops);
-
350 set(feeObject, ctx_.tx, sfReserveIncrementDrops);
-
351 // Ensure the old fields are removed
-
352 feeObject->makeFieldAbsent(sfBaseFee);
-
353 feeObject->makeFieldAbsent(sfReferenceFeeUnits);
-
354 feeObject->makeFieldAbsent(sfReserveBase);
-
355 feeObject->makeFieldAbsent(sfReserveIncrement);
-
356 }
-
357 else
-
358 {
-
359 set(feeObject, ctx_.tx, sfBaseFee);
-
360 set(feeObject, ctx_.tx, sfReferenceFeeUnits);
-
361 set(feeObject, ctx_.tx, sfReserveBase);
-
362 set(feeObject, ctx_.tx, sfReserveIncrement);
-
363 }
-
364
-
365 view().update(feeObject);
-
366
-
367 JLOG(j_.warn()) << "Fees have been changed";
-
368 return tesSUCCESS;
-
369}
-
-
370
-
371TER
-
-
372Change::applyUNLModify()
-
373{
-
374 if (!isFlagLedger(view().seq()))
-
375 {
-
376 JLOG(j_.warn()) << "N-UNL: applyUNLModify, not a flag ledger, seq="
-
377 << view().seq();
-
378 return tefFAILURE;
-
379 }
-
380
-
381 if (!ctx_.tx.isFieldPresent(sfUNLModifyDisabling) ||
-
382 ctx_.tx.getFieldU8(sfUNLModifyDisabling) > 1 ||
-
383 !ctx_.tx.isFieldPresent(sfLedgerSequence) ||
-
384 !ctx_.tx.isFieldPresent(sfUNLModifyValidator))
-
385 {
-
386 JLOG(j_.warn()) << "N-UNL: applyUNLModify, wrong Tx format.";
-
387 return tefFAILURE;
-
388 }
-
389
-
390 bool const disabling = ctx_.tx.getFieldU8(sfUNLModifyDisabling);
-
391 auto const seq = ctx_.tx.getFieldU32(sfLedgerSequence);
-
392 if (seq != view().seq())
-
393 {
-
394 JLOG(j_.warn()) << "N-UNL: applyUNLModify, wrong ledger seq=" << seq;
-
395 return tefFAILURE;
-
396 }
+
313 Blob const validator = ctx_.tx.getFieldVL(sfUNLModifyValidator);
+
314 if (!publicKeyType(makeSlice(validator)))
+
315 {
+
316 JLOG(j_.warn()) << "N-UNL: applyUNLModify, bad validator key";
+
317 return tefFAILURE;
+
318 }
+
319
+
320 JLOG(j_.info()) << "N-UNL: applyUNLModify, "
+
321 << (disabling ? "ToDisable" : "ToReEnable")
+
322 << " seq=" << seq
+
323 << " validator data:" << strHex(validator);
+
324
+
325 auto const k = keylet::negativeUNL();
+
326 SLE::pointer negUnlObject = view().peek(k);
+
327 if (!negUnlObject)
+
328 {
+
329 negUnlObject = std::make_shared<SLE>(k);
+
330 view().insert(negUnlObject);
+
331 }
+
332
+
333 bool const found = [&] {
+
334 if (negUnlObject->isFieldPresent(sfDisabledValidators))
+
335 {
+
336 auto const& negUnl =
+
337 negUnlObject->getFieldArray(sfDisabledValidators);
+
338 for (auto const& v : negUnl)
+
339 {
+
340 if (v.isFieldPresent(sfPublicKey) &&
+
341 v.getFieldVL(sfPublicKey) == validator)
+
342 return true;
+
343 }
+
344 }
+
345 return false;
+
346 }();
+
347
+
348 if (disabling)
+
349 {
+
350 // cannot have more than one toDisable
+
351 if (negUnlObject->isFieldPresent(sfValidatorToDisable))
+
352 {
+
353 JLOG(j_.warn()) << "N-UNL: applyUNLModify, already has ToDisable";
+
354 return tefFAILURE;
+
355 }
+
356
+
357 // cannot be the same as toReEnable
+
358 if (negUnlObject->isFieldPresent(sfValidatorToReEnable))
+
359 {
+
360 if (negUnlObject->getFieldVL(sfValidatorToReEnable) == validator)
+
361 {
+
362 JLOG(j_.warn())
+
363 << "N-UNL: applyUNLModify, ToDisable is same as ToReEnable";
+
364 return tefFAILURE;
+
365 }
+
366 }
+
367
+
368 // cannot be in negative UNL already
+
369 if (found)
+
370 {
+
371 JLOG(j_.warn())
+
372 << "N-UNL: applyUNLModify, ToDisable already in negative UNL";
+
373 return tefFAILURE;
+
374 }
+
375
+
376 negUnlObject->setFieldVL(sfValidatorToDisable, validator);
+
377 }
+
378 else
+
379 {
+
380 // cannot have more than one toReEnable
+
381 if (negUnlObject->isFieldPresent(sfValidatorToReEnable))
+
382 {
+
383 JLOG(j_.warn()) << "N-UNL: applyUNLModify, already has ToReEnable";
+
384 return tefFAILURE;
+
385 }
+
386
+
387 // cannot be the same as toDisable
+
388 if (negUnlObject->isFieldPresent(sfValidatorToDisable))
+
389 {
+
390 if (negUnlObject->getFieldVL(sfValidatorToDisable) == validator)
+
391 {
+
392 JLOG(j_.warn())
+
393 << "N-UNL: applyUNLModify, ToReEnable is same as ToDisable";
+
394 return tefFAILURE;
+
395 }
+
396 }
397
-
398 Blob const validator = ctx_.tx.getFieldVL(sfUNLModifyValidator);
-
399 if (!publicKeyType(makeSlice(validator)))
-
400 {
-
401 JLOG(j_.warn()) << "N-UNL: applyUNLModify, bad validator key";
-
402 return tefFAILURE;
-
403 }
-
404
-
405 JLOG(j_.info()) << "N-UNL: applyUNLModify, "
-
406 << (disabling ? "ToDisable" : "ToReEnable")
-
407 << " seq=" << seq
-
408 << " validator data:" << strHex(validator);
-
409
-
410 auto const k = keylet::negativeUNL();
-
411 SLE::pointer negUnlObject = view().peek(k);
-
412 if (!negUnlObject)
-
413 {
-
414 negUnlObject = std::make_shared<SLE>(k);
-
415 view().insert(negUnlObject);
-
416 }
-
417
-
418 bool const found = [&] {
-
419 if (negUnlObject->isFieldPresent(sfDisabledValidators))
-
420 {
-
421 auto const& negUnl =
-
422 negUnlObject->getFieldArray(sfDisabledValidators);
-
423 for (auto const& v : negUnl)
-
424 {
-
425 if (v.isFieldPresent(sfPublicKey) &&
-
426 v.getFieldVL(sfPublicKey) == validator)
-
427 return true;
-
428 }
-
429 }
-
430 return false;
-
431 }();
-
432
-
433 if (disabling)
-
434 {
-
435 // cannot have more than one toDisable
-
436 if (negUnlObject->isFieldPresent(sfValidatorToDisable))
-
437 {
-
438 JLOG(j_.warn()) << "N-UNL: applyUNLModify, already has ToDisable";
-
439 return tefFAILURE;
-
440 }
-
441
-
442 // cannot be the same as toReEnable
-
443 if (negUnlObject->isFieldPresent(sfValidatorToReEnable))
-
444 {
-
445 if (negUnlObject->getFieldVL(sfValidatorToReEnable) == validator)
-
446 {
-
447 JLOG(j_.warn())
-
448 << "N-UNL: applyUNLModify, ToDisable is same as ToReEnable";
-
449 return tefFAILURE;
-
450 }
-
451 }
-
452
-
453 // cannot be in negative UNL already
-
454 if (found)
-
455 {
-
456 JLOG(j_.warn())
-
457 << "N-UNL: applyUNLModify, ToDisable already in negative UNL";
-
458 return tefFAILURE;
-
459 }
-
460
-
461 negUnlObject->setFieldVL(sfValidatorToDisable, validator);
-
462 }
-
463 else
-
464 {
-
465 // cannot have more than one toReEnable
-
466 if (negUnlObject->isFieldPresent(sfValidatorToReEnable))
-
467 {
-
468 JLOG(j_.warn()) << "N-UNL: applyUNLModify, already has ToReEnable";
-
469 return tefFAILURE;
-
470 }
-
471
-
472 // cannot be the same as toDisable
-
473 if (negUnlObject->isFieldPresent(sfValidatorToDisable))
-
474 {
-
475 if (negUnlObject->getFieldVL(sfValidatorToDisable) == validator)
-
476 {
-
477 JLOG(j_.warn())
-
478 << "N-UNL: applyUNLModify, ToReEnable is same as ToDisable";
-
479 return tefFAILURE;
-
480 }
-
481 }
-
482
-
483 // must be in negative UNL
-
484 if (!found)
-
485 {
-
486 JLOG(j_.warn())
-
487 << "N-UNL: applyUNLModify, ToReEnable is not in negative UNL";
-
488 return tefFAILURE;
-
489 }
-
490
-
491 negUnlObject->setFieldVL(sfValidatorToReEnable, validator);
-
492 }
-
493
-
494 view().update(negUnlObject);
-
495 return tesSUCCESS;
-
496}
+
398 // must be in negative UNL
+
399 if (!found)
+
400 {
+
401 JLOG(j_.warn())
+
402 << "N-UNL: applyUNLModify, ToReEnable is not in negative UNL";
+
403 return tefFAILURE;
+
404 }
+
405
+
406 negUnlObject->setFieldVL(sfValidatorToReEnable, validator);
+
407 }
+
408
+
409 view().update(negUnlObject);
+
410 return tesSUCCESS;
+
411}
-
497
-
498} // namespace ripple
+
412
+
413} // namespace ripple
beast::Journal::error
Stream error() const
Definition Journal.h:327
beast::Journal::info
Stream info() const
Definition Journal.h:315
beast::Journal::warn
Stream warn() const
Definition Journal.h:321
@@ -602,19 +515,16 @@ $(document).ready(function() { init_codefold(0); });
ripple::AmendmentTable::enable
virtual bool enable(uint256 const &amendment)=0
ripple::Application::getOPs
virtual NetworkOPs & getOPs()=0
ripple::Application::getAmendmentTable
virtual AmendmentTable & getAmendmentTable()=0
-
ripple::ApplyContext::rawView
RawView & rawView()
Definition ApplyContext.h:72
ripple::ApplyContext::app
Application & app
Definition ApplyContext.h:52
ripple::ApplyContext::tx
STTx const & tx
Definition ApplyContext.h:53
ripple::ApplyView::update
virtual void update(std::shared_ptr< SLE > const &sle)=0
Indicate changes to a peeked SLE.
-
ripple::ApplyView::dirRemove
bool dirRemove(Keylet const &directory, std::uint64_t page, uint256 const &key, bool keepRoot)
Remove an entry from a directory.
Definition ApplyView.cpp:188
ripple::ApplyView::insert
virtual void insert(std::shared_ptr< SLE > const &sle)=0
Insert a new state SLE.
ripple::ApplyView::peek
virtual std::shared_ptr< SLE > peek(Keylet const &k)=0
Prepare to modify the SLE associated with key.
-
ripple::Change::activateTrustLinesToSelfFix
void activateTrustLinesToSelfFix()
Definition Change.cpp:151
-
ripple::Change::applyUNLModify
TER applyUNLModify()
Definition Change.cpp:372
-
ripple::Change::applyFee
TER applyFee()
Definition Change.cpp:332
+
ripple::Change::applyUNLModify
TER applyUNLModify()
Definition Change.cpp:287
+
ripple::Change::applyFee
TER applyFee()
Definition Change.cpp:247
ripple::Change::preCompute
void preCompute() override
Definition Change.cpp:144
ripple::Change::preclaim
static TER preclaim(PreclaimContext const &ctx)
Definition Change.cpp:65
-
ripple::Change::applyAmendment
TER applyAmendment()
Definition Change.cpp:233
+
ripple::Change::applyAmendment
TER applyAmendment()
Definition Change.cpp:151
ripple::Change::doApply
TER doApply() override
Definition Change.cpp:125
ripple::NetworkOPs::setAmendmentBlocked
virtual void setAmendmentBlocked()=0
ripple::ReadView::parentCloseTime
NetClock::time_point parentCloseTime() const
Returns the close time of the previous ledger.
Definition ReadView.h:92
@@ -640,32 +550,21 @@ $(document).ready(function() { init_codefold(0); });
ripple::STTx::getSigningPubKey
Blob getSigningPubKey() const
Definition STTx.h:224
ripple::STTx::getTxnType
TxType getTxnType() const
Definition STTx.h:218
ripple::STVector256
Definition STVector256.h:12
-
ripple::Sandbox
Discardable, editable view to a ledger.
Definition Sandbox.h:16
-
ripple::Sandbox::apply
void apply(RawView &to)
Definition Sandbox.h:36
ripple::TERSubset
Definition TER.h:396
ripple::Transactor::account_
AccountID const account_
Definition Transactor.h:128
ripple::Transactor::view
ApplyView & view()
Definition Transactor.h:144
ripple::Transactor::j_
beast::Journal const j_
Definition Transactor.h:126
ripple::Transactor::ctx_
ApplyContext & ctx_
Definition Transactor.h:124
ripple::base_uint< 256 >
-
ripple::detail::ApplyViewBase::erase
void erase(std::shared_ptr< SLE > const &sle) override
Remove a peeked SLE.
Definition ApplyViewBase.cpp:114
-
ripple::detail::ApplyViewBase::peek
std::shared_ptr< SLE > peek(Keylet const &k) override
Prepare to modify the SLE associated with key.
Definition ApplyViewBase.cpp:108
std::vector::empty
T empty(T... args)
std::find
T find(T... args)
-
std::uint16_t
std::is_same_v
T is_same_v
-
ripple::keylet::child
Keylet child(uint256 const &key) noexcept
Any item that can be in an owner dir.
Definition Indexes.cpp:171
ripple::keylet::negativeUNL
Keylet const & negativeUNL() noexcept
The (fixed) index of the object containing the ledger negativeUNL.
Definition Indexes.cpp:211
ripple::keylet::amendments
Keylet const & amendments() noexcept
The index of the amendment table.
Definition Indexes.cpp:195
-
ripple::keylet::account
Keylet account(AccountID const &id) noexcept
AccountID root.
Definition Indexes.cpp:165
ripple::keylet::fees
Keylet const & fees() noexcept
The (fixed) index of the object containing the ledger fees.
Definition Indexes.cpp:203
-
ripple::keylet::ownerDir
Keylet ownerDir(AccountID const &id) noexcept
The root page of an account's directory.
Definition Indexes.cpp:355
ripple
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
-
ripple::toBase58
std::string toBase58(AccountID const &v)
Convert AccountID to base58 checked string.
Definition AccountID.cpp:95
ripple::tfGotMajority
constexpr std::uint32_t tfGotMajority
Definition TxFlags.h:109
-
ripple::lsfHighReserve
@ lsfHighReserve
Definition LedgerFormats.h:141
-
ripple::lsfLowReserve
@ lsfLowReserve
Definition LedgerFormats.h:140
-
ripple::adjustOwnerCount
void adjustOwnerCount(ApplyView &view, std::shared_ptr< SLE > const &sle, std::int32_t amount, beast::Journal j)
Adjust the owner count up or down.
Definition View.cpp:1013
+
ripple::set
bool set(T &target, std::string const &name, Section const &section)
Set a value from a configuration Section If the named value is not found or doesn't parse as a T,...
Definition BasicConfig.h:296
ripple::tefFAILURE
@ tefFAILURE
Definition TER.h:147
ripple::tefALREADY
@ tefALREADY
Definition TER.h:148
ripple::publicKeyType
std::optional< KeyType > publicKeyType(Slice const &slice)
Returns the type of public key.
Definition PublicKey.cpp:205
@@ -684,11 +583,8 @@ $(document).ready(function() { init_codefold(0); });
ripple::temINVALID_FLAG
@ temINVALID_FLAG
Definition TER.h:92
ripple::temDISABLED
@ temDISABLED
Definition TER.h:95
ripple::temBAD_SIGNATURE
@ temBAD_SIGNATURE
Definition TER.h:86
-
std::literals
-
std::set
std::shared_ptr< STLedgerEntry >
string_view
-
ripple::Keylet::key
uint256 key
Definition Keylet.h:21
ripple::PreclaimContext
State information when determining if a tx is likely to claim a fee.
Definition Transactor.h:61
ripple::PreclaimContext::view
ReadView const & view
Definition Transactor.h:64
ripple::PreclaimContext::tx
STTx const & tx
Definition Transactor.h:67
diff --git a/Change_8h_source.html b/Change_8h_source.html index b67fc63919..a585b4ab91 100644 --- a/Change_8h_source.html +++ b/Change_8h_source.html @@ -117,37 +117,33 @@ $(document).ready(function() { init_codefold(0); });
29 preclaim(PreclaimContext const& ctx);
30
31private:
-
32 void
-
33 activateTrustLinesToSelfFix();
+
32 TER
+
33 applyAmendment();
34
35 TER
-
36 applyAmendment();
+
36 applyFee();
37
38 TER
-
39 applyFee();
-
40
-
41 TER
-
42 applyUNLModify();
-
43};
+
39 applyUNLModify();
+
40};
-
44
-
45using EnableAmendment = Change;
-
46using SetFee = Change;
-
47using UNLModify = Change;
-
48
-
49} // namespace ripple
-
50
-
51#endif
+
41
+
42using EnableAmendment = Change;
+
43using SetFee = Change;
+
44using UNLModify = Change;
+
45
+
46} // namespace ripple
+
47
+
48#endif
ripple::ApplyContext
State information when applying a tx.
Definition ApplyContext.h:18
ripple::Change
Definition Change.h:9
ripple::Change::calculateBaseFee
static XRPAmount calculateBaseFee(ReadView const &view, STTx const &tx)
Definition Change.h:23
-
ripple::Change::activateTrustLinesToSelfFix
void activateTrustLinesToSelfFix()
Definition Change.cpp:151
-
ripple::Change::applyUNLModify
TER applyUNLModify()
Definition Change.cpp:372
-
ripple::Change::applyFee
TER applyFee()
Definition Change.cpp:332
+
ripple::Change::applyUNLModify
TER applyUNLModify()
Definition Change.cpp:287
+
ripple::Change::applyFee
TER applyFee()
Definition Change.cpp:247
ripple::Change::preCompute
void preCompute() override
Definition Change.cpp:144
ripple::Change::ConsequencesFactory
static constexpr ConsequencesFactoryType ConsequencesFactory
Definition Change.h:11
ripple::Change::preclaim
static TER preclaim(PreclaimContext const &ctx)
Definition Change.cpp:65
-
ripple::Change::applyAmendment
TER applyAmendment()
Definition Change.cpp:233
+
ripple::Change::applyAmendment
TER applyAmendment()
Definition Change.cpp:151
ripple::Change::Change
Change(ApplyContext &ctx)
Definition Change.h:13
ripple::Change::doApply
TER doApply() override
Definition Change.cpp:125
ripple::ReadView
A view into a ledger.
Definition ReadView.h:32
diff --git a/Feature__test_8cpp_source.html b/Feature__test_8cpp_source.html index b1c5ec8c00..20a7c07980 100644 --- a/Feature__test_8cpp_source.html +++ b/Feature__test_8cpp_source.html @@ -208,500 +208,501 @@ $(document).ready(function() { init_codefold(0); });
121 // Test a random sampling of the variables. If any of these get retired
122 // or removed, swap out for any other feature.
123 BEAST_EXPECT(
-
124 featureToName(fixTrustLinesToSelf) == "fixTrustLinesToSelf");
-
125 BEAST_EXPECT(featureToName(featureFlow) == "Flow");
-
126 BEAST_EXPECT(featureToName(featureNegativeUNL) == "NegativeUNL");
-
127 BEAST_EXPECT(
-
128 featureToName(fixIncludeKeyletFields) == "fixIncludeKeyletFields");
-
129 BEAST_EXPECT(featureToName(featureTokenEscrow) == "TokenEscrow");
-
130 }
+
124 featureToName(fixRemoveNFTokenAutoTrustLine) ==
+
125 "fixRemoveNFTokenAutoTrustLine");
+
126 BEAST_EXPECT(featureToName(featureFlow) == "Flow");
+
127 BEAST_EXPECT(featureToName(featureNegativeUNL) == "NegativeUNL");
+
128 BEAST_EXPECT(
+
129 featureToName(fixIncludeKeyletFields) == "fixIncludeKeyletFields");
+
130 BEAST_EXPECT(featureToName(featureTokenEscrow) == "TokenEscrow");
+
131 }
-
131
-
132 void
-
-
133 testNoParams()
-
134 {
-
135 testcase("No Params, None Enabled");
-
136
-
137 using namespace test::jtx;
-
138 Env env{*this};
-
139
-
140 std::map<std::string, VoteBehavior> const& votes =
-
141 ripple::detail::supportedAmendments();
-
142
-
143 auto jrr = env.rpc("feature")[jss::result];
-
144 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
-
145 return;
-
146 for (auto const& feature : jrr[jss::features])
-
147 {
-
148 if (!BEAST_EXPECT(feature.isMember(jss::name)))
-
149 return;
-
150 // default config - so all should be disabled, and
-
151 // supported. Some may be vetoed.
-
152 bool expectVeto =
-
153 (votes.at(feature[jss::name].asString()) ==
-
154 VoteBehavior::DefaultNo);
-
155 bool expectObsolete =
-
156 (votes.at(feature[jss::name].asString()) ==
-
157 VoteBehavior::Obsolete);
-
158 BEAST_EXPECTS(
-
159 feature.isMember(jss::enabled) &&
-
160 !feature[jss::enabled].asBool(),
-
161 feature[jss::name].asString() + " enabled");
-
162 BEAST_EXPECTS(
-
163 feature.isMember(jss::vetoed) &&
-
164 feature[jss::vetoed].isBool() == !expectObsolete &&
-
165 (!feature[jss::vetoed].isBool() ||
-
166 feature[jss::vetoed].asBool() == expectVeto) &&
-
167 (feature[jss::vetoed].isBool() ||
-
168 feature[jss::vetoed].asString() == "Obsolete"),
-
169 feature[jss::name].asString() + " vetoed");
-
170 BEAST_EXPECTS(
-
171 feature.isMember(jss::supported) &&
-
172 feature[jss::supported].asBool(),
-
173 feature[jss::name].asString() + " supported");
-
174 }
-
175 }
+
132
+
133 void
+
+ +
135 {
+
136 testcase("No Params, None Enabled");
+
137
+
138 using namespace test::jtx;
+
139 Env env{*this};
+
140
+ + +
143
+
144 auto jrr = env.rpc("feature")[jss::result];
+
145 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
+
146 return;
+
147 for (auto const& feature : jrr[jss::features])
+
148 {
+
149 if (!BEAST_EXPECT(feature.isMember(jss::name)))
+
150 return;
+
151 // default config - so all should be disabled, and
+
152 // supported. Some may be vetoed.
+
153 bool expectVeto =
+
154 (votes.at(feature[jss::name].asString()) ==
+ +
156 bool expectObsolete =
+
157 (votes.at(feature[jss::name].asString()) ==
+ +
159 BEAST_EXPECTS(
+
160 feature.isMember(jss::enabled) &&
+
161 !feature[jss::enabled].asBool(),
+
162 feature[jss::name].asString() + " enabled");
+
163 BEAST_EXPECTS(
+
164 feature.isMember(jss::vetoed) &&
+
165 feature[jss::vetoed].isBool() == !expectObsolete &&
+
166 (!feature[jss::vetoed].isBool() ||
+
167 feature[jss::vetoed].asBool() == expectVeto) &&
+
168 (feature[jss::vetoed].isBool() ||
+
169 feature[jss::vetoed].asString() == "Obsolete"),
+
170 feature[jss::name].asString() + " vetoed");
+
171 BEAST_EXPECTS(
+
172 feature.isMember(jss::supported) &&
+
173 feature[jss::supported].asBool(),
+
174 feature[jss::name].asString() + " supported");
+
175 }
+
176 }
-
176
-
177 void
-
- -
179 {
-
180 testcase("Feature Param");
-
181
-
182 using namespace test::jtx;
-
183 Env env{*this};
-
184
-
185 auto jrr = env.rpc("feature", "MultiSignReserve")[jss::result];
-
186 BEAST_EXPECTS(jrr[jss::status] == jss::success, "status");
-
187 jrr.removeMember(jss::status);
-
188 BEAST_EXPECT(jrr.size() == 1);
-
189 BEAST_EXPECT(
-
190 jrr.isMember("586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF"
-
191 "1FC07EFE41D"));
-
192 auto feature = *(jrr.begin());
-
193
-
194 BEAST_EXPECTS(feature[jss::name] == "MultiSignReserve", "name");
-
195 BEAST_EXPECTS(!feature[jss::enabled].asBool(), "enabled");
-
196 BEAST_EXPECTS(
-
197 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
-
198 "vetoed");
-
199 BEAST_EXPECTS(feature[jss::supported].asBool(), "supported");
-
200
-
201 // feature names are case-sensitive - expect error here
-
202 jrr = env.rpc("feature", "multiSignReserve")[jss::result];
-
203 BEAST_EXPECT(jrr[jss::error] == "badFeature");
-
204 BEAST_EXPECT(jrr[jss::error_message] == "Feature unknown or invalid.");
-
205 }
+
177
+
178 void
+
+ +
180 {
+
181 testcase("Feature Param");
+
182
+
183 using namespace test::jtx;
+
184 Env env{*this};
+
185
+
186 auto jrr = env.rpc("feature", "MultiSignReserve")[jss::result];
+
187 BEAST_EXPECTS(jrr[jss::status] == jss::success, "status");
+
188 jrr.removeMember(jss::status);
+
189 BEAST_EXPECT(jrr.size() == 1);
+
190 BEAST_EXPECT(
+
191 jrr.isMember("586480873651E106F1D6339B0C4A8945BA705A777F3F4524626FF"
+
192 "1FC07EFE41D"));
+
193 auto feature = *(jrr.begin());
+
194
+
195 BEAST_EXPECTS(feature[jss::name] == "MultiSignReserve", "name");
+
196 BEAST_EXPECTS(!feature[jss::enabled].asBool(), "enabled");
+
197 BEAST_EXPECTS(
+
198 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
+
199 "vetoed");
+
200 BEAST_EXPECTS(feature[jss::supported].asBool(), "supported");
+
201
+
202 // feature names are case-sensitive - expect error here
+
203 jrr = env.rpc("feature", "multiSignReserve")[jss::result];
+
204 BEAST_EXPECT(jrr[jss::error] == "badFeature");
+
205 BEAST_EXPECT(jrr[jss::error_message] == "Feature unknown or invalid.");
+
206 }
-
206
-
207 void
-
- -
209 {
-
210 testcase("Invalid Feature");
-
211
-
212 using namespace test::jtx;
-
213 Env env{*this};
-
214
-
215 auto testInvalidParam = [&](auto const& param) {
-
216 Json::Value params;
-
217 params[jss::feature] = param;
-
218 auto jrr =
-
219 env.rpc("json", "feature", to_string(params))[jss::result];
-
220 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
-
221 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
-
222 };
-
223
-
224 testInvalidParam(1);
-
225 testInvalidParam(1.1);
-
226 testInvalidParam(true);
-
227 testInvalidParam(Json::Value(Json::nullValue));
-
228 testInvalidParam(Json::Value(Json::objectValue));
-
229 testInvalidParam(Json::Value(Json::arrayValue));
-
230
-
231 {
-
232 auto jrr = env.rpc("feature", "AllTheThings")[jss::result];
-
233 BEAST_EXPECT(jrr[jss::error] == "badFeature");
-
234 BEAST_EXPECT(
-
235 jrr[jss::error_message] == "Feature unknown or invalid.");
-
236 }
-
237 }
+
207
+
208 void
+
+ +
210 {
+
211 testcase("Invalid Feature");
+
212
+
213 using namespace test::jtx;
+
214 Env env{*this};
+
215
+
216 auto testInvalidParam = [&](auto const& param) {
+
217 Json::Value params;
+
218 params[jss::feature] = param;
+
219 auto jrr =
+
220 env.rpc("json", "feature", to_string(params))[jss::result];
+
221 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
+
222 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
+
223 };
+
224
+
225 testInvalidParam(1);
+
226 testInvalidParam(1.1);
+
227 testInvalidParam(true);
+
228 testInvalidParam(Json::Value(Json::nullValue));
+
229 testInvalidParam(Json::Value(Json::objectValue));
+
230 testInvalidParam(Json::Value(Json::arrayValue));
+
231
+
232 {
+
233 auto jrr = env.rpc("feature", "AllTheThings")[jss::result];
+
234 BEAST_EXPECT(jrr[jss::error] == "badFeature");
+
235 BEAST_EXPECT(
+
236 jrr[jss::error_message] == "Feature unknown or invalid.");
+
237 }
+
238 }
-
238
-
239 void
-
- -
241 {
-
242 testcase("Feature Without Admin");
-
243
-
244 using namespace test::jtx;
-
245 Env env{*this, envconfig([](std::unique_ptr<Config> cfg) {
-
246 (*cfg)["port_rpc"].set("admin", "");
-
247 (*cfg)["port_ws"].set("admin", "");
-
248 return cfg;
-
249 })};
-
250
-
251 {
-
252 auto result = env.rpc("feature")[jss::result];
-
253 BEAST_EXPECT(result.isMember(jss::features));
-
254 // There should be at least 50 amendments. Don't do exact
-
255 // comparison to avoid maintenance as more amendments are added in
-
256 // the future.
-
257 BEAST_EXPECT(result[jss::features].size() >= 50);
-
258 for (auto it = result[jss::features].begin();
-
259 it != result[jss::features].end();
-
260 ++it)
-
261 {
-
262 uint256 id;
-
263 (void)id.parseHex(it.key().asString().c_str());
-
264 if (!BEAST_EXPECT((*it).isMember(jss::name)))
-
265 return;
-
266 bool expectEnabled =
-
267 env.app().getAmendmentTable().isEnabled(id);
-
268 bool expectSupported =
-
269 env.app().getAmendmentTable().isSupported(id);
-
270 BEAST_EXPECTS(
-
271 (*it).isMember(jss::enabled) &&
-
272 (*it)[jss::enabled].asBool() == expectEnabled,
-
273 (*it)[jss::name].asString() + " enabled");
-
274 BEAST_EXPECTS(
-
275 (*it).isMember(jss::supported) &&
-
276 (*it)[jss::supported].asBool() == expectSupported,
-
277 (*it)[jss::name].asString() + " supported");
-
278 BEAST_EXPECT(!(*it).isMember(jss::vetoed));
-
279 BEAST_EXPECT(!(*it).isMember(jss::majority));
-
280 BEAST_EXPECT(!(*it).isMember(jss::count));
-
281 BEAST_EXPECT(!(*it).isMember(jss::validations));
-
282 BEAST_EXPECT(!(*it).isMember(jss::threshold));
-
283 }
-
284 }
-
285
-
286 {
-
287 Json::Value params;
-
288 // invalid feature
-
289 params[jss::feature] =
-
290 "1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCD"
-
291 "EF";
-
292 auto const result =
-
293 env.rpc("json", "feature", to_string(params))[jss::result];
-
294 BEAST_EXPECTS(
-
295 result[jss::error] == "badFeature", result.toStyledString());
-
296 BEAST_EXPECT(
-
297 result[jss::error_message] == "Feature unknown or invalid.");
-
298 }
-
299
-
300 {
-
301 Json::Value params;
-
302 params[jss::feature] =
-
303 "93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515"
-
304 "A7";
-
305 // invalid param
-
306 params[jss::vetoed] = true;
-
307 auto const result =
-
308 env.rpc("json", "feature", to_string(params))[jss::result];
-
309 BEAST_EXPECTS(
-
310 result[jss::error] == "noPermission",
-
311 result[jss::error].asString());
-
312 BEAST_EXPECT(
-
313 result[jss::error_message] ==
-
314 "You don't have permission for this command.");
-
315 }
-
316 }
+
239
+
240 void
+
+ +
242 {
+
243 testcase("Feature Without Admin");
+
244
+
245 using namespace test::jtx;
+
246 Env env{*this, envconfig([](std::unique_ptr<Config> cfg) {
+
247 (*cfg)["port_rpc"].set("admin", "");
+
248 (*cfg)["port_ws"].set("admin", "");
+
249 return cfg;
+
250 })};
+
251
+
252 {
+
253 auto result = env.rpc("feature")[jss::result];
+
254 BEAST_EXPECT(result.isMember(jss::features));
+
255 // There should be at least 50 amendments. Don't do exact
+
256 // comparison to avoid maintenance as more amendments are added in
+
257 // the future.
+
258 BEAST_EXPECT(result[jss::features].size() >= 50);
+
259 for (auto it = result[jss::features].begin();
+
260 it != result[jss::features].end();
+
261 ++it)
+
262 {
+
263 uint256 id;
+
264 (void)id.parseHex(it.key().asString().c_str());
+
265 if (!BEAST_EXPECT((*it).isMember(jss::name)))
+
266 return;
+
267 bool expectEnabled =
+
268 env.app().getAmendmentTable().isEnabled(id);
+
269 bool expectSupported =
+
270 env.app().getAmendmentTable().isSupported(id);
+
271 BEAST_EXPECTS(
+
272 (*it).isMember(jss::enabled) &&
+
273 (*it)[jss::enabled].asBool() == expectEnabled,
+
274 (*it)[jss::name].asString() + " enabled");
+
275 BEAST_EXPECTS(
+
276 (*it).isMember(jss::supported) &&
+
277 (*it)[jss::supported].asBool() == expectSupported,
+
278 (*it)[jss::name].asString() + " supported");
+
279 BEAST_EXPECT(!(*it).isMember(jss::vetoed));
+
280 BEAST_EXPECT(!(*it).isMember(jss::majority));
+
281 BEAST_EXPECT(!(*it).isMember(jss::count));
+
282 BEAST_EXPECT(!(*it).isMember(jss::validations));
+
283 BEAST_EXPECT(!(*it).isMember(jss::threshold));
+
284 }
+
285 }
+
286
+
287 {
+
288 Json::Value params;
+
289 // invalid feature
+
290 params[jss::feature] =
+
291 "1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCD"
+
292 "EF";
+
293 auto const result =
+
294 env.rpc("json", "feature", to_string(params))[jss::result];
+
295 BEAST_EXPECTS(
+
296 result[jss::error] == "badFeature", result.toStyledString());
+
297 BEAST_EXPECT(
+
298 result[jss::error_message] == "Feature unknown or invalid.");
+
299 }
+
300
+
301 {
+
302 Json::Value params;
+
303 params[jss::feature] =
+
304 "93E516234E35E08CA689FA33A6D38E103881F8DCB53023F728C307AA89D515"
+
305 "A7";
+
306 // invalid param
+
307 params[jss::vetoed] = true;
+
308 auto const result =
+
309 env.rpc("json", "feature", to_string(params))[jss::result];
+
310 BEAST_EXPECTS(
+
311 result[jss::error] == "noPermission",
+
312 result[jss::error].asString());
+
313 BEAST_EXPECT(
+
314 result[jss::error_message] ==
+
315 "You don't have permission for this command.");
+
316 }
+
317 }
-
317
-
318 void
-
- -
320 {
-
321 testcase("No Params, Some Enabled");
-
322
-
323 using namespace test::jtx;
-
324 Env env{
-
325 *this, FeatureBitset(featureDepositAuth, featureDepositPreauth)};
-
326
- - -
329
-
330 auto jrr = env.rpc("feature")[jss::result];
-
331 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
-
332 return;
-
333 for (auto it = jrr[jss::features].begin();
-
334 it != jrr[jss::features].end();
-
335 ++it)
-
336 {
-
337 uint256 id;
-
338 (void)id.parseHex(it.key().asString().c_str());
-
339 if (!BEAST_EXPECT((*it).isMember(jss::name)))
-
340 return;
-
341 bool expectEnabled = env.app().getAmendmentTable().isEnabled(id);
-
342 bool expectSupported =
-
343 env.app().getAmendmentTable().isSupported(id);
-
344 bool expectVeto =
-
345 (votes.at((*it)[jss::name].asString()) ==
- -
347 bool expectObsolete =
-
348 (votes.at((*it)[jss::name].asString()) ==
- -
350 BEAST_EXPECTS(
-
351 (*it).isMember(jss::enabled) &&
-
352 (*it)[jss::enabled].asBool() == expectEnabled,
-
353 (*it)[jss::name].asString() + " enabled");
-
354 if (expectEnabled)
-
355 BEAST_EXPECTS(
-
356 !(*it).isMember(jss::vetoed),
-
357 (*it)[jss::name].asString() + " vetoed");
-
358 else
-
359 BEAST_EXPECTS(
-
360 (*it).isMember(jss::vetoed) &&
-
361 (*it)[jss::vetoed].isBool() == !expectObsolete &&
-
362 (!(*it)[jss::vetoed].isBool() ||
-
363 (*it)[jss::vetoed].asBool() == expectVeto) &&
-
364 ((*it)[jss::vetoed].isBool() ||
-
365 (*it)[jss::vetoed].asString() == "Obsolete"),
-
366 (*it)[jss::name].asString() + " vetoed");
-
367 BEAST_EXPECTS(
-
368 (*it).isMember(jss::supported) &&
-
369 (*it)[jss::supported].asBool() == expectSupported,
-
370 (*it)[jss::name].asString() + " supported");
-
371 }
-
372 }
+
318
+
319 void
+
+ +
321 {
+
322 testcase("No Params, Some Enabled");
+
323
+
324 using namespace test::jtx;
+
325 Env env{
+
326 *this, FeatureBitset(featureDepositAuth, featureDepositPreauth)};
+
327
+ + +
330
+
331 auto jrr = env.rpc("feature")[jss::result];
+
332 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
+
333 return;
+
334 for (auto it = jrr[jss::features].begin();
+
335 it != jrr[jss::features].end();
+
336 ++it)
+
337 {
+
338 uint256 id;
+
339 (void)id.parseHex(it.key().asString().c_str());
+
340 if (!BEAST_EXPECT((*it).isMember(jss::name)))
+
341 return;
+
342 bool expectEnabled = env.app().getAmendmentTable().isEnabled(id);
+
343 bool expectSupported =
+
344 env.app().getAmendmentTable().isSupported(id);
+
345 bool expectVeto =
+
346 (votes.at((*it)[jss::name].asString()) ==
+ +
348 bool expectObsolete =
+
349 (votes.at((*it)[jss::name].asString()) ==
+ +
351 BEAST_EXPECTS(
+
352 (*it).isMember(jss::enabled) &&
+
353 (*it)[jss::enabled].asBool() == expectEnabled,
+
354 (*it)[jss::name].asString() + " enabled");
+
355 if (expectEnabled)
+
356 BEAST_EXPECTS(
+
357 !(*it).isMember(jss::vetoed),
+
358 (*it)[jss::name].asString() + " vetoed");
+
359 else
+
360 BEAST_EXPECTS(
+
361 (*it).isMember(jss::vetoed) &&
+
362 (*it)[jss::vetoed].isBool() == !expectObsolete &&
+
363 (!(*it)[jss::vetoed].isBool() ||
+
364 (*it)[jss::vetoed].asBool() == expectVeto) &&
+
365 ((*it)[jss::vetoed].isBool() ||
+
366 (*it)[jss::vetoed].asString() == "Obsolete"),
+
367 (*it)[jss::name].asString() + " vetoed");
+
368 BEAST_EXPECTS(
+
369 (*it).isMember(jss::supported) &&
+
370 (*it)[jss::supported].asBool() == expectSupported,
+
371 (*it)[jss::name].asString() + " supported");
+
372 }
+
373 }
-
373
-
374 void
-
- -
376 {
-
377 testcase("With Majorities");
-
378
-
379 using namespace test::jtx;
-
380 Env env{*this, envconfig(validator, "")};
-
381
-
382 auto jrr = env.rpc("feature")[jss::result];
-
383 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
-
384 return;
-
385
-
386 // at this point, there are no majorities so no fields related to
-
387 // amendment voting
-
388 for (auto const& feature : jrr[jss::features])
-
389 {
-
390 if (!BEAST_EXPECT(feature.isMember(jss::name)))
-
391 return;
-
392 BEAST_EXPECTS(
-
393 !feature.isMember(jss::majority),
-
394 feature[jss::name].asString() + " majority");
-
395 BEAST_EXPECTS(
-
396 !feature.isMember(jss::count),
-
397 feature[jss::name].asString() + " count");
-
398 BEAST_EXPECTS(
-
399 !feature.isMember(jss::threshold),
-
400 feature[jss::name].asString() + " threshold");
-
401 BEAST_EXPECTS(
-
402 !feature.isMember(jss::validations),
-
403 feature[jss::name].asString() + " validations");
-
404 BEAST_EXPECTS(
-
405 !feature.isMember(jss::vote),
-
406 feature[jss::name].asString() + " vote");
-
407 }
-
408
-
409 auto majorities = getMajorityAmendments(*env.closed());
-
410 if (!BEAST_EXPECT(majorities.empty()))
-
411 return;
-
412
-
413 // close ledgers until the amendments show up.
-
414 for (auto i = 0; i <= 256; ++i)
-
415 {
-
416 env.close();
-
417 majorities = getMajorityAmendments(*env.closed());
-
418 if (!majorities.empty())
-
419 break;
-
420 }
-
421
-
422 // There should be at least 5 amendments. Don't do exact comparison
-
423 // to avoid maintenance as more amendments are added in the future.
-
424 BEAST_EXPECT(majorities.size() >= 5);
- - -
427
-
428 jrr = env.rpc("feature")[jss::result];
-
429 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
-
430 return;
-
431 for (auto const& feature : jrr[jss::features])
-
432 {
-
433 if (!BEAST_EXPECT(feature.isMember(jss::name)))
-
434 return;
-
435 bool expectVeto =
-
436 (votes.at(feature[jss::name].asString()) ==
- -
438 bool expectObsolete =
-
439 (votes.at(feature[jss::name].asString()) ==
- -
441 BEAST_EXPECTS(
-
442 (expectVeto || expectObsolete) ^
-
443 feature.isMember(jss::majority),
-
444 feature[jss::name].asString() + " majority");
-
445 BEAST_EXPECTS(
-
446 feature.isMember(jss::vetoed) &&
-
447 feature[jss::vetoed].isBool() == !expectObsolete &&
-
448 (!feature[jss::vetoed].isBool() ||
-
449 feature[jss::vetoed].asBool() == expectVeto) &&
-
450 (feature[jss::vetoed].isBool() ||
-
451 feature[jss::vetoed].asString() == "Obsolete"),
-
452 feature[jss::name].asString() + " vetoed");
-
453 BEAST_EXPECTS(
-
454 feature.isMember(jss::count),
-
455 feature[jss::name].asString() + " count");
-
456 BEAST_EXPECTS(
-
457 feature.isMember(jss::threshold),
-
458 feature[jss::name].asString() + " threshold");
-
459 BEAST_EXPECTS(
-
460 feature.isMember(jss::validations),
-
461 feature[jss::name].asString() + " validations");
-
462 BEAST_EXPECT(
-
463 feature[jss::count] ==
-
464 ((expectVeto || expectObsolete) ? 0 : 1));
-
465 BEAST_EXPECT(feature[jss::threshold] == 1);
-
466 BEAST_EXPECT(feature[jss::validations] == 1);
-
467 BEAST_EXPECTS(
-
468 expectVeto || expectObsolete || feature[jss::majority] == 2540,
-
469 "Majority: " + feature[jss::majority].asString());
-
470 }
-
471 }
+
374
+
375 void
+
+ +
377 {
+
378 testcase("With Majorities");
+
379
+
380 using namespace test::jtx;
+
381 Env env{*this, envconfig(validator, "")};
+
382
+
383 auto jrr = env.rpc("feature")[jss::result];
+
384 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
+
385 return;
+
386
+
387 // at this point, there are no majorities so no fields related to
+
388 // amendment voting
+
389 for (auto const& feature : jrr[jss::features])
+
390 {
+
391 if (!BEAST_EXPECT(feature.isMember(jss::name)))
+
392 return;
+
393 BEAST_EXPECTS(
+
394 !feature.isMember(jss::majority),
+
395 feature[jss::name].asString() + " majority");
+
396 BEAST_EXPECTS(
+
397 !feature.isMember(jss::count),
+
398 feature[jss::name].asString() + " count");
+
399 BEAST_EXPECTS(
+
400 !feature.isMember(jss::threshold),
+
401 feature[jss::name].asString() + " threshold");
+
402 BEAST_EXPECTS(
+
403 !feature.isMember(jss::validations),
+
404 feature[jss::name].asString() + " validations");
+
405 BEAST_EXPECTS(
+
406 !feature.isMember(jss::vote),
+
407 feature[jss::name].asString() + " vote");
+
408 }
+
409
+
410 auto majorities = getMajorityAmendments(*env.closed());
+
411 if (!BEAST_EXPECT(majorities.empty()))
+
412 return;
+
413
+
414 // close ledgers until the amendments show up.
+
415 for (auto i = 0; i <= 256; ++i)
+
416 {
+
417 env.close();
+
418 majorities = getMajorityAmendments(*env.closed());
+
419 if (!majorities.empty())
+
420 break;
+
421 }
+
422
+
423 // There should be at least 5 amendments. Don't do exact comparison
+
424 // to avoid maintenance as more amendments are added in the future.
+
425 BEAST_EXPECT(majorities.size() >= 5);
+ + +
428
+
429 jrr = env.rpc("feature")[jss::result];
+
430 if (!BEAST_EXPECT(jrr.isMember(jss::features)))
+
431 return;
+
432 for (auto const& feature : jrr[jss::features])
+
433 {
+
434 if (!BEAST_EXPECT(feature.isMember(jss::name)))
+
435 return;
+
436 bool expectVeto =
+
437 (votes.at(feature[jss::name].asString()) ==
+ +
439 bool expectObsolete =
+
440 (votes.at(feature[jss::name].asString()) ==
+ +
442 BEAST_EXPECTS(
+
443 (expectVeto || expectObsolete) ^
+
444 feature.isMember(jss::majority),
+
445 feature[jss::name].asString() + " majority");
+
446 BEAST_EXPECTS(
+
447 feature.isMember(jss::vetoed) &&
+
448 feature[jss::vetoed].isBool() == !expectObsolete &&
+
449 (!feature[jss::vetoed].isBool() ||
+
450 feature[jss::vetoed].asBool() == expectVeto) &&
+
451 (feature[jss::vetoed].isBool() ||
+
452 feature[jss::vetoed].asString() == "Obsolete"),
+
453 feature[jss::name].asString() + " vetoed");
+
454 BEAST_EXPECTS(
+
455 feature.isMember(jss::count),
+
456 feature[jss::name].asString() + " count");
+
457 BEAST_EXPECTS(
+
458 feature.isMember(jss::threshold),
+
459 feature[jss::name].asString() + " threshold");
+
460 BEAST_EXPECTS(
+
461 feature.isMember(jss::validations),
+
462 feature[jss::name].asString() + " validations");
+
463 BEAST_EXPECT(
+
464 feature[jss::count] ==
+
465 ((expectVeto || expectObsolete) ? 0 : 1));
+
466 BEAST_EXPECT(feature[jss::threshold] == 1);
+
467 BEAST_EXPECT(feature[jss::validations] == 1);
+
468 BEAST_EXPECTS(
+
469 expectVeto || expectObsolete || feature[jss::majority] == 2540,
+
470 "Majority: " + feature[jss::majority].asString());
+
471 }
+
472 }
-
472
-
473 void
-
- -
475 {
-
476 testcase("Veto");
-
477
-
478 using namespace test::jtx;
-
479 Env env{*this, FeatureBitset(featureMultiSignReserve)};
-
480 constexpr char const* featureName = "MultiSignReserve";
-
481
-
482 auto jrr = env.rpc("feature", featureName)[jss::result];
-
483 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
484 return;
-
485 jrr.removeMember(jss::status);
-
486 if (!BEAST_EXPECT(jrr.size() == 1))
-
487 return;
-
488 auto feature = *(jrr.begin());
-
489 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
490 BEAST_EXPECTS(
-
491 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
-
492 "vetoed");
-
493
-
494 jrr = env.rpc("feature", featureName, "reject")[jss::result];
-
495 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
496 return;
-
497 jrr.removeMember(jss::status);
-
498 if (!BEAST_EXPECT(jrr.size() == 1))
-
499 return;
-
500 feature = *(jrr.begin());
-
501 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
502 BEAST_EXPECTS(
-
503 feature[jss::vetoed].isBool() && feature[jss::vetoed].asBool(),
-
504 "vetoed");
-
505
-
506 jrr = env.rpc("feature", featureName, "accept")[jss::result];
-
507 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
508 return;
-
509 jrr.removeMember(jss::status);
-
510 if (!BEAST_EXPECT(jrr.size() == 1))
-
511 return;
-
512 feature = *(jrr.begin());
-
513 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
514 BEAST_EXPECTS(
-
515 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
-
516 "vetoed");
-
517
-
518 // anything other than accept or reject is an error
-
519 jrr = env.rpc("feature", featureName, "maybe");
-
520 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
-
521 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
-
522 }
+
473
+
474 void
+
+ +
476 {
+
477 testcase("Veto");
+
478
+
479 using namespace test::jtx;
+
480 Env env{*this, FeatureBitset(featureMultiSignReserve)};
+
481 constexpr char const* featureName = "MultiSignReserve";
+
482
+
483 auto jrr = env.rpc("feature", featureName)[jss::result];
+
484 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
485 return;
+
486 jrr.removeMember(jss::status);
+
487 if (!BEAST_EXPECT(jrr.size() == 1))
+
488 return;
+
489 auto feature = *(jrr.begin());
+
490 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
491 BEAST_EXPECTS(
+
492 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
+
493 "vetoed");
+
494
+
495 jrr = env.rpc("feature", featureName, "reject")[jss::result];
+
496 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
497 return;
+
498 jrr.removeMember(jss::status);
+
499 if (!BEAST_EXPECT(jrr.size() == 1))
+
500 return;
+
501 feature = *(jrr.begin());
+
502 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
503 BEAST_EXPECTS(
+
504 feature[jss::vetoed].isBool() && feature[jss::vetoed].asBool(),
+
505 "vetoed");
+
506
+
507 jrr = env.rpc("feature", featureName, "accept")[jss::result];
+
508 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
509 return;
+
510 jrr.removeMember(jss::status);
+
511 if (!BEAST_EXPECT(jrr.size() == 1))
+
512 return;
+
513 feature = *(jrr.begin());
+
514 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
515 BEAST_EXPECTS(
+
516 feature[jss::vetoed].isBool() && !feature[jss::vetoed].asBool(),
+
517 "vetoed");
+
518
+
519 // anything other than accept or reject is an error
+
520 jrr = env.rpc("feature", featureName, "maybe");
+
521 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
+
522 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
+
523 }
-
523
-
524 void
-
- -
526 {
-
527 testcase("Obsolete");
-
528
-
529 using namespace test::jtx;
-
530 Env env{*this};
-
531 constexpr char const* featureName = "CryptoConditionsSuite";
-
532
-
533 auto jrr = env.rpc("feature", featureName)[jss::result];
-
534 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
535 return;
-
536 jrr.removeMember(jss::status);
-
537 if (!BEAST_EXPECT(jrr.size() == 1))
-
538 return;
-
539 auto feature = *(jrr.begin());
-
540 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
541 BEAST_EXPECTS(
-
542 feature[jss::vetoed].isString() &&
-
543 feature[jss::vetoed].asString() == "Obsolete",
-
544 "vetoed");
-
545
-
546 jrr = env.rpc("feature", featureName, "reject")[jss::result];
-
547 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
548 return;
-
549 jrr.removeMember(jss::status);
-
550 if (!BEAST_EXPECT(jrr.size() == 1))
-
551 return;
-
552 feature = *(jrr.begin());
-
553 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
554 BEAST_EXPECTS(
-
555 feature[jss::vetoed].isString() &&
-
556 feature[jss::vetoed].asString() == "Obsolete",
-
557 "vetoed");
-
558
-
559 jrr = env.rpc("feature", featureName, "accept")[jss::result];
-
560 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
-
561 return;
-
562 jrr.removeMember(jss::status);
-
563 if (!BEAST_EXPECT(jrr.size() == 1))
-
564 return;
-
565 feature = *(jrr.begin());
-
566 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
-
567 BEAST_EXPECTS(
-
568 feature[jss::vetoed].isString() &&
-
569 feature[jss::vetoed].asString() == "Obsolete",
-
570 "vetoed");
-
571
-
572 // anything other than accept or reject is an error
-
573 jrr = env.rpc("feature", featureName, "maybe");
-
574 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
-
575 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
-
576 }
+
524
+
525 void
+
+ +
527 {
+
528 testcase("Obsolete");
+
529
+
530 using namespace test::jtx;
+
531 Env env{*this};
+
532 constexpr char const* featureName = "CryptoConditionsSuite";
+
533
+
534 auto jrr = env.rpc("feature", featureName)[jss::result];
+
535 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
536 return;
+
537 jrr.removeMember(jss::status);
+
538 if (!BEAST_EXPECT(jrr.size() == 1))
+
539 return;
+
540 auto feature = *(jrr.begin());
+
541 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
542 BEAST_EXPECTS(
+
543 feature[jss::vetoed].isString() &&
+
544 feature[jss::vetoed].asString() == "Obsolete",
+
545 "vetoed");
+
546
+
547 jrr = env.rpc("feature", featureName, "reject")[jss::result];
+
548 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
549 return;
+
550 jrr.removeMember(jss::status);
+
551 if (!BEAST_EXPECT(jrr.size() == 1))
+
552 return;
+
553 feature = *(jrr.begin());
+
554 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
555 BEAST_EXPECTS(
+
556 feature[jss::vetoed].isString() &&
+
557 feature[jss::vetoed].asString() == "Obsolete",
+
558 "vetoed");
+
559
+
560 jrr = env.rpc("feature", featureName, "accept")[jss::result];
+
561 if (!BEAST_EXPECTS(jrr[jss::status] == jss::success, "status"))
+
562 return;
+
563 jrr.removeMember(jss::status);
+
564 if (!BEAST_EXPECT(jrr.size() == 1))
+
565 return;
+
566 feature = *(jrr.begin());
+
567 BEAST_EXPECTS(feature[jss::name] == featureName, "name");
+
568 BEAST_EXPECTS(
+
569 feature[jss::vetoed].isString() &&
+
570 feature[jss::vetoed].asString() == "Obsolete",
+
571 "vetoed");
+
572
+
573 // anything other than accept or reject is an error
+
574 jrr = env.rpc("feature", featureName, "maybe");
+
575 BEAST_EXPECT(jrr[jss::error] == "invalidParams");
+
576 BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
+
577 }
-
577
-
578public:
-
579 void
-
-
580 run() override
-
581 {
- - -
584 testNoParams();
- - -
587 testNonAdmin();
- - -
590 testVeto();
-
591 testObsolete();
-
592 }
+
578
+
579public:
+
580 void
+
+
581 run() override
+
582 {
+ + +
585 testNoParams();
+ + +
588 testNonAdmin();
+ + +
591 testVeto();
+
592 testObsolete();
+
593 }
-
593};
+
594};
-
594
-
595BEAST_DEFINE_TESTSUITE(Feature, rpc, ripple);
-
596
-
597} // namespace ripple
+
595
+
596BEAST_DEFINE_TESTSUITE(Feature, rpc, ripple);
+
597
+
598} // namespace ripple
T at(T... args)
Represents a JSON value.
Definition json_value.h:130
A testsuite class.
Definition suite.h:52
@@ -709,17 +710,17 @@ $(document).ready(function() { init_codefold(0); });
void fail(String const &reason, char const *file, int line)
Record a failure.
Definition suite.h:530
- - + + - - - + + + - - - -
void run() override
Runs the suite.
+ + + +
void run() override
Runs the suite.
@ nullValue
'null' value
Definition json_value.h:19
diff --git a/SetTrust_8cpp_source.html b/SetTrust_8cpp_source.html index f4d4345f7a..9bbe4c03e3 100644 --- a/SetTrust_8cpp_source.html +++ b/SetTrust_8cpp_source.html @@ -285,542 +285,506 @@ $(document).ready(function() { init_codefold(0); });
195 auto const currency = saLimitAmount.getCurrency();
196 auto const uDstAccountID = saLimitAmount.getIssuer();
197
-
198 if (ctx.view.rules().enabled(fixTrustLinesToSelf))
-
199 {
-
200 if (id == uDstAccountID)
-
201 return temDST_IS_SRC;
-
202 }
-
203 else
-
204 {
-
205 if (id == uDstAccountID)
-
206 {
-
207 // Prevent trustline to self from being created,
-
208 // unless one has somehow already been created
-
209 // (in which case doApply will clean it up).
-
210 auto const sleDelete =
-
211 ctx.view.read(keylet::line(id, uDstAccountID, currency));
-
212
-
213 if (!sleDelete)
-
214 {
-
215 JLOG(ctx.j.trace())
-
216 << "Malformed transaction: Can not extend credit to self.";
-
217 return temDST_IS_SRC;
-
218 }
-
219 }
-
220 }
-
221
-
222 // This might be nullptr
-
223 auto const sleDst = ctx.view.read(keylet::account(uDstAccountID));
-
224 if ((ctx.view.rules().enabled(featureDisallowIncoming) ||
-
225 ammEnabled(ctx.view.rules()) ||
-
226 ctx.view.rules().enabled(featureSingleAssetVault)) &&
-
227 sleDst == nullptr)
-
228 return tecNO_DST;
+
198 if (id == uDstAccountID)
+
199 return temDST_IS_SRC;
+
200
+
201 // This might be nullptr
+
202 auto const sleDst = ctx.view.read(keylet::account(uDstAccountID));
+
203 if ((ctx.view.rules().enabled(featureDisallowIncoming) ||
+
204 ammEnabled(ctx.view.rules()) ||
+
205 ctx.view.rules().enabled(featureSingleAssetVault)) &&
+
206 sleDst == nullptr)
+
207 return tecNO_DST;
+
208
+
209 // If the destination has opted to disallow incoming trustlines
+
210 // then honour that flag
+
211 if (ctx.view.rules().enabled(featureDisallowIncoming))
+
212 {
+
213 if (sleDst->getFlags() & lsfDisallowIncomingTrustline)
+
214 {
+
215 // The original implementation of featureDisallowIncoming was
+
216 // too restrictive. If
+
217 // o fixDisallowIncomingV1 is enabled and
+
218 // o The trust line already exists
+
219 // Then allow the TrustSet.
+
220 if (ctx.view.rules().enabled(fixDisallowIncomingV1) &&
+
221 ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
+
222 {
+
223 // pass
+
224 }
+
225 else
+
226 return tecNO_PERMISSION;
+
227 }
+
228 }
229
-
230 // If the destination has opted to disallow incoming trustlines
-
231 // then honour that flag
-
232 if (ctx.view.rules().enabled(featureDisallowIncoming))
-
233 {
-
234 if (sleDst->getFlags() & lsfDisallowIncomingTrustline)
-
235 {
-
236 // The original implementation of featureDisallowIncoming was
-
237 // too restrictive. If
-
238 // o fixDisallowIncomingV1 is enabled and
-
239 // o The trust line already exists
-
240 // Then allow the TrustSet.
-
241 if (ctx.view.rules().enabled(fixDisallowIncomingV1) &&
-
242 ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
-
243 {
-
244 // pass
-
245 }
-
246 else
-
247 return tecNO_PERMISSION;
-
248 }
-
249 }
-
250
-
251 // In general, trust lines to pseudo accounts are not permitted, unless
-
252 // enabled in the code section below, for specific cases. This block is not
-
253 // amendment-gated because sleDst will not have a pseudo-account designator
-
254 // field populated, unless the appropriate amendment was already enabled.
-
255 if (sleDst && isPseudoAccount(sleDst))
-
256 {
-
257 // If destination is AMM and the trustline doesn't exist then only allow
-
258 // SetTrust if the asset is AMM LP token and AMM is not in empty state.
-
259 if (sleDst->isFieldPresent(sfAMMID))
-
260 {
-
261 if (ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
-
262 {
-
263 // pass
-
264 }
-
265 else if (
-
266 auto const ammSle =
-
267 ctx.view.read({ltAMM, sleDst->getFieldH256(sfAMMID)}))
-
268 {
-
269 if (auto const lpTokens =
-
270 ammSle->getFieldAmount(sfLPTokenBalance);
-
271 lpTokens == beast::zero)
-
272 return tecAMM_EMPTY;
-
273 else if (lpTokens.getCurrency() != saLimitAmount.getCurrency())
-
274 return tecNO_PERMISSION;
-
275 }
-
276 else
-
277 return tecINTERNAL; // LCOV_EXCL_LINE
-
278 }
-
279 else if (sleDst->isFieldPresent(sfVaultID))
-
280 {
-
281 if (!ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
-
282 return tecNO_PERMISSION;
-
283 // else pass
-
284 }
-
285 else
-
286 return tecPSEUDO_ACCOUNT;
-
287 }
-
288
-
289 // Checking all freeze/deep freeze flag invariants.
-
290 if (ctx.view.rules().enabled(featureDeepFreeze))
-
291 {
-
292 bool const bNoFreeze = sle->isFlag(lsfNoFreeze);
-
293 bool const bSetFreeze = (uTxFlags & tfSetFreeze);
-
294 bool const bSetDeepFreeze = (uTxFlags & tfSetDeepFreeze);
-
295
-
296 if (bNoFreeze && (bSetFreeze || bSetDeepFreeze))
-
297 {
-
298 // Cannot freeze the trust line if NoFreeze is set
-
299 return tecNO_PERMISSION;
-
300 }
-
301
-
302 bool const bClearFreeze = (uTxFlags & tfClearFreeze);
-
303 bool const bClearDeepFreeze = (uTxFlags & tfClearDeepFreeze);
-
304 if ((bSetFreeze || bSetDeepFreeze) &&
-
305 (bClearFreeze || bClearDeepFreeze))
-
306 {
-
307 // Freezing and unfreezing in the same transaction should be
-
308 // illegal
-
309 return tecNO_PERMISSION;
-
310 }
-
311
-
312 bool const bHigh = id > uDstAccountID;
-
313 // Fetching current state of trust line
-
314 auto const sleRippleState =
-
315 ctx.view.read(keylet::line(id, uDstAccountID, currency));
-
316 std::uint32_t uFlags =
-
317 sleRippleState ? sleRippleState->getFieldU32(sfFlags) : 0u;
-
318 // Computing expected trust line state
-
319 uFlags = computeFreezeFlags(
-
320 uFlags,
-
321 bHigh,
-
322 bNoFreeze,
-
323 bSetFreeze,
-
324 bClearFreeze,
-
325 bSetDeepFreeze,
-
326 bClearDeepFreeze);
+
230 // In general, trust lines to pseudo accounts are not permitted, unless
+
231 // enabled in the code section below, for specific cases. This block is not
+
232 // amendment-gated because sleDst will not have a pseudo-account designator
+
233 // field populated, unless the appropriate amendment was already enabled.
+
234 if (sleDst && isPseudoAccount(sleDst))
+
235 {
+
236 // If destination is AMM and the trustline doesn't exist then only allow
+
237 // SetTrust if the asset is AMM LP token and AMM is not in empty state.
+
238 if (sleDst->isFieldPresent(sfAMMID))
+
239 {
+
240 if (ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
+
241 {
+
242 // pass
+
243 }
+
244 else if (
+
245 auto const ammSle =
+
246 ctx.view.read({ltAMM, sleDst->getFieldH256(sfAMMID)}))
+
247 {
+
248 if (auto const lpTokens =
+
249 ammSle->getFieldAmount(sfLPTokenBalance);
+
250 lpTokens == beast::zero)
+
251 return tecAMM_EMPTY;
+
252 else if (lpTokens.getCurrency() != saLimitAmount.getCurrency())
+
253 return tecNO_PERMISSION;
+
254 }
+
255 else
+
256 return tecINTERNAL; // LCOV_EXCL_LINE
+
257 }
+
258 else if (sleDst->isFieldPresent(sfVaultID))
+
259 {
+
260 if (!ctx.view.exists(keylet::line(id, uDstAccountID, currency)))
+
261 return tecNO_PERMISSION;
+
262 // else pass
+
263 }
+
264 else
+
265 return tecPSEUDO_ACCOUNT;
+
266 }
+
267
+
268 // Checking all freeze/deep freeze flag invariants.
+
269 if (ctx.view.rules().enabled(featureDeepFreeze))
+
270 {
+
271 bool const bNoFreeze = sle->isFlag(lsfNoFreeze);
+
272 bool const bSetFreeze = (uTxFlags & tfSetFreeze);
+
273 bool const bSetDeepFreeze = (uTxFlags & tfSetDeepFreeze);
+
274
+
275 if (bNoFreeze && (bSetFreeze || bSetDeepFreeze))
+
276 {
+
277 // Cannot freeze the trust line if NoFreeze is set
+
278 return tecNO_PERMISSION;
+
279 }
+
280
+
281 bool const bClearFreeze = (uTxFlags & tfClearFreeze);
+
282 bool const bClearDeepFreeze = (uTxFlags & tfClearDeepFreeze);
+
283 if ((bSetFreeze || bSetDeepFreeze) &&
+
284 (bClearFreeze || bClearDeepFreeze))
+
285 {
+
286 // Freezing and unfreezing in the same transaction should be
+
287 // illegal
+
288 return tecNO_PERMISSION;
+
289 }
+
290
+
291 bool const bHigh = id > uDstAccountID;
+
292 // Fetching current state of trust line
+
293 auto const sleRippleState =
+
294 ctx.view.read(keylet::line(id, uDstAccountID, currency));
+
295 std::uint32_t uFlags =
+
296 sleRippleState ? sleRippleState->getFieldU32(sfFlags) : 0u;
+
297 // Computing expected trust line state
+
298 uFlags = computeFreezeFlags(
+
299 uFlags,
+
300 bHigh,
+
301 bNoFreeze,
+
302 bSetFreeze,
+
303 bClearFreeze,
+
304 bSetDeepFreeze,
+
305 bClearDeepFreeze);
+
306
+
307 auto const frozen = uFlags & (bHigh ? lsfHighFreeze : lsfLowFreeze);
+
308 auto const deepFrozen =
+
309 uFlags & (bHigh ? lsfHighDeepFreeze : lsfLowDeepFreeze);
+
310
+
311 // Trying to set deep freeze on not already frozen trust line must
+
312 // fail. This also checks that clearing normal freeze while deep
+
313 // frozen must not work
+
314 if (deepFrozen && !frozen)
+
315 {
+
316 return tecNO_PERMISSION;
+
317 }
+
318 }
+
319
+
320 return tesSUCCESS;
+
321}
+
+
322
+
323TER
+
+ +
325{
+
326 TER terResult = tesSUCCESS;
327
-
328 auto const frozen = uFlags & (bHigh ? lsfHighFreeze : lsfLowFreeze);
-
329 auto const deepFrozen =
-
330 uFlags & (bHigh ? lsfHighDeepFreeze : lsfLowDeepFreeze);
+
328 STAmount const saLimitAmount(ctx_.tx.getFieldAmount(sfLimitAmount));
+
329 bool const bQualityIn(ctx_.tx.isFieldPresent(sfQualityIn));
+
330 bool const bQualityOut(ctx_.tx.isFieldPresent(sfQualityOut));
331
-
332 // Trying to set deep freeze on not already frozen trust line must
-
333 // fail. This also checks that clearing normal freeze while deep
-
334 // frozen must not work
-
335 if (deepFrozen && !frozen)
-
336 {
-
337 return tecNO_PERMISSION;
-
338 }
-
339 }
-
340
-
341 return tesSUCCESS;
-
342}
-
+
332 Currency const currency(saLimitAmount.getCurrency());
+
333 AccountID uDstAccountID(saLimitAmount.getIssuer());
+
334
+
335 // true, if current is high account.
+
336 bool const bHigh = account_ > uDstAccountID;
+
337
+
338 auto const sle = view().peek(keylet::account(account_));
+
339 if (!sle)
+
340 return tefINTERNAL; // LCOV_EXCL_LINE
+
341
+
342 std::uint32_t const uOwnerCount = sle->getFieldU32(sfOwnerCount);
343
-
344TER
-
- -
346{
-
347 TER terResult = tesSUCCESS;
-
348
-
349 STAmount const saLimitAmount(ctx_.tx.getFieldAmount(sfLimitAmount));
-
350 bool const bQualityIn(ctx_.tx.isFieldPresent(sfQualityIn));
-
351 bool const bQualityOut(ctx_.tx.isFieldPresent(sfQualityOut));
-
352
-
353 Currency const currency(saLimitAmount.getCurrency());
-
354 AccountID uDstAccountID(saLimitAmount.getIssuer());
-
355
-
356 // true, if current is high account.
-
357 bool const bHigh = account_ > uDstAccountID;
-
358
-
359 auto const sle = view().peek(keylet::account(account_));
-
360 if (!sle)
-
361 return tefINTERNAL; // LCOV_EXCL_LINE
-
362
-
363 std::uint32_t const uOwnerCount = sle->getFieldU32(sfOwnerCount);
-
364
-
365 // The reserve that is required to create the line. Note
-
366 // that although the reserve increases with every item
-
367 // an account owns, in the case of trust lines we only
-
368 // *enforce* a reserve if the user owns more than two
-
369 // items.
-
370 //
-
371 // We do this because being able to exchange currencies,
-
372 // which needs trust lines, is a powerful Ripple feature.
-
373 // So we want to make it easy for a gateway to fund the
-
374 // accounts of its users without fear of being tricked.
-
375 //
-
376 // Without this logic, a gateway that wanted to have a
-
377 // new user use its services, would have to give that
-
378 // user enough XRP to cover not only the account reserve
-
379 // but the incremental reserve for the trust line as
-
380 // well. A person with no intention of using the gateway
-
381 // could use the extra XRP for their own purposes.
+
344 // The reserve that is required to create the line. Note
+
345 // that although the reserve increases with every item
+
346 // an account owns, in the case of trust lines we only
+
347 // *enforce* a reserve if the user owns more than two
+
348 // items.
+
349 //
+
350 // We do this because being able to exchange currencies,
+
351 // which needs trust lines, is a powerful Ripple feature.
+
352 // So we want to make it easy for a gateway to fund the
+
353 // accounts of its users without fear of being tricked.
+
354 //
+
355 // Without this logic, a gateway that wanted to have a
+
356 // new user use its services, would have to give that
+
357 // user enough XRP to cover not only the account reserve
+
358 // but the incremental reserve for the trust line as
+
359 // well. A person with no intention of using the gateway
+
360 // could use the extra XRP for their own purposes.
+
361
+
362 XRPAmount const reserveCreate(
+
363 (uOwnerCount < 2) ? XRPAmount(beast::zero)
+
364 : view().fees().accountReserve(uOwnerCount + 1));
+
365
+
366 std::uint32_t uQualityIn(bQualityIn ? ctx_.tx.getFieldU32(sfQualityIn) : 0);
+
367 std::uint32_t uQualityOut(
+
368 bQualityOut ? ctx_.tx.getFieldU32(sfQualityOut) : 0);
+
369
+
370 if (bQualityOut && QUALITY_ONE == uQualityOut)
+
371 uQualityOut = 0;
+
372
+
373 std::uint32_t const uTxFlags = ctx_.tx.getFlags();
+
374
+
375 bool const bSetAuth = (uTxFlags & tfSetfAuth);
+
376 bool const bSetNoRipple = (uTxFlags & tfSetNoRipple);
+
377 bool const bClearNoRipple = (uTxFlags & tfClearNoRipple);
+
378 bool const bSetFreeze = (uTxFlags & tfSetFreeze);
+
379 bool const bClearFreeze = (uTxFlags & tfClearFreeze);
+
380 bool const bSetDeepFreeze = (uTxFlags & tfSetDeepFreeze);
+
381 bool const bClearDeepFreeze = (uTxFlags & tfClearDeepFreeze);
382
-
383 XRPAmount const reserveCreate(
-
384 (uOwnerCount < 2) ? XRPAmount(beast::zero)
-
385 : view().fees().accountReserve(uOwnerCount + 1));
+
383 auto viewJ = ctx_.app.journal("View");
+
384
+
385 SLE::pointer sleDst = view().peek(keylet::account(uDstAccountID));
386
-
387 std::uint32_t uQualityIn(bQualityIn ? ctx_.tx.getFieldU32(sfQualityIn) : 0);
-
388 std::uint32_t uQualityOut(
-
389 bQualityOut ? ctx_.tx.getFieldU32(sfQualityOut) : 0);
-
390
-
391 if (bQualityOut && QUALITY_ONE == uQualityOut)
-
392 uQualityOut = 0;
+
387 if (!sleDst)
+
388 {
+
389 JLOG(j_.trace())
+
390 << "Delay transaction: Destination account does not exist.";
+
391 return tecNO_DST;
+
392 }
393
-
394 std::uint32_t const uTxFlags = ctx_.tx.getFlags();
-
395
-
396 bool const bSetAuth = (uTxFlags & tfSetfAuth);
-
397 bool const bSetNoRipple = (uTxFlags & tfSetNoRipple);
-
398 bool const bClearNoRipple = (uTxFlags & tfClearNoRipple);
-
399 bool const bSetFreeze = (uTxFlags & tfSetFreeze);
-
400 bool const bClearFreeze = (uTxFlags & tfClearFreeze);
-
401 bool const bSetDeepFreeze = (uTxFlags & tfSetDeepFreeze);
-
402 bool const bClearDeepFreeze = (uTxFlags & tfClearDeepFreeze);
-
403
-
404 auto viewJ = ctx_.app.journal("View");
-
405
-
406 // Trust lines to self are impossible but because of the old bug there
-
407 // are two on 19-02-2022. This code was here to allow those trust lines
-
408 // to be deleted. The fixTrustLinesToSelf fix amendment will remove them
-
409 // when it enables so this code will no longer be needed.
-
410 if (!view().rules().enabled(fixTrustLinesToSelf) &&
-
411 account_ == uDstAccountID)
-
412 {
-
413 return trustDelete(
-
414 view(),
-
415 view().peek(keylet::line(account_, uDstAccountID, currency)),
-
416 account_,
-
417 uDstAccountID,
-
418 viewJ);
-
419 }
-
420
-
421 SLE::pointer sleDst = view().peek(keylet::account(uDstAccountID));
-
422
-
423 if (!sleDst)
-
424 {
-
425 JLOG(j_.trace())
-
426 << "Delay transaction: Destination account does not exist.";
-
427 return tecNO_DST;
-
428 }
-
429
-
430 STAmount saLimitAllow = saLimitAmount;
-
431 saLimitAllow.setIssuer(account_);
-
432
-
433 SLE::pointer sleRippleState =
-
434 view().peek(keylet::line(account_, uDstAccountID, currency));
-
435
-
436 if (sleRippleState)
-
437 {
-
438 STAmount saLowBalance;
-
439 STAmount saLowLimit;
-
440 STAmount saHighBalance;
-
441 STAmount saHighLimit;
-
442 std::uint32_t uLowQualityIn;
-
443 std::uint32_t uLowQualityOut;
-
444 std::uint32_t uHighQualityIn;
-
445 std::uint32_t uHighQualityOut;
-
446 auto const& uLowAccountID = !bHigh ? account_ : uDstAccountID;
-
447 auto const& uHighAccountID = bHigh ? account_ : uDstAccountID;
-
448 SLE::ref sleLowAccount = !bHigh ? sle : sleDst;
-
449 SLE::ref sleHighAccount = bHigh ? sle : sleDst;
-
450
-
451 //
-
452 // Balances
-
453 //
-
454
-
455 saLowBalance = sleRippleState->getFieldAmount(sfBalance);
-
456 saHighBalance = -saLowBalance;
-
457
-
458 //
-
459 // Limits
-
460 //
-
461
-
462 sleRippleState->setFieldAmount(
-
463 !bHigh ? sfLowLimit : sfHighLimit, saLimitAllow);
-
464
-
465 saLowLimit =
-
466 !bHigh ? saLimitAllow : sleRippleState->getFieldAmount(sfLowLimit);
-
467 saHighLimit =
-
468 bHigh ? saLimitAllow : sleRippleState->getFieldAmount(sfHighLimit);
-
469
-
470 //
-
471 // Quality in
-
472 //
-
473
-
474 if (!bQualityIn)
-
475 {
-
476 // Not setting. Just get it.
+
394 STAmount saLimitAllow = saLimitAmount;
+
395 saLimitAllow.setIssuer(account_);
+
396
+
397 SLE::pointer sleRippleState =
+
398 view().peek(keylet::line(account_, uDstAccountID, currency));
+
399
+
400 if (sleRippleState)
+
401 {
+
402 STAmount saLowBalance;
+
403 STAmount saLowLimit;
+
404 STAmount saHighBalance;
+
405 STAmount saHighLimit;
+
406 std::uint32_t uLowQualityIn;
+
407 std::uint32_t uLowQualityOut;
+
408 std::uint32_t uHighQualityIn;
+
409 std::uint32_t uHighQualityOut;
+
410 auto const& uLowAccountID = !bHigh ? account_ : uDstAccountID;
+
411 auto const& uHighAccountID = bHigh ? account_ : uDstAccountID;
+
412 SLE::ref sleLowAccount = !bHigh ? sle : sleDst;
+
413 SLE::ref sleHighAccount = bHigh ? sle : sleDst;
+
414
+
415 //
+
416 // Balances
+
417 //
+
418
+
419 saLowBalance = sleRippleState->getFieldAmount(sfBalance);
+
420 saHighBalance = -saLowBalance;
+
421
+
422 //
+
423 // Limits
+
424 //
+
425
+
426 sleRippleState->setFieldAmount(
+
427 !bHigh ? sfLowLimit : sfHighLimit, saLimitAllow);
+
428
+
429 saLowLimit =
+
430 !bHigh ? saLimitAllow : sleRippleState->getFieldAmount(sfLowLimit);
+
431 saHighLimit =
+
432 bHigh ? saLimitAllow : sleRippleState->getFieldAmount(sfHighLimit);
+
433
+
434 //
+
435 // Quality in
+
436 //
+
437
+
438 if (!bQualityIn)
+
439 {
+
440 // Not setting. Just get it.
+
441
+
442 uLowQualityIn = sleRippleState->getFieldU32(sfLowQualityIn);
+
443 uHighQualityIn = sleRippleState->getFieldU32(sfHighQualityIn);
+
444 }
+
445 else if (uQualityIn)
+
446 {
+
447 // Setting.
+
448
+
449 sleRippleState->setFieldU32(
+
450 !bHigh ? sfLowQualityIn : sfHighQualityIn, uQualityIn);
+
451
+
452 uLowQualityIn = !bHigh
+
453 ? uQualityIn
+
454 : sleRippleState->getFieldU32(sfLowQualityIn);
+
455 uHighQualityIn = bHigh
+
456 ? uQualityIn
+
457 : sleRippleState->getFieldU32(sfHighQualityIn);
+
458 }
+
459 else
+
460 {
+
461 // Clearing.
+
462
+
463 sleRippleState->makeFieldAbsent(
+
464 !bHigh ? sfLowQualityIn : sfHighQualityIn);
+
465
+
466 uLowQualityIn =
+
467 !bHigh ? 0 : sleRippleState->getFieldU32(sfLowQualityIn);
+
468 uHighQualityIn =
+
469 bHigh ? 0 : sleRippleState->getFieldU32(sfHighQualityIn);
+
470 }
+
471
+
472 if (QUALITY_ONE == uLowQualityIn)
+
473 uLowQualityIn = 0;
+
474
+
475 if (QUALITY_ONE == uHighQualityIn)
+
476 uHighQualityIn = 0;
477
-
478 uLowQualityIn = sleRippleState->getFieldU32(sfLowQualityIn);
-
479 uHighQualityIn = sleRippleState->getFieldU32(sfHighQualityIn);
-
480 }
-
481 else if (uQualityIn)
-
482 {
-
483 // Setting.
-
484
-
485 sleRippleState->setFieldU32(
-
486 !bHigh ? sfLowQualityIn : sfHighQualityIn, uQualityIn);
-
487
-
488 uLowQualityIn = !bHigh
-
489 ? uQualityIn
-
490 : sleRippleState->getFieldU32(sfLowQualityIn);
-
491 uHighQualityIn = bHigh
-
492 ? uQualityIn
-
493 : sleRippleState->getFieldU32(sfHighQualityIn);
-
494 }
-
495 else
-
496 {
-
497 // Clearing.
-
498
-
499 sleRippleState->makeFieldAbsent(
-
500 !bHigh ? sfLowQualityIn : sfHighQualityIn);
-
501
-
502 uLowQualityIn =
-
503 !bHigh ? 0 : sleRippleState->getFieldU32(sfLowQualityIn);
-
504 uHighQualityIn =
-
505 bHigh ? 0 : sleRippleState->getFieldU32(sfHighQualityIn);
-
506 }
-
507
-
508 if (QUALITY_ONE == uLowQualityIn)
-
509 uLowQualityIn = 0;
-
510
-
511 if (QUALITY_ONE == uHighQualityIn)
-
512 uHighQualityIn = 0;
-
513
-
514 //
-
515 // Quality out
-
516 //
-
517
-
518 if (!bQualityOut)
-
519 {
-
520 // Not setting. Just get it.
-
521
-
522 uLowQualityOut = sleRippleState->getFieldU32(sfLowQualityOut);
-
523 uHighQualityOut = sleRippleState->getFieldU32(sfHighQualityOut);
-
524 }
-
525 else if (uQualityOut)
-
526 {
-
527 // Setting.
-
528
-
529 sleRippleState->setFieldU32(
-
530 !bHigh ? sfLowQualityOut : sfHighQualityOut, uQualityOut);
-
531
-
532 uLowQualityOut = !bHigh
-
533 ? uQualityOut
-
534 : sleRippleState->getFieldU32(sfLowQualityOut);
-
535 uHighQualityOut = bHigh
-
536 ? uQualityOut
-
537 : sleRippleState->getFieldU32(sfHighQualityOut);
-
538 }
-
539 else
-
540 {
-
541 // Clearing.
-
542
-
543 sleRippleState->makeFieldAbsent(
-
544 !bHigh ? sfLowQualityOut : sfHighQualityOut);
-
545
-
546 uLowQualityOut =
-
547 !bHigh ? 0 : sleRippleState->getFieldU32(sfLowQualityOut);
-
548 uHighQualityOut =
-
549 bHigh ? 0 : sleRippleState->getFieldU32(sfHighQualityOut);
-
550 }
-
551
-
552 std::uint32_t const uFlagsIn(sleRippleState->getFieldU32(sfFlags));
-
553 std::uint32_t uFlagsOut(uFlagsIn);
-
554
-
555 if (bSetNoRipple && !bClearNoRipple)
-
556 {
-
557 if ((bHigh ? saHighBalance : saLowBalance) >= beast::zero)
-
558 uFlagsOut |= (bHigh ? lsfHighNoRipple : lsfLowNoRipple);
+
478 //
+
479 // Quality out
+
480 //
+
481
+
482 if (!bQualityOut)
+
483 {
+
484 // Not setting. Just get it.
+
485
+
486 uLowQualityOut = sleRippleState->getFieldU32(sfLowQualityOut);
+
487 uHighQualityOut = sleRippleState->getFieldU32(sfHighQualityOut);
+
488 }
+
489 else if (uQualityOut)
+
490 {
+
491 // Setting.
+
492
+
493 sleRippleState->setFieldU32(
+
494 !bHigh ? sfLowQualityOut : sfHighQualityOut, uQualityOut);
+
495
+
496 uLowQualityOut = !bHigh
+
497 ? uQualityOut
+
498 : sleRippleState->getFieldU32(sfLowQualityOut);
+
499 uHighQualityOut = bHigh
+
500 ? uQualityOut
+
501 : sleRippleState->getFieldU32(sfHighQualityOut);
+
502 }
+
503 else
+
504 {
+
505 // Clearing.
+
506
+
507 sleRippleState->makeFieldAbsent(
+
508 !bHigh ? sfLowQualityOut : sfHighQualityOut);
+
509
+
510 uLowQualityOut =
+
511 !bHigh ? 0 : sleRippleState->getFieldU32(sfLowQualityOut);
+
512 uHighQualityOut =
+
513 bHigh ? 0 : sleRippleState->getFieldU32(sfHighQualityOut);
+
514 }
+
515
+
516 std::uint32_t const uFlagsIn(sleRippleState->getFieldU32(sfFlags));
+
517 std::uint32_t uFlagsOut(uFlagsIn);
+
518
+
519 if (bSetNoRipple && !bClearNoRipple)
+
520 {
+
521 if ((bHigh ? saHighBalance : saLowBalance) >= beast::zero)
+
522 uFlagsOut |= (bHigh ? lsfHighNoRipple : lsfLowNoRipple);
+
523
+
524 else
+
525 // Cannot set noRipple on a negative balance.
+
526 return tecNO_PERMISSION;
+
527 }
+
528 else if (bClearNoRipple && !bSetNoRipple)
+
529 {
+
530 uFlagsOut &= ~(bHigh ? lsfHighNoRipple : lsfLowNoRipple);
+
531 }
+
532
+
533 // Have to use lsfNoFreeze to maintain pre-deep freeze behavior
+
534 bool const bNoFreeze = sle->isFlag(lsfNoFreeze);
+
535 uFlagsOut = computeFreezeFlags(
+
536 uFlagsOut,
+
537 bHigh,
+
538 bNoFreeze,
+
539 bSetFreeze,
+
540 bClearFreeze,
+
541 bSetDeepFreeze,
+
542 bClearDeepFreeze);
+
543
+
544 if (QUALITY_ONE == uLowQualityOut)
+
545 uLowQualityOut = 0;
+
546
+
547 if (QUALITY_ONE == uHighQualityOut)
+
548 uHighQualityOut = 0;
+
549
+
550 bool const bLowDefRipple = sleLowAccount->getFlags() & lsfDefaultRipple;
+
551 bool const bHighDefRipple =
+
552 sleHighAccount->getFlags() & lsfDefaultRipple;
+
553
+
554 bool const bLowReserveSet = uLowQualityIn || uLowQualityOut ||
+
555 ((uFlagsOut & lsfLowNoRipple) == 0) != bLowDefRipple ||
+
556 (uFlagsOut & lsfLowFreeze) || saLowLimit ||
+
557 saLowBalance > beast::zero;
+
558 bool const bLowReserveClear = !bLowReserveSet;
559
-
560 else
-
561 // Cannot set noRipple on a negative balance.
-
562 return tecNO_PERMISSION;
-
563 }
-
564 else if (bClearNoRipple && !bSetNoRipple)
-
565 {
-
566 uFlagsOut &= ~(bHigh ? lsfHighNoRipple : lsfLowNoRipple);
-
567 }
-
568
-
569 // Have to use lsfNoFreeze to maintain pre-deep freeze behavior
-
570 bool const bNoFreeze = sle->isFlag(lsfNoFreeze);
-
571 uFlagsOut = computeFreezeFlags(
-
572 uFlagsOut,
-
573 bHigh,
-
574 bNoFreeze,
-
575 bSetFreeze,
-
576 bClearFreeze,
-
577 bSetDeepFreeze,
-
578 bClearDeepFreeze);
-
579
-
580 if (QUALITY_ONE == uLowQualityOut)
-
581 uLowQualityOut = 0;
-
582
-
583 if (QUALITY_ONE == uHighQualityOut)
-
584 uHighQualityOut = 0;
-
585
-
586 bool const bLowDefRipple = sleLowAccount->getFlags() & lsfDefaultRipple;
-
587 bool const bHighDefRipple =
-
588 sleHighAccount->getFlags() & lsfDefaultRipple;
-
589
-
590 bool const bLowReserveSet = uLowQualityIn || uLowQualityOut ||
-
591 ((uFlagsOut & lsfLowNoRipple) == 0) != bLowDefRipple ||
-
592 (uFlagsOut & lsfLowFreeze) || saLowLimit ||
-
593 saLowBalance > beast::zero;
-
594 bool const bLowReserveClear = !bLowReserveSet;
-
595
-
596 bool const bHighReserveSet = uHighQualityIn || uHighQualityOut ||
-
597 ((uFlagsOut & lsfHighNoRipple) == 0) != bHighDefRipple ||
-
598 (uFlagsOut & lsfHighFreeze) || saHighLimit ||
-
599 saHighBalance > beast::zero;
-
600 bool const bHighReserveClear = !bHighReserveSet;
-
601
-
602 bool const bDefault = bLowReserveClear && bHighReserveClear;
-
603
-
604 bool const bLowReserved = (uFlagsIn & lsfLowReserve);
-
605 bool const bHighReserved = (uFlagsIn & lsfHighReserve);
-
606
-
607 bool bReserveIncrease = false;
-
608
-
609 if (bSetAuth)
-
610 {
-
611 uFlagsOut |= (bHigh ? lsfHighAuth : lsfLowAuth);
-
612 }
-
613
-
614 if (bLowReserveSet && !bLowReserved)
-
615 {
-
616 // Set reserve for low account.
-
617 adjustOwnerCount(view(), sleLowAccount, 1, viewJ);
-
618 uFlagsOut |= lsfLowReserve;
-
619
-
620 if (!bHigh)
-
621 bReserveIncrease = true;
-
622 }
-
623
-
624 if (bLowReserveClear && bLowReserved)
-
625 {
-
626 // Clear reserve for low account.
-
627 adjustOwnerCount(view(), sleLowAccount, -1, viewJ);
-
628 uFlagsOut &= ~lsfLowReserve;
-
629 }
-
630
-
631 if (bHighReserveSet && !bHighReserved)
-
632 {
-
633 // Set reserve for high account.
-
634 adjustOwnerCount(view(), sleHighAccount, 1, viewJ);
-
635 uFlagsOut |= lsfHighReserve;
-
636
-
637 if (bHigh)
-
638 bReserveIncrease = true;
-
639 }
-
640
-
641 if (bHighReserveClear && bHighReserved)
-
642 {
-
643 // Clear reserve for high account.
-
644 adjustOwnerCount(view(), sleHighAccount, -1, viewJ);
-
645 uFlagsOut &= ~lsfHighReserve;
-
646 }
-
647
-
648 if (uFlagsIn != uFlagsOut)
-
649 sleRippleState->setFieldU32(sfFlags, uFlagsOut);
-
650
-
651 if (bDefault || badCurrency() == currency)
-
652 {
-
653 // Delete.
-
654
-
655 terResult = trustDelete(
-
656 view(), sleRippleState, uLowAccountID, uHighAccountID, viewJ);
-
657 }
-
658 // Reserve is not scaled by load.
-
659 else if (bReserveIncrease && mPriorBalance < reserveCreate)
-
660 {
-
661 JLOG(j_.trace()) << "Delay transaction: Insufficent reserve to "
-
662 "add trust line.";
-
663
-
664 // Another transaction could provide XRP to the account and then
-
665 // this transaction would succeed.
-
666 terResult = tecINSUF_RESERVE_LINE;
-
667 }
-
668 else
-
669 {
-
670 view().update(sleRippleState);
+
560 bool const bHighReserveSet = uHighQualityIn || uHighQualityOut ||
+
561 ((uFlagsOut & lsfHighNoRipple) == 0) != bHighDefRipple ||
+
562 (uFlagsOut & lsfHighFreeze) || saHighLimit ||
+
563 saHighBalance > beast::zero;
+
564 bool const bHighReserveClear = !bHighReserveSet;
+
565
+
566 bool const bDefault = bLowReserveClear && bHighReserveClear;
+
567
+
568 bool const bLowReserved = (uFlagsIn & lsfLowReserve);
+
569 bool const bHighReserved = (uFlagsIn & lsfHighReserve);
+
570
+
571 bool bReserveIncrease = false;
+
572
+
573 if (bSetAuth)
+
574 {
+
575 uFlagsOut |= (bHigh ? lsfHighAuth : lsfLowAuth);
+
576 }
+
577
+
578 if (bLowReserveSet && !bLowReserved)
+
579 {
+
580 // Set reserve for low account.
+
581 adjustOwnerCount(view(), sleLowAccount, 1, viewJ);
+
582 uFlagsOut |= lsfLowReserve;
+
583
+
584 if (!bHigh)
+
585 bReserveIncrease = true;
+
586 }
+
587
+
588 if (bLowReserveClear && bLowReserved)
+
589 {
+
590 // Clear reserve for low account.
+
591 adjustOwnerCount(view(), sleLowAccount, -1, viewJ);
+
592 uFlagsOut &= ~lsfLowReserve;
+
593 }
+
594
+
595 if (bHighReserveSet && !bHighReserved)
+
596 {
+
597 // Set reserve for high account.
+
598 adjustOwnerCount(view(), sleHighAccount, 1, viewJ);
+
599 uFlagsOut |= lsfHighReserve;
+
600
+
601 if (bHigh)
+
602 bReserveIncrease = true;
+
603 }
+
604
+
605 if (bHighReserveClear && bHighReserved)
+
606 {
+
607 // Clear reserve for high account.
+
608 adjustOwnerCount(view(), sleHighAccount, -1, viewJ);
+
609 uFlagsOut &= ~lsfHighReserve;
+
610 }
+
611
+
612 if (uFlagsIn != uFlagsOut)
+
613 sleRippleState->setFieldU32(sfFlags, uFlagsOut);
+
614
+
615 if (bDefault || badCurrency() == currency)
+
616 {
+
617 // Delete.
+
618
+
619 terResult = trustDelete(
+
620 view(), sleRippleState, uLowAccountID, uHighAccountID, viewJ);
+
621 }
+
622 // Reserve is not scaled by load.
+
623 else if (bReserveIncrease && mPriorBalance < reserveCreate)
+
624 {
+
625 JLOG(j_.trace()) << "Delay transaction: Insufficent reserve to "
+
626 "add trust line.";
+
627
+
628 // Another transaction could provide XRP to the account and then
+
629 // this transaction would succeed.
+
630 terResult = tecINSUF_RESERVE_LINE;
+
631 }
+
632 else
+
633 {
+
634 view().update(sleRippleState);
+
635
+
636 JLOG(j_.trace()) << "Modify ripple line";
+
637 }
+
638 }
+
639 // Line does not exist.
+
640 else if (
+
641 !saLimitAmount && // Setting default limit.
+
642 (!bQualityIn || !uQualityIn) && // Not setting quality in or
+
643 // setting default quality in.
+
644 (!bQualityOut || !uQualityOut) && // Not setting quality out or
+
645 // setting default quality out.
+
646 (!bSetAuth))
+
647 {
+
648 JLOG(j_.trace())
+
649 << "Redundant: Setting non-existent ripple line to defaults.";
+ +
651 }
+
652 else if (mPriorBalance < reserveCreate) // Reserve is not scaled by
+
653 // load.
+
654 {
+
655 JLOG(j_.trace()) << "Delay transaction: Line does not exist. "
+
656 "Insufficent reserve to create line.";
+
657
+
658 // Another transaction could create the account and then this
+
659 // transaction would succeed.
+
660 terResult = tecNO_LINE_INSUF_RESERVE;
+
661 }
+
662 else
+
663 {
+
664 // Zero balance in currency.
+
665 STAmount saBalance(Issue{currency, noAccount()});
+
666
+
667 auto const k = keylet::line(account_, uDstAccountID, currency);
+
668
+
669 JLOG(j_.trace()) << "doTrustSet: Creating ripple line: "
+
670 << to_string(k.key);
671
-
672 JLOG(j_.trace()) << "Modify ripple line";
-
673 }
-
674 }
-
675 // Line does not exist.
-
676 else if (
-
677 !saLimitAmount && // Setting default limit.
-
678 (!bQualityIn || !uQualityIn) && // Not setting quality in or
-
679 // setting default quality in.
-
680 (!bQualityOut || !uQualityOut) && // Not setting quality out or
-
681 // setting default quality out.
-
682 (!bSetAuth))
-
683 {
-
684 JLOG(j_.trace())
-
685 << "Redundant: Setting non-existent ripple line to defaults.";
- -
687 }
-
688 else if (mPriorBalance < reserveCreate) // Reserve is not scaled by
-
689 // load.
-
690 {
-
691 JLOG(j_.trace()) << "Delay transaction: Line does not exist. "
-
692 "Insufficent reserve to create line.";
-
693
-
694 // Another transaction could create the account and then this
-
695 // transaction would succeed.
-
696 terResult = tecNO_LINE_INSUF_RESERVE;
-
697 }
-
698 else
-
699 {
-
700 // Zero balance in currency.
-
701 STAmount saBalance(Issue{currency, noAccount()});
-
702
-
703 auto const k = keylet::line(account_, uDstAccountID, currency);
-
704
-
705 JLOG(j_.trace()) << "doTrustSet: Creating ripple line: "
-
706 << to_string(k.key);
-
707
-
708 // Create a new ripple line.
-
709 terResult = trustCreate(
-
710 view(),
-
711 bHigh,
-
712 account_,
-
713 uDstAccountID,
-
714 k.key,
-
715 sle,
-
716 bSetAuth,
-
717 bSetNoRipple && !bClearNoRipple,
-
718 bSetFreeze && !bClearFreeze,
-
719 bSetDeepFreeze,
-
720 saBalance,
-
721 saLimitAllow, // Limit for who is being charged.
-
722 uQualityIn,
-
723 uQualityOut,
-
724 viewJ);
-
725 }
-
726
-
727 return terResult;
-
728}
+
672 // Create a new ripple line.
+
673 terResult = trustCreate(
+
674 view(),
+
675 bHigh,
+
676 account_,
+
677 uDstAccountID,
+
678 k.key,
+
679 sle,
+
680 bSetAuth,
+
681 bSetNoRipple && !bClearNoRipple,
+
682 bSetFreeze && !bClearFreeze,
+
683 bSetDeepFreeze,
+
684 saBalance,
+
685 saLimitAllow, // Limit for who is being charged.
+
686 uQualityIn,
+
687 uQualityOut,
+
688 viewJ);
+
689 }
+
690
+
691 return terResult;
+
692}
-
729
-
730} // namespace ripple
+
693
+
694} // namespace ripple
Stream trace() const
Severity stream access functions.
Definition Journal.h:303
virtual beast::Journal journal(std::string const &name)=0
Application & app
@@ -849,7 +813,7 @@ $(document).ready(function() { init_codefold(0); });
static NotTEC checkPermission(ReadView const &view, STTx const &tx)
Definition SetTrust.cpp:112
static TER preclaim(PreclaimContext const &ctx)
Definition SetTrust.cpp:175
static std::uint32_t getFlagsMask(PreflightContext const &ctx)
Definition SetTrust.cpp:52
-
TER doApply() override
Definition SetTrust.cpp:345
+
TER doApply() override
Definition SetTrust.cpp:324
AccountID const account_
Definition Transactor.h:128
ApplyView & view()
Definition Transactor.h:144
diff --git a/SetTrust_8h_source.html b/SetTrust_8h_source.html index 638968feb8..7a1a258399 100644 --- a/SetTrust_8h_source.html +++ b/SetTrust_8h_source.html @@ -133,7 +133,7 @@ $(document).ready(function() { init_codefold(0); });
SetTrust(ApplyContext &ctx)
Definition SetTrust.h:15
static TER preclaim(PreclaimContext const &ctx)
Definition SetTrust.cpp:175
static std::uint32_t getFlagsMask(PreflightContext const &ctx)
Definition SetTrust.cpp:52
-
TER doApply() override
Definition SetTrust.cpp:345
+
TER doApply() override
Definition SetTrust.cpp:324
static constexpr ConsequencesFactoryType ConsequencesFactory
Definition SetTrust.h:13
diff --git a/classripple_1_1Change-members.html b/classripple_1_1Change-members.html index d26e8fa930..322d7835f3 100644 --- a/classripple_1_1Change-members.html +++ b/classripple_1_1Change-members.html @@ -80,60 +80,59 @@ $(function() {

This is the complete list of members for ripple::Change, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
account_ripple::Transactorprotected
activateTrustLinesToSelfFix()ripple::Changeprivate
apply()ripple::Transactorprotected
applyAmendment()ripple::Changeprivate
applyFee()ripple::Changeprivate
applyUNLModify()ripple::Changeprivate
Blocker enum valueripple::Transactor
calculateBaseFee(ReadView const &view, STTx const &tx)ripple::Changestatic
calculateOwnerReserveFee(ReadView const &view, STTx const &tx)ripple::Transactorprotectedstatic
Change(ApplyContext &ctx)ripple::Changeexplicit
checkBatchSign(PreclaimContext const &ctx)ripple::Transactorstatic
checkExtraFeatures(PreflightContext const &ctx)ripple::Transactorprotectedstatic
checkFee(PreclaimContext const &ctx, XRPAmount baseFee)ripple::Transactorstatic
checkMultiSign(ReadView const &view, ApplyFlags flags, AccountID const &id, STObject const &sigObject, beast::Journal const j)ripple::Transactorprivatestatic
checkPermission(ReadView const &view, STTx const &tx)ripple::Transactorstatic
checkPriorTxAndLastLedger(PreclaimContext const &ctx)ripple::Transactorstatic
checkSeqProxy(ReadView const &view, STTx const &tx, beast::Journal j)ripple::Transactorstatic
checkSign(PreclaimContext const &ctx)ripple::Transactorstatic
checkSign(ReadView const &view, ApplyFlags flags, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j)ripple::Transactorprotectedstatic
checkSingleSign(ReadView const &view, AccountID const &idSigner, AccountID const &idAccount, std::shared_ptr< SLE const > sleAccount, beast::Journal const j)ripple::Transactorprivatestatic
ConsequencesFactoryripple::Changestatic
ConsequencesFactoryType enum nameripple::Transactor
consumeSeqProxy(SLE::pointer const &sleAccount)ripple::Transactorprivate
ctx_ripple::Transactorprotected
Custom enum valueripple::Transactor
doApply() overrideripple::Changevirtual
getFlagsMask(PreflightContext const &ctx)ripple::Transactorprotectedstatic
invokePreflight(PreflightContext const &ctx)ripple::Transactorstatic
invokePreflight(PreflightContext const &ctx)ripple::Transactorstatic
apply()ripple::Transactorprotected
applyAmendment()ripple::Changeprivate
applyFee()ripple::Changeprivate
applyUNLModify()ripple::Changeprivate
Blocker enum valueripple::Transactor
calculateBaseFee(ReadView const &view, STTx const &tx)ripple::Changestatic
calculateOwnerReserveFee(ReadView const &view, STTx const &tx)ripple::Transactorprotectedstatic
Change(ApplyContext &ctx)ripple::Changeexplicit
checkBatchSign(PreclaimContext const &ctx)ripple::Transactorstatic
checkExtraFeatures(PreflightContext const &ctx)ripple::Transactorprotectedstatic
checkFee(PreclaimContext const &ctx, XRPAmount baseFee)ripple::Transactorstatic
checkMultiSign(ReadView const &view, ApplyFlags flags, AccountID const &id, STObject const &sigObject, beast::Journal const j)ripple::Transactorprivatestatic
checkPermission(ReadView const &view, STTx const &tx)ripple::Transactorstatic
checkPriorTxAndLastLedger(PreclaimContext const &ctx)ripple::Transactorstatic
checkSeqProxy(ReadView const &view, STTx const &tx, beast::Journal j)ripple::Transactorstatic
checkSign(PreclaimContext const &ctx)ripple::Transactorstatic
checkSign(ReadView const &view, ApplyFlags flags, AccountID const &idAccount, STObject const &sigObject, beast::Journal const j)ripple::Transactorprotectedstatic
checkSingleSign(ReadView const &view, AccountID const &idSigner, AccountID const &idAccount, std::shared_ptr< SLE const > sleAccount, beast::Journal const j)ripple::Transactorprivatestatic
ConsequencesFactoryripple::Changestatic
ConsequencesFactoryType enum nameripple::Transactor
consumeSeqProxy(SLE::pointer const &sleAccount)ripple::Transactorprivate
ctx_ripple::Transactorprotected
Custom enum valueripple::Transactor
doApply() overrideripple::Changevirtual
getFlagsMask(PreflightContext const &ctx)ripple::Transactorprotectedstatic
invokePreflight(PreflightContext const &ctx)ripple::Transactorstatic
invokePreflight(PreflightContext const &ctx)ripple::Transactorstatic
j_ripple::Transactorprotected
minimumFee(Application &app, XRPAmount baseFee, Fees const &fees, ApplyFlags flags)ripple::Transactorprotectedstatic
mPriorBalanceripple::Transactorprotected
mSourceBalanceripple::Transactorprotected
Normal enum valueripple::Transactor
operator()()ripple::Transactor
operator=(Transactor const &)=deleteripple::Transactorprotected
payFee()ripple::Transactorprivate
preclaim(PreclaimContext const &ctx)ripple::Changestatic
preCompute() overrideripple::Changevirtual
preflight1(PreflightContext const &ctx, std::uint32_t flagMask)ripple::Transactorprivatestatic
preflight2(PreflightContext const &ctx)ripple::Transactorprivatestatic
preflightSigValidated(PreflightContext const &ctx)ripple::Transactorprotectedstatic
reset(XRPAmount fee)ripple::Transactorprivate
sink_ripple::Transactorprotected
ticketDelete(ApplyView &view, AccountID const &account, uint256 const &ticketIndex, beast::Journal j)ripple::Transactorstatic
Transactor(Transactor const &)=deleteripple::Transactorprotected
Transactor(ApplyContext &ctx)ripple::Transactorexplicitprotected
trapTransaction(uint256) constripple::Transactorprivate
validDataLength(std::optional< Slice > const &slice, std::size_t maxLength)ripple::Transactorprotectedstatic
validNumericRange(std::optional< T > value, T max, T min={})ripple::Transactorprotectedstatic
validNumericRange(std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min={})ripple::Transactorprotectedstatic
view()ripple::Transactor
view() constripple::Transactor
~Transactor()=defaultripple::Transactorprotectedvirtual
invokePreflight(PreflightContext const &ctx)ripple::Transactorstatic
j_ripple::Transactorprotected
minimumFee(Application &app, XRPAmount baseFee, Fees const &fees, ApplyFlags flags)ripple::Transactorprotectedstatic
mPriorBalanceripple::Transactorprotected
mSourceBalanceripple::Transactorprotected
Normal enum valueripple::Transactor
operator()()ripple::Transactor
operator=(Transactor const &)=deleteripple::Transactorprotected
payFee()ripple::Transactorprivate
preclaim(PreclaimContext const &ctx)ripple::Changestatic
preCompute() overrideripple::Changevirtual
preflight1(PreflightContext const &ctx, std::uint32_t flagMask)ripple::Transactorprivatestatic
preflight2(PreflightContext const &ctx)ripple::Transactorprivatestatic
preflightSigValidated(PreflightContext const &ctx)ripple::Transactorprotectedstatic
reset(XRPAmount fee)ripple::Transactorprivate
sink_ripple::Transactorprotected
ticketDelete(ApplyView &view, AccountID const &account, uint256 const &ticketIndex, beast::Journal j)ripple::Transactorstatic
Transactor(Transactor const &)=deleteripple::Transactorprotected
Transactor(ApplyContext &ctx)ripple::Transactorexplicitprotected
trapTransaction(uint256) constripple::Transactorprivate
validDataLength(std::optional< Slice > const &slice, std::size_t maxLength)ripple::Transactorprotectedstatic
validNumericRange(std::optional< T > value, T max, T min={})ripple::Transactorprotectedstatic
validNumericRange(std::optional< T > value, unit::ValueUnit< Unit, T > max, unit::ValueUnit< Unit, T > min={})ripple::Transactorprotectedstatic
view()ripple::Transactor
view() constripple::Transactor
~Transactor()=defaultripple::Transactorprotectedvirtual
- -

Definition at line 151 of file Change.cpp.

-
@@ -598,7 +569,7 @@ Static Private Member Functions
-

Definition at line 233 of file Change.cpp.

+

Definition at line 151 of file Change.cpp.

@@ -625,7 +596,7 @@ Static Private Member Functions
-

Definition at line 332 of file Change.cpp.

+

Definition at line 247 of file Change.cpp.

@@ -652,7 +623,7 @@ Static Private Member Functions
-

Definition at line 372 of file Change.cpp.

+

Definition at line 287 of file Change.cpp.

diff --git a/classripple_1_1Feature__test.html b/classripple_1_1Feature__test.html index 0f4938fe25..46bd916ac7 100644 --- a/classripple_1_1Feature__test.html +++ b/classripple_1_1Feature__test.html @@ -339,7 +339,7 @@ Private Attributes
-

Definition at line 133 of file Feature_test.cpp.

+

Definition at line 134 of file Feature_test.cpp.

@@ -366,7 +366,7 @@ Private Attributes
-

Definition at line 178 of file Feature_test.cpp.

+

Definition at line 179 of file Feature_test.cpp.

@@ -393,7 +393,7 @@ Private Attributes
-

Definition at line 208 of file Feature_test.cpp.

+

Definition at line 209 of file Feature_test.cpp.

@@ -420,7 +420,7 @@ Private Attributes
-

Definition at line 240 of file Feature_test.cpp.

+

Definition at line 241 of file Feature_test.cpp.

@@ -447,7 +447,7 @@ Private Attributes
-

Definition at line 319 of file Feature_test.cpp.

+

Definition at line 320 of file Feature_test.cpp.

@@ -474,7 +474,7 @@ Private Attributes
-

Definition at line 375 of file Feature_test.cpp.

+

Definition at line 376 of file Feature_test.cpp.

@@ -501,7 +501,7 @@ Private Attributes
-

Definition at line 474 of file Feature_test.cpp.

+

Definition at line 475 of file Feature_test.cpp.

@@ -528,7 +528,7 @@ Private Attributes
-

Definition at line 525 of file Feature_test.cpp.

+

Definition at line 526 of file Feature_test.cpp.

@@ -559,7 +559,7 @@ Private Attributes

Implements beast::unit_test::suite.

-

Definition at line 580 of file Feature_test.cpp.

+

Definition at line 581 of file Feature_test.cpp.

diff --git a/classripple_1_1SetTrust.html b/classripple_1_1SetTrust.html index e8ac9add52..b219b809a9 100644 --- a/classripple_1_1SetTrust.html +++ b/classripple_1_1SetTrust.html @@ -565,7 +565,7 @@ Static Private Member Functions

Implements ripple::Transactor.

-

Definition at line 345 of file SetTrust.cpp.

+

Definition at line 324 of file SetTrust.cpp.

diff --git a/functions_a.html b/functions_a.html index 720eec65fe..8f41f801e0 100644 --- a/functions_a.html +++ b/functions_a.html @@ -120,7 +120,7 @@ $(function() {
  • acceptToAccept : ripple::test::csf::LedgerCollector
  • acceptToFullyValid : ripple::test::csf::LedgerCollector
  • account() : ripple::AMMContext, ripple::Issue, ripple::MPTAuthorizeArgs, ripple::MPTCreateArgs, ripple::RelationalDatabase::AccountTxArgs, ripple::RelationalDatabase::AccountTxOptions, ripple::RelationalDatabase::AccountTxPageOptions, ripple::SignerEntries::SignerEntry
  • -
  • Account() : ripple::test::jtx::Account
  • +
  • Account() : ripple::test::jtx::Account
  • account : ripple::test::jtx::BidArg, ripple::test::jtx::BookSpec, ripple::test::jtx::DepositArg, ripple::test::jtx::IOU, ripple::test::jtx::MPTAuthorize, ripple::test::jtx::MPTSet, ripple::test::jtx::signer, ripple::test::jtx::VoteArg, ripple::test::jtx::WithdrawArg, ripple::test::SEnv< T >, ripple::TxQ::MaybeTx, ripple::TxQ::TxDetails, ripple::TxQ::TxQAccount
  • account_ : ripple::AMMContext, ripple::CanonicalTXSet::Key, ripple::RippleLineCache::AccountKey, ripple::test::Balance< T >, ripple::test::jtx::balance, ripple::test::jtx::flags, ripple::test::jtx::mptbalance, ripple::test::jtx::nflags, ripple::test::jtx::owner_count< Type >, ripple::test::jtx::owners, ripple::test::jtx::sig, ripple::Transactor
  • account_id : ripple::RPC::key_strings
  • @@ -169,7 +169,6 @@ $(function() {
  • action : ripple::detail::RawStateTable::sleAction
  • activate() : ripple::OverlayImpl, ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Manager, ripple::PeerFinder::ManagerImp, ripple::PeerFinder::SlotImp
  • activateStallDetector() : ripple::LoadManager
  • -
  • activateTrustLinesToSelfFix() : ripple::Change
  • active() : beast::Journal, beast::Journal::Sink, beast::Journal::Stream, beast::NullJournalSink, beast::WrappedSink, ripple::PeerFinder::Slot, ripple::test::SuiteJournalSink
  • activeInboundPeers : ripple::PeerFinder::ManagerImp::Stats
  • activeOutboundPeers : ripple::PeerFinder::ManagerImp::Stats
  • @@ -179,7 +178,7 @@ $(function() {
  • Adaptor() : ripple::RCLConsensus::Adaptor, ripple::test::csf::Validations_test::Adaptor
  • adaptor() : ripple::Validations< Adaptor >
  • adaptor_ : ripple::Consensus< Adaptor >, ripple::RCLConsensus, ripple::Validations< Adaptor >
  • -
  • add() : beast::insight::detail::StatsDCollectorImp, beast::PropertyStream, beast::PropertyStream::Map, beast::PropertyStream::Set, beast::PropertyStream::Source, beast::unit_test::detail::reporter< class >::results, beast::unit_test::detail::reporter< class >::suite_results, ripple::AmendmentTableImpl, ripple::DecayingSample< Window, Clock >, ripple::DecayWindow< HalfLife, Clock >, ripple::detail::multi_runner_base< IsParent >, ripple::detail::multi_runner_base< IsParent >::inner, ripple::detail::results, ripple::detail::suite_results, ripple::JsonPropertyStream, ripple::KnownFormats< KeyType, Derived >, ripple::PeerFinder::Counts, ripple::PeerFinder::Livecache_test, ripple::Resource::Entry, ripple::short_read_test::Base, ripple::STAccount, ripple::STAmount, ripple::STArray, ripple::STBase, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject, ripple::STPathSet, ripple::STVector256, ripple::STXChainBridge, ripple::test::csf::CollectorRefs, ripple::test::csf::Validations_test::TestHarness, ripple::TxQ::TxQAccount, ripple::Validations< Adaptor >
  • +
  • add() : beast::insight::detail::StatsDCollectorImp, beast::PropertyStream, beast::PropertyStream::Map, beast::PropertyStream::Set, beast::PropertyStream::Source, beast::unit_test::detail::reporter< class >::results, beast::unit_test::detail::reporter< class >::suite_results, ripple::AmendmentTableImpl, ripple::DecayingSample< Window, Clock >, ripple::DecayWindow< HalfLife, Clock >, ripple::detail::multi_runner_base< IsParent >, ripple::detail::multi_runner_base< IsParent >::inner, ripple::detail::results, ripple::detail::suite_results, ripple::JsonPropertyStream, ripple::KnownFormats< KeyType, Derived >, ripple::PeerFinder::Counts, ripple::PeerFinder::Livecache_test, ripple::Resource::Entry, ripple::short_read_test::Base, ripple::STAccount, ripple::STAmount, ripple::STArray, ripple::STBase, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject, ripple::STPathSet, ripple::STVector256, ripple::STXChainBridge, ripple::test::csf::CollectorRefs, ripple::test::csf::Validations_test::TestHarness, ripple::TxQ::TxQAccount, ripple::Validations< Adaptor >
  • add16() : ripple::Serializer
  • add32() : ripple::Serializer
  • add64() : ripple::Serializer
  • @@ -304,7 +303,7 @@ $(function() {
  • allCounting() : ripple::test::Network
  • allFeatures : ripple::NFTokenBaseUtil_test, ripple::NFTokenBurn_test, ripple::test::OfferBaseUtil_test
  • Alloc : beast::aged_associative_container_test_base::TestTraitsHelper< IsUnordered, IsMulti, IsMap >
  • -
  • alloc() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t, ripple::Buffer, ripple::SlabAllocatorSet< Type >::SlabConfig
  • +
  • alloc() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t, ripple::Buffer, ripple::SlabAllocatorSet< Type >::SlabConfig
  • alloc_ : ripple::test::csf::Scheduler, ripple::test::csf::Scheduler::queue_type
  • allocate() : beast::aged_associative_container_test_base::AllocT< T >, ripple::SlabAllocator< Type >, ripple::SlabAllocator< Type >::SlabBlock, ripple::SlabAllocatorSet< Type >
  • allocated_ : Json::Value
  • @@ -357,7 +356,7 @@ $(function() {
  • ammUsed_ : ripple::AMMContext
  • AMMVote() : ripple::AMMVote
  • AMMWithdraw() : ripple::AMMWithdraw
  • -
  • amount() : beast::unit_test::amount, ripple::AMMOffer< TIn, TOut >, ripple::Quality_test, ripple::test::jtx::token::amount, ripple::test::jtx::Vault::ClawbackArgs, ripple::test::jtx::Vault::DepositArgs, ripple::test::jtx::Vault::WithdrawArgs, ripple::TOffer< TIn, TOut >, ripple::XChainClaimAttestation, ripple::XChainClaimAttestation::MatchFields, ripple::XChainCreateAccountAttestation, ripple::XChainCreateAccountAttestation::MatchFields
  • +
  • amount() : beast::unit_test::amount, ripple::AMMOffer< TIn, TOut >, ripple::Quality_test, ripple::test::jtx::token::amount, ripple::test::jtx::Vault::ClawbackArgs, ripple::test::jtx::Vault::DepositArgs, ripple::test::jtx::Vault::WithdrawArgs, ripple::TOffer< TIn, TOut >, ripple::XChainClaimAttestation, ripple::XChainClaimAttestation::MatchFields, ripple::XChainCreateAccountAttestation, ripple::XChainCreateAccountAttestation::MatchFields
  • amount_ : ripple::test::jtx::delivermin, ripple::test::jtx::fee, ripple::test::jtx::mptbalance, ripple::test::jtx::PrettyAmount, ripple::test::jtx::sendmax, ripple::test::jtx::token::amount
  • amounts() : ripple::Quality_test
  • amounts_ : ripple::AMMOffer< TIn, TOut >
  • @@ -366,7 +365,7 @@ $(function() {
  • ancestor() : ripple::SpanTip< Ledger >
  • ancestors : ripple::test::csf::Ledger::Instance
  • ancestors_ : ripple::RCLValidatedLedger
  • -
  • Any() : ripple::test::csf::CollectorRef::Any< T >
  • +
  • Any() : ripple::test::csf::CollectorRef::Any< T >
  • any() : ripple::Transaction::SubmitResult
  • any_failed() : ripple::detail::multi_runner_base< IsParent >, ripple::detail::multi_runner_base< IsParent >::inner, ripple::test::multi_runner_parent
  • any_failed_ : ripple::detail::multi_runner_base< IsParent >::inner
  • diff --git a/functions_b.html b/functions_b.html index 2b057f87ae..b0254e46d3 100644 --- a/functions_b.html +++ b/functions_b.html @@ -94,7 +94,7 @@ $(function() {
  • badURI_ : ripple::ValidNFTokenPage
  • balance() : ripple::Resource::Consumer, ripple::Resource::Entry, ripple::Resource::Gossip::Item, ripple::Resource::Import::Item, ripple::Resource::Logic
  • Balance() : ripple::test::Balance< T >
  • -
  • balance : ripple::test::BalanceTransfer< T >, ripple::test::jtx::balance, ripple::test::jtx::Env, ripple::test::SEnv< T >
  • +
  • balance : ripple::test::BalanceTransfer< T >, ripple::test::jtx::balance, ripple::test::jtx::Env, ripple::test::SEnv< T >
  • balanceChanges() : ripple::PaymentSandbox
  • balanceChanges_ : ripple::TransfersNotFrozen
  • balanceChangeSign : ripple::TransfersNotFrozen::BalanceChange
  • diff --git a/functions_c.html b/functions_c.html index 0a51561e68..245fe5bb08 100644 --- a/functions_c.html +++ b/functions_c.html @@ -160,7 +160,7 @@ $(function() {
  • Char : Json::Reader
  • char_type : beast::basic_logstream< CharT, Traits >
  • charge() : ripple::Peer, ripple::PeerImp
  • -
  • Charge() : ripple::Resource::Charge
  • +
  • Charge() : ripple::Resource::Charge
  • charge() : ripple::Resource::Consumer, ripple::Resource::Logic, ripple::test::PeerPartial, ripple::test::TestPeer
  • CharT : beast::divider
  • check() : beast::SemanticVersion_test, ripple::BookStep< TIn, TOut, TDerived >, ripple::DirectIOfferCrossingStep, ripple::DirectIPaymentStep, ripple::DirectStepI< TDerived >, ripple::hardened_hash_test, ripple::Keylet, ripple::ProtocolVersion_test, ripple::PublicKey_test, ripple::RCLCensorshipDetector< TxID, Sequence >, ripple::RPC::LedgerHandler, ripple::RPC::VersionHandler, ripple::XRPEndpointStep< TDerived >
  • @@ -372,7 +372,7 @@ $(function() {
  • collector() : ripple::CollectorManager, ripple::CollectorManagerImp
  • collector_ : ripple::LedgerHistory
  • CollectorManagerImp() : ripple::CollectorManagerImp
  • -
  • CollectorRef() : ripple::test::csf::CollectorRef
  • +
  • CollectorRef() : ripple::test::csf::CollectorRef
  • Collectors() : ripple::test::csf::Collectors< Cs >
  • collectors : ripple::test::csf::Peer, ripple::test::csf::Sim
  • collectors_ : ripple::test::csf::CollectorRefs
  • @@ -386,7 +386,7 @@ $(function() {
  • Comp : beast::aged_associative_container_test_base::MaybeUnordered< Base, IsUnordered >
  • Compact() : Json::Compact
  • Comparator() : ripple::Cluster::Comparator
  • -
  • compare() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::KeyValueCompare, ripple::RCLTxSet, ripple::SField, ripple::SHAMap, ripple::test::csf::TxSet
  • +
  • compare() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::KeyValueCompare, ripple::RCLTxSet, ripple::SField, ripple::SHAMap, ripple::test::csf::TxSet
  • compares : ripple::ConsensusResult< Traits >
  • complete() : ripple::BaseHTTPPeer< Handler, Impl >, ripple::BaseWSPeer< Handler, Impl >, ripple::Session, ripple::SimpleWriter, ripple::Writer, ripple::WSSession
  • complete_ : ripple::BaseHTTPPeer< Handler, Impl >, ripple::TimeoutCounter
  • @@ -401,12 +401,12 @@ $(function() {
  • compression_test() : ripple::test::compression_test
  • compressionEnabled() : ripple::Peer, ripple::PeerImp, ripple::test::PeerPartial, ripple::test::TestPeer
  • compressionEnabled_ : ripple::PeerImp
  • -
  • CompT() : beast::aged_associative_container_test_base::CompT< T >
  • +
  • CompT() : beast::aged_associative_container_test_base::CompT< T >
  • computeDistance() : Json::ValueIteratorBase
  • computePathRanks() : ripple::Pathfinder
  • computeReserveReduction() : ripple::XRPEndpointOfferCrossingStep
  • cond_ : beast::unit_test::runner, ripple::OverlayImpl, ripple::PeerFinder::Checker< Protocol >, ripple::perf::PerfLogImp, ripple::Resource::ManagerImp, ripple::SHAMapStoreImp, ripple::short_read_test::Base, ripple::test::jtx::require
  • -
  • Condition() : ripple::cryptoconditions::Condition
  • +
  • Condition() : ripple::cryptoconditions::Condition
  • condition() : ripple::cryptoconditions::Fulfillment, ripple::cryptoconditions::PreimageSha256, ripple::RPC::LedgerHandler, ripple::RPC::VersionHandler
  • condition_ : ripple::RPC::Handler, ripple::ServerHandler
  • CondvarType : ripple::NodeStore::BatchWriter
  • @@ -418,7 +418,7 @@ $(function() {
  • config_ : ripple::ApplicationImp, ripple::detail::RippledCfgGuard, ripple::PeerFinder::Logic< Checker >
  • CONFIG_DIR : ripple::Config
  • CONFIG_FILE : ripple::Config
  • -
  • config_t() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t
  • +
  • config_t() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t
  • configFile() : ripple::detail::RippledCfgGuard
  • configFileExists() : ripple::detail::RippledCfgGuard
  • configFileName : ripple::Config
  • @@ -426,7 +426,7 @@ $(function() {
  • configInvalid_ : ripple::ValidatorKeys
  • ConfigSection() : ripple::ConfigSection
  • confuseMap() : ripple::tests::SHAMapSync_test
  • -
  • connect() : ripple::Overlay, ripple::OverlayImpl, ripple::PeerFinder::Slot, ripple::test::csf::BasicNetwork< Peer >, ripple::test::csf::Digraph< Vertex, EdgeData >, ripple::test::csf::Peer, ripple::test::csf::PeerGroup, ripple::test::Server_test
  • +
  • connect() : ripple::Overlay, ripple::OverlayImpl, ripple::PeerFinder::Slot, ripple::test::csf::BasicNetwork< Peer >, ripple::test::csf::Digraph< Vertex, EdgeData >, ripple::test::csf::Peer, ripple::test::csf::PeerGroup, ripple::test::Server_test
  • ConnectAttempt() : ripple::ConnectAttempt
  • connectCount() : ripple::PeerFinder::Counts
  • connected : ripple::PeerFinder::Slot, ripple::test::csf::Digraph< Vertex, EdgeData >
  • @@ -462,10 +462,10 @@ $(function() {
  • ConsequencesFactory : ripple::AMMBid, ripple::AMMClawback, ripple::AMMCreate, ripple::AMMDelete, ripple::AMMDeposit, ripple::AMMVote, ripple::AMMWithdraw, ripple::Batch, ripple::BridgeModify, ripple::CancelCheck, ripple::CancelOffer, ripple::CashCheck, ripple::Change, ripple::Clawback, ripple::CreateCheck, ripple::CreateOffer, ripple::CreateTicket, ripple::CredentialAccept, ripple::CredentialCreate, ripple::CredentialDelete, ripple::DelegateSet, ripple::DeleteAccount, ripple::DeleteOracle, ripple::DepositPreauth, ripple::DIDDelete, ripple::DIDSet, ripple::EscrowCancel, ripple::EscrowCreate, ripple::EscrowFinish, ripple::LedgerStateFix, ripple::MPTokenAuthorize, ripple::MPTokenIssuanceCreate, ripple::MPTokenIssuanceDestroy, ripple::MPTokenIssuanceSet, ripple::NFTokenAcceptOffer, ripple::NFTokenBurn, ripple::NFTokenCancelOffer, ripple::NFTokenCreateOffer, ripple::NFTokenMint, ripple::NFTokenModify, ripple::PayChanClaim, ripple::PayChanCreate, ripple::PayChanFund, ripple::Payment, ripple::PermissionedDomainDelete, ripple::PermissionedDomainSet, ripple::SetAccount, ripple::SetOracle, ripple::SetRegularKey, ripple::SetSignerList, ripple::SetTrust, ripple::VaultClawback, ripple::VaultCreate, ripple::VaultDelete, ripple::VaultDeposit, ripple::VaultSet, ripple::VaultWithdraw, ripple::XChainAddAccountCreateAttestation, ripple::XChainAddClaimAttestation, ripple::XChainClaim, ripple::XChainCommit, ripple::XChainCreateAccountCommit, ripple::XChainCreateBridge, ripple::XChainCreateClaimID
  • ConsequencesFactoryType : ripple::Transactor
  • considered_ : ripple::reduce_relay::Slot< clock_type >
  • -
  • console() : beast::Journal::Sink, beast::NullJournalSink, beast::WrappedSink
  • +
  • console() : beast::Journal::Sink, beast::NullJournalSink, beast::WrappedSink
  • const_buffer : ripple::ZeroCopyInputStream< Buffers >
  • const_buffers_type : ripple::json_body::reader, ripple::json_body::writer
  • -
  • const_iterator : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, Json::Value, ripple::base_uint< Bits, Tag >, ripple::BookDirs::const_iterator, ripple::Buffer, ripple::CanonicalTXSet, ripple::detail::ReadViewFwdRange< ValueType >, ripple::Dir::const_iterator, ripple::JobTypes, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >::const_iterator, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::SHAMap::const_iterator, ripple::Slice, ripple::STArray, ripple::test::csf::PeerGroup
  • +
  • const_iterator : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, Json::Value, ripple::base_uint< Bits, Tag >, ripple::BookDirs::const_iterator, ripple::Buffer, ripple::CanonicalTXSet, ripple::detail::ReadViewFwdRange< ValueType >, ripple::Dir::const_iterator, ripple::JobTypes, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >::const_iterator, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::SHAMap::const_iterator, ripple::Slice, ripple::STArray, ripple::test::csf::PeerGroup
  • const_iterator_to() : beast::List< T, Tag >
  • const_local_iterator : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >
  • const_pointer : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, ripple::base_uint< Bits, Tag >, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >, ripple::STLedgerEntry
  • @@ -478,7 +478,7 @@ $(function() {
  • consume() : ripple::AMMOffer< TIn, TOut >, ripple::SimpleWriter, ripple::TOffer< TIn, TOut >, ripple::Writer
  • consumed_ : ripple::AMMOffer< TIn, TOut >
  • consumeOffer() : ripple::BookStep< TIn, TOut, TDerived >
  • -
  • Consumer : ripple::InfoSub, ripple::Resource::Consumer
  • +
  • Consumer : ripple::InfoSub, ripple::Resource::Consumer
  • consumer : ripple::Resource::Import::Item, ripple::RPC::Context
  • consumer_ : ripple::PathRequest
  • consumeSeqProxy() : ripple::Transactor
  • diff --git a/functions_d.html b/functions_d.html index 14af92446f..693dba9214 100644 --- a/functions_d.html +++ b/functions_d.html @@ -160,8 +160,8 @@ $(function() {
  • deleteInterval : ripple::test::SHAMapStore_test
  • deleteInterval_ : ripple::SHAMapStoreImp
  • deleteLastPeer() : ripple::test::Network, ripple::test::OverlaySim
  • -
  • deleteOracle() : ripple::DeleteOracle
  • DeleteOracle() : ripple::DeleteOracle
  • +
  • deleteOracle() : ripple::DeleteOracle
  • deletePath_ : ripple::NodeStore::NuDBBackend
  • deletePeer() : ripple::OverlayImpl, ripple::reduce_relay::Slot< clock_type >, ripple::reduce_relay::Slots< clock_type >, ripple::test::Overlay, ripple::test::OverlaySim, ripple::test::Validator
  • deleteSLE() : ripple::DIDDelete
  • diff --git a/functions_e.html b/functions_e.html index 6e7c73c4e7..e8313caa4f 100644 --- a/functions_e.html +++ b/functions_e.html @@ -111,7 +111,7 @@ $(function() {
  • EncodedBlob() : ripple::NodeStore::EncodedBlob
  • encodeLengthLength() : ripple::Serializer
  • encoding : ripple::detail::AccountIdCache::CachedAccountID
  • -
  • end() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, Json::Value, ripple::AcceptedLedger, ripple::base_uint< Bits, Tag >, ripple::BookDirs, ripple::Buffer, ripple::CanonicalTXSet, ripple::Dir, ripple::JobTypes, ripple::KnownFormats< KeyType, Derived >, ripple::ledger_trie_detail::Span< Ledger >, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::ReadView::sles_type, ripple::ReadView::txs_type, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::Serializer, ripple::SHAMap, ripple::Slice, ripple::SOTemplate, ripple::STArray, ripple::STObject, ripple::STPath, ripple::STPathSet, ripple::STVector256, ripple::test::csf::PeerGroup, ripple::test::csf::Scheduler::queue_type, ripple::XChainAttestationsBase< TAttestation >
  • +
  • end() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, Json::Value, ripple::AcceptedLedger, ripple::base_uint< Bits, Tag >, ripple::BookDirs, ripple::Buffer, ripple::CanonicalTXSet, ripple::Dir, ripple::JobTypes, ripple::KnownFormats< KeyType, Derived >, ripple::ledger_trie_detail::Span< Ledger >, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::ReadView::sles_type, ripple::ReadView::txs_type, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::Serializer, ripple::SHAMap, ripple::Slice, ripple::SOTemplate, ripple::STArray, ripple::STObject, ripple::STPath, ripple::STPathSet, ripple::STVector256, ripple::test::csf::PeerGroup, ripple::test::csf::Scheduler::queue_type, ripple::XChainAttestationsBase< TAttestation >
  • end0_ : ripple::detail::RawStateTable::sles_iter_impl
  • end1_ : ripple::detail::RawStateTable::sles_iter_impl
  • end_ : beast::rfc2616::list_iterator, Json::Reader, Json::Reader::Token, ripple::ledger_trie_detail::Span< Ledger >, ripple::test::AMMCalc_test
  • @@ -135,7 +135,7 @@ $(function() {
  • Entry() : ripple::Resource::Entry, ripple::TaggedCache< Key, T, IsKeyCache, SharedWeakUnionPointerType, SharedPointerType, Hash, KeyEqual, Mutex >
  • entry_ : ripple::BookDirs::const_iterator, ripple::BookDirs
  • EntryIntrusiveList : ripple::Resource::Logic
  • -
  • Env() : ripple::test::jtx::Env
  • +
  • Env() : ripple::test::jtx::Env
  • env : ripple::test::jtx::Vault, ripple::test::LedgerReplayClient, ripple::test::LedgerServer, ripple::test::NetworkHistory, ripple::test::XChainSim_test::ChainStateTrack
  • ENV : ripple::test::XChainSim_test
  • env_ : ripple::PerfLog_test, ripple::test::Balance< T >, ripple::test::ClosureCounter_test, ripple::test::DNS_test, ripple::test::jtx::AMM, ripple::test::jtx::Env_ss, ripple::test::jtx::Env_ss::SignSubmitRunner, ripple::test::jtx::MPTTester, ripple::test::jtx::oracle::Oracle, ripple::test::reduce_relay_test, ripple::test::SEnv< T >
  • diff --git a/functions_f.html b/functions_f.html index 5e364026f9..8bb06cbc0e 100644 --- a/functions_f.html +++ b/functions_f.html @@ -112,7 +112,7 @@ $(function() {
  • FeeMultiSet : ripple::TxQ
  • FEES : ripple::Config
  • fees() : ripple::detail::ApplyViewBase, ripple::detail::CachedViewImpl
  • -
  • Fees() : ripple::Fees
  • +
  • Fees() : ripple::Fees
  • fees() : ripple::Ledger, ripple::OpenView, ripple::ReadView, ripple::Validations< Adaptor >
  • fees_ : ripple::Ledger
  • feeVote_ : ripple::RCLConsensus::Adaptor
  • @@ -224,7 +224,7 @@ $(function() {
  • firstUnsupportedExpected_ : ripple::AmendmentTableImpl
  • fixed() : ripple::PeerFinder::Counts
  • Fixed() : ripple::PeerFinder::Fixed
  • -
  • fixed() : ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Slot, ripple::PeerFinder::SlotImp
  • +
  • fixed() : ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Slot, ripple::PeerFinder::SlotImp
  • fixed_ : ripple::PeerFinder::Logic< Checker >
  • fixed_active() : ripple::PeerFinder::Counts
  • fixIndex() : ripple::LedgerHistory, ripple::LedgerMaster
  • diff --git a/functions_func.html b/functions_func.html index d1142b9be7..5c3ef67c08 100644 --- a/functions_func.html +++ b/functions_func.html @@ -103,11 +103,10 @@ $(function() {
  • acquireTxSet() : ripple::RCLConsensus::Adaptor, ripple::test::csf::Peer
  • activate() : ripple::OverlayImpl, ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Manager, ripple::PeerFinder::ManagerImp, ripple::PeerFinder::SlotImp
  • activateStallDetector() : ripple::LoadManager
  • -
  • activateTrustLinesToSelfFix() : ripple::Change
  • active() : beast::Journal, beast::Journal::Sink, beast::Journal::Stream, beast::NullJournalSink, beast::WrappedSink, ripple::test::SuiteJournalSink
  • Adaptor() : ripple::RCLConsensus::Adaptor, ripple::test::csf::Validations_test::Adaptor
  • adaptor() : ripple::Validations< Adaptor >
  • -
  • add() : beast::insight::detail::StatsDCollectorImp, beast::PropertyStream, beast::PropertyStream::Map, beast::PropertyStream::Set, beast::PropertyStream::Source, beast::unit_test::detail::reporter< class >::results, beast::unit_test::detail::reporter< class >::suite_results, ripple::AmendmentTableImpl, ripple::DecayingSample< Window, Clock >, ripple::DecayWindow< HalfLife, Clock >, ripple::detail::multi_runner_base< IsParent >, ripple::detail::multi_runner_base< IsParent >::inner, ripple::detail::results, ripple::detail::suite_results, ripple::JsonPropertyStream, ripple::KnownFormats< KeyType, Derived >, ripple::PeerFinder::Counts, ripple::PeerFinder::Livecache_test, ripple::Resource::Entry, ripple::short_read_test::Base, ripple::STAccount, ripple::STAmount, ripple::STArray, ripple::STBase, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject, ripple::STPathSet, ripple::STVector256, ripple::STXChainBridge, ripple::test::csf::CollectorRefs, ripple::test::csf::Validations_test::TestHarness, ripple::TxQ::TxQAccount, ripple::Validations< Adaptor >
  • +
  • add() : beast::insight::detail::StatsDCollectorImp, beast::PropertyStream, beast::PropertyStream::Map, beast::PropertyStream::Set, beast::PropertyStream::Source, beast::unit_test::detail::reporter< class >::results, beast::unit_test::detail::reporter< class >::suite_results, ripple::AmendmentTableImpl, ripple::DecayingSample< Window, Clock >, ripple::DecayWindow< HalfLife, Clock >, ripple::detail::multi_runner_base< IsParent >, ripple::detail::multi_runner_base< IsParent >::inner, ripple::detail::results, ripple::detail::suite_results, ripple::JsonPropertyStream, ripple::KnownFormats< KeyType, Derived >, ripple::PeerFinder::Counts, ripple::PeerFinder::Livecache_test, ripple::Resource::Entry, ripple::short_read_test::Base, ripple::STAccount, ripple::STAmount, ripple::STArray, ripple::STBase, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject, ripple::STPathSet, ripple::STVector256, ripple::STXChainBridge, ripple::test::csf::CollectorRefs, ripple::test::csf::Validations_test::TestHarness, ripple::TxQ::TxQAccount, ripple::Validations< Adaptor >
  • add16() : ripple::Serializer
  • add32() : ripple::Serializer
  • add64() : ripple::Serializer
  • diff --git a/functions_func_b.html b/functions_func_b.html index c8bf5320b8..9e067d9838 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -79,7 +79,7 @@ $(function() {
  • BadLexicalCast() : beast::BadLexicalCast
  • balance() : ripple::Resource::Consumer, ripple::Resource::Entry, ripple::Resource::Logic
  • Balance() : ripple::test::Balance< T >
  • -
  • balance() : ripple::test::jtx::balance, ripple::test::jtx::Env, ripple::test::SEnv< T >
  • +
  • balance() : ripple::test::jtx::balance, ripple::test::jtx::Env, ripple::test::SEnv< T >
  • balanceChanges() : ripple::PaymentSandbox
  • balanceHook() : ripple::PaymentSandbox, ripple::ReadView
  • balances() : ripple::test::jtx::AMM
  • diff --git a/functions_func_c.html b/functions_func_c.html index 6990aa8cba..8b4addd4bb 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -126,7 +126,7 @@ $(function() {
  • ceil_in() : ripple::Quality_test
  • ceil_log2() : ripple::ServerImpl< Handler >
  • ceil_out() : ripple::Quality_test
  • -
  • cend() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, ripple::base_uint< Bits, Tag >, ripple::Buffer, ripple::JobTypes, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::Slice, ripple::SOTemplate
  • +
  • cend() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, beast::List< T, Tag >, beast::LockFreeStack< Element, Tag >, beast::unit_test::detail::const_container< Container >, ripple::base_uint< Bits, Tag >, ripple::Buffer, ripple::JobTypes, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >, ripple::PeerFinder::Bootcache, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t, ripple::PublicKey, ripple::SecretKey, ripple::Section, ripple::Seed, ripple::Slice, ripple::SOTemplate
  • cert() : ripple::test::TrustedPublisherServer
  • ChainStateTrack() : ripple::test::XChainSim_test::ChainStateTrack
  • ChainStateTracker() : ripple::test::XChainSim_test::ChainStateTracker
  • @@ -152,7 +152,7 @@ $(function() {
  • checkBatchSingleSign() : ripple::STTx
  • checkCandidateSizes() : ripple::test::NegativeUNLVoteInternal_test
  • checkComplete() : ripple::PeerFinder::Logic< Checker >
  • -
  • checkContents() : beast::aged_associative_container_test_base
  • +
  • checkContents() : beast::aged_associative_container_test_base
  • checkContentsRefRef() : beast::aged_associative_container_test_base
  • checkCounting() : ripple::test::reduce_relay_test
  • checkCredentialsResponse() : ripple::test::DepositAuthorized_test
  • @@ -266,7 +266,7 @@ $(function() {
  • clientIsUnlimited() : ripple::GRPCServerImpl::CallData< Request, Response >
  • clock() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, ripple::detail::BasicFullBelowCache, ripple::Resource::ResourceManager_test::TestLogic, ripple::TaggedCache< Key, T, IsKeyCache, SharedWeakUnionPointerType, SharedPointerType, Hash, KeyEqual, Mutex >, ripple::test::csf::Scheduler, ripple::test::csf::Validations_test::TestHarness, ripple::tests::TestNodeFamily
  • clone() : ripple::GRPCServerImpl::CallData< Request, Response >, ripple::Processor, ripple::SHAMapAccountStateLeafNode, ripple::SHAMapInnerNode, ripple::SHAMapTreeNode, ripple::SHAMapTxLeafNode, ripple::SHAMapTxPlusMetaLeafNode, ripple::test::jtx::basic_prop, ripple::test::jtx::prop_type< T >, ripple::test::Manifest_test
  • -
  • close() : ripple::BaseHTTPPeer< Handler, Impl >, ripple::BasePeer< Handler, Impl >, ripple::BaseWSPeer< Handler, Impl >, ripple::ConnectAttempt, ripple::detail::WorkBase< Impl >, ripple::Door< Handler >, ripple::Door< Handler >::Detector, ripple::io_list, ripple::io_list::work, ripple::Logs::File, ripple::NodeStore::Backend, ripple::NodeStore::MemoryBackend, ripple::NodeStore::NuDBBackend, ripple::NodeStore::NullBackend, ripple::PeerImp, ripple::Server, ripple::ServerImpl< Handler >, ripple::Session, ripple::short_read_test::Base::Child, ripple::short_read_test::Base, ripple::short_read_test::Client::Connection, ripple::short_read_test::Server::Acceptor, ripple::short_read_test::Server::Connection, ripple::test::jtx::Env, ripple::test::SEnv< T >, ripple::WSSession
  • +
  • close() : ripple::BaseHTTPPeer< Handler, Impl >, ripple::BasePeer< Handler, Impl >, ripple::BaseWSPeer< Handler, Impl >, ripple::ConnectAttempt, ripple::detail::WorkBase< Impl >, ripple::Door< Handler >, ripple::Door< Handler >::Detector, ripple::io_list, ripple::io_list::work, ripple::Logs::File, ripple::NodeStore::Backend, ripple::NodeStore::MemoryBackend, ripple::NodeStore::NuDBBackend, ripple::NodeStore::NullBackend, ripple::PeerImp, ripple::Server, ripple::ServerImpl< Handler >, ripple::Session, ripple::short_read_test::Base::Child, ripple::short_read_test::Base, ripple::short_read_test::Client::Connection, ripple::short_read_test::Server::Acceptor, ripple::short_read_test::Server::Connection, ripple::test::jtx::Env, ripple::test::SEnv< T >, ripple::WSSession
  • closeAgree() : ripple::RCLCxLedger, ripple::test::csf::Ledger
  • closeAndReopen() : ripple::Logs::File
  • closed() : ripple::io_list, ripple::ServerImpl< Handler >, ripple::test::jtx::Env
  • diff --git a/functions_func_d.html b/functions_func_d.html index 8607ac9455..c9b2ff23cb 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -117,8 +117,8 @@ $(function() {
  • deleteIdlePeer() : ripple::reduce_relay::Slot< clock_type >
  • deleteIdlePeers() : ripple::OverlayImpl, ripple::reduce_relay::Slots< clock_type >, ripple::test::Overlay, ripple::test::OverlaySim
  • deleteLastPeer() : ripple::test::Network, ripple::test::OverlaySim
  • -
  • deleteOracle() : ripple::DeleteOracle
  • DeleteOracle() : ripple::DeleteOracle
  • +
  • deleteOracle() : ripple::DeleteOracle
  • deletePeer() : ripple::OverlayImpl, ripple::reduce_relay::Slot< clock_type >, ripple::reduce_relay::Slots< clock_type >, ripple::test::Overlay, ripple::test::OverlaySim, ripple::test::Validator
  • deleteSLE() : ripple::DIDDelete
  • deleteSubAccountHistory() : ripple::InfoSub
  • diff --git a/functions_func_f.html b/functions_func_f.html index 0381e6cbed..339fdf3f11 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -80,8 +80,8 @@ $(function() {
  • failParseEP() : beast::IP::IPEndpoint_test
  • failure() : ripple::PeerFinder::Fixed
  • fakeProcessTransaction() : ripple::RPC::JSONRPC_test
  • -
  • Family() : ripple::Family
  • -
  • family() : ripple::SHAMap
  • +
  • Family() : ripple::Family
  • +
  • family() : ripple::SHAMap
  • FastWriter() : Json::FastWriter
  • fatal() : beast::Journal
  • fdRequired() : ripple::Application, ripple::ApplicationImp, ripple::NodeStore::Backend, ripple::NodeStore::Database, ripple::NodeStore::MemoryBackend, ripple::NodeStore::NuDBBackend, ripple::NodeStore::NullBackend, ripple::SHAMapStore, ripple::SHAMapStoreImp
  • @@ -157,8 +157,8 @@ $(function() {
  • firstBelow() : ripple::SHAMap
  • firstUnsupportedExpected() : ripple::AmendmentTable, ripple::AmendmentTableImpl
  • fixed() : ripple::PeerFinder::Counts
  • -
  • Fixed() : ripple::PeerFinder::Fixed
  • -
  • fixed() : ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Slot, ripple::PeerFinder::SlotImp
  • +
  • Fixed() : ripple::PeerFinder::Fixed
  • +
  • fixed() : ripple::PeerFinder::Logic< Checker >, ripple::PeerFinder::Slot, ripple::PeerFinder::SlotImp
  • fixed_active() : ripple::PeerFinder::Counts
  • fixIndex() : ripple::LedgerHistory, ripple::LedgerMaster
  • fixMismatch() : ripple::LedgerMaster
  • diff --git a/functions_func_j.html b/functions_func_j.html index 1842485f4b..9479d48220 100644 --- a/functions_func_j.html +++ b/functions_func_j.html @@ -83,7 +83,7 @@ $(function() {
  • join() : beast::unit_test::thread, ripple::ClosureCounter< Ret_t, Args_t >, ripple::io_list, ripple::JobQueue::Coro, ripple::ValidatorSite
  • joinable() : beast::unit_test::thread
  • joined() : ripple::ClosureCounter< Ret_t, Args_t >
  • -
  • Journal() : beast::Journal
  • +
  • Journal() : beast::Journal
  • journal() : ripple::Application, ripple::ApplicationImp, ripple::BaseHTTPPeer< Handler, Impl >, ripple::Config, ripple::Family, ripple::Logs, ripple::NodeFamily, ripple::RCLValidationsAdaptor, ripple::Server, ripple::ServerImpl< Handler >, ripple::Session, ripple::tests::TestNodeFamily
  • JSON() : antithesis::JSON
  • json() : ripple::metrics::TxMetrics, ripple::NetworkOPsImp::StateAccounting, ripple::Overlay, ripple::OverlayImpl, ripple::Peer, ripple::PeerImp, ripple::test::jtx::Env, ripple::test::jtx::json, ripple::test::Path, ripple::test::PathSet, ripple::test::PeerPartial, ripple::test::TestPeer
  • diff --git a/functions_func_l.html b/functions_func_l.html index 5716f0a7b4..8938f64dda 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -128,8 +128,8 @@ $(function() {
  • linkDown() : ripple::test::Validator
  • links() : ripple::test::csf::BasicNetwork< Peer >
  • linkUp() : ripple::test::Validator
  • -
  • List() : beast::List< T, Tag >
  • -
  • list() : ripple::PeerFinder::ConnectHandouts, ripple::PeerFinder::RedirectHandouts, ripple::PeerFinder::SlotHandouts, ripple::PeerReservationTable, ripple::test::View_test
  • +
  • List() : beast::List< T, Tag >
  • +
  • list() : ripple::PeerFinder::ConnectHandouts, ripple::PeerFinder::RedirectHandouts, ripple::PeerFinder::SlotHandouts, ripple::PeerReservationTable, ripple::test::View_test
  • list_iterator() : beast::rfc2616::list_iterator
  • listed() : ripple::ValidatorList
  • listening_port() : ripple::PeerFinder::Slot, ripple::PeerFinder::SlotImp
  • diff --git a/functions_func_n.html b/functions_func_n.html index 713d8c9e61..d44173e582 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -160,7 +160,7 @@ $(function() {
  • NullHookImpl() : beast::insight::detail::NullHookImpl
  • NullJournalSink() : beast::NullJournalSink
  • NullMeterImpl() : beast::insight::detail::NullMeterImpl
  • -
  • Number() : ripple::Number
  • +
  • Number() : ripple::Number
  • number() : ripple::test::jtx::PrettyAmount
  • numberOfCurrentlyRunningTasks() : ripple::Workers
  • numberOfThreads() : ripple::ApplicationImp
  • diff --git a/functions_func_r.html b/functions_func_r.html index a755dd02a5..f01a80db39 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -94,7 +94,7 @@ $(function() {
  • rawTxInsert() : ripple::Ledger, ripple::OpenView, ripple::TxsRawView
  • rawTxInsertWithHash() : ripple::Ledger
  • rawView() : ripple::ApplyContext
  • -
  • RawView() : ripple::RawView
  • +
  • RawView() : ripple::RawView
  • rbegin() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >::chronological_t, beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::chronological_t, ripple::PeerFinder::detail::LivecacheBase::Hop< IsConst >, ripple::PeerFinder::Livecache< Allocator >::hops_t
  • RCLCensorshipDetector() : ripple::RCLCensorshipDetector< TxID, Sequence >
  • RCLConsensus() : ripple::RCLConsensus
  • @@ -239,7 +239,7 @@ $(function() {
  • RPCTrustLine() : ripple::RPCTrustLine
  • rules() : ripple::detail::ApplyViewBase, ripple::detail::CachedViewImpl, ripple::Ledger, ripple::OpenView, ripple::ReadView
  • Rules() : ripple::Rules
  • -
  • run() : beast::abstract_clock_test, beast::aged_map_test, beast::aged_multimap_test, beast::aged_multiset_test, beast::aged_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multimap_test, beast::aged_unordered_multiset_test, beast::aged_unordered_set_test, beast::basic_seconds_clock_test, beast::insight::detail::StatsDCollectorImp, beast::IP::IPEndpoint_test, beast::Journal_test, beast::LexicalCast_test, beast::PropertyStream_test, beast::SemanticVersion_test, beast::unit_test::print_test, beast::unit_test::runner, beast::unit_test::suite, beast::unit_test::suite_info, beast::unit_test::thread, beast::XXHasher_test, beast::Zero_test, io_latency_probe_test, Json::JsonObject_test, ripple::AccountCurrencies_test, ripple::AccountSet_test, ripple::AccountTxPaging_test, ripple::AmendmentBlocked_test, ripple::AmendmentTable_test, ripple::Application, ripple::ApplicationImp, ripple::Apply_test, ripple::BaseWSPeer< Handler, Impl >, ripple::BuildInfo_test, ripple::Check_test, ripple::Clawback_test, ripple::Config_test, ripple::Connect_test, ripple::ConnectAttempt, ripple::cryptoconditions::PreimageSha256_test, ripple::detail::Work, ripple::detail::WorkBase< Impl >, ripple::detail::WorkFile, ripple::Discrepancy_test, ripple::Door< Handler >::Detector, ripple::Door< Handler >, ripple::Feature_test, ripple::FileUtilities_test, ripple::FixNFTokenPageLinks_test, ripple::Freeze_test, ripple::GetCounts_test, ripple::hardened_hash_test, ripple::Hooks_test, ripple::InnerObjectFormatsParsedJSON_test, ripple::InnerObjectFormatsSerializer_test, ripple::IOUAmount_test, ripple::Issue_test, ripple::KeyCache_test, ripple::LedgerCleanerImp, ripple::LedgerClosed_test, ripple::LedgerData_test, ripple::LedgerHeader_test, ripple::LedgerLoad_test, ripple::LoadFeeTrack_test, ripple::LoadManager, ripple::Memo_test, ripple::NFTokenAllFeatures_test, ripple::NFTokenAuth_test, ripple::NFTokenBaseUtil_test, ripple::NFTokenBurn_test, ripple::NFTokenDir_test, ripple::NFTokenDisallowIncoming_test, ripple::NFTokenWOMintOffer_test, ripple::NFTokenWOModify_test, ripple::NodeStore::Backend_test, ripple::NodeStore::Database_test, ripple::NodeStore::NodeStoreBasic_test, ripple::NodeStore::NuDBFactory_test, ripple::NodeStore::tests::varint_test, ripple::NodeStore::Timing_test, ripple::NoRippleCheck_test, ripple::NoRippleCheckLimits_test, ripple::Number_test, ripple::OfferStream_test, ripple::OwnerInfo_test, ripple::PeerFinder::Livecache_test, ripple::PeerFinder::PeerFinder_test, ripple::PeerImp, ripple::Peers_test, ripple::perf::PerfLogImp, ripple::PerfLog_test, ripple::PlainHTTPPeer< Handler >, ripple::ProtocolVersion_test, ripple::PublicKey_test, ripple::Quality_test, ripple::Resource::ManagerImp, ripple::Resource::ResourceManager_test, ripple::RPC::AccountLines_test, ripple::RPC::codeString_test, ripple::RPC::fillJson_test, ripple::RPC::JSONRPC_test, ripple::RPC::LedgerRequestRPC_test, ripple::RPC::WalletPropose_test, ripple::SecretKey_test, ripple::Seed_test, ripple::SeqProxy_test, ripple::Serializer_test, ripple::SetRegularKey_test, ripple::SHAMapStoreImp, ripple::short_read_test::Client::Connection, ripple::short_read_test, ripple::short_read_test::Server::Acceptor, ripple::short_read_test::Server::Connection, ripple::SociDB_test, ripple::SSLHTTPPeer< Handler >, ripple::STAccount_test, ripple::STAmount_test, ripple::STInteger_test, ripple::STNumber_test, ripple::STObject_test, ripple::STParsedJSON_test, ripple::StringUtilities_test, ripple::STTx_test, ripple::STValidation_test, ripple::TaggedCache_test, ripple::TER_test, ripple::test::AccountDelete_test, ripple::test::AccountInfo_test, ripple::test::AccountObjects_test, ripple::test::AccountOffers_test, ripple::test::AccountTx_test, ripple::test::AMM_test, ripple::test::AMMCalc_test, ripple::test::AMMClawback_test, ripple::test::AMMExtended_test, ripple::test::AMMInfo_test, ripple::test::ApiVersion_test, ripple::test::base_uint_test, ripple::test::BasicNetwork_test, ripple::test::Batch_test, ripple::test::Book_test, ripple::test::BookChanges_test, ripple::test::BookDirs_test, ripple::test::Buffer_test, ripple::test::ByzantineFailureSim_test, ripple::test::ClosureCounter_test, ripple::test::compression_test, ripple::test::Consensus_test, ripple::test::Coroutine_test, ripple::test::Credentials_test, ripple::test::CrossingLimits_test, ripple::test::csf::Sim, ripple::test::csf::Validations_test, ripple::test::CurrentThreadName_test, ripple::test::Delegate_test, ripple::test::DeliveredAmount_test, ripple::test::DeliverMin_test, ripple::test::DepositAuth_test, ripple::test::DepositAuthorized_test, ripple::test::DepositPreauth_test, ripple::test::DetectCrash_test, ripple::test::DID_test, ripple::test::Digraph_test, ripple::test::Directory_test, ripple::test::DistributedValidators_test, ripple::test::DNS_test, ripple::test::Env_test, ripple::test::Escrow_test, ripple::test::EscrowToken_test, ripple::test::Expected_test, ripple::test::FeeVote_test, ripple::test::FindOversizeCross_test, ripple::test::Flow_manual_test, ripple::test::Flow_test, ripple::test::GatewayBalances_test, ripple::test::GetAmendments_test, ripple::test::Handler_test, ripple::test::handshake_test, ripple::test::HashRouter_test, ripple::test::Histogram_test, ripple::test::Invariants_test, ripple::test::JobQueue_test, ripple::test::join_test, ripple::test::jtx::oracle::GetAggregatePrice_test, ripple::test::jtx::oracle::Oracle_test, ripple::test::LedgerEntry_test, ripple::test::LedgerEntry_XChain_test, ripple::test::LedgerHistory_test, ripple::test::LedgerMaster_test, ripple::test::LedgerReplay_test, ripple::test::LedgerReplayer_test, ripple::test::LedgerReplayerLong_test, ripple::test::LedgerReplayerTimeout_test, ripple::test::LedgerRPC_test, ripple::test::LedgerTiming_test, ripple::test::LedgerTrie_test, ripple::test::LPTokenTransfer_test, ripple::test::Manifest_test, ripple::test::ManifestRPC_test, ripple::test::MPToken_test, ripple::test::MultiApiJson_test, ripple::test::MultiSign_test, ripple::test::NegativeUNL_test, ripple::test::NegativeUNLNoAmendment_test, ripple::test::NegativeUNLVoteFilterValidations_test, ripple::test::NegativeUNLVoteGoodScore_test, ripple::test::NegativeUNLVoteInternal_test, ripple::test::NegativeUNLVoteMaxListed_test, ripple::test::NegativeUNLVoteNewValidator_test, ripple::test::NegativeUNLVoteOffline_test, ripple::test::NegativeUNLVoteRetiredValidator_test, ripple::test::NegativeUNLVoteScoreTable_test, ripple::test::NetworkID_test, ripple::test::NetworkOPs_test, ripple::test::NoRipple_test, ripple::test::Offer_manual_test, ripple::test::OfferAllFeatures_test, ripple::test::OfferBaseUtil_test, ripple::test::OfferWOSmallQOffers_test, ripple::test::OversizeMeta_test, ripple::test::Path_test, ripple::test::PayChan_test, ripple::test::PaymentSandbox_test, ripple::test::PayStrand_test, ripple::test::PendingSaves_test, ripple::test::PermissionedDEX_test, ripple::test::PermissionedDomains_test, ripple::test::PlumpBook_test, ripple::test::PseudoTx_test, ripple::test::RCLCensorshipDetector_test, ripple::test::RCLValidations_test, ripple::test::reduce_relay_simulate_test, ripple::test::reduce_relay_test, ripple::test::ReducedOffer_test, ripple::test::Regression_test, ripple::test::RobustTransaction_test, ripple::test::Roles_test, ripple::test::RPCCall_test, ripple::test::RPCHelpers_test, ripple::test::RPCOverload_test, ripple::test::ScaleFreeSim_test, ripple::test::Scheduler_test, ripple::test::Server_test, ripple::test::ServerDefinitions_test, ripple::test::ServerInfo_test, ripple::test::ServerStatus_test, ripple::test::SetAuth_test, ripple::test::SetTrust_test, ripple::test::SHAMapStore_test, ripple::test::Simulate_test, ripple::test::SkipList_test, ripple::test::STIssue_test, ripple::test::Subscribe_test, ripple::test::TheoreticalQuality_test, ripple::test::ThinBook_test, ripple::test::traffic_count_test, ripple::test::Transaction_ordering_test, ripple::test::tx_reduce_relay_test::PeerTest, ripple::test::tx_reduce_relay_test, ripple::test::TxQMetaInfo_test, ripple::test::TxQPosNegFlows_test, ripple::test::units_test, ripple::test::ValidatorInfo_test, ripple::test::ValidatorKeys_test, ripple::test::ValidatorList_test, ripple::test::ValidatorRPC_test, ripple::test::ValidatorSite_test, ripple::test::View_test, ripple::test::WSClient_test, ripple::test::XChain_test, ripple::test::XChainSim_test, ripple::tests::cluster_test, ripple::tests::FetchPack_test, ripple::tests::IntrusiveShared_test, ripple::tests::SHAMap_test, ripple::tests::SHAMapPathProof_test, ripple::tests::SHAMapSync_test, ripple::Ticket_test, ripple::Transaction_test, ripple::TransactionEntry_test, ripple::TransactionHistory_test, ripple::TrustAndBalance_test, ripple::Vault_test, ripple::Version_test, ripple::Workers::Worker, ripple::Workers_test, ripple::WSSession, ripple::XRPAmount_test
  • +
  • run() : beast::abstract_clock_test, beast::aged_map_test, beast::aged_multimap_test, beast::aged_multiset_test, beast::aged_set_test, beast::aged_unordered_map_test, beast::aged_unordered_multimap_test, beast::aged_unordered_multiset_test, beast::aged_unordered_set_test, beast::basic_seconds_clock_test, beast::insight::detail::StatsDCollectorImp, beast::IP::IPEndpoint_test, beast::Journal_test, beast::LexicalCast_test, beast::PropertyStream_test, beast::SemanticVersion_test, beast::unit_test::print_test, beast::unit_test::runner, beast::unit_test::suite, beast::unit_test::suite_info, beast::unit_test::thread, beast::XXHasher_test, beast::Zero_test, io_latency_probe_test, Json::JsonObject_test, ripple::AccountCurrencies_test, ripple::AccountSet_test, ripple::AccountTxPaging_test, ripple::AmendmentBlocked_test, ripple::AmendmentTable_test, ripple::Application, ripple::ApplicationImp, ripple::Apply_test, ripple::BaseWSPeer< Handler, Impl >, ripple::BuildInfo_test, ripple::Check_test, ripple::Clawback_test, ripple::Config_test, ripple::Connect_test, ripple::ConnectAttempt, ripple::cryptoconditions::PreimageSha256_test, ripple::detail::Work, ripple::detail::WorkBase< Impl >, ripple::detail::WorkFile, ripple::Discrepancy_test, ripple::Door< Handler >::Detector, ripple::Door< Handler >, ripple::Feature_test, ripple::FileUtilities_test, ripple::FixNFTokenPageLinks_test, ripple::Freeze_test, ripple::GetCounts_test, ripple::hardened_hash_test, ripple::Hooks_test, ripple::InnerObjectFormatsParsedJSON_test, ripple::InnerObjectFormatsSerializer_test, ripple::IOUAmount_test, ripple::Issue_test, ripple::KeyCache_test, ripple::LedgerCleanerImp, ripple::LedgerClosed_test, ripple::LedgerData_test, ripple::LedgerHeader_test, ripple::LedgerLoad_test, ripple::LoadFeeTrack_test, ripple::LoadManager, ripple::Memo_test, ripple::NFTokenAllFeatures_test, ripple::NFTokenAuth_test, ripple::NFTokenBaseUtil_test, ripple::NFTokenBurn_test, ripple::NFTokenDir_test, ripple::NFTokenDisallowIncoming_test, ripple::NFTokenWOMintOffer_test, ripple::NFTokenWOModify_test, ripple::NodeStore::Backend_test, ripple::NodeStore::Database_test, ripple::NodeStore::NodeStoreBasic_test, ripple::NodeStore::NuDBFactory_test, ripple::NodeStore::tests::varint_test, ripple::NodeStore::Timing_test, ripple::NoRippleCheck_test, ripple::NoRippleCheckLimits_test, ripple::Number_test, ripple::OfferStream_test, ripple::OwnerInfo_test, ripple::PeerFinder::Livecache_test, ripple::PeerFinder::PeerFinder_test, ripple::PeerImp, ripple::Peers_test, ripple::perf::PerfLogImp, ripple::PerfLog_test, ripple::PlainHTTPPeer< Handler >, ripple::ProtocolVersion_test, ripple::PublicKey_test, ripple::Quality_test, ripple::Resource::ManagerImp, ripple::Resource::ResourceManager_test, ripple::RPC::AccountLines_test, ripple::RPC::codeString_test, ripple::RPC::fillJson_test, ripple::RPC::JSONRPC_test, ripple::RPC::LedgerRequestRPC_test, ripple::RPC::WalletPropose_test, ripple::SecretKey_test, ripple::Seed_test, ripple::SeqProxy_test, ripple::Serializer_test, ripple::SetRegularKey_test, ripple::SHAMapStoreImp, ripple::short_read_test::Client::Connection, ripple::short_read_test, ripple::short_read_test::Server::Acceptor, ripple::short_read_test::Server::Connection, ripple::SociDB_test, ripple::SSLHTTPPeer< Handler >, ripple::STAccount_test, ripple::STAmount_test, ripple::STInteger_test, ripple::STNumber_test, ripple::STObject_test, ripple::STParsedJSON_test, ripple::StringUtilities_test, ripple::STTx_test, ripple::STValidation_test, ripple::TaggedCache_test, ripple::TER_test, ripple::test::AccountDelete_test, ripple::test::AccountInfo_test, ripple::test::AccountObjects_test, ripple::test::AccountOffers_test, ripple::test::AccountTx_test, ripple::test::AMM_test, ripple::test::AMMCalc_test, ripple::test::AMMClawback_test, ripple::test::AMMExtended_test, ripple::test::AMMInfo_test, ripple::test::ApiVersion_test, ripple::test::base_uint_test, ripple::test::BasicNetwork_test, ripple::test::Batch_test, ripple::test::Book_test, ripple::test::BookChanges_test, ripple::test::BookDirs_test, ripple::test::Buffer_test, ripple::test::ByzantineFailureSim_test, ripple::test::ClosureCounter_test, ripple::test::compression_test, ripple::test::Consensus_test, ripple::test::Coroutine_test, ripple::test::Credentials_test, ripple::test::CrossingLimits_test, ripple::test::csf::Sim, ripple::test::csf::Validations_test, ripple::test::CurrentThreadName_test, ripple::test::Delegate_test, ripple::test::DeliveredAmount_test, ripple::test::DeliverMin_test, ripple::test::DepositAuth_test, ripple::test::DepositAuthorized_test, ripple::test::DepositPreauth_test, ripple::test::DetectCrash_test, ripple::test::DID_test, ripple::test::Digraph_test, ripple::test::Directory_test, ripple::test::DistributedValidators_test, ripple::test::DNS_test, ripple::test::Env_test, ripple::test::Escrow_test, ripple::test::EscrowToken_test, ripple::test::Expected_test, ripple::test::FeeVote_test, ripple::test::FindOversizeCross_test, ripple::test::Flow_manual_test, ripple::test::Flow_test, ripple::test::GatewayBalances_test, ripple::test::GetAmendments_test, ripple::test::Handler_test, ripple::test::handshake_test, ripple::test::HashRouter_test, ripple::test::Histogram_test, ripple::test::Invariants_test, ripple::test::JobQueue_test, ripple::test::join_test, ripple::test::jtx::oracle::GetAggregatePrice_test, ripple::test::jtx::oracle::Oracle_test, ripple::test::LedgerEntry_test, ripple::test::LedgerEntry_XChain_test, ripple::test::LedgerHistory_test, ripple::test::LedgerMaster_test, ripple::test::LedgerReplay_test, ripple::test::LedgerReplayer_test, ripple::test::LedgerReplayerLong_test, ripple::test::LedgerReplayerTimeout_test, ripple::test::LedgerRPC_test, ripple::test::LedgerTiming_test, ripple::test::LedgerTrie_test, ripple::test::LPTokenTransfer_test, ripple::test::Manifest_test, ripple::test::ManifestRPC_test, ripple::test::MPToken_test, ripple::test::MultiApiJson_test, ripple::test::MultiSign_test, ripple::test::NegativeUNL_test, ripple::test::NegativeUNLNoAmendment_test, ripple::test::NegativeUNLVoteFilterValidations_test, ripple::test::NegativeUNLVoteGoodScore_test, ripple::test::NegativeUNLVoteInternal_test, ripple::test::NegativeUNLVoteMaxListed_test, ripple::test::NegativeUNLVoteNewValidator_test, ripple::test::NegativeUNLVoteOffline_test, ripple::test::NegativeUNLVoteRetiredValidator_test, ripple::test::NegativeUNLVoteScoreTable_test, ripple::test::NetworkID_test, ripple::test::NetworkOPs_test, ripple::test::NoRipple_test, ripple::test::Offer_manual_test, ripple::test::OfferAllFeatures_test, ripple::test::OfferBaseUtil_test, ripple::test::OfferWOSmallQOffers_test, ripple::test::OversizeMeta_test, ripple::test::Path_test, ripple::test::PayChan_test, ripple::test::PaymentSandbox_test, ripple::test::PayStrand_test, ripple::test::PendingSaves_test, ripple::test::PermissionedDEX_test, ripple::test::PermissionedDomains_test, ripple::test::PlumpBook_test, ripple::test::PseudoTx_test, ripple::test::RCLCensorshipDetector_test, ripple::test::RCLValidations_test, ripple::test::reduce_relay_simulate_test, ripple::test::reduce_relay_test, ripple::test::ReducedOffer_test, ripple::test::Regression_test, ripple::test::RobustTransaction_test, ripple::test::Roles_test, ripple::test::RPCCall_test, ripple::test::RPCHelpers_test, ripple::test::RPCOverload_test, ripple::test::ScaleFreeSim_test, ripple::test::Scheduler_test, ripple::test::Server_test, ripple::test::ServerDefinitions_test, ripple::test::ServerInfo_test, ripple::test::ServerStatus_test, ripple::test::SetAuth_test, ripple::test::SetTrust_test, ripple::test::SHAMapStore_test, ripple::test::Simulate_test, ripple::test::SkipList_test, ripple::test::STIssue_test, ripple::test::Subscribe_test, ripple::test::TheoreticalQuality_test, ripple::test::ThinBook_test, ripple::test::traffic_count_test, ripple::test::Transaction_ordering_test, ripple::test::tx_reduce_relay_test::PeerTest, ripple::test::tx_reduce_relay_test, ripple::test::TxQMetaInfo_test, ripple::test::TxQPosNegFlows_test, ripple::test::units_test, ripple::test::ValidatorInfo_test, ripple::test::ValidatorKeys_test, ripple::test::ValidatorList_test, ripple::test::ValidatorRPC_test, ripple::test::ValidatorSite_test, ripple::test::View_test, ripple::test::WSClient_test, ripple::test::XChain_test, ripple::test::XChainSim_test, ripple::tests::cluster_test, ripple::tests::FetchPack_test, ripple::tests::IntrusiveShared_test, ripple::tests::SHAMap_test, ripple::tests::SHAMapPathProof_test, ripple::tests::SHAMapSync_test, ripple::Ticket_test, ripple::Transaction_test, ripple::TransactionEntry_test, ripple::TransactionHistory_test, ripple::TrustAndBalance_test, ripple::Vault_test, ripple::Version_test, ripple::Workers::Worker, ripple::Workers_test, ripple::WSSession, ripple::XRPAmount_test
  • run_each() : beast::unit_test::runner
  • run_each_if() : beast::unit_test::runner
  • run_if() : beast::unit_test::runner
  • diff --git a/functions_func_v.html b/functions_func_v.html index 34a8fe303f..81d6301bf3 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -112,18 +112,18 @@ $(function() {
  • Value() : Json::Value
  • value() : ripple::Asset, ripple::DecayingSample< Window, Clock >, ripple::DecayWindow< HalfLife, Clock >
  • Value() : ripple::detail::DeferredCredits::Value, ripple::detail::LocalValues::Value< T >
  • -
  • value() : ripple::Expected< T, E >, ripple::MPTAmount, ripple::SeqProxy, ripple::STAccount, ripple::STAmount, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject::Proxy< T >, ripple::STVector256, ripple::STXChainBridge, ripple::test::jtx::accountIDField, ripple::test::jtx::JTxField< SField, StoredValue, OutputValue >, ripple::test::jtx::PrettyAmount, ripple::test::jtx::timePointField, ripple::test::jtx::uint256Field, ripple::test::jtx::valueUnitField< SField, UnitTag, ValueType >, ripple::Unexpected< E >, ripple::unit::ValueUnit< UnitTag, T >, ripple::XRPAmount
  • +
  • value() : ripple::Expected< T, E >, ripple::MPTAmount, ripple::SeqProxy, ripple::STAccount, ripple::STAmount, ripple::STBitString< Bits >, ripple::STBlob, ripple::STCurrency, ripple::STInteger< Integer >, ripple::STIssue, ripple::STNumber, ripple::STObject::Proxy< T >, ripple::STVector256, ripple::STXChainBridge, ripple::test::jtx::accountIDField, ripple::test::jtx::JTxField< SField, StoredValue, OutputValue >, ripple::test::jtx::PrettyAmount, ripple::test::jtx::timePointField, ripple::test::jtx::uint256Field, ripple::test::jtx::valueUnitField< SField, UnitTag, ValueType >, ripple::Unexpected< E >, ripple::unit::ValueUnit< UnitTag, T >, ripple::XRPAmount
  • value_comp() : beast::detail::aged_ordered_container< IsMulti, IsMap, Key, T, Clock, Compare, Allocator >
  • value_hash() : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t
  • value_or() : ripple::Section, ripple::STObject::OptionalProxy< T >
  • -
  • ValueConstIterator() : Json::ValueConstIterator
  • +
  • ValueConstIterator() : Json::ValueConstIterator
  • ValueEntry() : ripple::TaggedCache< Key, T, IsKeyCache, SharedWeakUnionPointerType, SharedPointerType, Hash, KeyEqual, Mutex >::ValueEntry
  • ValueHash() : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::ValueHash
  • -
  • ValueIterator() : Json::ValueIterator
  • +
  • ValueIterator() : Json::ValueIterator
  • ValueIteratorBase() : Json::ValueIteratorBase
  • ValueProxy() : ripple::STObject::ValueProxy< T >
  • values() : beast::aged_associative_container_test_base::MaybeMap< Base, IsMap >, beast::aged_associative_container_test_base::MaybeMap< Base, true >, ripple::Section
  • -
  • ValueUnit() : ripple::unit::ValueUnit< UnitTag, T >
  • +
  • ValueUnit() : ripple::unit::ValueUnit< UnitTag, T >
  • varint_traits() : ripple::NodeStore::varint_traits< T, true >
  • VaultClawback() : ripple::VaultClawback
  • VaultCreate() : ripple::VaultCreate
  • @@ -141,8 +141,8 @@ $(function() {
  • VersionHandler() : ripple::RPC::VersionHandler
  • veto() : ripple::AmendmentTable, ripple::AmendmentTableImpl
  • via_offers_via_gateway() : ripple::test::AMMExtended_test, ripple::test::Path_test
  • -
  • view() : ripple::ApplyContext, ripple::Transactor
  • -
  • visit() : ripple::ApplyContext, ripple::ApplyViewImpl, ripple::detail::ApplyStateTable, ripple::detail::MultiApiJson< MinVer, MaxVer >
  • +
  • view() : ripple::ApplyContext, ripple::Transactor
  • +
  • visit() : ripple::ApplyContext, ripple::ApplyViewImpl, ripple::detail::ApplyStateTable, ripple::detail::MultiApiJson< MinVer, MaxVer >
  • visitDifferences() : ripple::SHAMap
  • visitEntry() : ripple::AccountRootsDeletedClean, ripple::AccountRootsNotDeleted, ripple::InvariantChecker_PROTOTYPE, ripple::LedgerEntryTypesMatch, ripple::NFTokenCountTracking, ripple::NoBadOffers, ripple::NoDeepFreezeTrustLinesWithoutFreeze, ripple::NoXRPTrustLines, ripple::NoZeroEscrow, ripple::TransactionFeeCheck, ripple::TransfersNotFrozen, ripple::ValidAMM, ripple::ValidClawback, ripple::ValidMPTIssuance, ripple::ValidNewAccountRoot, ripple::ValidNFTokenPage, ripple::ValidPermissionedDEX, ripple::ValidPermissionedDomain, ripple::ValidPseudoAccounts, ripple::ValidVault, ripple::XRPBalanceChecks, ripple::XRPNotCreated
  • visitLeaves() : ripple::SHAMap
  • diff --git a/functions_g.html b/functions_g.html index 02a77d7d12..250a6fd9b6 100644 --- a/functions_g.html +++ b/functions_g.html @@ -567,8 +567,9 @@ $(function() {
  • granularPermissionMap_ : ripple::Permission
  • granularTxTypeMap_ : ripple::Permission
  • graph() : ripple::test::csf::BasicNetwork< Peer >
  • -
  • Graph : ripple::test::csf::Digraph< Vertex, EdgeData >, ripple::test::csf::TrustGraph< Peer >
  • +
  • Graph : ripple::test::csf::Digraph< Vertex, EdgeData >
  • graph() : ripple::test::csf::TrustGraph< Peer >
  • +
  • Graph : ripple::test::csf::TrustGraph< Peer >
  • graph_ : ripple::test::csf::Digraph< Vertex, EdgeData >, ripple::test::csf::TrustGraph< Peer >
  • group() : ripple::CollectorManager, ripple::CollectorManagerImp
  • groupCfast : ripple::test::Consensus_test::Disruptor
  • diff --git a/functions_h.html b/functions_h.html index a7a98eee53..7e840828c8 100644 --- a/functions_h.html +++ b/functions_h.html @@ -116,7 +116,7 @@ $(function() {
  • hash1 : ripple::RPC::LedgerRequestRPC_test
  • hash_ : ripple::SHAMapHash, ripple::SHAMapTreeNode, ripple::test::jtx::account_txn_id, ripple::test::jtx::invoice_id, ripple::TimeoutCounter
  • hash_append : beast::IP::Endpoint, ripple::base_uint< Bits, Tag >, ripple::detail::test_user_type_free< T >, ripple::detail::test_user_type_member< T >, ripple::PeerReservation, ripple::RCLCxPeerPos, ripple::SHAMapHash, ripple::test::csf::Ledger::Instance, ripple::unsigned_integer< Bits, UInt >, ripple::ValidatorList
  • -
  • hash_function() : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::ValueHash
  • +
  • hash_function() : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::config_t, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >::ValueHash
  • hash_value_ : ripple::RippleLineCache::AccountKey, ripple::STPathElement
  • hasher : beast::detail::aged_unordered_container< IsMulti, IsMap, Key, T, Clock, Hash, KeyEqual, Allocator >, ripple::base_uint< Bits, Tag >, ripple::partitioned_unordered_map< Key, Value, Hash, Pred, Alloc >
  • hasher_ : ripple::detail::AccountIdCache, ripple::RippleLineCache
  • diff --git a/functions_i.html b/functions_i.html index 852589c851..db891adf88 100644 --- a/functions_i.html +++ b/functions_i.html @@ -74,18 +74,20 @@ $(function() {

    - i -