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.
- Addresses FIND-001 from audit
- LoanSet::preflight will require Counterparty to be set (it's normally
optional) for an inner batch transaction, because the checks are done
before the LoanBroker object can be accessed.
- Adjust LoanSet::calculateBaseFee to not charge extra if an inner
transaction.
- Adds a Loan-specific test to Batch_test.
- Mark variable only used in asserts as [[maybe_unused]].
- Restore commented out line that I think I resolved wrong in an earlier
merge to fix Vault tests.
The Payment transaction metadata is missing the `DeliveredAmount` field that displays the actual amount delivered to the destination excluding transfer fees. This amendment fixes this problem.
#5224 added (among other things) a `VaultWithdraw` transaction that allows setting the recipient of the withdrawn funds in the `Destination` transaction field. This technically turns this transaction into a payment, and in some respect the implementation does follow payment rules, e.g. enforcement of `lsfRequireDestTag` or `lsfDepositAuth`, or that MPT transfer has destination `MPToken`. However for IOUs, it missed verification that the destination account has a trust line to the asset issuer. Since the default behavior of `accountSendIOU` is to create this trust line (if missing), this is what `VaultWithdraw` currently does. This is incorrect, since the `Destination` might not be interested in holding the asset in question; this basically enables spammy transfers. This change, therefore, removes automatic creation of a trust line to the `Destination` account in `VaultWithdraw`.
* XRPLF/ximinez/lending-refactoring-2:
refactor: Update rocksdb (#5568)
Switch instrumentation workflow to use dependencies (#5607)
chore: Rename conan profile to `default` (#5599)
Include `network_id` in validations and subscription stream responses (#5579)
Add support for `DomainID` in `MPTokenIssuance` transactions (#5509)
chore: Remove unused code after flow cross retirement (#5575)
Remove obsolete owner pays fee feature and XRPL_ABANDON stanza (#5550)
refactor: Makes HashRouter flags more type-safe (#5371)
Fix clang-format CI job (#5598)