- Primarily updating tests, and fixing stuff that didn't work.
- Tests still not expected to pass.
- Add Json::Value::isMember(StaticString) so SFields can be used.
- Validate more fields in ValidLoan Invariant
- Loan tests are not expected to pass.
- Refactor Number to put rounding logic into reusable functions.
- Add Number tests to explicitly test rounding - may be redundant, but
easy to reason about. Verifies that the default rounding matches
banker's rounding.
- Enable LoanManage. Apparently any remaining issues were fixed by the
previous commit's cleanups.
- Partially enabled LoanPay.
* mywork/ximinez/lending-sttx-checksign:
Review feedback from @a1q123456
Add jtx, STObject, and RPC support for sig object fields
Add support for extra transaction signature validation
- Convert STTx::getSignature to be static.
- Make the STTx::checkSign that takes a signature object private, and
change it and all the other relevant functions to take the signature
object as a `const&`.
- Change `getBatchTransactionIDs` to return a `const&` to reduce the
number of vector copies. Rename `batchTxnIds_` to CamelCase. Update
the text of the internal comment.
There are some tests that write out JSONs as a string instead of using the Json::Value library, which are cleaned up by this change.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
A regression was introduced in #5669 which would cause rippled to potentially dereference a disengaged std::optional when connecting to a peer. This would cause UB in release build and crash in debug.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change replaces boost::lexical_cast<std::string> with to_string in some of the tests to make them more readable.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change replaces instances of JSON LastLedgerSequence with last_ledger_seq, which makes the tests a bit simpler and easier to read.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This PR changes fee().accountReserve(0) to fee().reserve, as the current network reserve amount should be used instead of the account reserve.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change adds a paychan namespace to the TestHelpers and implementation files, improving organization and clarity. Additionally, it updates the AMM test to use the new `paychan::create` function for payment channel creation.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change excludes from Codecov unreachable/difficult-to-test transaction code (such as `tecINTERNAL`) and old code (from amendments that have been enabled for a long time that are only around for ledger replay reasons). This removes about 200 lines of misses and increases the Codecov coverage by 0.3% (79.2% to 79.5%).
- Making a payment on an impaired loan will unimpair the loan, which
changes Vault.LossUnrealized.
- Add a step in unit tests to impair a loan before making a payment, to
verify, and prevent future similar regressions.
- Resolves regression RIPD-3650
** Vault Invariants for Loan txs need to be fleshed out. **
- Give the appropriate Loan transactions vault modification privileges.
- Give the appropriate Loan transactions the ability to authorize
(create in this case) MPTokens.
- Check that LoanManage does not leave Vault in an inconsistent state
(AssetsAvailable > AssetsTotal). For IOU vaults, if the difference is
dust, "round up".
This change fixes a release build error with GCC 15.2.
The `fields` variable is only used in `XRPL_ASSERT`, which evaluates to nothing in a Release build, leaving the variable unused. This change silences the build warning.
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
- Restructures `STTx` signature checking code to be able to handle
a `sigObject`, which may be the full transaction, or may be an object
field containing a separate signature. Either way, the `sigObject` can
be a single- or multi-sign signature.
- This is distinct from 550f90a75e (#5594), which changed the check in
Transactor, which validates whether a given account is allowed to sign
for the given transaction. This cryptographically checks the signature
validity.