- Created a common doWithdraw function for VaultWithdraw and
LoanBrokerCoverWithdraw. Added verifyDepositPreauth to it, so that
both transactions will get the check.
- Add a missing null check to LoanBrokerSet, and add log messages to the
existing checks.
- Call verifyDepositAuth in VaultWithdraw and LoanBrokerCoverWithdraw to
a destination.
- Update a couple of impossible error returns to log a message, but
exclude from coverage.
- Fail if the LoanBroker.LoanSequence overflows to 0.
- removeEmptyHolding will succeed if the account is the issuer
- If it encounters a trust line in that state, the line will always be
deleted.
- If it encounters an MPTToken in that state, which should be
impossible, the token will be deleted if it doesn't have a balance.
- Revert Payment transactor (Payment.*) back to what is in "develop".
- Change LoanBrokerCoverWithdraw to do a direct transfer, whether it's
too the account or the destination. Similar to VaultWithdraw, and as
specified
- https://github.com/XRPLF/rippled/pull/5270#discussion_r2554560222
- Rename the overload of constructRoundedLoanState that takes components
as inputs to constructLoanState. The original function did no rounding
or enforcement of the inputs being rounded.
- Left the overload constructRoundedLoanState(SLE::const_ref loan)
alone, because Loan objects are assumed to be rounded.
- Optimize final payment by checking and returning that case before
doing any other computations. Removes some asserts that weren't really
adding value.
- Rewrite "Asset::native()" and "integral()" to use std::visit.
- Improve documentation for the LoanPay transaction flags:
tfLoanFullPayment, tfLoanLatePayment
- Use a lambda to defensively guarantee that "tx" can not affect the
"signerCount" in "LoanSet::calculateBaseFee" # Please enter the commit
message for your changes. Lines starting
- Add some test cases to improve coverage, and exclude some lines from
coverage.
- Rounds the Broker.DebtTotal to the Vault scale any time it is
modified. This should reduce rounding errors.
- Ensure that no debt is left for the Broker after the last loan is
deleted. This ensures that any accumulated rounding errors are
resolved.
If the config disables SQL db usage, such as a validator:
```
[ledger_tx_tables]
use_tx_tables = 0
```
then the pointer to DB engine is null, but it was still resolved during startup. Although it didn't crash in Release mode, possibly due to the compiler optimizing it away, it did crash in Debug mode. This change explicitly checks for the validity of the pointer and generates a runtime error if not set.