- Adds a Permission::getTxFeature lookup function to find the
controlling amendment for a Transactor, if any.
- Returns temDISABLED from preflight if there is an amendment and it's
not enabled.
- Still need to go through and remove all the now-redundant isEnabled
functions.
* XRPLF/ximinez/lending-refactoring-4:
fixup! Make a few tweaks to the changes in 43fe49e7
Fix Vault tests broken by negative MPT issuer balance
Make a few tweaks to the changes in 43fe49e7
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)
* 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)
- 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.
- Also fix a few build errors that I missed earlier.
- Updated freeze check rules for LoanSet.
- Fixed the debt total calculation and check in LoanSet.
- Removed _some_ unnecessary includes.
- 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.
- Mostly adding comments.
- Fixed some function parameter names that weren't updated after
a copy/paste.
- LoanBrokerCoverWithdraw does not need to check for freeze when sending
to the issuer.
- Reorder the fund transfer cases in LoanBrokerCoverWithdraw to make it
clearer that some transfers are direct, and some use the payment
engine.
- Only look up the vault ID once in LoanBrokerSet
* 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>
- Rewrite isTesSuccess to use TERSubset::operator bool
- Add Transactor::preflightSigValidated for expensive operations that
should be done after signature validation. These things would have
been done after preflight2 before this refactor.
- Split Batch and EscrowFinish preflight to use preflightSigValidated, too.
* XRPLF/ximinez/lending-refactoring-4:
Review feedback from @Bronek
Rewrite Units.h and same safe_cast.h restrictions to use concepts
* Also add required support for LoanBroker and Loan ledger entries
- 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.
This updates Boost to 1.88, which is needed because Clio wants to move to 1.88 as that fixes several ASAN false positives around coroutine usage. In order for Clio to move to newer boost, libXRPL needs to move too. Hence the changes in this PR. A lot has changed between 1.83 and 1.88 so there are lots of changes in the diff, especially in regards to Boost.Asio and coroutines in particular.
* XRPLF/develop:
chore: Update clang-format and prettier with pre-commit (5709)
fix(test): handle null metadata for unvalidated tx in Env::meta (5715)
chore: Workaround for CI build errors on arm64 (5717)
chore: Fix file formatting (5718)
fix: Skip notify-clio when running in a fork, reorder config fields (5712)
chore: Reverts formatting changes to external files, adds formatting changes to proto files (5711)