Vito
0db000bc97
Merge remote-tracking branch 'origin/develop' into tapanito/vault-precision-transactor
...
# Conflicts:
# src/libxrpl/ledger/helpers/VaultHelpers.cpp
# src/libxrpl/tx/transactors/vault/VaultWithdraw.cpp
2026-08-20 11:00:36 +02:00
Vito
ec8a9cdbf8
fix: Clamp Vault Deposit, Withdraw, and Clawback to assetsTotal grid
...
sfAssetsTotal is stored on a coarser STAmount grid than sfAssetsAvailable
and the vault's trust line, so adding the same amount to all three
quantizes differently on each and leaves the vault's books disagreeing
with its actual holdings by a sub-ULP amount. Fix by clamping the
credited/withdrawn amount to what sfAssetsTotal can represent before
applying it to the other rails, via a shared clampToAssetsTotalScale
helper used by all three transactors.
- Deposit: clamp assetsDeposited downward to the assetsTotal grid, then
re-derive shares from the clamped amount so the depositor cannot
receive shares worth more than they paid. Return tecPRECISION_LOSS if
the clamp rounds the deposit to zero.
- Withdraw: clamp assetsWithdrawn upward (i.e. the vault pays out
slightly less) so it never pays out more than it can account for.
Shares are not re-derived, so the withdrawer receives slightly less
per share, favouring remaining holders.
- Clawback: same pattern as withdraw, guarded on assetsRecovered > 0 and
placed after the existing clamp-to-available.
Gated on fixCleanup3_4_0.
2026-08-19 19:54:50 +02:00
Vito Tumas
d1dc7a6ccf
refactor: Extract invariant invocation into free checkInvariants runner ( #7404 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-19 14:10:11 +00:00
Timur Yalymov
368ff1afce
fix: Exempt loan default from asset freeze ( #7932 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
2026-08-19 13:43:40 +00:00
Vito Tumas
3adf2d40b5
fix: Reject VaultWithdraw fixed-share amounts that round to zero ( #7950 )
2026-08-19 13:09:38 +00:00
Bart
ca39bff3c8
refactor: Add SHAMapNodeID::isPrefixOf ( #7939 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-08-18 12:35:32 +00:00
Copilot
820ca5b332
refactor: Convert boost::beast::string_view to std::string_view ( #6306 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com >
Co-authored-by: Mayukha Vadari <mvadari@ripple.com >
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
Co-authored-by: xrplf-ai-reviewer[bot] <266832837+xrplf-ai-reviewer[bot]@users.noreply.github.com>
Co-authored-by: Mayukha Vadari <mvadari@gmail.com >
Co-authored-by: Timur Yalymov <36795566+tyalymov@users.noreply.github.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
2026-08-17 23:19:56 +00:00
Gregory Tsipenyuk
1b226c8b2e
perf: Optimize MPT freeze checks to reduce redundant state reads ( #7411 )
...
Co-authored-by: Chenna Keshava B S <21219765+ckeshava@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-08-17 21:15:16 +00:00
Gregory Tsipenyuk
ca6121c5b3
feat: Enforce MPT CanTransfer on AMM LPTokens transfers ( #7418 )
2026-08-17 20:58:46 +00:00
Bart
5337d028a2
refactor: Use unsigned int for branch-related operations ( #7938 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-17 10:07:14 +00:00
Bart
2adffaef72
refactor: Remove support for protocol version 2.1 ( #7432 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-08-14 15:36:47 +00:00
Mayukha Vadari
d34aa37b3c
refactor: Use std::format instead of boost::format where it fits ( #7996 )
...
Co-authored-by: Timur Yalymov <36795566+tyalymov@users.noreply.github.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
2026-08-14 13:49:08 +00:00
Jingchen
8e9b1791c5
feat: Add a new closed ended vault to extend SAV ( #7921 )
...
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
2026-08-12 17:07:43 +00:00
Copilot
153b7839a7
refactor: Replace boost::filesystem with std::filesystem across the codebase ( #7012 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: mvadari <8029314+mvadari@users.noreply.github.com >
Co-authored-by: Mayukha Vadari <mvadari@ripple.com >
Co-authored-by: Mayukha Vadari <mvadari@gmail.com >
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: mathbunnyru <12270691+mathbunnyru@users.noreply.github.com >
2026-08-12 13:40:39 +00:00
Gregory Tsipenyuk
26cc683ec1
fix: Assorted MPT/DEX fixes ( #7299 )
...
Co-authored-by: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com >
2026-08-11 18:15:51 +00:00
Mayukha Vadari
6ca2fb84d4
refactor: Replace Boost trim and to_lower with libxrpl helpers ( #7995 )
2026-08-11 18:15:35 +00:00
klemenfn
a3147740f2
build: Fix GCC 14 compilation ( #7981 )
...
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
2026-08-11 13:24:56 +00:00
Alex Kremer
0a572833ea
chore: Gtest migration followups second pass ( #7888 )
2026-08-11 12:38:40 +00:00
Kassaking7
60291c3ed6
fix: Allow OverrideFreeze to bypass individual/deep freeze on AMM trust lines ( #6959 )
2026-08-10 21:34:28 +00:00
yinyiqian1
b19c3c64f2
fix: Add zero keylet check in credential ( #7971 )
2026-08-10 17:47:16 +00:00
Mayukha Vadari
a0e1e578a0
refactor: Remove operator!= overloads that C++20 synthesizes ( #7994 )
2026-08-10 17:23:02 +00:00
Mayukha Vadari
4f8819565a
fix: Assorted cleanup fixes ( #7988 )
2026-08-10 17:18:22 +00:00
Mayukha Vadari
6580b200db
refactor: Replace boost::lexical_cast with existing alternatives ( #7991 )
2026-08-10 17:10:18 +00:00
Gregory Tsipenyuk
94bccb3a5a
fix: Fix MPT/DEX Audit/Attackathon reports (Phase 2) ( #7537 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Sergey Kuznetsov <skuznetsov@ripple.com >
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
Co-authored-by: Andrzej Budzanowski <andrzej.budzanowski@neti-soft.com >
Co-authored-by: Marek Foss <marek.foss@neti-soft.com >
Co-authored-by: Alex Kremer <akremer@ripple.com >
Co-authored-by: Vito Tumas <5780819+Tapanito@users.noreply.github.com >
Co-authored-by: Bart <bthomee@users.noreply.github.com >
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
Co-authored-by: Mayukha Vadari <mvadari@ripple.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-07 21:53:54 +00:00
Mayukha Vadari
0fb92c3194
refactor: Use SeqProxy instead of uint32 for all sequence-based keylets ( #7890 )
...
Co-authored-by: xrplf-ai-reviewer[bot] <266832837+xrplf-ai-reviewer[bot]@users.noreply.github.com>
2026-08-07 21:29:11 +00:00
Ayaz Salikhov
9859e5ceda
Merge remote-tracking branch 'upstream/release/3.3.x' into mathbunnyru/merge-3.3.0-to-develop
...
* upstream/release/3.3.x: (41 commits)
chore: Bump version to 3.3.0
chore: Bump version to 3.3.0-rc7
fix: Increase manifest protocol message size cap and fix manifests relay
fix: Cap untrusted manifests per message and drop oversized ones
chore: Bump version to 3.2.1
chore: Bump version to 3.2.1-rc1
fix: Cap untrusted manifests per message and drop oversized ones
fix: Reject oversized validator manifest before decoding
fix: Reduce untrusted manifest cache cap to 100
fix: Bound untrusted manifest cache
chore: Bump version to 3.3.0-rc6
feat: Package validator-keys inside rippled
chore: Bump version to 3.3.0-rc5
fix: Switch SponsorshipSet to use a delta for sfFeeAmount
fix: Re-revert "fix: Set request size limits and differential pricing for get-object-by-hash calls"
chore: Bump version to 3.3.0-rc4
fix: Revert "fix: Set request size limits and differential pricing for get-object-by-hash calls"
chore: Bump version to 3.3.0-rc3
fix: Reduce untrusted manifest cache cap to 100
fix: Revert "fix: Reject oversized SHAMap nodes in gotStaleData and fetch-pack path"
...
2026-08-07 16:00:25 +01:00
Ayaz Salikhov
cb425647a4
ci: Generate protocol_autogen only once in CI ( #7918 )
2026-08-06 13:25:28 +00:00
Pratik Mankawde
54cfdda00b
fix: Increase manifest protocol message size cap and fix manifests relay
...
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com >
2026-08-04 17:08:43 -04:00
Vito Tumas
c3ee602002
test: Split Loan_test.cpp into topical suites ( #7864 )
...
Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com >
2026-08-04 15:43:59 +00:00
Alex Kremer
06488c1318
chore: Rename CamelCase namespaces to snake_case ( #7933 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-08-04 13:46:55 +00:00
Luc des Trois Maisons
b8451ffa32
fix: Add missing value_type to JSON iterators ( #7907 )
2026-08-03 21:17:23 +00:00
Pratik Mankawde
8461ded0d8
fix: Cap untrusted manifests per message and drop oversized ones
2026-08-03 12:00:11 -04:00
Bart
21cd615407
perf: Replace node ID by depth in TMLedgerNode ( #6353 )
...
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com >
2026-07-30 15:02:05 +00:00
Vito Tumas
8a5eded4f1
feat: Implement LoanBroker cash-basis accounting ( #7817 )
2026-07-30 11:55:39 +00:00
Alex Kremer
6ddad54985
chore: Move lexical cast tests to gtest ( #7873 )
2026-07-29 22:54:46 +00:00
Mayukha Vadari
24b6dad287
fix: Switch SponsorshipSet to use a delta for sfFeeAmount
2026-07-29 14:24:55 -04:00
Alex Kremer
86832edc70
chore: Move semantic version tests to gtest ( #7872 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-07-27 18:48:53 +00:00
Alex Kremer
6c9c7f0555
chore: Trivial gtest migrations ( #7865 )
2026-07-27 16:34:53 +00:00
Andrzej Budzanowski
29120dfcbd
test: Migrate nodestore tests from Beast to GTest ( #7292 )
...
Co-authored-by: Marek Foss <marek.foss@neti-soft.com >
Co-authored-by: Alex Kremer <akremer@ripple.com >
2026-07-27 13:00:14 +00:00
Kassaking7
9afa1cf4d1
fix: Update PermissionedDEX invariant domain tracking for valid offer replacement ( #7387 )
...
Co-authored-by: Bart <bthomee@users.noreply.github.com >
2026-07-23 21:40:21 +00:00
Marek Foss
4c0180b3db
test: Migrate csf and xrpld-consensus Beast non-JTx tests to GTest ( #7046 )
...
Co-authored-by: Alex Kremer <akremer@ripple.com >
2026-07-23 21:38:21 +00:00
Marek Foss
4acccfeda8
test: Modularize Peerfinder component and migrate Peerfinder tests from Beast to GTest and GMock ( #7054 )
...
Co-authored-by: Alex Kremer <akremer@ripple.com >
2026-07-23 21:00:06 +00:00
Pratik Mankawde
c50edf507c
fix: Reduce untrusted manifest cache cap to 100
2026-07-23 16:27:45 -04:00
Mayukha Vadari
38c54c3f36
feat: Add fixCleanup3_4_0 amendment (no functionality yet) ( #7854 )
2026-07-23 18:50:59 +00:00
Shawn Xie
6b3eaf091b
fix: Change ConfidentialMPTConvert to no delegate
2026-07-17 16:06:17 -04:00
Pratik Mankawde
68a765d929
fix: Bound untrusted manifest cache
2026-07-17 14:07:57 -04:00
yinyiqian1
033dca2f0e
feat: Make DynamicMPT opt-in-immutable
2026-07-17 14:02:35 -04:00
Jingchen
7d3611df2a
fix: Compute validation suppression key over canonical serialisation
2026-07-17 07:33:44 -04:00
Bart
7877ee42a0
fix: Reject oversized validator manifest before decoding
2026-07-16 16:33:03 -04:00
Bart
1dcaf4b54e
fix: Bound and offload per-connection subscription cleanup
2026-07-16 16:33:03 -04:00