Commit Graph

14153 Commits

Author SHA1 Message Date
Ed Hennis
4c28e750ff Review feedback from @gregtatcam: compute vs. calculate
- Rename the LendingHelper functions that started with `calculate` to
  start with `compute`.
2025-11-23 21:41:38 -05:00
Ed Hennis
4ba2514bfa Review feedback from @gregtatcam: LoanDeltas
- Renamed to LoanStateDeltas, and document what it's for
2025-11-23 21:28:09 -05:00
Ed Hennis
27a7138f88 Review feedback from @gregtatcam: constructRoundedLoanState
- 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.
2025-11-23 21:09:56 -05:00
Ed Hennis
36c1dd18ee Review feedback from @Tapanito: final payment
- Optimize final payment by checking and returning that case before
  doing any other computations. Removes some asserts that weren't really
  adding value.
2025-11-23 17:28:32 -05:00
Ed Hennis
deab24b580 Review feedback from @gregtatcam: full interest
- Found computed full interest downward, per spec.
2025-11-23 17:10:15 -05:00
Ed Hennis
58497541c7 Review feedback from @gregtatcam: LoanPay flags
- Used std::popcount instead of a loop to check for mutually exclusive
  flags
2025-11-23 15:29:48 -05:00
Ed Hennis
b8ad6d3950 Review feedback from @a1q123456: LoanDelete
- Update the ValidLoan invariant to guarantee that Loan fields are
  consistent for the paid off and not paid off state.
2025-11-23 14:58:45 -05:00
Ed Hennis
63724e4405 Review feedback from @gregtatcam: seconds per year
- Define a constexpr secondsInYear in LedgerHelpers.h
2025-11-23 00:03:52 -05:00
Ed Hennis
a3b2ce91de Review feedback from @gregtatcam: frozen broker pseudo-account
- LoanSet needs to fail if the broker pseudo-account is deep frozen,
  because it needs to be able to receive fees if the broker owner can't.
2025-11-22 23:45:39 -05:00
Ed Hennis
1ceff3dde7 Review feedback from @greptatcam: getStartDate
- Make getStartDate helper in LoanSet static.
2025-11-22 23:36:17 -05:00
Ed Hennis
2fb9a6a292 Review feedback from @Tapanito: tecKILLED logs
- Log messages explaining Loan-related tecKILLED returns.
2025-11-22 23:06:12 -05:00
Ed Hennis
e25bae5e78 Review feedback from @Tapanito
- Check for zero interest in loanAccruedInterest
- Fix a couple of errors from earlier commits
2025-11-22 22:56:40 -05:00
Ed Hennis
17eaa51378 Update src/xrpld/app/misc/detail/LendingHelpers.cpp
- Optimization to skip multiplication.

Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
2025-11-22 23:49:19 -04:00
Ed Hennis
2f410148f1 Update src/xrpld/app/misc/detail/LendingHelpers.cpp
- Log a warning if a full payment fails because it's the last payment.

Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
2025-11-22 23:40:19 -04:00
Ed Hennis
fa2dea84c2 Review feedback from @gregtatcam: STAmount
- Fix a couple of typos.
- Make fewer unneeded copies in roundToScale.
2025-11-22 22:30:06 -05:00
Ed Hennis
f8ee979ff4 Review feedback from @gregtatcam
- Add a comment explaining the formula in LoanManage::owedToVault
- Make owedToVault static
2025-11-22 21:48:46 -05:00
Ed Hennis
1c38bbdf45 Review feedback from @gregtatcam
- Remove unneeded proxy variables. Set the fields directly.
2025-11-22 21:33:30 -05:00
Ed Hennis
590f69cd4c Add comment to totalPaidToVaultForDebt in LoanPay.cpp
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com>
2025-11-22 21:24:42 -05:00
Ed Hennis
4c9a96a17b Review feedback from @gregtatcam
- No need to subtract takeFromSender in rippleSendMultiMPT if the sender
  is the issuer.
2025-11-22 21:11:06 -05:00
Ed Hennis
b82481858a Review feedback from @gregtatcam
- Rename "accountCanSpend" to "accountSpendabled".
- Change some getIssuer() local vars to use references.
2025-11-22 20:57:34 -05:00
Ed Hennis
8bb162ce52 Review feedback from @gregtatcam
- Rewrite "Asset::native()" and "integral()" to use std::visit.
- Improve documentation for the LoanPay transaction flags:
  tfLoanFullPayment, tfLoanLatePayment
