Commit Graph

1211 Commits

Author SHA1 Message Date
Ed Hennis
da396070ce Address review feedback from @TimothyBanks and @gregtatcam
- Remove unnecessary if constexpr check
- Update scaling static_assert
- Remove unnecessary rounding logic from Number::Guard::doRound()
- Handle fractional rounding between kMaxRep and kMaxRepUp
2026-06-18 17:57:21 -04:00
Ed Hennis
39d85076c4 Merge branch 'ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep 2026-06-17 21:50:55 -04:00
Ed Hennis
14a43cfc35 Merge branch 'develop' into ximinez/number-round-maxrep-down 2026-06-17 21:46:24 -04:00
yinyiqian1
772ea80a25 fix: Use template for granular delegation permissions (#6613)
Co-authored-by: Bart <bthomee@users.noreply.github.com>
2026-06-17 23:20:54 +00:00
Ed Hennis
069fc99b6a Merge branch 'ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep 2026-06-17 15:01:40 -04:00
Ed Hennis
cebd4ecf15 Merge branch 'develop' into ximinez/number-round-maxrep-down 2026-06-17 15:01:35 -04:00
Pratik Mankawde
cccce1c32e Merge remote-tracking branch 'origin/release/3.2.x' into pratik/merge_3.2.x
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
2026-06-17 12:53:02 +01:00
Ed Hennis
e5785c4fcb fix: Fix Number comparison operator 2026-06-15 22:24:02 +01:00
yinyiqian1
fded06652a fix: Add zero NFT Offer ID check for NFTokenCancelOffer 2026-06-15 22:24:02 +01:00
Sergey Kuznetsov
47b06ecd17 refactor: Use rocksdb includes only when it is available 2026-06-15 22:23:54 +01:00
Sergey Kuznetsov
e29dc474b3 refactor: Improve payment channel closing and returned error codes 2026-06-15 22:23:28 +01:00
Pratik Mankawde
2728e11809 fix: Set request size limits and differential pricing for get-object-by-hash calls 2026-06-15 22:23:28 +01:00
Ed Hennis
2f59cb0372 Merge branch 'ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep 2026-06-15 15:28:59 -04:00
Ed Hennis
6bc267c112 Merge branch 'develop' into ximinez/number-round-maxrep-down 2026-06-15 15:28:55 -04:00
Ed Hennis
8f51891631 Use constexpr in one more place 2026-06-15 14:57:39 -04:00
Zhiyuan Wang
b34aa84e5a fix: Check Fee-Free Division by Zero in AMMWithdraw singleWithdrawEPrice (#6989) 2026-06-15 15:31:22 +00:00
Ed Hennis
a63bab2a5e Cleanups: Comments, variable names, one test case
- "ToNearest and Downward behavior Small" test case
2026-06-12 19:38:07 -04:00
Ed Hennis
095e14193e Apply suggestions from AI code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-12 19:29:01 -04:00
Ed Hennis
f8f899dd8a Merge remote-tracking branch 'XRPLF/ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep
* XRPLF/ximinez/number-round-maxrep-down:
  Change placeholder "fixNumberStuff" to "fixCleanup3_3_0"
  test: Add null check unit test for `Oracle::aggregatePrice` (7306)
  ci: Patch conan recipe for Nix to be able to use on macOS (7532)
  ci: Run sanitizers on release builds too (7527)
  fix: Correct hybrid offer deletion on credential expiry (6843)
  ci: Make sanitizer flags lists in the profile, not a string (7449)
  ci: Make configurations launch on certain event types (7447)
  fix: Add [[maybe_unused]] to fix320Enabled for assert=OFF builds (7446)
  ci: Add `gh` and `file` to nix packages (7444)
  fix: Disable transaction invariants (7409)
  perf: Dispatch "hasInvalidAmount()" on type tag instead of dynamic_cast (7402)
  refactor: Retire fixUniversalNumber amendment (5962)
  test: Do not create data directory for memory databases (7323)
  ci: Launch upload-conan-deps on profile change (7442)
2026-06-11 22:55:31 -04:00
Ed Hennis
308e00f590 Merge commit 'b087545' into ximinez/number-round-maxrep
* commit 'b087545':
  Number improvements
  test: Add more Number edge case tests, showing failures
2026-06-11 22:48:22 -04:00
Ed Hennis
764be7f20f Merge remote-tracking branch 'XRPLF/develop' into ximinez/number-round-maxrep-down
* XRPLF/develop:
  test: Add null check unit test for `Oracle::aggregatePrice` (7306)
  ci: Patch conan recipe for Nix to be able to use on macOS (7532)
  ci: Run sanitizers on release builds too (7527)
  fix: Correct hybrid offer deletion on credential expiry (6843)
  ci: Make sanitizer flags lists in the profile, not a string (7449)
  ci: Make configurations launch on certain event types (7447)
  fix: Add [[maybe_unused]] to fix320Enabled for assert=OFF builds (7446)
  ci: Add `gh` and `file` to nix packages (7444)
  fix: Disable transaction invariants (7409)
  perf: Dispatch "hasInvalidAmount()" on type tag instead of dynamic_cast (7402)
  refactor: Retire fixUniversalNumber amendment (5962)
  test: Do not create data directory for memory databases (7323)
  ci: Launch upload-conan-deps on profile change (7442)
2026-06-11 19:39:47 -04:00
Ed Hennis
a1cfa89e15 test: Add more Number edge case tests, showing failures
- NumberAddDirectedSignWrong
  - Addition of two negative numbers with the same exponent rounds
    ToNearest in the wrong direction.
  - Also include unit test cases with same exponent, and mixed signs.
    - No rounding issues in any combination, because the exponent can't
      change.
- NumberAddToNearestPicksFarther
  - In scenarios where the two operands have different signs, and
    significantly different exponents, you can end up in a situation
    where the rounding looks like 0.5, which may round down to even, but
    is actually 0.5....nnn, which should always round up, you get the
    wrong result.
2026-06-11 19:38:21 -04:00
Ed Hennis
5c62c15ad8 Future proofing: Rename Large and Enabled to Large330 and Enabled330
- If more fixes need to be made in the future, they can be added after,
  instead of needing to do the "rename dance", I had to do with this PR.
2026-06-11 19:38:20 -04:00
Ed Hennis
772e0c30f7 clang-tidy: rename MantissaScale enums from "3_2_0" to "320" 2026-06-11 19:38:20 -04:00
Ed Hennis
182ca1c12f Clean up the "New" names 2026-06-11 19:38:20 -04:00
Ed Hennis
2e97056b40 Update to use a new amendment, since this PR will not be part of 3.2.0
- This requires creating yet another MantissaScale, and CuspRoundingFix
  option.
2026-06-11 19:38:03 -04:00
Ed Hennis
1162ccf7f4 Clean up tests 2026-06-11 19:37:57 -04:00
Ed Hennis
07ae5fa867 Reorganize the subtraction tests 2026-06-11 19:37:56 -04:00
Ed Hennis
6cc45297d7 Fix formatting, add an assert 2026-06-11 19:37:56 -04:00
Ed Hennis
e77b154edc Include rounding in failed unit tests 2026-06-11 19:37:56 -04:00
Ed Hennis
64cb53629d Rework subtraction rounding (again) for more accuracy
- Go back to the old method of computing the mantissa, but when post
  processing, expand the mantissa to slightly larger than maxMantissa,
  then in doRoundDown, if the result is not exact, subtract one.
  Finally, let doNormalize figure out the rounding of the result.
2026-06-11 19:37:55 -04:00
Ed Hennis
0a24023797 clang-tidy: template param names, const correctness, braces 2026-06-11 19:37:55 -04:00
Ed Hennis
73bd964917 Remove the kMaxRep+1 rounding tests 2026-06-11 19:37:54 -04:00
Ed Hennis
48e0ca72b0 Improve accuracy of Number::operator+=
- Use more of the available range of the uint128 operands.
- Also refactor Number::Guard::round() to return an enum.
2026-06-11 19:37:54 -04:00
Ed Hennis
6d89fbef7a Experimental: Scale addition operands up to preserve accuracy 2026-06-11 19:37:54 -04:00
Ed Hennis
b624b2eeae Include upward, write tests based on "expected" behavior 2026-06-11 19:37:54 -04:00
Ed Hennis
f255ef6214 test: Add another rounding unit test 2026-06-11 19:37:53 -04:00
Ed Hennis
1bb1d71565 test: Add more Number edge case tests, showing failures
- NumberAddDirectedSignWrong
  - Addition of two negative numbers with the same exponent rounds
    ToNearest in the wrong direction.
  - Also include unit test cases with same exponent, and mixed signs.
    - No rounding issues in any combination, because the exponent can't
      change.
- NumberAddToNearestPicksFarther
  - In scenarios where the two operands have different signs, and
    significantly different exponents, you can end up in a situation
    where the rounding looks like 0.5, which may round down to even, but
    is actually 0.5....nnn, which should always round up, you get the
    wrong result.
2026-06-11 18:27:25 -04:00
Pratik Mankawde
df395d6851 test: Add null check unit test for Oracle::aggregatePrice (#7306)
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
2026-06-11 18:05:36 +00:00
Zhiyuan Wang
09c36d066e fix: Correct hybrid offer deletion on credential expiry (#6843)
Co-authored-by: Bart <bthomee@users.noreply.github.com>
2026-06-10 20:42:41 +00:00
Ed Hennis
d8e03a8018 Update more names due to prior merge 2026-06-10 13:26:34 -04:00
Pratik Mankawde
8a4bf2dee6 refactor: Retire fixUniversalNumber amendment (#5962)
Signed-off-by: Pratik Mankawde <pmankawde@ripple.com>
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-10 10:16:03 +00:00
Ed Hennis
e4dafa3171 Update names due to prior merge 2026-06-09 19:14:40 -04:00
Ed Hennis
1477747c37 Merge remote-tracking branch 'XRPLF/ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep
* XRPLF/ximinez/number-round-maxrep-down:
  Also fix local 3_2_0 variable names
  Future proofing: Rename Large and Enabled to Large330 and Enabled330
  clang-tidy: rename MantissaScale enums from "3_2_0" to "320"
2026-06-09 19:09:39 -04:00
Ed Hennis
48d1c70b6c Future proofing: Rename Large and Enabled to Large330 and Enabled330
- If more fixes need to be made in the future, they can be added after,
  instead of needing to do the "rename dance", I had to do with this PR.
2026-06-09 18:44:46 -04:00
Ed Hennis
66ff72f56d clang-tidy: rename MantissaScale enums from "3_2_0" to "320" 2026-06-09 18:38:03 -04:00
Ed Hennis
4139ebbe6b Fix issues introduced by prior merge, and new MantissaRange 2026-06-09 18:31:59 -04:00
Ed Hennis
9924b6ce65 Merge remote-tracking branch 'XRPLF/ximinez/number-round-maxrep-down' into ximinez/number-round-maxrep
* XRPLF/ximinez/number-round-maxrep-down:
  Clean up the "New" names
  Update to use a new amendment, since this PR will not be part of 3.2.0
  fix: Fix Number comparison operator (7406)
  feat: Use C++ 23 standard (7431)
  refactor: Introduce XRPL_ASSERT_IF for amendment-gated assertions (7378)
  refactor: Change config section and key string literals into constants (7095)
  refactor: Use `std::move` and `std::string_view` where possible (7424)
  refactor: Use const function arguments where possible (7423)
  ci: Use XRPLF/actions build-multiarch-image workflow (7428)
  ci: Use new packaging images and don't cancel develop builds (7417)
  ci: [DEPENDABOT] bump codecov/codecov-action from 6.0.1 to 7.0.0 (7426)
2026-06-09 18:08:04 -04:00
Ed Hennis
63f1a40b77 Clean up the "New" names 2026-06-09 17:06:27 -04:00
Ed Hennis
5bafceefaf Merge remote-tracking branch 'XRPLF/develop' into ximinez/number-round-maxrep-down
* XRPLF/develop:
  fix: Fix Number comparison operator (7406)
  feat: Use C++ 23 standard (7431)
  refactor: Introduce XRPL_ASSERT_IF for amendment-gated assertions (7378)
2026-06-09 16:51:38 -04:00