* XRPLF/develop:
refactor: Modularise ledger (5493)
chore: Add unit tests dir to code coverage excludes (5803)
chore: Build and test all configs for daily scheduled run (5801)
chore: Limits CI build and test parallelism to reduce resource contention (5799)
fix(amendment): Add missing fields for keylets to ledger objects (5646)
Rename mutable flags (5797)
Set version to 2.5.1
Fix: Don't flag consensus as stalled prematurely (5658)
This change adds a fix amendment (`fixIncludeKeyletFields`) that adds:
* `sfSequence` to `Escrow` and `PayChannel`
* `sfOwner` to `SignerList`
* `sfOracleDocumentID` to `Oracle`
This ensures that all ledger entries hold all the information needed to determine their keylet.
- Rewrite all of the templates in Units.h to use concepts.
- Restrict to_short_string to reasonably sized values.
- Rephrase some comments, and fix some typos.
* XRPLF/ximinez/lending-refactoring-2:
Bugfix: Adds graceful peer disconnection (5669)
Support DynamicMPT XLS-94d (5705)
Only notify clio for PRs targeting the release and master branches (5794)
refactor: Wrap GitHub CI conditionals in curly braces (5796)
* extends the functionality of the MPTokenIssuanceSet transaction, allowing the issuer to update fields or flags that were explicitly marked as mutable during creation.
* XRPLF/develop:
fix: Add restrictions to Permission Delegation: fixDelegateV1_1 (5650)
ci: Add missing dependencies to workflows (5783)
ci: Use default conan install format (5784)
Switch CI pipeline bookworm:gcc-13 from arm64 to amd64 (5779)
- This was the first merge after I got back from sabbatical. I made
these same changes in "ximinez/lending-XLS-66" commit 9d052dc, but
after seeing some test failures, I think they belong here.
- Amendment: fixDelegateV1_1
- In DelegateSet, disallow invalid PermissionValues like 0, and transaction values when the transaction's amendment is not enabled. Acts as if the transaction doesn't exist, which is the same thing older versions without the amendment will do.
- Payment burn/mint should disallow DEX currency exchange.
- Support MPT for Payment burn/mint.
- Rewrite to_short_string to call strHex directly instead of building
the whole hex string first.
- Change PrettyAsset::scale_ back to a uint32 since the Number
conversion elides any potential multiplication overflow.
- Clean ups.
* Add and Scale to VaultCreate
* Add round-trip calculation to VaultDeposit VaultWithdraw and VaultClawback
* Implement Number::truncate() for VaultClawback
* Add rounding to DepositWithdraw
* Disallow zero shares withdraw or deposit with tecPRECISION_LOSS
* Return tecPATH_DRY on overflow when converting shares/assets
* Remove empty shares MPToken in clawback or withdraw (except for vault owner)
* Implicitly create shares MPToken for vault owner in VaultCreate
* Review feedback: defensive checks in shares/assets calculations
---------
Co-authored-by: Ed Hennis <ed@ripple.com>
- Remove unnecessary #include
- Explanatory comments
- Make the MPT InvariantCheck related to EscrowFinish amendment safe
- Convert SField maps to unordered_maps
- Make jtx::fee::operator() clearer
- Rename checkMyPrivilege to hasPrivilege
This is a major refactor of LedgerEntry.cpp. It adds a number of helper functions to make the code easier to maintain.
It also splits up the ledger and ledger_entry tests into different files, and cleans up the ledger_entry tests to make them easier to write and maintain.
This refactor also caught a few bugs in some of the other RPC processing, so those are fixed along the way.