2025-11-22 19:36:50 -05:00
Ed Hennis
d353b0ec04 Review feedback
- 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
2025-11-22 16:14:54 -05:00
Ed Hennis
973a105959 Review feedback: test coverage, round debt total
- 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.
2025-11-22 16:07:07 -05:00
Ed Hennis
1cec91e72d Move protocol.h values into namespace Lending 2025-11-21 17:20:43 -05:00
Ed Hennis
b76cd60a12 fixup! Restore code that needs to be amendment gated 2025-11-21 16:39:44 -05:00
Ed Hennis
cc9b6fc68c Restore code that needs to be amendment gated 2025-11-21 14:46:34 -05:00
Ed Hennis
66da6a8608 Merge branch 'develop' into ximinez/lending-XLS-66 2025-11-21 12:47:43 -05:00
Jingchen
fb74dc28e1 chore: Clean up comment in NetworkOps_test.cpp (#6066)
This change removes a copyright notice that was accidentally copied over from another file.
2025-11-21 17:11:00 +00:00
Pratik Mankawde
e4dccfd49b refactor: Retire DisallowIncoming amendment (#6045)
Amendments activated for more than 2 years can be retired. This change retires the DisallowIncoming amendment.
2025-11-21 15:18:00 +00:00
Jingchen
57f4b4eb7f refactor: Retire Checks amendment (#6055)
Amendments activated for more than 2 years can be retired. This change retires the Checks amendment.
2025-11-21 14:19:43 +00:00
Ayaz Salikhov
adbeb94c2b ci: Only upload artifacts in XRPLF repo owner (#6060)
This change prevents uploading too many artifacts in non-public repositories.
2025-11-20 18:09:03 +00:00
Mayukha Vadari
a3d4be4eaf fix: Set correct index for limit in book_offers CLI (#6043)
This change fixes an indexing typo in the `book_offers` CLI processing, and does not affect the HTTPS/WS RPC processing.
2025-11-20 06:37:28 -05:00
Ed Hennis
8a1f244682 Updated overpayment processing
- Added a test for RIPD-4125
2025-11-20 00:17:33 -05:00
Olek
6ff495fd9b Fix: Perform array size check (#6030)
The `ledger_entry` and `deposit_preauth` requests require an array of credentials. However, the array size is not checked before is gets processing. This fix adds checks and return errors in case array size is too big.
2025-11-19 16:58:18 +00:00
Ed Hennis
bd0b651891 Merge branch 'develop' into ximinez/lending-XLS-66 2025-11-18 22:39:17 -05:00
sunnyraindy
ad37461ab2 chore: Fix some typos in comments (#6040) 2025-11-18 20:21:35 -05:00
Ed Hennis
fd115cfc13 Address my review feedback on (#6017)
- Shortcut on issuer match in canTransfer.
- An asset can transfer if either trustline enabled rippling, so both
  must have it disabled for the transfer to fail with terNO_RIPPLE.
- Remove unnecessary asfDefaultRipple sets in unit tests.
- Add a new unit test helper class: testline, and a macro: THISLINE.
  When included as a parameter to Env::operator(), will include the line
  number of the transaction that didn't get the expected result. Works
  similarly to BEAST_EXPECT. I didn't do the same for the file name,
  because that can be deduced from the testcase name.
2025-11-18 18:31:10 -05:00
Bronek Kozicki
d8b944c218 Enforce assets are transferable (#6017)
- Includes unit tests for terNO_RIPPLE.
- Switch auth mode to weak when submitter is destination.
- Require rippling enabled for vault deposits or withdrawals.
2025-11-18 18:28:59 -05:00
Mayukha Vadari
d9c27da529 refactor: split up RPCHelpers.h into two (#6047)
This PR splits `RPCHelpers.h` into two files, by moving out all the ledger-fetching-related functions into a separate file, `RPCLedgerHelpers.h`. It also moves `getAccountObjects` to `AccountObjects.h`, since it is only used in that one place.
2025-11-18 15:44:39 -05:00
Bart
3fb6acd29e ci: Fix filtering out of Clang 20+ on ARM (#6046)
This change fixes the strategy matrix check to filter out the Clang 20+ on ARM, which still fail due to problems with Boost.
2025-11-17 21:54:13 +00:00
Bart
77b7cef5a7 ci: Use new Debian Trixie images (#6034)
This change uses the new Debian Trixie CI images added by XRPLF/ci#83.
2025-11-17 19:31:19 +00:00
Jingchen
2c187461cc refactor: Retire NegativeUNL amendment (#6033)
Amendments activated for more than 2 years can be retired. This change retires the NegativeUNL amendment.
2025-11-17 14:02:10 +00:00
Vito Tumas
31d6ad727e Refactors method and struct names (#6039)
- remove unused method
- rename computeFee to computeManagementFee
- rename calculateRounded to constructRounded
- remove redundancies in LoanDeltas struct
- rename PaymentComponentsPlus to ExtendedPaymentComponents
- additional logging
2025-11-15 08:48:38 +00:00
Ed Hennis
cfdcaf3f8d Merge branch 'develop' into ximinez/lending-XLS-66 2025-11-15 03:08:29 -05:00
Ayaz Salikhov
13a12c6402 chore: Update nudb recipe to remove linker warnings (#6038) 2025-11-14 20:27:28 +00:00
Ed Hennis
b9fdf9e564 Add the testPoC_UnsignedUnderflowOnFullPayAfterEarlyPeriodic
- Updated to reflect that the issue in RIPD-3971 has been resolved by
  commit 4396b77c4b
2025-11-14 12:52:27 -05:00
Bronek Kozicki
362ecbd1cb fix: Apply object reserve for Vault pseudo-account (#5954) 2025-11-14 17:30:56 +00:00
Jingchen
7025e92080 refactor: Retire TicketBatch amendment (#6032)
Amendments activated for more than 2 years can be retired. This change retires the TicketBatch amendment.
2025-11-14 13:33:34 +00:00
Ed Hennis
c65a311ad1 Remove a bunch of obsolete code, marked by "#if LOANCOMPLETE" 2025-11-13 14:26:47 -05:00
Ed Hennis
a868b1938d Fix Vault test failure due to default field not being in RPC Json 2025-11-13 14:21:41 -05:00