- Cleaned up some of the `LEDGER_ENTRY` macros by eliding unnecessary
parameters.
- Define the transaction privileges in one place (InvariantCheck.cpp).
- Give `EscrowFinish` the `mayAuthorizeMPT` privilege.
- Rename the test helper `expectLine` to `expectHolding` since
it handles both trust lines and MPTs.
- Restructure the ""pseudo-account has 2 pseudo-account fields set"
invariant test to loop over all defined pseudo-account fields.
- Fix `operator<<` for `PrettyAmount` to handle `MPTIssue`s.
- Add enforcement of the `AccountRootsDeletedClean` invariant if SAV is
enabled, and clarify the comment for the pseudo-account field check.
- Delete the 100% redundant `ttMPTOKEN_ISSUANCE_SET` check in
`ValidMPTIssuance`.
* XRPLF/ximinez/lending-refactoring-4:
fix: Modify jobs to use '>>' instead of 'tee' for GITHUB_OUTPUT (5699)
refactor: Revamp CI workflows (5661)
refactor: Decouple net from xrpld and move rpc-related classes to the rpc folder (5477)
Set version to 2.6.0-rc2
docs: Updates list of maintainers and reviewers (5687)
fix: Change log to debug level for AMM offer retrieval and IOU payment check (5686)
fix: Add -Wno-deprecated-declarations for Clang only (5680)
Update .git-blame-ignore-revs for 5657 (5675)
Fix BUILD.md instruction (5676)
Set version to 2.6.0-rc1
fix: Improve logging of the reason to refuse a peer connection (5664)
fix: Make test suite names match the directory name (5597)
chore: Run prettier on all files (5657)
chore: Set CONAN_REMOTE_URL also for forks (5662)
chore: Cleanup bin/ directory (5660)
perf: Optimize hash performance by avoiding allocating hash state object (5469)
* XRPLF/develop:
fix: Modify jobs to use '>>' instead of 'tee' for GITHUB_OUTPUT (#5699)
refactor: Revamp CI workflows (#5661)
refactor: Decouple net from xrpld and move rpc-related classes to the rpc folder (#5477)
Set version to 2.6.0-rc2
docs: Updates list of maintainers and reviewers (#5687)
fix: Change log to debug level for AMM offer retrieval and IOU payment check (#5686)
fix: Add -Wno-deprecated-declarations for Clang only (#5680)
Update .git-blame-ignore-revs for #5657 (#5675)
Fix BUILD.md instruction (#5676)
Set version to 2.6.0-rc1
fix: Improve logging of the reason to refuse a peer connection (#5664)
fix: Make test suite names match the directory name (#5597)
chore: Run prettier on all files (#5657)
chore: Set CONAN_REMOTE_URL also for forks (#5662)
chore: Cleanup bin/ directory (#5660)
perf: Optimize hash performance by avoiding allocating hash state object (#5469)
Reduce log noise by changing two log statements from error/warn level to debug level. These logs occur during normal operation when AMM offers are not available or when IOU authorization checks fail, which are expected scenarios that don't require an elevated log level.
Currently, all peer connection rejections are logged with the reason "slots full". This is inaccurate, as the PeerFinder can also reject connections if they are a duplicate. This change updates the logging logic to correctly report the specific reason (full or duplicate) for a rejected peer connection, providing more accurate diagnostic information.
This change fixes the suite names all around the test files, to make them match to the folder name in which this test files are located. Also, the RCL test files are relocated to the consensus folder, because they are testing consensus functionality.
We're currently calling `XXH3_createState` and `XXH3_freeState` when hashing an object. However, it may be slow because they call `malloc` and `free`, which may affect the performance. This change avoids the use of the streaming API as much as possible by using an internal buffer.
- Add a new parameter "signature_target" to "sign". Supports single and
multisign, but I haven't written tests for multisign yet.
- Skip account validation if this field is set, like multisigning.
- Unit tests demonstrating examples.
Fix stalled consensus detection to prevent false positives in situations where there are no disputed transactions.
Stalled consensus detection was added to 2.5.0 in response to a network consensus halt that caused a round to run for over an hour. However, it has a flaw that makes it very easy to have false positives. Those false positives are usually mitigated by other checks that prevent them from having an effect, but there have been several instances of validators "running ahead" because there are circumstances where the other checks are "successful", allowing the stall state to be checked.
* XRPLF/develop:
Switch Conan 1 commands to Conan 2 and fix credentials (#5655)
perf: Move mutex to the partition level (#5486)
Upload Conan dependencies upon merge into develop (#5654)
This change introduces two key optimizations:
* Mutex scope reduction: Limits the lock to individual partitions within `TaggedCache`, reducing contention.
* Decoupling: Removes the tight coupling between `LedgerHistory` and `TaggedCache`, improving modularity and testability.
Lock contention analysis based on eBPF showed significant improvements as a result of this change.
- Still required for the transaction to succeed (except inside a Batch,
because the batch signers take care of that).
- Started adding tests for Loan-related RPC and low-level math checks.
Currently only implemented "sign" on a LoanSet to verify it can be
done.
- Addresses FIND-012 from audit.
- If computePeriodicPaymentParts rounds the principal part to 0, add
a small amount so that some principal is paid regardless of how
extreme the loan parameters are. For XRP and MPTs, this just adds 1.
For IOUs, compute an epsilon based on the scale of the original loan.
(IOUs untested.)
- Also move this function out of the detail namespace so direct unit
tests can be written. (Pending.)
- Adds the testLoanPayComputePeriodicPaymentValidRateInvariant from
auditors with some minor modifications.
- Fixes an assert that the periodic rate > 0, which won't be true if the
loan interest rate is 0.
This change fixes an issue where the order of `PriceDataSeries` was out of sync between when `PriceOracle` was created and when it was updated. Although they are registered in the canonical order when updated, they are created using the order specified in the transaction; this change ensures that they are also registered in the canonical order when created.
- Move several tests from `STObject_test` to new `STParsedJSON_test`
unchanged.
- Add 3 test cases to cover edge cases for UInt16 values.
Co-authored-by: Denis Angell <dangell@transia.co>
This change decouples `ledger` from `xrpld/app`, and therefore fully clears the path to the modularisation of the ledger component. Before this change, `View.cpp` relied on `MPTokenAuthorize::authorize; this change moves `MPTokenAuthorize::authorize` to `View.cpp` to invert the dependency, making ledger a standalone module.
- Addresses FIND-003 from audit.
- Behavior changed to treat a DebtMaximum value of 0 to mean "no limit",
as defined in spec.
- No need to add unit tests, because the previous commit covers 0, and
tests already exist for non-zero limits.